iT邦幫忙

2022 iThome 鐵人賽

DAY 5
2

這篇教學會介紹使用 OpenCV,搭配汽車特徵模型,偵測影像中的汽車,並透過繪製形狀的方式,使用方框標記偵測到的汽車,實現類似 AI 影像辨識的效果。

原文參考:OpenCV 汽車偵測

因為程式中的 OpenCV 會需要使用鏡頭或 GPU,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda ) ,並安裝 OpenCV 函式庫 ( 參考:OpenCV 函式庫 )。

Python 教學 - 汽車偵測

下載汽車特徵模型

從下方網址下載汽車特徵模型,下載後將 xml 檔案和 Python 的程式檔放在同一層目錄下。

人臉特徵模型:cars.xml

偵測影像中的汽車

下方的例子執行後,會偵測影像中的汽車,並透過繪製形狀的方式,使用方框標記偵測到的汽車,如果有發生偵測到不是汽車的形狀,可以調整 scaleFactor 和 minNeighbors 參數再重新偵測 ( 實際使用後發現滿容易誤判汽車、或判斷不到汽車,請自行斟酌使用 )。

參考:cvtcolor() 色彩轉換rectangle() 畫四邊形for 迴圈

import cv2
img = cv2.imread('cars.jpg')                    # 讀取街道影像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    # 轉換成黑白影像

car = cv2.CascadeClassifier("cars.xml")    # 讀取汽車模型
gray = cv2.medianBlur(gray, 5)                  # 模糊化去除雜訊
cars = car.detectMultiScale(gray, 1.1, 3)       # 偵測汽車
for (x, y, w, h) in cars:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)   # 繪製外框

cv2.imshow('oxxostudio', img)
cv2.waitKey(0) # 按下任意鍵停止
cv2.destroyAllWindows()

Python 教學 - 汽車偵測

更多 Python 教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我已經寫了超過 400 篇 Python 的教學,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 4 ) OpenCV 五官偵測 ( 眼睛、鼻子、嘴巴 )
下一篇
( Day 6 ) OpenCV 行人偵測
系列文
Python x AI 影像辨識好好玩32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言