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. Senior Data Architekt (m/w / divers)
    Continental AG, Frankfurt
  2. IT-Systemadministrator (m/w/d)
    Gesundheitsverbund Landkreis Konstanz, Konstanz
Detailsuche

  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. }

Golem Karrierewelt
  1. Go für Einsteiger: virtueller Zwei-Tages-Workshop
    26./27.09.2022, Virtuell
  2. Green IT: Praxisratgeber zur nachhaltigen IT-Nutzung (virtueller Ein-Tages-Workshop)
    26.10.2022, virtuell
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 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.  


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...



Aktuell auf der Startseite von Golem.de
Hacking
Der Bad-USB-Stick Rubber Ducky wird noch gefährlicher

Mit einer neuen Version des Bad-USB-Sticks Rubber Ducky lassen sich Rechner noch leichter angreifen und neuerdings auch heimlich Daten ausleiten.

Hacking: Der Bad-USB-Stick Rubber Ducky wird noch gefährlicher
Artikel
  1. Kilimandscharo: Tanzania Telecommunications bringt Glasfaser auf 3.720 Meter
    Kilimandscharo
    Tanzania Telecommunications bringt Glasfaser auf 3.720 Meter

    Der Campingplatz Horombo Hut bietet Glasfaser-Internet auf 3.720 Meter Höhe. Bald soll auch der höchste Berggifel des Kilimandscharo versorgt werden..

  2. Sprachanschlüsse: Telekom erhöht die Preise
    Sprachanschlüsse
    Telekom erhöht die Preise

    Wer nur telefonieren will, muss bei der Telekom etwas mehr zahlen. Das betrifft die Call-Start-Tarife.

  3. E-Mountainbike Graveler 29 Zoll: Aldi verkauft Mountain-E-Bike von Prophete
    E-Mountainbike Graveler 29 Zoll
    Aldi verkauft Mountain-E-Bike von Prophete

    Aldi bietet ein sportliches E-Bike für knapp 1.000 Euro an. Das Graveler 29 Zoll ist für unwegsames Gelände und die Stadt gedacht und dabei recht leicht.

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 • 10%-Gaming-Gutschein bei eBay • Grafikkarten zu Tiefpreisen (Palit RTX 3090 Ti 1.391,98€, Zotac RTX 3090 1.298,99€, MSI RTX 3080 Ti 1.059€) • PS5 bei Amazon • HP HyperX Gaming-Maus 29€ statt 99€ • MindStar (ASRock RX 6900XT 869€) • Bester 2.000€-Gaming-PC [Werbung]
    •  /