欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV的視頻處理之人臉檢測(cè) 2

jf_78858299 ? 來(lái)源:小白玩轉(zhuǎn)Python ? 作者:小白 ? 2023-02-07 15:27 ? 次閱讀

我們嘗試模塊化并分離管道構(gòu)建塊,這種方法將為我們提供易于管理的代碼,并使測(cè)試更容易編寫:

import os
import cv2


from pipeline.libs.face_detector import FaceDetector
import tests.config as config




class TestFaceDetector:
    def test_face_detector(self):
        prototxt = os.path.join(config.MODELS_FACE_DETECTOR_DIR, "deploy.prototxt.txt")
        model = os.path.join(config.MODELS_FACE_DETECTOR_DIR, "res10_300x300_ssd_iter_140000.caffemodel")
        detector = FaceDetector(prototxt, model)


        test_image = cv2.imread(os.path.join(config.ASSETS_IMAGES_DIR, "friends", "friends_01.jpg"))
        faces = detector.detect([test_image])


        assert len(faces) == 1
        assert len(faces[0])  # Should recognize some faces from friends_01.jpg

使用管道架構(gòu),可以很容易地CascadeDetectFaces從上一篇文章?lián)Q成更準(zhǔn)確的深度學(xué)習(xí)人臉檢測(cè)器模型。讓我們FaceDetector在新的DetectFaces管道步驟中使用:

from pipeline.pipeline import Pipeline
from pipeline.libs.face_detector import FaceDetector


class DetectFaces(Pipeline):
    def __init__(self, prototxt, model, batch_size=1, confidence=0.5):
        self.detector = FaceDetector(prototxt, model, confidence=confidence)
        self.batch_size = batch_size


        super(DetectFaces, self).__init__()


    def generator(self):
        batch = []
        stop = False
        while self.has_next() and not stop:
            try:
                # Buffer the pipeline stream
                data = next(self.source)
                batch.append(data)
            except StopIteration:
                stop = True


            # Check if there is anything in batch.
            # Process it if the size match batch_size or there is the end of the input stream.
            if len(batch) and (len(batch) == self.batch_size or stop):
                # Prepare images batch
                images = [data["image"] for data in batch]
                # Detect faces on all images at once
                faces = self.detector.detect(images)


                # Extract the faces and attache them to the proper image
                for image_idx, image_faces in faces.items():
                    batch[image_idx]["faces"] = image_faces


                # Yield all the data from buffer
                for data in batch:
                    if self.filter(data):
                        yield self.map(data)


                batch = []

我們對(duì)圖像流(第15–20行)進(jìn)行緩沖,直到到達(dá)batch_size(第24行)為止,然后在所有緩沖的圖像上(第28行)檢測(cè)面部,收集面部坐標(biāo)和置信度(第31–32行),然后重新生成圖像(第35-37行)。

當(dāng)我們使用GPU(圖形處理單元)時(shí),我們的武器庫(kù)中同時(shí)運(yùn)行著數(shù)千個(gè)處理內(nèi)核,這些內(nèi)核專門用于矩陣運(yùn)算。批量執(zhí)行推理總是更快,一次向深度學(xué)習(xí)模型展示的圖像多于一張一張。

保存面孔和摘要

SaveFaces并SaveSummary產(chǎn)生輸出結(jié)果。在SaveFaces類,使用map功能,遍歷所有檢測(cè)到的面部,從圖像裁剪他們并保存到輸出目錄。

SaveSummary類的任務(wù)是收集有關(guān)已識(shí)別面部的所有元數(shù)據(jù),并將它們保存為結(jié)構(gòu)良好的JSON文件,該map函數(shù)用于緩沖元數(shù)據(jù)。接下來(lái),我們使用額外的write功能擴(kuò)展我們的類,我們將需要在管道的末尾觸發(fā)以將JSON文件與摘要一起保存。臉部圖像針對(duì)每一幀存儲(chǔ)在單獨(dú)的目錄中。

視頻輸出

為了觀察流水線的結(jié)果,很高興可以顯示帶有帶注釋的面孔的視頻。關(guān)于AnnotateImage(pipeline/annotate_image.py)/DisplayVideo(pipeline/display_video.py)的全部?jī)?nèi)容。

運(yùn)行中的管道

在process_video_pipeline.py文件中我們可以看到,整個(gè)管道的定義如下:

pipeline = (capture_video |
            detect_faces |
            save_faces |
            annotate_image |
            display_video |
            save_video |
            save_summary)

