Sto usando opencv 2.4.4 installato via macports con python 2.7.5 su mac os x 10.7.5.Python, OpenCV: impossibile creare cascate LBP personalizzate usando opencv_traincascade
Voglio addestrare una cascata per cercare facce frontali maschili. Ma sto ricevendo l'errore terminate called throwing an exceptionAbort trap: 6
. Chiedo alla community SO di aiutarmi a capire cosa potrebbe andare storto.
L'immagine negativa (sfondo) sono tratti da Google: googleImages_noFaces (293 immagini)
Le immagini positive sono tratte dal database di Karolinska: trainingSet (70 immagini)
ho creato un file di testo che indica la posizione relativa delle immagini di sfondo: bgDesc.txt
Ho anche creato un file di testo che indica la posizione relativa, il numero di istanze positive nell'immagine (che è sempre 1) e la regione di delimitazione dell'oggetto (che è l'intera immagine) : maleDesc.txt
Tutti questi file possono essere scaricati da here.
L'organizzazione dei file è in questa forma:
/trainingSet
image1.jpg
image2.jpg
.
.
.
/googleImages_noFaces
image1.jpg
image2.jpg
.
.
.
/cascadeFiles
maleDesc.txt
bgDesc.txt
quando uso opencv_createsamples un file maleDesc.vec
viene creato correttamente con la seguente riga:
opencv_createsamples -vec maleDesc.vec -info maleDesc.txt -bg bgDesc.txt -num 70 -w 24 -h 24
se uso -show
parametro che posso vedere che vengono create le immagini da 24x24 pixel.
Allora provo
opencv_traincascade -data cascadeFiles -vec maleDesc.vec -bg bgDesc.txt -numPos 70 - numNeg 293 -numStages 1 -precalcValBufSize 500 -precalcIdxBufSize 500 -featureType LBP -w 24 -h 24
Il che mi dà un errore.
Ho provato diversi valori di -numPos
come 10, 20 e così via fino a 70 insieme con diversi valori di -numNeg
come 30, 60 e così via fino a 293. Ho provato ad utilizzare valori numPos che sono meno valori numNeg e anche quelli che sono maggiori di. Ho anche provato diversi valori -numStages
come 1, 5, 10, 20 e 100 ma in tutti questi tentativi ottengo lo stesso errore.
Non ho provato diversi valori di -minHitRate, -maxFalseAlarmRate, -weightTrimRate, -maxDepth, -maxWeakCount perché in realtà non capisco come influenzino il comportamento dell'algoritmo opencv_traincascade.
Qualsiasi aiuto è molto apprezzato :)
Grazie per il link. Era in russo e ho usato google traduttore, aveva una spiegazione simile al [opencv doc per traincascade] (http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html). E quello che ho provato è lo stesso della procedura suggerita nei documenti e il link che hai condiviso e che ancora non funziona per me. Ma non ho capito la prima parte del tuo commento. Stai suggerendo di compilare OpenCB con TBB? – samkhan13
dimensioni immagini negative (larghezza e altezza)> dimensioni campioni positivi – Airvikar