У меня проблема с результатами маски R-CNN (opencv). Хотел бы распознать дорожные знаки (сейчас тестирую пешеходный переход). Как видно на картинках, маска отображает много результатов (иногда это неправильный результат). У меня вопрос: Где проблема? : Проблема с моделью DL? Проблема с OpenCV? или что-то еще?
Моя модель DL очень точная - acc ~ 0.995 .
Моя модель соответствует 3 классам (3 разных дорожных знака)
figure = plt.figure()
ss = cv2.ximgproc.segmentation.createSelectiveSearchSegmentation()
z = 0
for e, i in enumerate(os.listdir(test_dir)):
print(e, i)
if i.startswith("cross"):
img = cv2.imread(os.path.join(test_dir, i))
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.subplot(3, 3, z+1)
plt.tight_layout()
z += 1
ss.setBaseImage(img)
ss.switchToSelectiveSearchFast()
ssresults = ss.process()
imout = img.copy()
for w, result in enumerate(ssresults):
if w < 2000:
x, y, w, h = result
timage = imout[y:y+h, x:x+w]
resized = cv2.resize(timage, (100, 100), interpolation=cv2.INTER_AREA)
img = np.expand_dims(resized, axis=0)
out = model.predict(img/255.0, batch_size=10)
if out[0][0] == 1:
cv2.rectangle(imout, (x, y), (x+w, y+h), (0, 255, 0), 1, cv2.LINE_AA)
plt.xticks([])
plt.yticks([])
plt.imshow(imout)
plt.show()
введите описание изображения здесь