Я учусь на 1-ом классе и знаю только немного Python.Для проекта мне нужно использовать OpenCV для обнаружения нескольких дорожных знаков.Я немного поискал в Интернете и решил использовать классификатор Хаара-Каскада.Я следовал этому уроку: haar-cascade
Я обучил код для этого знака левый знак До этого момента все было хорошо.Однако мой код (обученный с 3000 положительных 1500 отрицательных jpgs и закончил 8 этапов) обнаруживает как правый, так и левый признаки.Код должен распознавать правый и левый знаки отдельно, потому что моя цель - дать команду моему роботу повернуть налево или повернуть направо.
Вот мой код:
import numpy as np
import cv2
ok_cascade = cv2.CascadeClassifier('new_kocum.xml')
cap = cv2.VideoCapture(0)
while 1:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
oks = ok_cascade.detectMultiScale(gray,3,5)
for (x,y,w,h) in oks:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'ok',(x-w,y-h), font, 0.5, (11,255,255), 2, cv2.LINE_AA)
cv2.imshow('img',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
Вот правильный знак: Right-Sign
Итак, мой вопрос: можно ли это исправить, просто изменив код?Если проще, какой метод я должен использовать, чтобы обнаружить эти признаки?