2017-07-24 6 views
0

Ich bin neu in OpenCV und dlib, und ich bin mir nicht sicher, ob mein Design korrekt ist. Ich möchte C++ - Gesichtsdetektor für Android-Handy schreiben, die Gesichter mit verschiedenen Telefonausrichtung und Rotatorionwinkel erkennen sollte. Bleibt erhalten, wenn die Telefonausrichtung Hoch- und Querformat ist. Ich benutze OpenCV, um Bild zu drehen/zu bearbeiten, und dlib, um Gesichter zu erkennen. dlib shape Prädikate initialisiert mit shape_predictor_68_face_landmarks.dat und es kann Gesicht nur in korrekter Telefonausrichtung erkennen (es bedeutet, wenn ich Telefon um 90 rotiere, kann es Gesicht nicht erkennen.) Um Gesichter zu erkennen lese ich Achse vom acceleromeor und rotiere Quellbild zu korrekte Ausrichtung vor dem Senden an dlib face detector und es erkennt ok, aber Ausgabekoordinaten in dlib :: full_object_detection Form passt natürlich zu gedrehten Bild aber nicht original. Es bedeutet also, dass ich (Drehpunkte drehen) zurück zum Originalbild konvertieren muss.OpenCV, dlib Sehenswürdigkeiten Rotation

Gibt es eine vorhandene API in dlib oder OpenCV, um Drehpunkte (dlib :: full_object_detection) für einen bestimmten Winkel zu drehen? Es wird gut sein, wenn Sie ein Beispiel geben können.

Antwort

0

Für iPhone-Apps können EXIF-Daten in Bildern, die mit iPhone-Kameras aufgenommen wurden, zum Drehen von Bildern verwendet werden. Aber das kann ich nicht für Android-Handys garantieren.

In den meisten praktischen Situationen ist es einfacher, das Bild zu drehen und eine Gesichtserkennung durchzuführen, wenn die Gesichtserkennung im ursprünglichen Bild keine Ergebnisse liefert (oder seltsame Ergebnisse wie sehr kleine Gesichter zurückgibt). Ich habe das in mehreren Android-Apps gesehen und habe es in einigen Projekten mit myseklf verwendet.

Verwandte Themen