最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python和OpenCV庫實現(xiàn)識別人物出現(xiàn)并鎖定

 更新時間:2023年04月03日 09:20:23   作者:A等天晴  
本文主要介紹了Python和OpenCV庫實現(xiàn)識別人物出現(xiàn)并鎖定,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1. 安裝必要的庫

首先,確保您已安裝以下庫:

  • OpenCV: 用于圖像處理和計算機視覺任務
  • imutils: 提供一些實用函數(shù),如圖像旋轉(zhuǎn)、裁剪等

安裝方法如下:

pip install opencv-python
pip install imutils

2. 加載和顯示視頻

首先,我們需要導入所需的庫,并加載一個視頻文件。我們將使用OpenCV的VideoCapture類來加載視頻。

import cv2
import imutils

video_path = "path/to/your/video.mp4"

# 打開視頻
cap = cv2.VideoCapture(video_path)

while True:
    ret, frame = cap.read()

    if not ret:
        break

    # 縮放以提高處理速度
    frame = imutils.resize(frame, width=600)

    cv2.imshow("Input Video", frame)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

3. 應用預訓練的人物檢測模型

接下來,我們將使用OpenCV中提供的預訓練模型。這里我們使用MobileNet-SSD模型,因為它在速度和準確性之間達到了很好的平衡。

prototxt_path = "path/to/your/MobileNetSSD_deploy.prototxt"
model_path = "path/to/your/MobileNetSSD_deploy.caffemodel"

# 加載預訓練模型
net = cv2.dnn.readNetFromCaffe(prototxt_path, model_path)

4. 在檢測到的人物周圍繪制邊界框

現(xiàn)在,我們將使用預訓練的模型來檢測視頻中的人物,并在檢測到的人物周圍繪制邊界框。

# 設置置信度閾值
confidence_threshold = 0.5

while True:
    ret, frame = cap.read()

    if not ret:
        break

    frame = imutils.resize(frame, width=600)
    (h, w) = frame.shape[:2]

    # 將圖像轉(zhuǎn)換為blob
    blob = cv2.dnn.blobFromImage(frame, 0.007843, (w, h), 127.5)

    net.setInput(blob)
    detections = net.forward()

    for i in range(detections.shape[2]):
        confidence = detections[0, 0, i, 2]

        if confidence > confidence_threshold:
            idx = int(detections[0, 0, i, 1])

            if idx == 15:  # 15 代表人類
                box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
                (startX, startY, endX, endY) = box.astype("int")

                # 在檢測到的人物周圍繪制邊界框
                cv2.rectangle(frame, (startX, startY), (endX, endY), (0, 255, 0), 2)

    cv2.imshow("Input Video", frame)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

5. 保存和顯示結(jié)果

最后,我們將處理后的視頻保存到磁盤,并在程序完成后關閉所有窗口。

# 創(chuàng)建 VideoWriter 對象以保存處理后的視頻
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter("output.mp4", fourcc, 30, (w, h))

while True:
    ret, frame = cap.read()

    if not ret:
        break

    frame = imutils.resize(frame, width=600)
    (h, w) = frame.shape[:2]
    blob = cv2.dnn.blobFromImage(frame, 0.007843, (w, h), 127.5)

    net.setInput(blob)
    detections = net.forward()

    for i in range(detections.shape[2]):
        confidence = detections[0, 0, i, 2]

        if confidence > confidence_threshold:
            idx = int(detections[0, 0, i, 1])

            if idx == 15:
                box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
                (startX, startY, endX, endY) = box.astype("int")
                cv2.rectangle(frame, (startX, startY), (endX, endY), (0, 255, 0), 2)

    # 將幀寫入輸出視頻
    out.write(frame)

    cv2.imshow("Input Video", frame)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
out.release()
cv2.destroyAllWindows()

總結(jié):

現(xiàn)在,您應該已經(jīng)成功地創(chuàng)建了一個可以識別人物出現(xiàn)并將其鎖定的項目。通過運行此代碼,您將能夠在給定的視頻中檢測到人物,并在檢測到的人物周圍繪制邊界框。此外,該程序?qū)⑻幚砗蟮囊曨l保存到磁盤,以便您以后查看。

本教程展示了如何使用Python和OpenCV庫構(gòu)建一個簡單的人物識別和鎖定項目。您可以在此基礎上進行擴展,以滿足您的特定需求。例如,您可以嘗試:

  • 使用其他預訓練模型,以提高識別準確性或降低計算復雜性。
  • 為檢測到的人物添加標簽,例如顯示置信度分數(shù)或人物ID。
  • 跟蹤檢測到的人物在視頻中的移動軌跡。
  • 將此項目擴展為實時人物識別系統(tǒng),通過攝像頭實時監(jiān)控人物出現(xiàn)。

到此這篇關于Python和OpenCV庫實現(xiàn)識別人物出現(xiàn)并鎖定的文章就介紹到這了,更多相關Python OpenCV識別人物并鎖定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

深圳市| 门头沟区| 山西省| 抚宁县| 屏南县| 长岛县| 中山市| 绵竹市| 同仁县| 丽江市| 诏安县| 永春县| 和龙市| 新河县| 沧州市| 台东市| 望谟县| 尼木县| 南溪县| 宁明县| 江安县| 海阳市| 顺昌县| 塘沽区| 吉隆县| 余庆县| 呼玛县| 称多县| 丹江口市| 罗平县| 老河口市| 冀州市| 方城县| 肥城市| 金山区| 都匀市| 东光县| 德兴市| 汶川县| 永靖县| 雷波县|