opencv呼叫cv2.dnn_DetectionModel 用法

qq_39791203發表於2020-11-17

 

注意:opencv-python 目前只有 4.4.0 版本適配了 YOLOv4

1.模型獲取

百度網盤下載連結:https://pan.baidu.com/s/1XrcPHdp2_4c-dKge2Guw4w 提取碼:xsxb 。

2.匯入 YOLOv4配置和權重檔案並載入網路:
例:net =cv2.dnn_DetectionModel('yolov4.cfg', 'yolov4.weights')

3.檢測函式 cv2.dnn_DetectionModel.detect(frame[, confThreshold[, nmsThreshold]])

[in] frame:識別影像

[in] confThreshold 用於根據置信度篩選框的閾值

[in] nmsThreshold非極大值抑制中使用的閾值

該函式返回值:

[out] classIds 結果檢測中的類索引

[out] confidences 一組相應的置信度

 [out] boxes 一組邊界框。

例:detection=net.detect(img)

4.畫出檢測框

函式cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) 

pt1:左上的點座標,pt2:右下的點座標

[1]    x,y,w,h=detection[2][0][0:4]

[2]   cv2.rectangle(img, (x, y),(x+w, y+h),(255, 0,0 ), 2)

[3]   cv2.imshow('detect',img)

 

 

 

 

 

 

相關文章