2016-07-28 11 views
9

मैं ऑब्जेक्ट डिटेक्शन के लिए opencv_traincascade का उपयोग कर रहा हूं। मैं फोटो पर चश्मा खोजने की कोशिश करता हूं। इसके लिए, मैंने इस तरह की 830 तस्वीरें डाउनलोड की हैं: http://pi1.lmcdn.ru/product/V/I/VI060DWIHZ27_1_v2.jpg1 दिन की गणना के बाद ओपनसीवी अपवाद

फिर मैंने कपड़े में मॉडल के साथ कई तस्वीरें डाउनलोड की हैं या सिर्फ फोटो तस्वीरें, 17 99 तस्वीरें डाउनलोड की हैं।

तब मैंने मानकों के साथ opencv_traincascade शुरू: opencv_traincascade डाटा फीचर/वर्गीकारक -vec samples.vec -bg negatives.txt -numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 830 -numNeg 1799 डब्ल्यू 60 -h 90 -mode all -precalcValBufSize 1024 -precalcIdxBufSize 1024

लेकिन चरण 4 के बाद, मेरे पास एक संदेश है: temp चरण के लिए ट्रेन डेटासेट भर नहीं सकता है। शाखा प्रशिक्षण समाप्त

पूर्ण स्टैकट्रेस है:

➜ pictureFeature opencv_traincascade -data Feature/classifier -vec samples.vec -bg negatives.txt -numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 830 -numNeg 1799 -w 60 -h 90 -mode ALL -precalcValBufSize 1024 -precalcIdxBufSize 1024 

PARAMETERS: 
cascadeDirName: Feature/classifier 
vecFileName: samples.vec 
bgFileName: negatives.txt 
numPos: 830 
numNeg: 1799 
numStages: 10 
precalcValBufSize[Mb] : 1024 
precalcIdxBufSize[Mb] : 1024 
acceptanceRatioBreakValue : -1 
stageType: BOOST 
featureType: HAAR 
sampleWidth: 60 
sampleHeight: 90 
boostType: GAB 
minHitRate: 0.999 
maxFalseAlarmRate: 0.5 
weightTrimRate: 0.95 
maxDepth: 1 
maxWeakCount: 100 
mode: ALL 



===== TRAINING 0-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
NEG count : acceptanceRatio 1799 : 1 
Precalculation time: 26 

+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 
| 3|  1| 0.145636| 
+----+---------+---------+ 

END> 
Training until now has taken 0 days 5 hours 22 minutes 10 seconds. 

===== TRAINING 1-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
NEG count : acceptanceRatio 1799 : 0.145715 
Precalculation time: 24 

+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 
| 3|  1|  1| 
+----+---------+---------+ 
| 4|  1| 0.762646| 
+----+---------+---------+ 
| 5|  1| 0.432462| 
+----+---------+---------+ 

END> 
Training until now has taken 0 days 14 hours 38 minutes 28 seconds. 

===== TRAINING 2-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
NEG count : acceptanceRatio 1799 : 0.062696 
Precalculation time: 28 

+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 
| 3|  1|  1| 
+----+---------+---------+ 
| 4|  1| 0.590328| 
+----+---------+---------+ 
| 5|  1| 0.187326| 
+----+---------+---------+ 

END> 
Training until now has taken 0 days 23 hours 21 minutes 4 seconds. 

===== TRAINING 3-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
NEG count : acceptanceRatio 1799 : 0.0117929 
Precalculation time: 21 

+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 
| 3|  1|0.0944969| 
+----+---------+---------+ 

END> 
Training until now has taken 1 days 3 hours 47 minutes 34 seconds. 

===== TRAINING 4-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
NEG count : acceptanceRatio 1799 : 0.00112161 
Precalculation time: 18 

+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  0| 
+----+---------+---------+ 

END> 
Training until now has taken 1 days 5 hours 4 minutes 35 seconds. 

===== TRAINING 5-stage ===== 
<BEGIN 
POS count : consumed 830 : 830 
Train dataset for temp stage can not be filled. Branch training terminated. 

मैं वस्तु खोज के लिए cascade.xml उपयोग करने के लिए कोशिश की, लेकिन परिणाम पूरी तरह से असफल रहा था।

enter image description here

किसी ने मेरी समस्या के साथ मदद कर सकते हैं?

+0

वर्गीकृत करने के लिए: सिर + धूप का चश्मा और नकारात्मक: आप सकारात्मक और नकारात्मक प्रशिक्षण छवियों (सकारात्मक लेने की आवश्यकता: केवल सिर) आपके आईएमजी नमूने पर छवि पर केवल धूप का चश्मा है –

+0

क्या Windows पर bg.txt उत्पन्न हुआ था? –

उत्तर

3

यदि आप त्रुटि को देखते हैं तो आप पाएंगे कि यह 'एनईजी गिनती' पर रुक गया है जिसका अर्थ है कि चरण -5 पर नकारात्मक प्रशिक्षण डेटा सेट छवियों को पढ़ने में कोई समस्या थी।इसलिए आपको काम करने के लिए नकारात्मक प्रशिक्षण नमूनों के मार्ग को ठीक करने की आवश्यकता है।

यहाँ इस मुद्दे जो उपयोगी हो सकता है पर विस्तृत चर्चा है: Cascade Training Error OpenCV 2.4.4

यह भी bg.txt फ़ाइल के साथ एक मुद्दा हो सकता है, यहाँ एक और जवाब है: error in train casacde

समान error: Train dataset for temp stage can not be filled.

कुछ भी नहीं खुला सीवी का एक अलग संस्करण का उपयोग कर की कोशिश काम करता है के साथ एक और पोस्ट: http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download

3

यह एक बहुत ही आम त्रुटि है। इस त्रुटि के बारे में मुझे बहुत कुछ पता नहीं है और मैं केवल एक समाधान का अनुमान लगा सकता हूं, क्योंकि उस त्रुटि के लिए बहुत से संभावित कारण हैं।

यह निर्देशिका संरचना के सापेक्ष हो सकता है (बस ध्यान दें कि नकारात्मक उदाहरण के लिए पथ वर्तमान निर्देशिका के अनुरूप होना चाहिए)

या क्योंकि bg फ़ाइल में लाइन ब्रेक (आपके मामले में negatives.txt) कर रहे हैं खराब एन्कोडेड। क्या आप दोबारा जांच सकते हैं कि 'negatives.txt' फ़ाइल में प्रत्येक पंक्ति का अंतिम अक्षर '\ n' है और '\ r' नहीं है?

इसके अलावा 25% -30% के आसपास नकारात्मक नमूने अनुपात को सकारात्मक बनाए रखने के लिए कोशिश कर रखना

और अंत में सुनिश्चित करें कि आपके सभी सकारात्मक और नकारात्मक छवियों सिर चेहरे शामिल हो:

नमूना तस्वीर में (830 में से एक) इसमें केवल एक धूप का चश्मा दिखाई देता है (कोई सिर नहीं, कोई आवाज नहीं, कोई बाल नहीं) केवल सफेद बैकग्राउड है, इसलिए आपका क्लासिफायर केवल सफेद बैकग्राउड पर धूप का चश्मा पहचानने के लिए ट्रेन को अंतिम रूप देगा, इसलिए पहचानने का कोई मौका नहीं है चेहरे दिखाई देने पर कोई धूप का चश्मा; सम्मान करने के लिए

प्रयास करें:

  • सकारात्मक चित्र = धूप का चश्मा के साथ headface

  • नकारात्मक चित्र = headface केवल

सादर

संबंधित मुद्दे