Fehler beim Kaskaden Trainings von OpenCV
Verfasst: Freitag 10. November 2023, 14:16
Hallo,
ich arbeite mich gerade ins Thema der Bilderkennung ein. folgende Schritte habe ich schon abgeschlossen:
-n.i.O. und i.O. Bilder von Kraft-Weg-Diagrammen habe ich separiert in Ordnern gespeichert
-Txt Date mit den negativen Bildern erstellt. Also die Bilder welche keinen Fehler besitzen (i.O.)
-Dann habe ich mit dem annotation Tool von OpenCV die entsprechenden Bereiche in den Bildern markiert, welche zum n.i.O. Zustand führten
-Über das createsample Tool habe ich dann das entsprechende Training ausgeführt und die .vec Datei erhalten
Jetzt wollte ich das Kaskaden Training durchführen. Hier wird mir dann folgende Terminalmeldung ausgegeben:
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(3.4.11) Error: Bad argument (> Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file.
> ) in CvCascadeImageReader::PosReader::get, file C:\build\3_4_winpack-build-win64-vc15\opencv\apps\traincascade\imagestorage.cpp, line 158
Der Fehler wird hier auch benannt. Der wahrscheinlichste Grund für den Fehler wird eine unzureichenden Anzahl an Beispielen in der .vec Datei sein. Aber ich habe halt überhaupt keinen Anhaltspunkt was zu >wenig< ist. brauche ich noch 10, 20, 30 oder 500?! Wie gehe ich das Problem am besten an?
Folgende Argumente sind in das Kaskadentraining gegangen:
C:/Users/nb/OpenCV/opencv/build/x64/vc15/bin/opencv_traincascade.exe -data cascade/ -vec pos.vec -bg neg.txt -w 24 -h 24 -numPos 85 -numNeg 194 -numStages 10
numPos: 85
numNeg: 194
numStages: 10
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
Number of unique features given windowSize [24,24] : 162336
ich arbeite mich gerade ins Thema der Bilderkennung ein. folgende Schritte habe ich schon abgeschlossen:
-n.i.O. und i.O. Bilder von Kraft-Weg-Diagrammen habe ich separiert in Ordnern gespeichert
-Txt Date mit den negativen Bildern erstellt. Also die Bilder welche keinen Fehler besitzen (i.O.)
-Dann habe ich mit dem annotation Tool von OpenCV die entsprechenden Bereiche in den Bildern markiert, welche zum n.i.O. Zustand führten
-Über das createsample Tool habe ich dann das entsprechende Training ausgeführt und die .vec Datei erhalten
Jetzt wollte ich das Kaskaden Training durchführen. Hier wird mir dann folgende Terminalmeldung ausgegeben:
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(3.4.11) Error: Bad argument (> Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file.
> ) in CvCascadeImageReader::PosReader::get, file C:\build\3_4_winpack-build-win64-vc15\opencv\apps\traincascade\imagestorage.cpp, line 158
Der Fehler wird hier auch benannt. Der wahrscheinlichste Grund für den Fehler wird eine unzureichenden Anzahl an Beispielen in der .vec Datei sein. Aber ich habe halt überhaupt keinen Anhaltspunkt was zu >wenig< ist. brauche ich noch 10, 20, 30 oder 500?! Wie gehe ich das Problem am besten an?
Folgende Argumente sind in das Kaskadentraining gegangen:
C:/Users/nb/OpenCV/opencv/build/x64/vc15/bin/opencv_traincascade.exe -data cascade/ -vec pos.vec -bg neg.txt -w 24 -h 24 -numPos 85 -numNeg 194 -numStages 10
numPos: 85
numNeg: 194
numStages: 10
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
Number of unique features given windowSize [24,24] : 162336