• IT-Karriere:
  • Services:

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. Dürr Systems AG, Bietigheim-Bissingen
  2. Bundesamt für Sicherheit in der Informationstechnik, Freital bei Dresden

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++ Clean Code - Best Practices für Programmierer
    7.-11. Juni 2021, online
  2. IT-Sicherheit für Webentwickler
    31. Mai - 1. Juni 2021, online
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


Anzeige
Top-Angebote
  1. (u. a. LG OLED55CX9LA 120Hz für 1.359€, Samsung Galaxy A51 128GB für 245€)
  2. gratis
  3. (u. a. i-tec Adapterkabel USB-C > HDMI 4K/60Hz 1,5m für 12,99€, i-tec MySafe USB 3.0 Easy...

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.

Anonymer Nutzer 30. Jan 2014

[..] und wir wollen dabei lernen. Genau sowas hat mir bei Golem bisher immer gefehlt...


Folgen Sie uns
       


It Takes Two - Fazit

Nur für zwei: Das Action-Adventure It Takes Two schickt ein geschrumpftes Paar in eine herausfordernde und herzerwärmende Romantic Comedy.

It Takes Two - Fazit Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /