Abo
  • Services:

OpenCV übernimmt die Gesichtserkennung

Dass die Gesichtserkennung in einem eigenen Thread läuft, hat einen einfachen Grund: Sie ist rechenzeitintensiv, die angelieferten Bilder der Kamera werden gepuffert. Liefe das Holen des Bildes und dessen Auswertung im gleichen Thread, würden wir beim nächsten Schleifendurchgang ein Bild unbekannten Alters aus dem Puffer erhalten. Mit capture.grab() leeren wir stets den Puffer und sorgen dafür, dass im Thread mit capture.retrieve() immer nur das aktuelle Bild ausgewertet wird:

Stellenmarkt
  1. DESY Deutsches Elektronen Synchrotron, Hamburg
  2. MediaNet GmbH Netzwerk- und Applikations-Service, Freiburg

  1. void *faceThread(void *arg)
  2. {
  3. Mat img;
  4. while(1) {
  5. if(capture.retrieve(img)) {
  6. checkFace(img);
  7. }
  8. }
  9. }

Die eigentliche Erkennung läuft in der Funktion checkFace(). Diese Funktion sah ursprünglich so aus:

  1. void checkFace(Mat img) {
  2.  
  3. ...
  4. cvtColor(img, gray, CV_BGR2GRAY);
  5. equalizeHist( gray, gray);
  6.  
  7. face_cascade.detectMultiScale(small, faces,
  8. 1.1, 2, CV_HAAR_SCALE_IMAGE);
  9.  
  10. if(faces.size() > 0) {
  11.  
  12. int p = faces[0].x + (faces[0].width/2);
  13. int pd = map_pixel_to_deg(p);
  14. servo(180 - pd);
  15. }
  16.  
  17. }

Das Kamerabild wird in ein Graustufenbild umgewandelt, die Farbverteilung im Bild normalisiert und schließlich auf Gesichter geprüft. Die detectMultiScale()-Methode liefert für jedes gefundene Gesicht ein Rect-Objekt zurück. Es enthält die xy-Koordination eines Rechtecks sowie dessen Höhe und Breite. Jedes Rechteck beschreibt also, wo im Bild ein Gesicht gefunden wurde. Wir ermitteln auf Basis dieser Daten dann die x-Koordinate der Mitte des Rechtecks. Sie wird in eine Grad-Angabe (0 - 180 Grad) umgerechnet und der Funktion servo() zur Ansteuerung des Servos übergeben.

 Programmieren in C++ und mit MRAADer Edison beeindruckt 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12.  


Anzeige
Blu-ray-Angebote
  1. (2 Monate Sky Ticket für nur 4,99€)
  2. 4,25€

derdiedas 21. Nov 2014

Na ja - das Edison/Arduino Gespann ist nun so viel kleiner nicht. Das reine Edison Modul...

_speedy_ 21. Nov 2014

und vom USB-Stick? Von SD wäre natürlich genial und vielleicht besser Intel hier ja noch...

Zwangsangemeldet 20. Nov 2014

Irgendwie ist die Betonung des Sprechers im Video ... hmm, naja, seltsam. *Sehr* seltsam...


Folgen Sie uns
       


Honor 10 gegen Oneplus 6 - Test

Das Honor 10 unterbietet den Preis des Oneplus 6 und bietet dafür ebenfalls eine leistungsfähige Ausstattung.

Honor 10 gegen Oneplus 6 - Test Video aufrufen
Always Connected PCs im Test: Das kann Windows 10 on Snapdragon
Always Connected PCs im Test
Das kann Windows 10 on Snapdragon

Noch keine Konkurrenz für x86-Notebooks: Die Convertibles mit Snapdragon-Chip und Windows 10 on ARM sind flott, haben LTE integriert und eine extrem lange Akkulaufzeit. Der App- und der Treiber-Support ist im Alltag teils ein Manko, aber nur eins der bisherigen Geräte überzeugt uns.
Ein Test von Marc Sauter und Oliver Nickel

  1. Qualcomm "Wir entwickeln dediziertes Silizium für Laptops"
  2. Windows 10 on ARM Microsoft plant 64-Bit-Support ab Mai 2018
  3. Always Connected PCs Vielversprechender Windows-RT-Nachfolger mit Fragezeichen

Russische Agenten angeklagt: Mit Bitcoin und CCleaner gegen Hillary Clinton
Russische Agenten angeklagt
Mit Bitcoin und CCleaner gegen Hillary Clinton

Die US-Justiz hat zwölf russische Agenten wegen des Hacks im US-Präsidentschaftswahlkampf angeklagt. Die Anklageschrift nennt viele technische Details und erhebt auch Vorwürfe gegen das Enthüllungsportal Wikileaks.

  1. Nach Gipfeltreffen Trump glaubt Putin mehr als US-Geheimdiensten
  2. US Space Force Planlos im Weltraum
  3. Gewalt US-Präsident Trump will Gespräch mit Spielebranche

KI in der Medizin: Keine Angst vor Dr. Future
KI in der Medizin
Keine Angst vor Dr. Future

Mit Hilfe künstlicher Intelligenz können schwer erkennbare Krankheiten früher diagnostiziert und behandelt werden, doch bei Patienten löst die Technik oft Unbehagen aus. Und das ist nicht das einzige Problem.
Ein Bericht von Tim Kröplin

  1. Künstliche Intelligenz Vages wagen
  2. KI Mit Machine Learning neue chemische Reaktionen herausfinden
  3. Elon Musk und Deepmind-Gründer Keine Maschine soll über menschliches Leben entscheiden

    •  /