Ask Your Question

Jiumarjiu's profile - activity

2017-06-22 23:17:20 -0600 asked a question My train cascade can not detect anything

I followed some tutorials on the internet and can not recognize any object. I started with a calculator and now I'm trying with the raspberry pi logo on his box. I got to stage 14 and did not recognize it. Can someone explain to me if I'm doing something wrong? My codes:

I take 3 pic of Rapsberry pi box logo

opencv_createsamples -img rpi5050.jpg -bg bg.txt -info info/info1.lst -pngoutput info -maxxangle 0.5 -maxyangle 0.5 -maxzangle 0.5 -num 2800 opencv_createsamples -img rpi25050.jpg -bg bg.txt -info info/info2.lst -pngoutput info -maxxangle 0.5 -maxyangle 0.5 -maxzangle 0.5 -num 2800 opencv_createsamples -img rpi35050.jpg -bg bg.txt -info info/info3.lst -pngoutput info -maxxangle 0.5 -maxyangle 0.5 -maxzangle 0.5 -num 2800

after this I put all .lst files in info.lst

opencv_createsamples -info info/info.lst -num 8000 -w 20 -h 20 -vec positives.vec

opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 5000 -numNeg 2500 -numStages 25 -w 20 -h 20

i made still stage 14

Python code:

import numpy as np import cv2

cascade = cv2.CascadeClassifier('cascade.xml')

cap = cv2.VideoCapture(0)

while 1:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    pi_logo = cascade.detectMultiScale(gray, 50, 50)


    for (x,y,w,h) in pi_logo:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)
        print('calc find')


    cv2.imshow('img',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release() cv2.destroyAllWindows()