CV案例解析:YOLO——從v1到v5

?作者 | 小欣

目標(biāo)檢測一直是計算機視覺的熱門領(lǐng)域击孩,它也具有豐富的應(yīng)用場景移怯,從無人駕駛到缺陷檢測等等硕勿。

在YOLO誕生之前替梨,目標(biāo)檢測領(lǐng)域熱門的深度學(xué)習(xí)模型是R-CNN系列模型,這一類的模型被稱之為二階段模型(two-stage)螟蝙,其大致思路就是先找出可能含有物體的區(qū)域恢恼,進而再細(xì)致的找出這片區(qū)域內(nèi)的物體是什么,在哪個位置胶逢。

這一類模型的特點就是準(zhǔn)確率較高厅瞎,但是速度較慢,難以做到實時檢測初坠。而這時候,YOLO V1應(yīng)運而生彭雾,它的特點就是速度快碟刺,在犧牲部分模型性能的情況下,能做到實時檢測薯酝。

YOLO直接從圖片中去尋找可能存在物體的位置半沽,因此也被稱為單階段模型(one-stage) 。

要想透徹了解YOLO系列模型的運行原理吴菠,需要從V1版本開始講起者填,看作者如何迭代更新,一步步改良YOLO做葵,在這個學(xué)習(xí)過程中占哟,也能學(xué)到很多相關(guān)的目標(biāo)檢測知識。

YOLO V1

01 思路

YOLO V1發(fā)表在2016年酿矢,其作者是Joseph Redmon榨乎。YOLO V1的想法很樸素,但也很有效瘫筐。

簡單地說蜜暑,它將一張圖分成個網(wǎng)格,假設(shè)策肝,即它將一張圖分成了49個網(wǎng)格肛捍,不難想象隐绵,原圖中每個物體的中心都在其中一個網(wǎng)格中。

因此拙毫,只需要讓每個網(wǎng)格負(fù)責(zé)預(yù)測中心點落在當(dāng)前網(wǎng)格中的物體氢橙。這在訓(xùn)練的時候是很容易辦到的,因為我們已知每個物體的坐標(biāo)恬偷。

通過這樣的思想悍手,作者構(gòu)建出了一個端對端、且非常高效的模型袍患,并在其基礎(chǔ)上坦康,不斷進行改進,提出了后續(xù)的V2,V3等诡延。

如下圖所示滞欠,只需要三步,YOLO就可以得到較好的預(yù)測結(jié)果肆良。

02 網(wǎng)絡(luò)設(shè)計

接下來我們開始詳細(xì)介紹YOLO V1的流程筛璧。首先,對于任意一張圖片惹恃,YOLO首先將它resize成448X448大小的尺寸夭谤,將其傳入CNN模型中,進行提取特征巫糙,其具體結(jié)構(gòu)如下圖所示朗儒,這里假設(shè)每個網(wǎng)格都配備兩個預(yù)測框,也就是每個網(wǎng)格需要預(yù)測兩個bbox参淹。

內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)類似于VGGNet醉锄,比較簡單,包含卷積層浙值,下采樣層等恳不,直到最后一步,得到一個7X7X1024的特征圖开呐。

可以想象烟勋,該特征圖一個像素,應(yīng)該包含了原圖較大范圍內(nèi)的信息负蚊,這時將最后的特征圖拉直變成一維向量神妹,通過全連接層將維度依次降為4094,1470維家妆,將最后的1470維的一維向量reshape成7X7X30鸵荠,即為最后的輸出。

我們最后得到的7X7X30輸出伤极,是和下圖左邊的網(wǎng)格圖對應(yīng)的蛹找,每一個網(wǎng)格對應(yīng)一個1X1X30的輸出姨伤。

這個1X1X30的輸出同樣有學(xué)問,它的前面十個數(shù)值對應(yīng)兩個預(yù)測框的中心點坐標(biāo)庸疾,長乍楚,寬和置信度(x,y,h,w,conf),因為我們前面假設(shè)的是一個網(wǎng)格配置兩個預(yù)測框届慈,所以有10個數(shù)值徒溪,如果配置更多的話,相應(yīng)的維度也會增加金顿。

