在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

目前可依靠模塊化方式實現(xiàn)圖像處理管道,檢測一堆圖像文件中的人臉,并將其與漂亮的結構化JSON摘要文件一起保存在單獨的文件夾中。

讓我們對視頻流也可以進行同樣的操作。

首先,我們需要捕獲視頻流。該管線任務將從視頻文件或網絡攝像頭(逐幀)生成一系列圖像。接下來,我們將檢測每個幀上的臉部并將其保存。接下來的三個塊是可選的,它們的目標是創(chuàng)建帶有注釋的輸出視頻,例如在檢測到的人臉周圍的框。我們可以顯示帶注釋的視頻并將其保存。最后一個任務將收集有關檢測到的面部的信息,并保存帶有面部的框坐標和置信度的JSON摘要文件。

如果尚未設置jagin / image-processing-pipeline存儲庫以查看源代碼并運行一些示例,則可以立即執(zhí)行以下操作:

$ git clone git://github.com/jagin/image-processing-pipeline.git
$ cd image-processing-pipeline
$ git checkout 7df1963247caa01b503980fe152138b88df6c526
$ conda env create -f environment.yml
$ conda activate pipeline

如果已經克隆了存儲庫并設置了環(huán)境,請使用以下命令對其進行更新:

$ git pull
$ git checkout 7df1963247caa01b503980fe152138b88df6c526
$ conda env update -f environment.yml

拍攝影片

使用OpenCV捕獲視頻非常簡單。我們需要創(chuàng)建一個VideoCapture對象,其中參數(shù)是設備索引(指定哪個攝像機的數(shù)字)或視頻文件的名稱。然后,我們可以逐幀捕獲視頻流。

我們可以使用以下CaptureVideo擴展類來實現(xiàn)捕獲視頻任務Pipeline:

import cv2
from pipeline.pipeline import Pipeline


class CaptureVideo(Pipeline):
    def __init__(self, src=0):
        self.cap = cv2.VideoCapture(src)
        if not self.cap.isOpened():
            raise IOError(f"Cannot open video {src}")


        self.fps = int(self.cap.get(cv2.CAP_PROP_FPS))
        self.frame_count = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT))


        super(CaptureVideo, self).__init__()


    def generator(self):
        image_idx = 0
        while self.has_next():
            ret, image = self.cap.read()
            if not ret:
                # no frames has been grabbed
                break


            data = {
                "image_id": f"{image_idx:05d}",
                "image": image,
            }


            if self.filter(data):
                image_idx += 1
                yield self.map(data)


    def cleanup(self):
        # Closes video file or capturing device
        self.cap.release()

使用__init__我們創(chuàng)建VideoCapture對象(第6行)并提取視頻流的屬性,例如每秒幀數(shù)和幀數(shù)。我們將需要它們顯示進度條并正確保存視頻。圖像幀將在具有字典結構的generator函數(shù)(第30行)中產生:

data = {
    "image_id": f"{image_idx:05d}",
    "image": image,
}

當然,數(shù)據(jù)中也包括圖像的序列號和幀的二進制數(shù)據(jù)。

檢測人臉

我們準備檢測面部。這次,我們將使用OpenCV的深度神經網絡模塊,而不是我在上一個故事中所承諾的Haar級聯(lián)。我們將要使用的模型更加準確,并且還為我們提供了置信度得分。

從版本3.3開始,OpenCV支持許多深度學習框架,例如Caffe,TensorFlow和PyTorch,從而使我們能夠加載模型,預處理輸入圖像并進行推理以獲得輸出分類。

有一位優(yōu)秀的博客文章中阿德里安·羅斯布魯克(Adrian Rosebrock)解釋如何使用OpenCV和深度學習實現(xiàn)人臉檢測。我們將在FaceDetector類中使用部分代碼:

import cv2
import numpy as np


class FaceDetector:
    def __init__(self, prototxt, model, confidence=0.5):
        self.confidence = confidence


        self.net = cv2.dnn.readNetFromCaffe(prototxt, model)


    def detect(self, images):
        # convert images into blob
        blob = self.preprocess(images)


        # pass the blob through the network and obtain the detections and predictions
        self.net.setInput(blob)
        detections = self.net.forward()
        # Prepare storage for faces for every image in the batch
        faces = dict(zip(range(len(images)), [[] for _ in range(len(images))]))


        # loop over the detections
        for i in range(0, detections.shape[2]):
            # extract the confidence (i.e., probability) associated with the prediction
            confidence = detections[0, 0, i, 2]


            # filter out weak detections by ensuring the `confidence` is
            # greater than the minimum confidence
            if confidence < self.confidence:
                continue


            # grab the image index
            image_idx = int(detections[0, 0, i, 0])
            # grab the image dimensions
            (h, w) = images[image_idx].shape[:2]
            # compute the (x, y)-coordinates of the bounding box for the object
            box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])


            # Add result
            faces[image_idx].append((box, confidence))


        return faces


    def preprocess(self, images):
        return cv2.dnn.blobFromImages(images, 1.0, (300, 300), (104.0, 177.0, 123.0))
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 攝像頭
    +關注

    關注

    60

    文章

    4871

    瀏覽量

    96401
  • OpenCV
    +關注

    關注

    31

    文章

    635

    瀏覽量

    41595
  • JSON
    +關注

    關注

    0

    文章

    119

    瀏覽量

    7021
