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

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

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

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

OpenCV上八種不同的目標(biāo)追蹤算法

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-08-05 09:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:目標(biāo)跟蹤作為機(jī)器學(xué)習(xí)的一個(gè)重要分支,加之其在日常生活、軍事行動(dòng)中的廣泛應(yīng)用,很多國(guó)內(nèi)外學(xué)者都對(duì)此頗有研究。本文將討論OpenCV上八種不同的目標(biāo)追蹤算法。

雖然我們熟知的的質(zhì)心追蹤器表現(xiàn)得很好,但它需要我們?cè)谳斎氲?a href="http://www.socialnewsupdate.com/v/" target="_blank">視頻上的每一幀運(yùn)行一個(gè)目標(biāo)探測(cè)器。對(duì)大多數(shù)環(huán)境來(lái)說(shuō),在每幀上進(jìn)行檢測(cè)非常耗費(fèi)計(jì)算力。

所以,我們想應(yīng)用一種一次性的目標(biāo)檢測(cè)方法,然后在之后的幀上都能進(jìn)行目標(biāo)追蹤,使這一任務(wù)更加快速、更高效。

這里的問(wèn)題是:OpenCV能幫我們達(dá)到這種目標(biāo)追蹤的目的嗎?

答案是肯定的。

OpenCV目標(biāo)追蹤

首先,我們會(huì)大致介紹八種建立在OpenCV上的目標(biāo)檢測(cè)算法。之后我會(huì)講解如何利用這些算法進(jìn)行實(shí)時(shí)目標(biāo)追蹤。最后,我們會(huì)比較各個(gè)OpenCV目標(biāo)追蹤的效果,總結(jié)各種方法能夠適應(yīng)的環(huán)境。

八種OpenCV目標(biāo)追蹤安裝

無(wú)人機(jī)拍攝的視頻,用MedianFlow進(jìn)行目標(biāo)追蹤

你可能會(huì)驚訝OpenCV竟然有八種不同的目標(biāo)追蹤工具,他們都可以運(yùn)用到計(jì)算機(jī)視覺(jué)領(lǐng)域中。

這八種工具包括:

BOOSTING Tracker:和Haar cascades(AdaBoost)背后所用的機(jī)器學(xué)習(xí)算法相同,但是距其誕生已有十多年了。這一追蹤器速度較慢,并且表現(xiàn)不好,但是作為元老還是有必要提及的。(最低支持OpenCV 3.0.0)

MIL Tracker:比上一個(gè)追蹤器更精確,但是失敗率比較高。(最低支持OpenCV 3.0.0)

KCF Tracker:比BOOSTING和MIL都快,但是在有遮擋的情況下表現(xiàn)不佳。(最低支持OpenCV 3.1.0)

CSRT Tracker:比KCF稍精確,但速度不如后者。(最低支持OpenCV 3.4.2)

MedianFlow Tracker:在報(bào)錯(cuò)方面表現(xiàn)得很好,但是對(duì)于快速跳動(dòng)或快速移動(dòng)的物體,模型會(huì)失效。(最低支持OpenCV 3.0.0)

TLD Tracker:我不確定是不是OpenCV和TLD有什么不兼容的問(wèn)題,但是TLD的誤報(bào)非常多,所以不推薦。(最低支持OpenCV 3.0.0)

MOSSE Tracker:速度真心快,但是不如CSRT和KCF的準(zhǔn)確率那么高,如果追求速度選它準(zhǔn)沒(méi)錯(cuò)。(最低支持OpenCV 3.4.1)

GOTURN Tracker:這是OpenCV中唯一一深度學(xué)習(xí)為基礎(chǔ)的目標(biāo)檢測(cè)器。它需要額外的模型才能運(yùn)行,本文不詳細(xì)講解。(最低支持OpenCV 3.2.0)

我個(gè)人的建議:

如果追求高準(zhǔn)確度,又能忍受慢一些的速度,那么就用CSRT

如果對(duì)準(zhǔn)確度的要求不苛刻,想追求速度,那么就選KCF

純粹想節(jié)省時(shí)間就用MOSSE

從OpenCV 3開(kāi)始,目標(biāo)檢測(cè)器得到了快速發(fā)展,下表總結(jié)了不同版本的OpenCV中可食用的追蹤器:

開(kāi)始動(dòng)手

想要用OpenCV進(jìn)行目標(biāo)追蹤,首先打開(kāi)一個(gè)新文件,將它命名為opencv_object_tracker.py,然后插入以下代碼:

我們開(kāi)始輸入必須的安裝包,確保你已經(jīng)安裝了OpenCV(我推薦3.4以上的版本),其次你要安裝imutils:

