2017-11-05 4 views
-1

私はdlibライブラリを顔のランドマーク検出に使用しました。しかし、顔が正面でない場合、dlibの "frontal_face_detector"は顔を検出できません。正面顔以外の顔のランドマークの検出

プロファイルフェイスのランドマークを検出する他の方法はありますか?

+1

ほとんどは、通常、質問が不明確であるために発生します。あなたが何をしたいのか、何をしているのか、そして何が間違っているのかを詳細に追加すれば、より良い答えが得られます。また、同様の質問:私はこれのためのコードが必要ですか?私はこれを試して、うまくいかない、私は何をすべきか?またはblablaのチュートリアルを誰かが持っていますか?通常downvotedです。この場合、あなたはすでに3つのクローズ票を持っています。つまり、特定の問題ではなく、いくつかの解決策がある可能性があります。あなたが何をしたのかを記述し、いくつかのコードを書いて、どのパートが動作するかを言う方が良いでしょう。 – api55

+0

私は[このリンク](https://stackoverflow.com/help/asking)がより良い質問をするのに役立つと思います。ちょうどそこのリンクのいくつかを通過:)私はそれがstackoverflowの標準に従うと考えているので、私はまた、あなたの他の質問に数時間で答えるように試みることがあります。 – api55

+0

私は悪い日々を過ごしていて、私はこの質問をしたときにも答えが切望されていました。あなたの提案をありがとうございます。私は将来、より良い質問をしようとします。 – Ziniz

答えて

2

私の経験では、Dlibのデフォルトの顔検出器(Python APIのdetector = dlib.get_frontal_face_detector()など)は正面以外の顔でもうまく機能し、プロフィールに近い顔を検出することさえできます。これは、5つのHOGフィルタの外に構築されてい

source codeによると、それはそれは実際に5つの異なるHOGフィルタの外に構築されているHOGベースの検出器だからです。正面を見て、左を見て、右を見て、正面を見るが、左に回転し、最後に正面を見ているが、右に回転している。ここで

は、例えば、検出です:

enter image description here

そして、ここでは、私が使用したのPython 3のコードは、(書き込み/画像を読み取って、四角形を描画するためのOpenCVを使用しています)です:

import cv2 
import dlib 

img = cv2.imread('will.jpg') 
detector = dlib.get_frontal_face_detector() 
dets = detector(img, 1) 
face = dets[0] 
cv2.rectangle(img, (face.left(), face.top()), (face.right(), face.bottom()), (0, 255, 0), 2) 
cv2.imwrite('out.jpg', img)