而它的后20個值對應(yīng)的是類別概率臊泌,假設(shè)我們這邊預(yù)? 測總共有20個類別,但是這樣的做法揍拆,實際上也是YOLO V1的缺點渠概,因為一個網(wǎng)格它實際上只能預(yù)測一個物體,它的類別由輸出的后20個通道決定嫂拴,bbox由前10個通道中的置信度高的bbox決定播揪。

如果輸入圖是一張有小目標(biāo)的圖像,一個網(wǎng)格有若干個物體筒狠,那YOLO V1只能找出網(wǎng)格中的一個猪狈,這一點會在后面的版本進行改進。

另外值得一提的是窟蓝,YOLO中的bbox的格式是(x,y,w,h)罪裹,也就是給bbox的中心點坐標(biāo)和長寬,為了方便訓(xùn)練运挫,這四個值都是要做標(biāo)準(zhǔn)化處理,也就是除以原圖的尺寸套耕,它們的取值都是在0~1之間谁帕。

還需要注意的是,模型給出的輸出(x,y)是相對于所在網(wǎng)格左上角坐標(biāo)的偏移量冯袍,它的值在0~1之間匈挖,所以我們得到的(x,y)的坐標(biāo)還要加上網(wǎng)格左上角坐標(biāo)才是真正的bbox的坐標(biāo)位置,至于bbox的長寬康愤,也是在0~1之間的儡循,但它們就不是偏移量了,是直接預(yù)測得到的征冷,這種方式也被稱為anchor-free方法择膝,即不需要預(yù)先給定bbox的尺寸。

這一點在R-CNN系列中不是這樣的检激,R-CNN系列中肴捉,學(xué)到的(x,y,w,h)都是偏移量腹侣,它們是由先驗框進行指導(dǎo)的,事實上這也是YOLO V2的改進之一齿穗,憑空生成的anchor不如有先驗知識的anchor準(zhǔn)確傲隶,這在之后的版本中也進行了改進。

03 損失函數(shù)

要想知道YOLO V1是怎么學(xué)習(xí)的窃页,還需要知道它的損失函數(shù)是怎么設(shè)計的跺株,了解V1的損失函數(shù),有助于了解后面的YOLO系列脖卖。

分別代表網(wǎng)格內(nèi)有無物體時的示性函數(shù)乒省,損失函數(shù)的第一項相當(dāng)于做的是對bbox的中心點坐標(biāo)的平方誤差,容易理解胚嘲。

而第二項是bbox的長寬作儿,它是相當(dāng)于做了開根之后在進行計算平方誤差,之所以這么做是為了讓小目標(biāo)的物體的長寬預(yù)測更準(zhǔn)一些馋劈,假設(shè)長寬的誤差是0.1攻锰,對大物體來說可能不值一提,但是對于小物體來說妓雾,可能這個誤差就比較致命了娶吞,對于0-1之間的數(shù)值做開根運算,得到的數(shù)值是會變大的械姻,有助于預(yù)測妒蛇。

第三項和第四項針對的是不同框的置信度,因為YOLO V1中楷拳,一個網(wǎng)格只預(yù)測一個物體绣夺,所以置信度高的被認(rèn)為含有物體,低的被預(yù)測為不含物體欢揖。

另外需要注意的是陶耍,這兩項前面有一個系數(shù)

前者取5,后者取0.5她混,因為我們更關(guān)注有物體的bbox烈钞,但也不能完全忽視不含物體的bbox;而最后一項是計算當(dāng)前網(wǎng)格所屬類別的坤按,實際上也能使用交叉熵毯欣,但是作者為了建立一個統(tǒng)一的框架,采用了回歸的計算方法臭脓,這樣整個損失函數(shù)都是回歸形式的酗钞,更加的和諧統(tǒng)一。

04 置信度介紹

在前面筆者提到了若干次置信度的概念,這一概念直觀上給人的感受是可信度或者概率算吩,實際上它包含的信息更豐富留凭,在這里進行具體的講解。

置信度包含兩方面的含義偎巢,一個是bbox含有目標(biāo)的可能性蔼夜,另一個是這個bbox的準(zhǔn)確率,

前者我們將其記為

當(dāng)邊界框包含物體時,

不包含時則為0压昼;

bbox的準(zhǔn)確度可以用IOU這一指標(biāo)進行表示求冷,記為

因此置信度可以定義為

在訓(xùn)練時,對于不含物體的bbox窍霞,它們的置信度就0匠题,反之則為1,然后與預(yù)測的置信度一起計算loss但金;

