Gezichts herkennende pir

Ik wilde het eigenlijk ‘pratende pir’ noemen maar dat maakt het dan weer wat minder. Toch is het wel wat het doet. Bij het herkennen mijn vriendin of mij wordt haar naam of die van mij genoemd. Ziet hij wel iemand, maar wordt de persoon niet herkend dan zegt hij ‘Persoon onbekend.’. Het zijn gewoon wave file-tjes die afgespeeld worden. Nu zou ik hiervoor een spraak synthesizer gebruiken maar destijds was inspreken makkelijker.

Bij het herkennen van een van beiden wordt een amber kleurige led aangestuurd en bij het herkennen/zien van een onbekend persoon een witte led, net als respectievelijk Relais 1 en Relais 2. Deze kunnen op hun beurt weer in combinatie met een weerstandsconfiguratie ook een alarminstallatie kan aansturen. Het was immers een pir, zo’n ‘ding’ wat je wel eens in de hoek zit hangen van een gebouw met alarm installatie en reageert op bewegingen. Wanneer je deze er voor in de plaats zou hangen gaat het alarm af bij het zien van bepaalde personen welke herkend worden of af bij het niet herkennen van personen. Net welk relais je hiervoor gebruikt.

Klassieke pir
Klassieke pir

Het project

Het was een typisch project van trial and error. Het scheelde dat ik precies wist waar ik naar toe wilde alleen ontbrak het aan ervaring met herkenningssoftware. Op school/opleiding was het onderwerp gezichtsherkenning als eens voorbij gekomen met een programmaatje in Python om personen te detecteren van een foto en als aardigheidje dan de neus en ogen te detecteren. Zoals altijd ging men weer over op een nieuw onderwerp zonder dat je er even lekker mee aan de slag kon. Maar het zaadje was gepland en gelukkig hebben we hiervoor ons hobbycentrum. Met internet.

Op internet ben ik gaan zoeken naar ‘face recognition’ en dan kom je al snel in de juiste wereld terecht. Van de ene site naar de andere krijg je dan een beter beeld van wat er allemaal mogelijk is. Op m’n pc het nodige uitgeprobeerd met publieke figuren en dat werkte. Wanneer je dan je eigen foto’s gaat gebruiken en start vervolgens je Python progamma is het een leuk moment wanneer je je eigen naam ziet staan bij herkenning van je foto. Een stevige basis om verder te gaan.

Het moest natuurlijk wel klein blijven dus verhuisde het hele project naar een Raspberry 4. En omdat de Raspberry over een audio uitgang beschikt zag ik al gauw de mogelijkheid om niet alleen een relais aan te sturen bij herkenning maar ook het afspelen van een zelf ingesproken wave-filetje. Een beetje vooruit kijkend zag ik het al voor me tijdens een demo hiervan. Een dom zwart kastje dat uit zichzelf begint te praten terwijl het in een ruimte mensen ziet en sommigen herkend spreekt altijd tot de verbeelding.

Een Raspberry, cameraatje, relaisboardje, wat leds, een klein speakertje en een inbouwkastje om de boel bij elkaar te houden besteld. Even aan elkaar knopen, de software laden en aanpassen en kijken wat het doet. En dat viel tegen. De Raspberry was veel te traag om de grote hoeveelheid data van de camera realtime aan te kunnen. Ik zag mijzelf binnen komen wanneer ik alweer enige tijd achter de pc zat in de kamer. De resolutie heb ik toen naar beneden ‘geschroefd’ en dit hielp enorm. De volgende mijlpaal: het werkte. Alleen.. tussen de 20 en 50 centimeter, daarna niet meer. Toch maar weer terug naar een hogere resolutie maar dan met een uitsnede hiervan. En een andere driver.

Nu werkte het wel zoals het bedoeld was. De ledjes deden wat het moest doen, het relais schakelde bij herkenning. Maar het geluid was minimaal. En… na een kwartiertje stopte het systeem. Dit bleek te heet te worden. Deze software vergt nogal wat dus een koelblok was noodzakelijk. En dat hielp! Met het plaatsen van een klein versterkertje was ook het geluidsprobleem opgelost.