日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

本文作者: AI研習(xí)社-譯站 2018-06-05 14:08
導(dǎo)語(yǔ):直接使用 Python、OpenCV、以及 TensorFlow 來(lái)檢測(cè)視頻中的目標(biāo)

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原文 Detecting Pikachu in videos using Tensorflow Object Detection ,作者 Juan De Dios Santos。

翻譯 | 于志鵬   整理 | 吳璇

在 TensorFlow 眾多功能和工具中,有一個(gè)名為 TensorFlow 目標(biāo)檢測(cè) API 的組件。這個(gè)庫(kù)的功能正如它的名字,是用來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)檢測(cè)視頻幀中目標(biāo)的能力,比如,一副圖像。

需要查看我之前的工作的話(huà),點(diǎn)擊這里,我解釋了在安卓設(shè)備上采用 TensorFlow 識(shí)別皮卡丘的整個(gè)過(guò)程。此外,我也介紹了這個(gè)庫(kù)和它的不同架構(gòu)及其各自特點(diǎn),以及演示如何使用 TensorBoard 評(píng)估訓(xùn)練過(guò)程。

數(shù)月之后,我開(kāi)始著手優(yōu)化我之前訓(xùn)練的檢測(cè)比卡丘的模型,目的是直接使用 Python、OpenCV、以及 TensorFlow 來(lái)檢測(cè)視頻中的目標(biāo)。源代碼可以從我的 GitHub 中獲取。

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

比卡丘

這篇文章就是解釋我所使用的步驟。首先,我會(huì)描述我在最初的模型中發(fā)現(xiàn)的問(wèn)題,以及我是如何優(yōu)化的。然后,我會(huì)講解如何使用這個(gè)新的經(jīng)過(guò)優(yōu)化的模型,我組建了一個(gè)視頻檢測(cè)系統(tǒng)。最后,你將會(huì)看到兩段檢測(cè)多個(gè)比卡丘的視頻。

但開(kāi)始之前,這里有一個(gè)簡(jiǎn)短的 gif,顯示了一些快速檢測(cè)。

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

比卡丘被檢測(cè)到

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

這就是比卡丘

模型優(yōu)化

如上面所述,在以前的工作中,我對(duì)比卡丘檢測(cè)模型做了初始的訓(xùn)練,這個(gè)模型的目的是在安卓設(shè)備或 Python notebook 上進(jìn)行皮卡丘檢測(cè)。然而,我對(duì)這個(gè)模型的性能并不安全滿(mǎn)意,這促使我優(yōu)化這個(gè)系統(tǒng),因此,寫(xiě)下了這篇文章。

我當(dāng)時(shí)主要關(guān)心的是用于構(gòu)建這個(gè)系統(tǒng)的比卡丘數(shù)量,230 個(gè)。其中 70% 用于訓(xùn)練,而剩余 30% 用于測(cè)試。所以,用于訓(xùn)練的數(shù)量不多,雖然這在技術(shù)上不是問(wèn)題(因?yàn)槟P褪窃趫?zhí)行「okayish」),但我在訓(xùn)練集里增加了 70 張圖片(總數(shù)依然不是很多,不過(guò)總比沒(méi)有要好)。

結(jié)果是,由于我現(xiàn)在擁有更多的圖片,我不得不擴(kuò)展這個(gè)模型的訓(xùn)練,而不是從零開(kāi)始。我使用了早期模型的訓(xùn)練檢查點(diǎn),然后從檢查點(diǎn)開(kāi)始繼續(xù)進(jìn)行;前者訓(xùn)練了 15000 次,而新的則訓(xùn)練了 20000 次。下面兩幅圖表顯示了總體的損失和精度 (從 TensorBoard 中獲得);很明顯,從 15000 次到 20000 次沒(méi)有太多改變(特別是在損失方面)。


用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

損失

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

精度

我做的最后一個(gè)(也是小的)修正是修改了 Android 應(yīng)用的檢測(cè)閾值。默認(rèn)值是 0.6,增加到 0.85。

這個(gè)優(yōu)化改變了什么嗎? 即使將我的確認(rèn)偏差放在一邊,我也會(huì)說(shuō),是的。我注意到了一個(gè)細(xì)小的優(yōu)化。我注意到的最大變化是,Android 應(yīng)用中誤報(bào)的數(shù)量有所減少,因?yàn)槟切┪矬w看起來(lái)像黃色的斑點(diǎn);當(dāng)然,這可能也是因?yàn)殚撝翟黾恿恕?/p>

現(xiàn)在,使用最新的和優(yōu)化后的模型,在視頻中檢測(cè)比卡丘。繼續(xù)之前,我需要說(shuō)明,我將忽略模型凍結(jié)和導(dǎo)入的整個(gè)過(guò)程,因?yàn)槲抑暗墓ぷ髦幸炎隽私獯稹?/p>

從視頻中檢測(cè)

