Das finale Skript

Jetzt haben wir alles notwendige Wissen und die Zutaten tatsächlich zusammen, um ein vollständiges Skript zu erstellen. Es kann von Golem.de heruntergeladen werden. Alle bislang erläuterten Bruchstücke sind in entsprechenden Funktionen untergebracht.

Stellenmarkt
  1. Senior Engineer Software Architecture (m/w/d)
    Continental AG, Frankfurt am Main
  2. Informatiker*in (m/w/d) Schwerpunkt Gesundheitstelematik
    KBV Kassenärztliche Bundesvereinigung, Berlin
Detailsuche

Erklärungsbedürftig am Skript ist wohl nur der Programmstart:

  1. initPins()
  2. start_new_thread(loadRecognition, ())
  3. start_new_thread(initCam, ())
  4.  
  5. while True :
  6. analyse()

Zuerst werden die Pins initialisiert, dann jeweils in einem eigenen Thread die Beschreibungsdatei für die Gesichtserkennung geladen und die Kamera aktiviert.

Golem Akademie
  1. C++ Programmierung Grundlagen (keine Vorkenntnisse benötigt): virtueller Drei-Tage-Workshop
    01.-03.08.2022, virtuell
  2. Azure und AWS Cloudnutzung absichern: virtueller Zwei-Tage-Workshop
    19./20.05.2022, virtuell
Weitere IT-Trainings

Die beiden Threads sollen in erster Linie den Programmstart beschleunigen. Das Laden der gut 1 MByte großen Beschreibungsdatei dauert einen wahrnehmbaren Moment, genauso wie die Initialisierung der Kamera. Beide benötigen dabei nicht unbedingt CPU-Ressourcen, sondern warten auf I/O-Operationen - deswegen können beide auch problemlos quasi-parallel warten.

Während sich der Lade-Thread nach dem Laden auch beendet, läuft der Kamera-Thread bis zum Programmende weiter. Er holt dann kontinuierlich die Bilder von der Kamera über OpenCV. Genauso läuft auch die eigentliche Analyse des Bildes über analyse() ununterbrochen. Auf den ersten Blick liegt es nahe, ein Bild zu holen, es auszuwerten und erst dann das nächste zu holen, praktisch hat das aber unschöne Konsequenzen.

Die Trennung hat folgenden Hintergrund: OpenCV puffert die Bilder, die es von der Kamera empfängt. Erhalten wir nun ein Bild, verarbeiten es und steuern im Erfolgsfall den Servo an, dann sind einige Sekunden vergangen. Das nächste Bild, das wir von OpenCV abholen, ist in dem Moment also schon veraltet.

Wenn die beiden Vorgänge "Bild holen" und "Bild auswerten" in getrennten Threads laufen, werten wir hingegen fast immer ein aktuelles Bild aus. Denn der Kamera-Thread leert ständig den Bilder-Puffer von OpenCV, die analyse()-Funktion sieht stets nur das zuletzt geholte Bild.

Wir haben eine Tour de Force versprochen, und wir hoffen, die Leser haben dabei genauso viel gelernt wie wir. Das wird nicht das letzte Hardwareprojekt dieser Art sein. Im Gegenteil, wir fühlen uns inzwischen mutig genug, weitere Ideen anzugehen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Der letzte Schritt
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9


hungkubwa 31. Jan 2014

Wozu der Umweg über Flattr wenn man auch direkt Paypal nutzen kann? Versteh ich nicht.

savejeff 30. Jan 2014

Danke :] Ich benutze die app täglich auf mehreren PCs und habe mich so drann gewöhnt. Sie...

Anonymer Nutzer 30. Jan 2014

Besten Dank für die Info. Gruss, gehirnpest

Casandro 30. Jan 2014

...ein 5 Jahresprojekt, dass dann nach 7 Jahren wegen nicht eingetretenem Erfolg eingestellt.



Aktuell auf der Startseite von Golem.de
Cariad
Aufsichtsrat greift bei VWs Softwareentwicklung durch

Die Sorge um die Volkswagen-Softwarefirma Cariad hat den Aufsichtsrat veranlasst, ein überarbeitetes Konzept für die ehrgeizigen Pläne vorzulegen.

Cariad: Aufsichtsrat greift bei VWs Softwareentwicklung durch
Artikel
  1. Delfast Top 3.0: Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein
    Delfast Top 3.0
    Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein

    Ukrainische Infanteristen nutzen E-Motorräder, um leise und schnell zum Einsatz zu gelangen und die Panzerabwehrlenkwaffe NLAW zu transportieren.

  2. Überwachung: Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein
    Überwachung
    Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein

    In Rheinland-Pfalz werden Handynutzer am Steuer eines Autos automatisch erkannt. Dazu wird das System Monocam aus den Niederlanden genutzt.

  3. Love, Death + Robots 3: Mal spannend, mal tragisch, mal gelungen, mal nicht so
    Love, Death + Robots 3
    Mal spannend, mal tragisch, mal gelungen, mal nicht so

    Die abwechslungsreichste Science-Fiction-Serie unserer Zeit ist wieder da - mit acht neuen Folgen der von David Fincher produzierten Anthologie-Reihe.
    Von Peter Osteried

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Borderlands 3 gratis • CW: Top-Rabatte auf PC-Komponenten • Inno3D RTX 3070 günstig wie nie: 614€ • Ryzen 9 5900X 398€ • Top-Laptops zu Tiefpreisen • Edifier Lautsprecher 129€ • Kingston SSD 2TB günstig wie nie: 129,90€ • Samsung Soundbar + Subwoofer günstig wie nie: 228,52€ [Werbung]
    •  /