特定のロゴ(アップルのロゴだとしましょう)を検出するために、Pythonで使用する独自のhaarカスケードxmlファイルを作成することに興味があります。
http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html および http://note.sonots.com/SciSoftware/haartraining.htmlの指示に従ってみました
問題は、有効に機能しているカスケード ファイルを取得しても、何も検出されないことです。具体的には、作成に使用された元の画像内のオブジェクトを検出しようとすると、それでも検出されません。
すでに画像のサイズを変更したり、画像に挿入してより大きなコンテキストに配置したりしました.
私は何を間違っていますか?
シェルで、次を実行します。
opencv_createsamples -img original.jpg -bg negatives.dat -vec samples_set.vec -w 48 -h 48
opencv_traincascade -bg negatives.dat -data mycascade -vec samples_set.vec -w 48 -h 48
カスケードファイルを作成して、うまくいくようです。次に、Pythonで:
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
検出は空になります。Pythonに付属の「標準」xmlでテストしようとしましたが、動作するため、何か問題があります。