色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV的視頻處理之人臉檢測 2

jf_78858299 ? 來源:小白玩轉Python ? 作者:小白 ? 2023-02-07 15:27 ? 次閱讀

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

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

使用管道架構,可以很容易地CascadeDetectFaces從上一篇文章換成更準確的深度學習人臉檢測器模型。讓我們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 = []

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

當我們使用GPU(圖形處理單元)時,我們的武器庫中同時運行著數千個處理內核,這些內核專門用于矩陣運算。批量執行推理總是更快,一次向深度學習模型展示的圖像多于一張一張。

保存面孔和摘要

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

SaveSummary類的任務是收集有關已識別面部的所有元數據,并將它們保存為結構良好的JSON文件,該map函數用于緩沖元數據。接下來,我們使用額外的write功能擴展我們的類,我們將需要在管道的末尾觸發以將JSON文件與摘要一起保存。臉部圖像針對每一幀存儲在單獨的目錄中。

視頻輸出

為了觀察流水線的結果,很高興可以顯示帶有帶注釋的面孔的視頻。關于AnnotateImage(pipeline/annotate_image.py)/DisplayVideo(pipeline/display_video.py)的全部內容。

運行中的管道

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

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

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

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

-p將顯示進度條,

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

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

正如我們在示例視頻中看到的那樣,并不是所有臉孔都能被識別。我們可以降低設置參數的深度學習模型的置信度confidence 0.2(默認值為0.5)。降低置信度閾值會增加假陽性的發生(在圖像中沒有臉的位置出現臉)。

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,但是對于--batch-size 4我們來說,速度卻提高到了每秒64.66幀。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 攝像頭
    +關注

    關注

    59

    文章

    4836

    瀏覽量

    95600
  • OpenCV
    +關注

    關注

    31

    文章

    634

    瀏覽量

    41338
  • JSON
    +關注

    關注

    0

    文章

    117

    瀏覽量

    6963
收藏 人收藏

    評論

    相關推薦

    基于OPENCV的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發板

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

    如何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發板

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

    基于openCV人臉檢測系統的設計

    通過對基于Adaboost人臉檢測算法的研究,利用該算法與計算機視覺類庫openCV進行人臉檢測系統的設計,實現了對出現在
    發表于 12-23 14:19

    【TL6748 DSP申請】基于TMS320C6748 DSP人臉檢測及跟蹤

    申請理由:我們是公司的研發團隊,正在研發人臉檢測及跟蹤。之前使用的是TI達芬奇系列DM6446芯片,將OpenCV移植到DM6446的DSP上發現處理效率太低。分析主要原因是dm644
    發表于 09-10 11:09

    【NanoPi2申請】基于ARM的智能家居視頻監控系統

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

    【NanoPi2申請】基于opencv人臉識別門禁系統

    opencv API,研究圖像處理算法。5、學習機器學習,利用模板匹配方法進行人臉識別。6、在linux上配置opencv,利用opencv
    發表于 12-18 14:34

    【NanoPi2申請】基于NanoPi2人臉識別及表情檢測

    本帖最后由 ypw 于 2015-12-19 00:38 編輯 申請理由:目前正在學習OpenCV,以及人臉表情檢測的研究,NanoPi2的性價比很高,同時集成了WiFi,是研發
    發表于 12-18 14:37

    【EASY EAI Nano開源套件試用體驗】4AI功能測試之人臉檢測

    ,rknn_context句柄path:輸入參數,算法模型路徑input_image:輸入參數, Opencv Mat格式圖像result:輸出參數, 人臉檢測的結果輸出3 代碼分析與修改官方例程使用的是雙目攝像頭
    發表于 09-27 22:39

    【飛凌RK3568開發板試用體驗】使用OpenCV進行人臉識別

    RK3568四核Arm Cortex-A55 處理器的主板,從廠商的宣傳看,其主要市場就是人臉識別等視頻和圖像應用。今天就使用OpenCV自帶的DNN模塊進行
    發表于 01-11 22:06

    【飛凌RK3588開發板試用】實現人臉檢測

    ))[2:-1] return img_date_url添加代碼后,重新啟動服務,打開網頁,當圖像中出現人臉時就可以檢測出來了:CPU占用情況如下圖,占用率非常小。【小結】tornado的服務+
    發表于 03-09 14:10

    基于openCV人臉檢測識別系統的設計

    通過對基于Adaboost人臉檢測算法的研究,利用該算法與計算機視覺類庫openCV進行人臉檢測系統的設計,實現了對出現在
    發表于 06-15 10:53 ?477次下載
    基于<b class='flag-5'>openCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測</b>識別系統的設計

    Android系統下OpenCV人臉檢測模塊的設計

    針對解決OpenCV人臉檢測模塊在Android平臺編譯和移植的問題,提出一種利用JNI技術(Java Native Interface)調用OpenCV以及采用Android NDK
    發表于 11-07 17:40 ?118次下載
    Android系統下<b class='flag-5'>OpenCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測</b>模塊的設計

    openCV人臉檢測系統的設計方案探究

    摘要: 通過對基于 Adaboost 人臉檢測算法的研究,利用該算法與計算機視覺類庫 openCV 進行人臉檢測系統的設計,實現了對出現在
    發表于 10-20 16:39 ?3次下載

    OpenCV視頻處理之人臉檢測 1

    目前可依靠模塊化方式實現圖像處理管道,檢測一堆圖像文件中的人臉,并將其與漂亮的結構化JSON摘要文件一起保存在單獨的文件夾中。 讓我們對視頻流也可以進行同樣的操作。 首先,
    的頭像 發表于 02-07 15:27 ?787次閱讀

    Android系統下OpenCV人臉檢測模塊的設計

    電子發燒友網站提供《Android系統下OpenCV人臉檢測模塊的設計.pdf》資料免費下載
    發表于 10-23 09:37 ?0次下載
    Android系統下<b class='flag-5'>OpenCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測</b>模塊的設計
    主站蜘蛛池模板: 成年视频xxxxxx在线| 东北疯狂xxxxbbbb中国| YY8090福利午夜理论片| 国产成人精品综合在线| 精品国产麻豆免费人成网站| 暖暖日本 在线 高清| 我和黑帮老大第365天第2季在线| 一二三四在线播放免费观看中文版视频| 最近中文字幕MV高清在线视频| 穿白丝袜边走边尿白丝袜| 精品一二三区久久AAA片| 欧美一第一页草草影院| 亚洲乱码AV久久久久久久| 99视频国产在线| 微福利92合集| 诱人的秘书BD在线观看| 边摸边吃奶边做激情叫床视| 狠狠综合久久综合88亚洲| 秋霞电影在线观看午夜伦| 亚洲理论在线a中文字幕| HEYZO无码中文字幕人妻| 黄色a一级视频| 日本人作爰啪啪全过程| 中文字幕本庄优花喂奶| 二级片免费看| 久久国产伦子伦精品| 神马影院午夜理论二| 88福利视频| 精品丰满人妻无套内射| 日日操夜夜操天天操| 777久久人妻少妇嫩草AV| 国产亚洲精品久久久久久久软件| 欧美日韩1区| 在线亚洲97se| 国产在线高清视频无码不卡| 全部免费特黄特色大片看片| 伊人大香线蕉精品在线播放| 国产精品高清在线观看地址| 秋霞网韩国理伦片免费看| 中文在线日韩亚洲制服| 国内精品欧美久久精品|