輸入安裝包后,我們開(kāi)始分析命令行參數(shù):

我們的命令行參數(shù)包括:

--video:到達(dá)輸入視頻文件的替代路線。如果該參數(shù)失效,那么腳本將會(huì)使用你的網(wǎng)絡(luò)攝像頭。

--tracker:假設(shè)默認(rèn)追蹤器設(shè)置的是kcf,一整列可能的追蹤器代碼表示下一個(gè)代碼塊或下方的部分。

讓我們處理追蹤器的不同類(lèi)別:

圖2中我們提到,并不是所有追蹤器都使用OpenCV 3以上的版本。在3.3版本上,同樣發(fā)生了安裝上的變化,在3.3之前,追蹤器必須用cv2. Tracker_create創(chuàng)造,并且要在追蹤器的名字上用大寫(xiě)字符串標(biāo)注(22和23行)。

對(duì)于3.3以上的版本,每個(gè)追蹤器可以用各自的函數(shù)創(chuàng)造,如cv2. TrackerKCF_create。詞典OPENCV_OBJECT_TRACKERS包含了7種OpenCV的目標(biāo)追蹤器(30—38行)。它將目標(biāo)追蹤器的命令行參數(shù)字符串映射到實(shí)際的OpenCV追蹤器函數(shù)上。

其中42行里的tracker目的是根據(jù)追蹤器命令行參數(shù)以及從OPENCV_OBJECT_TRACKERS得來(lái)的相關(guān)重要信息。

注意:這里我沒(méi)有將GOTURN加入到追蹤器設(shè)置中因?yàn)樗€需要額外的模型文件。

我們還對(duì)initBB進(jìn)行初始化(46行),當(dāng)我們用鼠標(biāo)選中目標(biāo)物體時(shí),該變量會(huì)顯示目標(biāo)物體的邊界框坐標(biāo)。

接下來(lái),讓我們對(duì)視頻流和FPS進(jìn)行初始化:

49—52行是訪問(wèn)網(wǎng)絡(luò)攝像頭的步驟,這里我們?cè)O(shè)定一個(gè)一秒鐘的暫停時(shí)間,好讓攝像頭傳感器進(jìn)行“熱身”。

接著--video命令行參數(shù)會(huì)出現(xiàn),所以我們可以從視頻文件中對(duì)視頻流進(jìn)行初始化(55—56行)。

下面是從視頻流中進(jìn)行幀數(shù)迭代循環(huán)的步驟:

在65和66行中我們提取一個(gè)frame,同時(shí)在69和70行處理視頻文件中沒(méi)有幀數(shù)的情況。

為了讓我們的算法處理幀數(shù)的速度更快,我們用resize將輸入的視頻幀調(diào)整為50像素(74行),這里處理的數(shù)據(jù)越少,速度就會(huì)越快。

之后,我們提取視頻幀的寬度和高度,之后我們會(huì)用到高度(75行)。

目標(biāo)物體選定之后,我們就可以用以下代碼進(jìn)行處理:

如果目標(biāo)物體已經(jīng)被選定,我們需要不斷更新目標(biāo)物體的位置,為了做到這一點(diǎn),我們?cè)?0行使用update方法,它會(huì)定位目標(biāo)物體的新位置并且返回一個(gè)success和box值。

如果順利的話,我們可以在frame中得到更新后的邊界框位置。注意,追蹤器可能會(huì)跟丟目標(biāo)物并且報(bào)錯(cuò),所以success可能不會(huì)一直是True。接著更新FPS估計(jì)器。

接著,讓我們展示一下frame,以及用鼠標(biāo)選取目標(biāo)物體:

我們將展示frame,并且繼續(xù)迭代循環(huán),鍵入其他指令才會(huì)停止。

當(dāng)鍵入“s”后,我們用cv2.selectROI“選擇”一個(gè)目標(biāo)ROI。這一函數(shù)可以讓你在視頻暫停的時(shí)候手動(dòng)選擇一個(gè)ROI:

用戶(hù)必須畫(huà)出邊界框后按回車(chē)或空格鍵來(lái)確定所選區(qū)域。如果你需要重新選擇,就按“ESCAPE”鍵。

同樣,我們還能用真實(shí)的目標(biāo)探測(cè)器來(lái)進(jìn)行手動(dòng)選擇。

最后,如果視頻有更多的幀,或者出現(xiàn)了“quit”的情況,如何退出這一循環(huán):

最后一個(gè)模塊展示了我們?nèi)绾瓮V寡h(huán),這時(shí)所有的指標(biāo)都輸出并且窗口關(guān)閉。

目標(biāo)追蹤結(jié)果