從視頻中進(jìn)行目標(biāo)檢測(cè)并不像聽(tīng)到的那么困難或奇特。從外行角度,我們可以講視頻是一組按順序排列的圖像,所以從視頻中進(jìn)行目標(biāo)檢測(cè)和在正常圖像中進(jìn)行檢測(cè)是非常相似的。為什么非常相似?好吧,由于視頻的性質(zhì),在將視頻輸入檢測(cè)模型之前,視頻幀的處理和準(zhǔn)備需要多個(gè)步驟。我將在下面的章節(jié)中將對(duì)此做出解釋?zhuān)硗庠诮忉屜聶z測(cè)過(guò)程,以及如何創(chuàng)建一個(gè)新的視頻來(lái)顯示它們。

我的大部分代碼都是基于 TensorFlow 目標(biāo)檢測(cè) repo 提供的 Python notebook 實(shí)現(xiàn)的。這些代碼完成了大部分困難的工作,因?yàn)樗ê芏喙δ?,可以?jiǎn)化檢測(cè)過(guò)程。我建議你可以看下我的 Script,并作為你閱讀下面這幾個(gè)段落的指導(dǎo)。

從高層視角看,這段代碼包括三個(gè)主要任務(wù):

加載資源

首先,必須加載凍結(jié)的模型、數(shù)據(jù)標(biāo)簽和視頻。為簡(jiǎn)單起見(jiàn),我推薦了一個(gè)簡(jiǎn)短、中等大小的視頻,因?yàn)樘幚硗暾侩娪靶枰芏鄷r(shí)間。

遍歷視頻

這個(gè)腳本的主要功能是基于一個(gè)循環(huán),遍歷視頻的每一幀。每次遍歷過(guò)程中,讀取幀,并改變其色彩空間。接著,執(zhí)行實(shí)際檢測(cè)過(guò)程,就是尋找所有那些漂亮的黃色皮卡丘。結(jié)果是,返回皮卡丘所在位置的邊界坐標(biāo)(如果找到的話(huà))和檢測(cè)結(jié)果的置信度。隨后,只要置信度高于給定的閾值,將會(huì)創(chuàng)建一個(gè)視頻幀的副本,其中包含了皮卡丘位置的邊界框。對(duì)于這個(gè)項(xiàng)目,我設(shè)置的置信度閾值非常低,20%,因?yàn)槲野l(fā)現(xiàn)檢測(cè)誤報(bào)數(shù)很低,所以決定冒性能的風(fēng)險(xiǎn)來(lái)檢測(cè)到更多的皮卡丘。

創(chuàng)建新的視頻

在前面的步驟中,使用新創(chuàng)建的幀副本重新組成一個(gè)新的視頻,這些幀攜帶了檢測(cè)的邊界框。為創(chuàng)建這個(gè)視頻,需要用到 VideoWriter 對(duì)象,每次遍歷時(shí),幀的副本都會(huì)被寫(xiě)入這個(gè)對(duì)象(不含聲音)。

結(jié)果和討論

這兩個(gè)視頻顯示了模型的運(yùn)行過(guò)程:

第一個(gè)視頻的檢測(cè)非常好。盡管皮卡丘在整個(gè)視頻中一直舉著番茄醬瓶子,在大多數(shù)場(chǎng)景中這個(gè)模型都能探測(cè)到。另一方面,在時(shí)間 0:22 時(shí)有一個(gè)沒(méi)有被檢測(cè)到,此外,「大鐮刀」(綠螳螂的樣子)打碎了番茄醬瓶的鏡頭(0:40 到 0:44)是誤報(bào)。

在第二個(gè)視頻上,這個(gè)模型的性能并沒(méi)有在第一個(gè)視頻上表現(xiàn)的那么好,主要問(wèn)題是視頻中出現(xiàn)了兩個(gè)皮卡丘的場(chǎng)景。這種情況下,模型貌似將兩個(gè)皮卡丘作為一個(gè)來(lái)檢測(cè),而不是分別檢測(cè)。一個(gè)明顯的例子是在 0:13 的時(shí)候,兩個(gè)皮卡丘在互相拍打 (悲傷的場(chǎng)景 :(,我知道)。

總結(jié)與回顧

在這篇文章中,我介紹了如何使用 TensorFlow 目標(biāo)檢測(cè)庫(kù)在視頻中檢測(cè)比卡丘。文章開(kāi)頭,介紹了一些我之前的工作,使用模型的早期版本在安卓設(shè)備上進(jìn)行目標(biāo)檢測(cè)。至于模型,盡管它做了該做的工作,但也有一些我想要解決的問(wèn)題;這些優(yōu)化使我完成了這個(gè)項(xiàng)目并建立了一個(gè)用于視頻的檢測(cè)模型。

新的模型如預(yù)想的那樣工作。當(dāng)然,或多或少也有一些不足之處,導(dǎo)致誤判,或者沒(méi)有檢測(cè)到比卡丘,但模型還是完成了它應(yīng)該做的工作。作為以后的工作方向,我會(huì)為訓(xùn)練集合增加更多不同角度的比卡丘圖像。例如,側(cè)視和后視圖像,增加數(shù)據(jù)的多樣性,以獲得優(yōu)異的性能。

感謝閱讀。我希望這篇指導(dǎo)文章對(duì)你能有所幫助。

來(lái)源 https://towardsdatascience.com/detecting-pikachu-in-videos-using-tensorflow-object-detection-cd872ac42c1d

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

用 TensorFlow 目標(biāo)檢測(cè) API 發(fā)現(xiàn)皮卡丘!

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)