上面有很多解釋,但是視頻和圖像勝于雄辯。讓我們來(lái)看一下觸發(fā)命令的管道:

python process_video_pipeline.py -i assets/videos/faces.mp4 -p -d -ov faces.avi,M,];

-p將顯示進(jìn)度條,

-d顯示帶有批注面孔的視頻結(jié)果,

-ov faces.avi并將視頻結(jié)果保存到output文件夾。

正如我們?cè)谑纠曨l中看到的那樣,并不是所有臉孔都能被識(shí)別。我們可以降低設(shè)置參數(shù)的深度學(xué)習(xí)模型的置信度confidence 0.2(默認(rèn)值為0.5)。降低置信度閾值會(huì)增加假陽(yáng)性的發(fā)生(在圖像中沒(méi)有臉的位置出現(xiàn)臉)。

DetectFaces類的批量處理大?。?/p>

$ python process_video_pipeline.py -i assets/videos/faces.mp4 -p
--batch-size 1
100%|███████████████████████████| 577/577 [00:11<00:00, 52.26it/s]
[INFO] Saving summary to output/summary.json...


$ python process_video_pipeline.py -i assets/videos/faces.mp4 -p
--batch-size 4
100%|███████████████████████████| 577/577 [00:09<00:00, 64.66it/s]
[INFO] Saving summary to output/summary.json...
$ python process_video_pipeline.py -i assets/videos/faces.mp4 -p
--batch-size 8
100%|███████████████████████████| 577/577 [00:10<00:00, 56.04it/s]
[INFO] Saving summary to output/summary.json...

