OpenCV行人檢測--基于米爾全志T527開發(fā)板
本文將介紹基于米爾電子MYD-LT527開發(fā)板(米爾基于全志 T527開發(fā)板)的OpenCV行人檢測方案測試。
本文引用地址:http://www.ex-cimer.com/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構建行人檢測器的關鍵步驟包括:
準備訓練數(shù)據(jù)集:訓練數(shù)據(jù)集應包含大量正樣本(行人圖像)和負樣本(非行人圖像)。
計算HOG特征:對于每個圖像,計算HOG特征。HOG特征是一個一維向量,其中每個元素表示圖像中特定位置和方向的梯度強度。
訓練SVM分類器:使用HOG特征作為輸入,訓練SVM分類器。SVM分類器將學習區(qū)分行人和非行人。
評估模型:使用測試數(shù)據(jù)集評估訓練后的模型。計算模型的準確率、召回率和F1分數(shù)等指標。
三、代碼實現(xiàn)
import cv2
import time
def detect(image,scale):
imagex=image.copy() #函數(shù)內部做個副本,讓每個函數(shù)運行在不同的圖像上
hog = cv2.HOGDescriptor() #初始化方向梯度直方圖描述子
#設置SVM為一個預先訓練好的行人檢測器
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
#調用函數(shù)detectMultiScale,檢測行人對應的邊框
time_start = time.time() #記錄開始時間
#獲?。ㄐ腥藢木匦慰?、對應的權重)
(rects, weights) = hog.detectMultiScale(imagex,scale=scale)
time_end = time.time() #記錄結束時間
# 繪制每一個矩形框
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()
四、實際操作
評論