欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 安裝必要的庫

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

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

安裝方法如下:

pip install opencv-python
pip install imutils

2. 加載和顯示視頻

首先,我們需要導(dǎo)入所需的庫,并加載一個(gè)視頻文件。我們將使用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. 應(yīng)用預(yù)訓(xùn)練的人物檢測(cè)模型

接下來,我們將使用OpenCV中提供的預(yù)訓(xùn)練模型。這里我們使用MobileNet-SSD模型,因?yàn)樗谒俣群蜏?zhǔn)確性之間達(dá)到了很好的平衡。

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

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

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

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

# 設(shè)置置信度閾值
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")

                # 在檢測(cè)到的人物周圍繪制邊界框
                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é)果

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

# 創(chuàng)建 VideoWriter 對(duì)象以保存處理后的視頻
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)在,您應(yīng)該已經(jīng)成功地創(chuàng)建了一個(gè)可以識(shí)別人物出現(xiàn)并將其鎖定的項(xiàng)目。通過運(yùn)行此代碼,您將能夠在給定的視頻中檢測(cè)到人物,并在檢測(cè)到的人物周圍繪制邊界框。此外,該程序?qū)⑻幚砗蟮囊曨l保存到磁盤,以便您以后查看。

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

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

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

相關(guān)文章

  • 解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法

    解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法

    相信很多的新手朋友都會(huì)碰到python連接字符串和數(shù)字的問題,因?yàn)閜ython是強(qiáng)類型的語言,如果你把一個(gè)字符串和數(shù)字直接做連接的操作的話,就會(huì)直接報(bào)錯(cuò)的,今天就給大家說下字符串和數(shù)字拼接的問題,有需要的朋友們可以參考借鑒。
    2016-10-10
  • Python @property原理解析和用法實(shí)例

    Python @property原理解析和用法實(shí)例

    這篇文章主要介紹了Python @property原理解析和用法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 如何用Python從桌面讀取二維碼信息詳解

    如何用Python從桌面讀取二維碼信息詳解

    二維碼作為一種信息傳遞的工具,在當(dāng)今社會(huì)發(fā)揮了重要作用,下面這篇文章主要給大家介紹了關(guān)于如何用Python從桌面讀取二維碼信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • python如何實(shí)現(xiàn)遞歸轉(zhuǎn)非遞歸

    python如何實(shí)現(xiàn)遞歸轉(zhuǎn)非遞歸

    這篇文章主要介紹了python如何實(shí)現(xiàn)遞歸轉(zhuǎn)非遞歸,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python實(shí)現(xiàn)單鏈表中元素的反轉(zhuǎn)

    Python實(shí)現(xiàn)單鏈表中元素的反轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)單鏈表中元素的反轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python利用xlwings實(shí)現(xiàn)考勤表制作

    Python利用xlwings實(shí)現(xiàn)考勤表制作

    這篇文章主要為大家詳細(xì)介紹了Python如何利用xlwings庫操作excel實(shí)現(xiàn)考勤表的制作,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試一下
    2023-04-04
  • Python PyQt5 Pycharm 環(huán)境搭建及配置詳解(圖文教程)

    Python PyQt5 Pycharm 環(huán)境搭建及配置詳解(圖文教程)

    這篇文章主要介紹了Python PyQt5 Pycharm 環(huán)境搭建及配置詳解,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python光學(xué)仿真學(xué)習(xí)wxpython創(chuàng)建手速測(cè)試程序

    python光學(xué)仿真學(xué)習(xí)wxpython創(chuàng)建手速測(cè)試程序

    這篇文章主要介紹了python光學(xué)仿真學(xué)習(xí)使用wxpython創(chuàng)建一個(gè)手速測(cè)試程序示例的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python實(shí)現(xiàn)自動(dòng)化刷抖音的實(shí)例

    Python實(shí)現(xiàn)自動(dòng)化刷抖音的實(shí)例

    今天我們來學(xué)習(xí)如何用Python實(shí)現(xiàn)自動(dòng)刷抖音,并為顏值高的的小哥哥小姐姐點(diǎn)贊并評(píng)論。感興趣的可以了解一下
    2021-06-06
  • python報(bào)錯(cuò): ''list'' object has no attribute ''shape''的解決

    python報(bào)錯(cuò): ''list'' object has no attribute ''shape''的解決

    這篇文章主要介紹了python報(bào)錯(cuò): 'list' object has no attribute 'shape'的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評(píng)論