在我們的硬件上(2.20GHz的Core i7–8750H CPU和NVIDIA RTX 2080 Ti),我門每秒獲得52.26幀的圖像--batch-size 1,但是對(duì)于--batch-size 4我們來(lái)說(shuō),速度卻提高到了每秒64.66幀。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 攝像頭
    +關(guān)注

    關(guān)注

    60

    文章

    4871

    瀏覽量

    96406
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41597
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    119

    瀏覽量

    7022
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于OPENCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--米爾NXP i.MX93開發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開發(fā)板(米爾基于NXPi.MX93開發(fā)板)的基于OpenCV人臉檢測(cè)方案測(cè)試。OpenCV提供了一個(gè)非常簡(jiǎn)單的接口,用于相機(jī)捕捉一個(gè)
    的頭像 發(fā)表于 11-07 09:03 ?1176次閱讀
    基于<b class='flag-5'>OPENCV</b>的相機(jī)捕捉<b class='flag-5'>視頻</b>進(jìn)行<b class='flag-5'>人臉</b><b class='flag-5'>檢測(cè)</b>--米爾NXP i.MX93開發(fā)板

    如何用OpenCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--基于米爾NXP i.MX93開發(fā)板

    : breakvideo.release()cv2.destroyAllWindows() 保存后執(zhí)行”python3 opencv_test.py OpenCV裝好后,可以為后面的人臉
    發(fā)表于 11-15 17:58

    基于openCV人臉檢測(cè)系統(tǒng)的設(shè)計(jì)

    通過(guò)對(duì)基于Adaboost人臉檢測(cè)算法的研究,利用該算法與計(jì)算機(jī)視覺(jué)類庫(kù)openCV進(jìn)行人臉檢測(cè)系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了對(duì)出現(xiàn)在
    發(fā)表于 12-23 14:19

    【TL6748 DSP申請(qǐng)】基于TMS320C6748 DSP人臉檢測(cè)及跟蹤

    申請(qǐng)理由:我們是公司的研發(fā)團(tuán)隊(duì),正在研發(fā)人臉檢測(cè)及跟蹤。之前使用的是TI達(dá)芬奇系列DM6446芯片,將OpenCV移植到DM6446的DSP上發(fā)現(xiàn)處理效率太低。分析主要原因是dm644
    發(fā)表于 09-10 11:09

    【NanoPi2申請(qǐng)】基于ARM的智能家居視頻監(jiān)控系統(tǒng)

    獲取圖像或視頻 圖像處理灰度 二值 去噪增強(qiáng) (邊緣檢測(cè) 腐蝕 膨脹)等 JPEG/H.264 壓縮編碼解碼TCP/IP網(wǎng)絡(luò)傳輸2.智能家居視頻
    發(fā)表于 12-02 16:10

    【NanoPi2申請(qǐng)】基于opencv人臉識(shí)別門禁系統(tǒng)

    opencv API,研究圖像處理算法。5、學(xué)習(xí)機(jī)器學(xué)習(xí),利用模板匹配方法進(jìn)行人臉識(shí)別。6、在linux上配置opencv,利用opencv
    發(fā)表于 12-18 14:34

    【NanoPi2申請(qǐng)】基于NanoPi2人臉識(shí)別及表情檢測(cè)

    本帖最后由 ypw 于 2015-12-19 00:38 編輯 申請(qǐng)理由:目前正在學(xué)習(xí)OpenCV,以及人臉表情檢測(cè)的研究,NanoPi2的性價(jià)比很高,同時(shí)集成了WiFi,是研發(fā)
    發(fā)表于 12-18 14:37

    【HiSpark IPC DIY Camera試用連載 】第二篇 視頻人臉檢測(cè)

    haarcascade_frontalface_alt_tree.xml,已經(jīng)保存了人臉特征,不需要我們?nèi)?shí)現(xiàn)cv2.detectMultiScale該函數(shù)用來(lái)檢測(cè)人臉,是本文
    發(fā)表于 01-14 00:08

    【EASY EAI Nano開源套件試用體驗(yàn)】4AI功能測(cè)試之人臉檢測(cè)

    ,rknn_context句柄path:輸入?yún)?shù),算法模型路徑input_image:輸入?yún)?shù), Opencv Mat格式圖像result:輸出參數(shù), 人臉檢測(cè)的結(jié)果輸出3 代碼分析與修改官方例程使用的是雙目攝像頭
    發(fā)表于 09-27 22:39

    【飛凌RK3588開發(fā)板試用】實(shí)現(xiàn)人臉檢測(cè)

    ))[2:-1] return img_date_url添加代碼后,重新啟動(dòng)服務(wù),打開網(wǎng)頁(yè),當(dāng)圖像中出現(xiàn)人臉時(shí)就可以檢測(cè)出來(lái)了:CPU占用情況如下圖,占用率非常小。【小結(jié)】tornado的服務(wù)+
    發(fā)表于 03-09 14:10

    基于openCV人臉檢測(cè)識(shí)別系統(tǒng)的設(shè)計(jì)

    通過(guò)對(duì)基于Adaboost人臉檢測(cè)算法的研究,利用該算法與計(jì)算機(jī)視覺(jué)類庫(kù)openCV進(jìn)行人臉檢測(cè)系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了對(duì)出現(xiàn)在
    發(fā)表于 06-15 10:53 ?477次下載
    基于<b class='flag-5'>openCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測(cè)</b>識(shí)別系統(tǒng)的設(shè)計(jì)

    Android系統(tǒng)下OpenCV人臉檢測(cè)模塊的設(shè)計(jì)

    針對(duì)解決OpenCV人臉檢測(cè)模塊在Android平臺(tái)編譯和移植的問(wèn)題,提出一種利用JNI技術(shù)(Java Native Interface)調(diào)用OpenCV以及采用Android NDK
    發(fā)表于 11-07 17:40 ?118次下載
    Android系統(tǒng)下<b class='flag-5'>OpenCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測(cè)</b>模塊的設(shè)計(jì)

    openCV人臉檢測(cè)系統(tǒng)的設(shè)計(jì)方案探究

    摘要: 通過(guò)對(duì)基于 Adaboost 人臉檢測(cè)算法的研究,利用該算法與計(jì)算機(jī)視覺(jué)類庫(kù) openCV 進(jìn)行人臉檢測(cè)系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了對(duì)出現(xiàn)在
    發(fā)表于 10-20 16:39 ?3次下載

    OpenCV視頻處理之人臉檢測(cè) 1

    目前可依靠模塊化方式實(shí)現(xiàn)圖像處理管道,檢測(cè)一堆圖像文件中的人臉,并將其與漂亮的結(jié)構(gòu)化JSON摘要文件一起保存在單獨(dú)的文件夾中。 讓我們對(duì)視頻流也可以進(jìn)行同樣的操作。 首先,
    的頭像 發(fā)表于 02-07 15:27 ?824次閱讀

    Android系統(tǒng)下OpenCV人臉檢測(cè)模塊的設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《Android系統(tǒng)下OpenCV人臉檢測(cè)模塊的設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-23 09:37 ?0次下載
    Android系統(tǒng)下<b class='flag-5'>OpenCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測(cè)</b>模塊的設(shè)計(jì)