在測試階段韭山,置信度是直接生成的,可以理解成已知該區(qū)域有物體的條件下冷溃,是何類別的概率钱磅。

05 網(wǎng)絡(luò)預(yù)測

以上介紹了模型的流程,實際上也介紹了它的訓(xùn)練過程似枕,接下來再介紹它的測試流程盖淡。

測試流程與訓(xùn)練流程有一些不一樣,因為此時我們不知道哪些網(wǎng)格中有物體凿歼,對于輸出的bbox褪迟,我們需要采用NMS的算法刪除冗余的bbox,留下正確的bbox答憔。

NMS算法的流程如下:首先從所有的檢測框中找到置信度? 最大的那個框味赃,然后挨個計算其與剩余框的IOU,如果其值大于一定閾值(重合度過高)虐拓,那么就將該框剔除洁桌;然后對剩余的檢測框重復(fù)上述過程,直到處理完所有的檢測框侯嘀。

我們來介紹它是怎么使用NMS算法的。

因為我們對一個網(wǎng)格要預(yù)測兩個bbox谱轨,所以最后我們能得到個7X7X2=98個bbox戒幔。

首先,將這 98個bbox中置信度低的框去掉土童,然后再根據(jù)置信度對剩下的bbox排序诗茎,使用NMS算法,把重復(fù)度高的框的置信度設(shè)為0。

對于留下的框敢订,再根據(jù)分類概率得到它們的類別王污,這里注意得到的框的大小都是相對于原圖大小的,都是0-1之間的值楚午,所以輸出的時候還需要還原昭齐,才能得到真實的bbox的尺寸大小。

06 模型缺點

● 使用全連接層矾柜,參數(shù)量巨大阱驾,而且也因此在檢測時,YOLO 訓(xùn)練模型只支持與訓(xùn)練圖像相同的輸入分辨率怪蔑。

● 一個網(wǎng)格只能預(yù)測一個物體里覆。

● anchor-free的方法沒有anchor-based的準(zhǔn)確。

● 對小目標(biāo)物體的檢測能力有限缆瓣,且物體檢測的定位準(zhǔn)確性較低喧枷。

以上其實也是YOLO V2的改進之處。

參考資料

[1] https://zhuanlan.zhihu.com/p/32525231

[2] https://arxiv.org/abs/1506.02640

私信我領(lǐng)取目標(biāo)檢測與R-CNN/數(shù)據(jù)分析的應(yīng)用/電商數(shù)據(jù)分析/數(shù)據(jù)分析在醫(yī)療領(lǐng)域的應(yīng)用/NLP學(xué)員項目展示/中文NLP的介紹與實際應(yīng)用/NLP系列直播課/NLP前沿模型訓(xùn)練營等干貨學(xué)習(xí)資源弓坞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隧甚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子昼丑,更是在濱河造成了極大的恐慌呻逆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菩帝,死亡現(xiàn)場離奇詭異咖城,居然都是意外死亡,警方通過查閱死者的電腦和手機呼奢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門宜雀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人握础,你說我怎么就攤上這事辐董。” “怎么了禀综?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵简烘,是天一觀的道長。 經(jīng)常有香客問我定枷,道長孤澎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任欠窒,我火速辦了婚禮覆旭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己型将,他們只是感情好寂祥,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著七兜,像睡著了一般丸凭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惊搏,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天贮乳,我揣著相機與錄音,去河邊找鬼恬惯。 笑死向拆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酪耳。 我是一名探鬼主播浓恳,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碗暗!你這毒婦竟也來了颈将?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤言疗,失蹤者是張志新(化名)和其女友劉穎晴圾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噪奄,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡死姚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了勤篮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片都毒。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碰缔,靈堂內(nèi)的尸體忽然破棺而出账劲,到底是詐尸還是另有隱情,我是刑警寧澤金抡,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布瀑焦,位于F島的核電站,受9級特大地震影響梗肝,放射性物質(zhì)發(fā)生泄漏蝠猬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一统捶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦喘鸟、人聲如沸匆绣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崎淳。三九已至,卻和暖如春愕把,著一層夾襖步出監(jiān)牢的瞬間拣凹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工恨豁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嚣镜,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓橘蜜,卻偏偏與公主長得像菊匿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子计福,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容