99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

使用深度學(xué)習(xí)和OpenCV 進(jìn)行視頻目標(biāo)檢測(cè)

馬哥Linux運(yùn)維 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-10-16 15:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用OpenCV和Python上對(duì)實(shí)時(shí)視頻流進(jìn)行深度學(xué)習(xí)目標(biāo)檢測(cè)是非常簡(jiǎn)單的,我們只需要組合一些合適的代碼,接入實(shí)時(shí)視頻,隨后加入原有的目標(biāo)檢測(cè)功能。

本文分兩個(gè)部分。在第一部分中,我們將學(xué)習(xí)如何擴(kuò)展原有的目標(biāo)檢測(cè)項(xiàng)目,使用深度學(xué)習(xí)和OpenCV將應(yīng)用范圍擴(kuò)展到實(shí)時(shí)視頻流和視頻文件中。這個(gè)任務(wù)會(huì)通過(guò)VideoStream類來(lái)完成。

深度學(xué)習(xí)目標(biāo)檢測(cè)教程:http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/

VideoStream類教程:http://www.pyimagesearch.com/2016/01/04/unifying-picamera-and-cv2-videocapture-into-a-single-class-with-opencv/

現(xiàn)在,我們將開(kāi)始把深度學(xué)習(xí)+目標(biāo)檢測(cè)的代碼應(yīng)用于視頻流中,同時(shí)測(cè)量FPS處理速度。

使用深度學(xué)習(xí)和OpenCV進(jìn)行視頻目標(biāo)檢測(cè)

為了構(gòu)建基于OpenCV深度學(xué)習(xí)的實(shí)時(shí)目標(biāo)檢測(cè)器,我們需要有效地接入攝像頭/視頻流,并將目標(biāo)檢測(cè)應(yīng)用到每一幀里。

首先,我們打開(kāi)一個(gè)新文件,將其命名為real_time_object_detection.py,隨后加入以下代碼:

我們從第2-8行開(kāi)始導(dǎo)入封包。在此之前,你需要imutils和OpenCV3.3。在系統(tǒng)設(shè)置上,你只需要以默認(rèn)設(shè)置安裝OpenCV即可(同時(shí)確保你遵循了所有Python虛擬環(huán)境命令)。

Note:請(qǐng)確保自己下載和安裝的是OpenCV3.3(或更新版本)和OpenCV-contrib版本(適用于OpenCV3.3),以保證其中包含有深度神經(jīng)網(wǎng)絡(luò)模塊。

下面,我們將解析這些命令行參數(shù):

與此前的目標(biāo)檢測(cè)項(xiàng)目相比,我們不需要圖像參數(shù),因?yàn)樵谶@里我們處理的是視頻流和視頻——除了以下參數(shù)保持不變:

--prototxt:Caffeprototxt文件路徑。

--model:預(yù)訓(xùn)練模型的路徑。

--confidence:過(guò)濾弱檢測(cè)的最小概率閾值,默認(rèn)值為20%。

隨后,我們初始化類列表和顏色集:

在第22-26行,我們初始化CLASS標(biāo)簽,和相應(yīng)的隨機(jī)COLORS。有關(guān)這些類的詳細(xì)信息(以及網(wǎng)絡(luò)的訓(xùn)練方式),請(qǐng)參考:http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/

現(xiàn)在,我們加載自己的模型,并設(shè)置自己的視頻流:

我們加載自己的序列化模型,提供對(duì)自己的prototxt和模型文件的引用(第30行),可以看到在OpenCV3.3中,這非常簡(jiǎn)單。

下一步,我們初始化視頻流(來(lái)源可以是視頻文件或攝像頭)。首先,我們啟動(dòng)VideoStream(第35行),隨后等待相機(jī)啟動(dòng)(第36行),最后開(kāi)始每秒幀數(shù)計(jì)算(第37行)。VideoStream和FPS類是imutils包的一部分。

現(xiàn)在,讓我們遍歷每一幀(如果你對(duì)速度要求很高,也可以跳過(guò)一些幀):

首先,我們從視頻流中讀取一幀(第43行),隨后調(diào)整它的大?。ǖ?4行)。由于我們隨后會(huì)需要寬度和高度,所以我們?cè)诘?7行上進(jìn)行抓取。隨后將frame轉(zhuǎn)換為一個(gè)有dnn模塊的blob(第48行)。

現(xiàn)在,我們?cè)O(shè)置blob為神經(jīng)網(wǎng)絡(luò)的輸入(第52行),通過(guò)net傳遞輸入(第53行),這給我們提供了detections。

這時(shí),我們已經(jīng)在輸入幀中檢測(cè)到了目標(biāo),現(xiàn)在是時(shí)候看看置信度的值,以判斷我們能否在目標(biāo)周圍繪制邊界框和標(biāo)簽了:

我們首先在detections內(nèi)循環(huán),記住一個(gè)圖像中可以檢測(cè)到多個(gè)目標(biāo)。我們還需要檢查每次檢測(cè)的置信度(即概率)。如果置信度足夠高(高于閾值),那么我們將在終端展示預(yù)測(cè),并以文本和彩色邊界框的形式對(duì)圖像作出預(yù)測(cè)。讓我們逐行來(lái)看一下:

在detections內(nèi)循環(huán),首先我們提取confidence值(第59行)。

如果confidence高于最低閾值(第63行),那么我們提取類標(biāo)簽索引(第67行),并計(jì)算檢測(cè)到的目標(biāo)的坐標(biāo)(第68行)。

然后,我們提取邊界框的(x,y)坐標(biāo)(第69行),之后將用于繪制矩形和文本。

我們構(gòu)建一個(gè)文本label,包含CLASS名稱和confidence(第72、73行)。

我們還要使用類顏色和之前提取的(x,y)坐標(biāo)在物體周圍繪制彩色矩形(第74、75行)。

通常,我們希望標(biāo)簽出現(xiàn)在矩形上方,但是如果沒(méi)有空間,我們將在矩形頂部稍下的位置展示標(biāo)簽(第76行)。

最后,我們使用剛才計(jì)算出的y值將彩色文本置于幀上(第77、78行)。

幀捕捉循環(huán)剩余的步驟還包括:(1)展示幀;(2)檢查quit鍵;(3)更新fps計(jì)數(shù)器:

上述代碼塊簡(jiǎn)單明了,首先我們展示幀(第81行),然后找到特定按鍵(第82行),同時(shí)檢查「q」鍵(代表「quit」)是否按下。如果已經(jīng)按下,則我們退出幀捕捉循環(huán)(第85、86行)。最后更新fps計(jì)數(shù)器(第89行)。

如果我們退出了循環(huán)(「q」鍵或視頻流結(jié)束),我們還要處理這些:

當(dāng)我們跳出(exit)循環(huán),fps計(jì)數(shù)器停止(第92行),每秒幀數(shù)的信息向終端輸出(第93、94行)。

我們關(guān)閉窗口(第97行),然后停止視頻流(第98行)。

如果你到了這一步,那就可以做好準(zhǔn)備用自己的網(wǎng)絡(luò)攝像頭試試看它是如何工作的了。我們來(lái)看下一部分。

實(shí)時(shí)深度學(xué)習(xí)目標(biāo)檢測(cè)的結(jié)果

為了實(shí)時(shí)深度學(xué)習(xí)目標(biāo)檢測(cè)器正常運(yùn)行,確保你使用本指南「Downloads」部分中的示例代碼和預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)。(請(qǐng)打開(kāi)原文鏈接,進(jìn)入「Downloads」部分,輸入自己的郵箱地址,獲取所需代碼和其他資料。)

打開(kāi)終端,執(zhí)行下列命令:

如果OpenCV能夠訪問(wèn)你的攝像頭,你可以看到帶有檢測(cè)到的目標(biāo)的輸出視頻幀。我對(duì)樣本視頻使用了深度學(xué)習(xí)目標(biāo)檢測(cè),結(jié)果如下:

圖1:使用深度學(xué)習(xí)和OpenCV+Python進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè)的短片。

注意深度學(xué)習(xí)目標(biāo)檢測(cè)器不僅能夠檢測(cè)到人,還能檢測(cè)到人坐著的沙發(fā)和旁邊的椅子——所有都是實(shí)時(shí)檢測(cè)到的!

總結(jié)

今天的博客中,我們學(xué)習(xí)了如何使用深度學(xué)習(xí)+OpenCV+視頻流來(lái)執(zhí)行實(shí)時(shí)目標(biāo)檢測(cè)。我們通過(guò)下列兩個(gè)教程完成了這一目標(biāo):

1.使用深度學(xué)習(xí)和OpenCV進(jìn)行目標(biāo)檢測(cè)(http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/)

2.在OpenCV上進(jìn)行高效、線程化的視頻流(http://www.pyimagesearch.com/2016/01/04/unifying-picamera-and-cv2-videocapture-into-a-single-class-with-opencv/)

最終結(jié)果是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)器可以處理6-8個(gè)FPS的視頻(當(dāng)然,這也取決于你的系統(tǒng)速度)。

你還可以通過(guò)以下途徑進(jìn)一步提升速度:

1.跳過(guò)幀。

2.使用MobileNet的不同變體(速度更快,但是準(zhǔn)確率下降)。

3.使用SqueezeNet的量子化變體(我還未對(duì)此進(jìn)行測(cè)試,但是我想應(yīng)該會(huì)更快,因?yàn)樗木W(wǎng)絡(luò)足跡更?。?/p>

聲明:本文內(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)投訴
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42696
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5557

    瀏覽量

    122684

原文標(biāo)題:深度學(xué)習(xí) + OpenCV,Python實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測(cè)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在OpenCV中使用基于深度學(xué)習(xí)的邊緣檢測(cè)

    在這篇文章中,我們將學(xué)習(xí)如何在OpenCV中使用基于深度學(xué)習(xí)的邊緣檢測(cè),它比目前流行的canny邊緣檢測(cè)
    的頭像 發(fā)表于 05-19 09:52 ?2411次閱讀
    如何在<b class='flag-5'>OpenCV</b>中使用基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的邊緣<b class='flag-5'>檢測(cè)</b>?

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

    的是Haar特征人臉檢測(cè),此外OpenCV中還集成了深度學(xué)習(xí)方法來(lái)實(shí)現(xiàn)人臉檢測(cè)。 【參考資料】 使用O
    發(fā)表于 11-15 17:58

    【HarmonyOS HiSpark AI Camera】基于深度學(xué)習(xí)目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)

    、并行處理、從目標(biāo)檢測(cè)算法嵌入式平臺(tái)的實(shí)現(xiàn)的設(shè)計(jì)要求出發(fā),基于深度學(xué)習(xí)目標(biāo)檢測(cè)算法特點(diǎn),采用軟
    發(fā)表于 09-25 10:11

    用光流法進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)_OpenCV3編程入門-源碼例程

    OpenCV3編程入門-源碼例程全集-用光流法進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:02 ?17次下載

    如何使用OpenCV、Python和深度學(xué)習(xí)在圖像和視頻中實(shí)現(xiàn)面部識(shí)別?

    Face ID 的興起帶動(dòng)了一波面部識(shí)別技術(shù)熱潮。本文將介紹如何使用 OpenCV、Python 和深度學(xué)習(xí)在圖像和視頻中實(shí)現(xiàn)面部識(shí)別,以基于深度
    的頭像 發(fā)表于 07-17 16:20 ?8296次閱讀

    基于深度學(xué)習(xí)模型的點(diǎn)云目標(biāo)檢測(cè)及ROS實(shí)現(xiàn)

    近年來(lái),隨著深度學(xué)習(xí)在圖像視覺(jué)領(lǐng)域的發(fā)展,一類基于單純的深度學(xué)習(xí)模型的點(diǎn)云目標(biāo)檢測(cè)方法被提出和應(yīng)
    的頭像 發(fā)表于 11-05 16:47 ?1.8w次閱讀

    如何使用深度學(xué)習(xí)進(jìn)行視頻行人目標(biāo)檢測(cè)

    近年來(lái),隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域的廣泛應(yīng)用,基于深度學(xué)習(xí)視頻運(yùn)動(dòng)目標(biāo)
    發(fā)表于 11-19 16:01 ?22次下載
    如何使用<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>視頻</b>行人<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>

    探究深度學(xué)習(xí)目標(biāo)視覺(jué)檢測(cè)中的應(yīng)用與展望

    目標(biāo)視覺(jué)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要問(wèn)題,在視頻監(jiān)控、自主駕駛、人機(jī)交互等方面具有重要的研究意義和應(yīng)用價(jià)值.近年來(lái),深度學(xué)習(xí)在圖像分類研究
    的頭像 發(fā)表于 01-13 10:59 ?6095次閱讀

    OpenCV使用深度學(xué)習(xí)做邊緣檢測(cè)的流程

    導(dǎo)讀 分析了Canny的優(yōu)劣,并給出了OpenCV使用深度學(xué)習(xí)做邊緣檢測(cè)的流程。 在這篇文章中,我們將學(xué)習(xí)如何在
    的頭像 發(fā)表于 05-08 11:05 ?2526次閱讀
    <b class='flag-5'>OpenCV</b>使用<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>做邊緣<b class='flag-5'>檢測(cè)</b>的流程

    基于深度學(xué)習(xí)目標(biāo)檢測(cè)研究綜述

    基于深度學(xué)習(xí)目標(biāo)檢測(cè)研究綜述 來(lái)源:《電子學(xué)報(bào)》?,作者羅會(huì)蘭等 摘 要:?目標(biāo)檢測(cè)是計(jì)算機(jī)視
    發(fā)表于 01-06 09:14 ?2442次閱讀
    基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>研究綜述

    深度學(xué)習(xí)目標(biāo)檢測(cè)中的應(yīng)用

    R-CNN 算法在 2014 年提出,可以說(shuō)是歷史性的算法,將深度學(xué)習(xí)應(yīng)用于目標(biāo)檢測(cè)領(lǐng)域,相較于之前的目標(biāo)
    的頭像 發(fā)表于 10-31 10:08 ?2302次閱讀

    簡(jiǎn)述深度學(xué)習(xí)的基準(zhǔn)目標(biāo)檢測(cè)及其衍生算法

    基于深度學(xué)習(xí)目標(biāo)檢測(cè)方法根據(jù)有無(wú)區(qū)域提案階段劃分為區(qū)域提案檢測(cè)模型和單階段檢測(cè)模型
    的頭像 發(fā)表于 02-27 15:31 ?1671次閱讀
    簡(jiǎn)述<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的基準(zhǔn)<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測(cè)</b>及其衍生算法

    OpenCV庫(kù)在圖像處理和深度學(xué)習(xí)中的應(yīng)用

    本文深入淺出地探討了OpenCV庫(kù)在圖像處理和深度學(xué)習(xí)中的應(yīng)用。從基本概念和操作,到復(fù)雜的圖像變換和深度學(xué)習(xí)模型的使用,文章以詳盡的代碼和解
    的頭像 發(fā)表于 08-18 11:33 ?1192次閱讀

    深度學(xué)習(xí)檢測(cè)目標(biāo)常用方法

    深度學(xué)習(xí)的效果在某種意義上是靠大量數(shù)據(jù)喂出來(lái)的,小目標(biāo)檢測(cè)的性能同樣也可以通過(guò)增加訓(xùn)練集中小目標(biāo)樣本的種類和數(shù)量來(lái)提升。
    發(fā)表于 03-18 09:57 ?1014次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>檢測(cè)</b>小<b class='flag-5'>目標(biāo)</b>常用方法

    基于深度學(xué)習(xí)的小目標(biāo)檢測(cè)

    在計(jì)算機(jī)視覺(jué)領(lǐng)域,目標(biāo)檢測(cè)一直是研究的熱點(diǎn)和難點(diǎn)之一。特別是在小目標(biāo)檢測(cè)方面,由于小目標(biāo)在圖像中所占比例小、特征不明顯,使得
    的頭像 發(fā)表于 07-04 17:25 ?1997次閱讀