提示:為了確保你跟上本文的進(jìn)度,并且用到了文章中的OpenCV方法,請(qǐng)先確保你在“下載資料”中下載了代碼和視頻。

之后,打開(kāi)一個(gè)終端并執(zhí)行以下命令:

如果你下載了本教程的源代碼和視頻,那么--video的可用參數(shù)在以下文件中:

american_pharoah.mp4

dashcam_boston.mp4

drone.mp4

nascar_01.mp4

nascar_02.mp4

race.mp4

……

--tracker中的參數(shù)在:

csrt

kcf

boosting

mil

tld

medianflow

mosse

你也可以用計(jì)算機(jī)的攝像頭:

下面的實(shí)例會(huì)展示OpenCV的追蹤器如何在較長(zhǎng)一段時(shí)間中進(jìn)行追蹤,以及與短時(shí)間片段進(jìn)行對(duì)比:

總結(jié)

這篇文章講解了如何用OpenCV進(jìn)行目標(biāo)物體追蹤。具體來(lái)說(shuō),我們回顧了庫(kù)里的八種算法:

CSRF

KCF

Boosting

MIL

TLD

MedianFlow

MOSSE

GOTURN

我們可以將OpenCV的這八種追蹤器用于不同的任務(wù),包括短跑比賽、賽馬、賽車(chē)、無(wú)人機(jī)追蹤等高速視頻上。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8499

    瀏覽量

    134394
  • 追蹤算法
    +關(guān)注

    關(guān)注

    2

    文章

    9

    瀏覽量

    7699
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42699

