Tôi có thể cung cấp cho bạn một ví dụ về Linux. Mã và kỹ thuật được lấy từ nhiều nguồn khác nhau. Nó theo sau this example nhưng với một phiên bản python của mergevec, do đó bạn không phải biên dịch tệp mergevec.cpp.
Giả sử rằng bạn có hai thư mục với cắt & sẵn sàng & hình ảnh tiêu cực dương (.png file trong ví dụ này), bạn tạo ra hai tập tin văn bản với tất cả các tên hình ảnh trong:
find positive_images -iname "*.png" > positives.txt
find negative_images -iname "*.png" > negatives.txt
Sau đó, sử dụng createsamples.pl kịch bản được cung cấp bởi Naotoshi Seo (trong OpenCV/thư mục bin), trong đó có hai tập tin văn bản và một thư mục đầu ra, và tạo ra các tập tin .vec:
perl createsamples.pl positives.txt negatives.txt 'output' 1500 "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxzangle 0.5 -w 50 -h 50"
Follow rằng với một scri python pt tạo ra bởi Blake Wulfe gọi mergevec.py, mà sẽ tạo ra một tập tin output.vec bằng cách kết hợp tất cả các file trong thư mục con .vec
python mergevec.py -v samples -o output.vec
Giả sử đó là tất cả được thực hiện, sử dụng opencv_traincascade như sau sẽ giúp:
opencv_traincascade -data classifier -vec output.vec -bg negatives.txt \
-numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 200 \
-numNeg 400 -w 50 -h 50 -mode ALL
Nếu tất cả mọi thứ diễn ra tốt đẹp, hãy sử dụng tầng mới được tạo của bạn (classifier/cascade.xml) với thứ gì đó giống như facesetect.py từ các mẫu opencv:
opencv-3.0.0-rc1/samples/python2/facedetect.py --cascade classifier/cascade.xml test_movie.mp4
Trả lời poster hoặc bất kỳ ai biết nếu điều này đã thay đổi, tức là nếu có bất kỳ hướng dẫn nào có sẵn trên opencv_traincascade, bây giờ sau 3 năm? – icarus74
Bạn đã xem http://docs.opencv.org/doc/user_guide/ug_traincascade.html chưa? –
Thật vậy, tôi đã không. Tôi đã thấy việc sử dụng Haar Cascade nhưng không phải là cách để luyện tập. Cảm ơn đã chỉ ra điều đó. – icarus74