簡體   English   中英

OpenCV錯誤檢測

[英]OpenCV- False Detection

我是一年級CS學生,而且我只知道一點點python。 對於一個項目,我需要使用OpenCV來檢測多個交通標志。 我在網上搜索了一下,然后決定使用Haar-Cascade分類器。 我遵循了本教程: haar-cascade

我為該標志訓練了代碼左標志到目前為止,一切都很好。 但是我的代碼(訓練有3000個正1500個負jpg並完成了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()

這是正確的標志: 正確的標志

所以我的問題是:是否可以通過更改代碼來解決此問題? 如果更容易,應該使用哪種方法檢測這些跡象?

  1. 正確的方法:您需要在底片上添加許多正確的符號。

  2. 最好的方法:不要使用haar-cascade。

  3. 最簡單的方法:訓練第二個分類器(例如朴素的貝葉斯),以便在層疊后進行左右符號的比較。 特征:圖像之間的相關性,Hu-Moments等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM