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

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

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

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

使用深度學習和OpenCV 進行視頻目標檢測

馬哥Linux運維 ? 來源:未知 ? 作者:李倩 ? 2018-10-16 15:03 ? 次閱讀

使用OpenCV和Python上對實時視頻流進行深度學習目標檢測是非常簡單的,我們只需要組合一些合適的代碼,接入實時視頻,隨后加入原有的目標檢測功能。

本文分兩個部分。在第一部分中,我們將學習如何擴展原有的目標檢測項目,使用深度學習和OpenCV將應用范圍擴展到實時視頻流和視頻文件中。這個任務(wù)會通過VideoStream類來完成。

深度學習目標檢測教程: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)在,我們將開始把深度學習+目標檢測的代碼應用于視頻流中,同時測量FPS處理速度。

使用深度學習和OpenCV進行視頻目標檢測

為了構(gòu)建基于OpenCV深度學習的實時目標檢測器,我們需要有效地接入攝像頭/視頻流,并將目標檢測應用到每一幀里。

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

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

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

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

與此前的目標檢測項目相比,我們不需要圖像參數(shù),因為在這里我們處理的是視頻流和視頻——除了以下參數(shù)保持不變:

--prototxt:Caffeprototxt文件路徑。

--model:預訓練模型的路徑。

--confidence:過濾弱檢測的最小概率閾值,默認值為20%。

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

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

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

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

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

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

首先,我們從視頻流中讀取一幀(第43行),隨后調(diào)整它的大小(第44行)。由于我們隨后會需要寬度和高度,所以我們在第47行上進行抓取。隨后將frame轉(zhuǎn)換為一個有dnn模塊的blob(第48行)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

實時深度學習目標檢測的結(jié)果

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

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

如果OpenCV能夠訪問你的攝像頭,你可以看到帶有檢測到的目標的輸出視頻幀。我對樣本視頻使用了深度學習目標檢測,結(jié)果如下:

圖1:使用深度學習和OpenCV+Python進行實時目標檢測的短片。

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

總結(jié)

今天的博客中,我們學習了如何使用深度學習+OpenCV+視頻流來執(zhí)行實時目標檢測。我們通過下列兩個教程完成了這一目標:

1.使用深度學習和OpenCV進行目標檢測(http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/)

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

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

你還可以通過以下途徑進一步提升速度:

1.跳過幀。

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

3.使用SqueezeNet的量子化變體(我還未對此進行測試,但是我想應該會更快,因為它的網(wǎng)絡(luò)足跡更小)。

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

    關(guān)注

    31

    文章

    635

    瀏覽量

    41582
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5516

    瀏覽量

    121584

原文標題:深度學習 + OpenCV,Python實現(xiàn)實時目標檢測

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

收藏 人收藏

    評論

    相關(guān)推薦

    如何在OpenCV中使用基于深度學習的邊緣檢測?

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

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

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

    【HarmonyOS HiSpark AI Camera】基于深度學習目標檢測系統(tǒng)設(shè)計

    、并行處理、從目標檢測算法嵌入式平臺的實現(xiàn)的設(shè)計要求出發(fā),基于深度學習目標檢測算法特點,采用軟
    發(fā)表于 09-25 10:11

    用光流法進行運動目標檢測_OpenCV3編程入門-源碼例程

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

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

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

    基于深度學習模型的點云目標檢測及ROS實現(xiàn)

    近年來,隨著深度學習在圖像視覺領(lǐng)域的發(fā)展,一類基于單純的深度學習模型的點云目標檢測方法被提出和應
    的頭像 發(fā)表于 11-05 16:47 ?1.8w次閱讀

    如何使用深度學習進行視頻行人目標檢測

    近年來,隨著深度學習在計算機視覺領(lǐng)域的廣泛應用,基于深度學習視頻運動目標
    發(fā)表于 11-19 16:01 ?22次下載
    如何使用<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>進行</b><b class='flag-5'>視頻</b>行人<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>

    探究深度學習目標視覺檢測中的應用與展望

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

    OpenCV使用深度學習做邊緣檢測的流程

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

    基于深度學習目標檢測研究綜述

    基于深度學習目標檢測研究綜述 來源:《電子學報》?,作者羅會蘭等 摘 要:?目標檢測是計算機視
    發(fā)表于 01-06 09:14 ?2251次閱讀
    基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>研究綜述

    深度學習目標檢測中的應用

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

    簡述深度學習的基準目標檢測及其衍生算法

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

    OpenCV庫在圖像處理和深度學習中的應用

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

    深度學習檢測目標常用方法

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

    基于深度學習的小目標檢測

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