OpenCV行人檢測--基于米爾全志T527開發(fā)板
本文將介紹基于米爾電子MYD-LT527開發(fā)板(米爾基于全志 T527開發(fā)板)的OpenCV行人檢測方案測試。
本文引用地址:http://www.butianyuan.cn/article/202502/466955.htm摘自優(yōu)秀創(chuàng)作者-小火苗
米爾基于全志T527開發(fā)板
一、軟件環(huán)境安裝
1.安裝OpenCV
sudo apt-get install libopencv-dev python3-opencv
2.安裝pip
sudo apt-get install python3-pip
二、行人檢測概論
使用HOG和SVM構(gòu)建行人檢測器的關(guān)鍵步驟包括:
準(zhǔn)備訓(xùn)練數(shù)據(jù)集:訓(xùn)練數(shù)據(jù)集應(yīng)包含大量正樣本(行人圖像)和負(fù)樣本(非行人圖像)。
計(jì)算HOG特征:對于每個圖像,計(jì)算HOG特征。HOG特征是一個一維向量,其中每個元素表示圖像中特定位置和方向的梯度強(qiáng)度。
訓(xùn)練SVM分類器:使用HOG特征作為輸入,訓(xùn)練SVM分類器。SVM分類器將學(xué)習(xí)區(qū)分行人和非行人。
評估模型:使用測試數(shù)據(jù)集評估訓(xùn)練后的模型。計(jì)算模型的準(zhǔn)確率、召回率和F1分?jǐn)?shù)等指標(biāo)。
三、代碼實(shí)現(xiàn)
import cv2
import time
def detect(image,scale):
imagex=image.copy() #函數(shù)內(nèi)部做個副本,讓每個函數(shù)運(yùn)行在不同的圖像上
hog = cv2.HOGDescriptor() #初始化方向梯度直方圖描述子
#設(shè)置SVM為一個預(yù)先訓(xùn)練好的行人檢測器
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
#調(diào)用函數(shù)detectMultiScale,檢測行人對應(yīng)的邊框
time_start = time.time() #記錄開始時間
#獲?。ㄐ腥藢?yīng)的矩形框、對應(yīng)的權(quán)重)
(rects, weights) = hog.detectMultiScale(imagex,scale=scale)
time_end = time.time() #記錄結(jié)束時間
# 繪制每一個矩形框
for (x, y, w, h) in rects:
cv2.rectangle(imagex, (x, y), (x + w, y + h), (0, 0, 255), 2)
print("sacle size:",scale,",time:",time_end-time_start)
name=str(scale)
cv2.imshow(name, imagex) #顯示原始效果
image = cv2.imread("back.jpg")
detect(image,1.01)
detect(image,1.05)
detect(image,1.3)
cv2.waitKey(0)
cv2.destroyAllWindows()
四、實(shí)際操作
評論