原文標(biāo)題:用OpenCV實(shí)現(xiàn)八種不同的目標(biāo)跟蹤算法

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    仿人足球機(jī)器人目標(biāo)定位技術(shù)與追蹤算法改進(jìn)

    移動(dòng)機(jī)器人視覺(jué)的研究主要集中在顏色模型建立、目標(biāo)識(shí)別、定位以及跟蹤等方面。目標(biāo)的實(shí)時(shí)識(shí)別與定位是足球機(jī)器人在足球賽中精確踢球的前提。文章主要是針對(duì)目前足球機(jī)器人在視覺(jué)系統(tǒng)所存在的問(wèn)題進(jìn)行了顏色模型建立及
    發(fā)表于 09-19 11:18 ?2894次閱讀

    基于OPENCV的運(yùn)動(dòng)目標(biāo)跟蹤實(shí)現(xiàn)

    CAMSHIFT算法是一基于顏色直方圖的目標(biāo)跟蹤算法。在視頻跟蹤過(guò)程中,CAMSHIFT算法利用選定
    發(fā)表于 12-23 14:21

    基于FPGA的實(shí)時(shí)移動(dòng)目標(biāo)追蹤

    邊界查找將結(jié)果顯示到lcd顯示屏。 圖2 基于FPGA的移動(dòng)目標(biāo)追蹤系統(tǒng)FPGA部分源碼:結(jié)果展示:圖3 實(shí)驗(yàn)圖1圖4 實(shí)驗(yàn)圖2 圖5 對(duì)6的邊界追蹤圖6 對(duì)圓的邊界跟蹤圖7 對(duì)菱形
    發(fā)表于 08-10 09:15

    基于QT+OpenCv目標(biāo)跟蹤算法實(shí)現(xiàn)

    目標(biāo)跟蹤算法作為一有著非常廣泛的應(yīng)用的算法,在航空航天、智能交通、智能設(shè)備等領(lǐng)域有著非常廣泛的應(yīng)用。本系列博客將教大家在410c開(kāi)發(fā)板
    發(fā)表于 09-21 10:42

    【方案分享】基于C6678+Zynq-7045 的目標(biāo)追蹤視覺(jué)技術(shù)

    GFLOP,算法能力強(qiáng),滿足目標(biāo)追蹤算法要求。ZYNQ Z-7045/7100集成PS端雙核ARM Cortex-A9 + PL端Kintex-7架構(gòu)28nm可編程邏輯資源,ARM主
    發(fā)表于 05-19 17:10

    什么是純追蹤算法?

    什么是純追蹤算法?
    發(fā)表于 11-22 06:08

    移動(dòng)信源追蹤活動(dòng)目標(biāo)的方法

    摘要:無(wú)線網(wǎng)絡(luò)的出現(xiàn)使移動(dòng)追蹤并定位正在運(yùn)動(dòng)的目標(biāo)變?yōu)榭赡?,在多傳感器網(wǎng)絡(luò)中,測(cè)距定位是目標(biāo)定位的一常用手段。利用測(cè)距定位的移動(dòng)追蹤方法,
    發(fā)表于 02-23 13:24 ?38次下載

    基于OPENCV的運(yùn)動(dòng)目標(biāo)跟蹤實(shí)現(xiàn)

    CAMSHIFT算法是一基于顏色直方圖的目標(biāo)跟蹤算法。在視頻跟蹤過(guò)程中,CAMSHIFT算法利用選定
    發(fā)表于 11-07 14:47 ?924次下載
    基于<b class='flag-5'>OPENCV</b>的運(yùn)動(dòng)<b class='flag-5'>目標(biāo)</b>跟蹤實(shí)現(xiàn)

    OpenCV3編程入門(mén)-源碼例程全集-點(diǎn)追蹤

    OpenCV3編程入門(mén)-源碼例程全集-點(diǎn)追蹤
    發(fā)表于 09-18 16:38 ?0次下載

    仿人足球機(jī)器人目標(biāo)定位與追蹤算法改進(jìn)方案免費(fèi)下載

    熱點(diǎn),目標(biāo)的實(shí)時(shí)識(shí)別與定位是足球機(jī)器人在足球賽中精確踢球的前提。文章主要是針對(duì)目前足球機(jī)器人在視覺(jué)系統(tǒng)所存在的問(wèn)題進(jìn)行了顏色模型建立及目標(biāo)定位算法的改進(jìn),加入了
    發(fā)表于 09-21 11:31 ?52次下載

    QT+Opencv粒子濾波算法實(shí)現(xiàn)視頻目標(biāo)跟蹤——(三)QT環(huán)境安裝及配置

    在QT+OpenCV實(shí)現(xiàn)在410c開(kāi)發(fā)板實(shí)現(xiàn)視頻目標(biāo)追蹤預(yù)研系列內(nèi)容呢的前面兩個(gè)博客中已經(jīng)對(duì)目標(biāo)跟蹤
    發(fā)表于 02-23 10:33 ?3199次閱讀

    QT+Opencv粒子濾波算法實(shí)現(xiàn)視頻目標(biāo)跟蹤——如何選擇跟蹤算法

    目標(biāo)跟蹤算法作為一有著非常廣泛的應(yīng)用的算法,在航空航天、智能交通、智能設(shè)備等領(lǐng)域有著非常廣泛的應(yīng)用。本系列博客將教大家在410c開(kāi)發(fā)板
    發(fā)表于 02-27 10:32 ?5575次閱讀
    QT+<b class='flag-5'>Opencv</b>粒子濾波<b class='flag-5'>算法</b>實(shí)現(xiàn)視頻<b class='flag-5'>目標(biāo)</b>跟蹤——如何選擇跟蹤<b class='flag-5'>算法</b>

    使用Adaboost算法實(shí)現(xiàn)車(chē)牌檢測(cè)在OpenCV實(shí)現(xiàn)的研究分析

    AdabtxⅪt是一個(gè)構(gòu)建精確分類(lèi)器的學(xué)習(xí)算法,在目標(biāo)檢測(cè)領(lǐng)域有著廣泛的應(yīng)用。OpenCV是Intel開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)。該文給出了在OpenCV
    發(fā)表于 09-27 17:49 ?7次下載
    使用Adaboost<b class='flag-5'>算法</b>實(shí)現(xiàn)車(chē)牌檢測(cè)在<b class='flag-5'>OpenCV</b><b class='flag-5'>上</b>實(shí)現(xiàn)的研究分析

    基于多智能體協(xié)同強(qiáng)化學(xué)習(xí)的多目標(biāo)追蹤方法

    針對(duì)現(xiàn)有多目標(biāo)追蹤方法通常存在學(xué)習(xí)速度慢、追蹤效率低及協(xié)同追蹤策略設(shè)計(jì)困難等問(wèn)題,提岀一改進(jìn)的多目標(biāo)
    發(fā)表于 03-17 11:08 ?20次下載
    一<b class='flag-5'>種</b>基于多智能體協(xié)同強(qiáng)化學(xué)習(xí)的多<b class='flag-5'>目標(biāo)</b><b class='flag-5'>追蹤</b>方法

    OpenCV不同的目標(biāo)追蹤算法

    分類(lèi)器的任務(wù)是將圖像的矩形區(qū)域分類(lèi)為對(duì)象或背景。分類(lèi)器接受圖像區(qū)域作為輸入,并返回介于0和1之間的分?jǐn)?shù),以指示圖像區(qū)域包含對(duì)象的概率。如果確定圖像區(qū)域是背景,則分?jǐn)?shù)為0;如果確定區(qū)域是對(duì)象,則分?jǐn)?shù)為1。
    的頭像 發(fā)表于 03-30 10:22 ?2213次閱讀