收藏 人收藏

    評論

    相關推薦

    樹莓派上使用OpenCV和Python實現(xiàn)實時人臉檢測

    本文介紹了如何在樹莓派上,使用 OpenCV 和 Python 完成人臉檢測項目。該項目不僅描述了識別人臉所需要的具體步驟,同時還提供了很多擴展知識。此外,該項目并不需要讀者了解詳細的
    的頭像 發(fā)表于 03-06 09:00 ?5.1w次閱讀

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

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

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

    本篇測評由優(yōu)秀測評者“eefocus_3914144”提供。 本文將介紹基于米爾電子MYD-LMX93開發(fā)板(米爾基于NXP i.MX93開發(fā)板)的基于OpenCV人臉檢測方案測試。 Ope
    發(fā)表于 11-15 17:58

    基于openCV人臉檢測系統(tǒng)的設計

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

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

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

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

    進行實時采集,隨后opencv對圖像進行特征采樣,并與學習樣本對比,進行人臉匹配。該系統(tǒng)內還搭載一個嵌入式服務器,通過以太網接入局域網絡,可以使用客戶端與系統(tǒng)建立聯(lián)系,實現(xiàn)配置與反饋結果。學習計劃:1
    發(fā)表于 12-18 14:34

    【AI技能解析】人臉識別是怎么做到的?

    環(huán)境搭建2、opencv對圖像和視頻進行基本操作3、opencv圖像濾波及形態(tài)學處理4、opencv人臉
    發(fā)表于 03-16 11:25

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

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

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

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

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

    【目的】在實現(xiàn)視頻監(jiān)控的基礎上,加入opencv人臉檢測模型,快速的實現(xiàn)人臉檢測功能。實現(xiàn)方式
    發(fā)表于 03-09 14:10

    基于openCV人臉檢測識別系統(tǒng)的設計

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

    Android系統(tǒng)下OpenCV人臉檢測模塊的設計

    針對解決OpenCV人臉檢測模塊在Android平臺編譯和移植的問題,提出一種利用JNI技術(Java Native Interface)調用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'>檢測</b>模塊的設計

    openCV人臉檢測系統(tǒng)的設計方案探究

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

    OpenCV視頻處理之人臉檢測 2

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

    Android系統(tǒng)下OpenCV人臉檢測模塊的設計

    電子發(fā)燒友網站提供《Android系統(tǒng)下OpenCV人臉檢測模塊的設計.pdf》資料免費下載
    發(fā)表于 10-23 09:37 ?0次下載
    Android系統(tǒng)下<b class='flag-5'>OpenCV</b>的<b class='flag-5'>人臉</b><b class='flag-5'>檢測</b>模塊的設計
    主站蜘蛛池模板: 天天操天天插 | 好男人社区www的视频免费 | 天天操天天操天天操香蕉 | 性欧美大战久久久久久久久 | 日本色图视频 | 五月婷综合网 | 夜夜夜爽爽爽久久久 | 亚洲视频在线一区二区三区 | 久久青草免费免费91线频观看 | 欧美性猛片xxxxⅹ免费 | 日本又粗又长一进一出抽搐 | 久久综合久色欧美婷婷 | 一区二区中文字幕在线观看 | 亚洲第一免费视频 | 婷婷六月天在线 | 欧美激情在线 | 黄色午夜 | 中文天堂最新版在线精品 | 欧美日韩一区二区三区毛片 | 天天干狠狠插 | 8050网午夜一级毛片免费不卡 | 黄色网址在线免费观看 | 久久久久久久久综合 | 狠狠色噜噜狠狠狠狠2018 | 日本黄色小视频网站 | 欧美一级高清黄图片 | 97人人看 | 免费深夜视频 | 天天cao在线 | 四虎影视在线影院4hu | 99久久99久久精品国产 | 三级视频网站在线观看播放 | 四虎4hu影库免费永久国产 | 男人午夜影院 | 国产一线在线观看 | 在线免费观看你懂的 | 天堂最新版| 在线免费观看视频 | 国产免费一级高清淫日本片 | 四虎影院一级片 | 欧美性一区二区三区 |