6

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 :)

risposta

2

l'errore terminate called throwing an exceptionAbort trap: 6 era dovuto ad un errore . Sono riuscito a replicare il comportamento e verificarlo nel codice muggito

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

c'era uno spazio tra - e numNeg che avrebbe dovuto essere -numNeg

Inoltre, la formazione procede anche con campioni molto basse, ma le numPos deve essere il doppio di numNeg

si riferiscono a questo SO rispondere per maggiori chiarimenti sulla Haar e la formazione LBP processo: https://stackoverflow.com/a/16834901/1463143

due settimane e 50 reputazione come ricompensa a causa di un refuso: |

-3

mi ha aiutato compilare OpenCV una funzione TBB how to do opencv_traincascade on Ubuntu

dimensioni immagini negative (larghezza & altezza)> campioni positivi

+0

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

+0

dimensioni immagini negative (larghezza e altezza)> dimensioni campioni positivi – Airvikar

Problemi correlati