日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

论文笔记:YOLO

發(fā)布時(shí)間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论文笔记:YOLO 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文:You Only Look Once: Unified, Real-Time Object Detection

YOLO

1、四個(gè)問(wèn)題

  • 要解決什么問(wèn)題?

    • 對(duì)于目標(biāo)檢測(cè)任務(wù)來(lái)說(shuō),速度較快的算法性能較弱,然而性能較強(qiáng)的算法(如:R-CNN系列)耗時(shí)則更多,很難達(dá)到實(shí)時(shí)性的要求。
    • 大多數(shù)像RCNN這類(lèi)的算法流程是,第一步先獲取候選區(qū)域(region proposal),接著進(jìn)行后處理(消除重復(fù)框,對(duì)候選框進(jìn)行分類(lèi)等等)。這樣的操作往往很慢也很難優(yōu)化,因?yàn)槊總€(gè)獨(dú)立的模塊都要單獨(dú)訓(xùn)練,實(shí)時(shí)性要求也達(dá)不到。
  • 用了什么方法解決?

    • 將目標(biāo)檢測(cè)直接轉(zhuǎn)換為一個(gè)回歸問(wèn)題,直接使用一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)候選框和物體類(lèi)別。
  • 效果如何?

    • YOLO網(wǎng)絡(luò)的速度有很大提高。

    • 基本的YOLO網(wǎng)絡(luò)可以做到45FPS。

    • 對(duì)于較小的Fast YOLO模型,幀數(shù)可以達(dá)到155FPS,且相比于其他實(shí)時(shí)檢測(cè)模型效果更好。

    • 對(duì)背景的分類(lèi)錯(cuò)誤少了很多。

  • 還存在什么問(wèn)題?

    • YOLO在準(zhǔn)確率上還比不過(guò)state-of-the-art的模型。
    • 與R-CNN系列相比,候選框的預(yù)測(cè)有較大誤差,且對(duì)新數(shù)據(jù)的泛化能力較弱。
    • 對(duì)于數(shù)量較多的小物體,如一群小鳥(niǎo),識(shí)別效果不好。
  • 2、論文概述

    2.1、總體框架

  • 將輸入縮放為448×448448 \times 448448×448的圖像。
  • 把圖像送入CNN,跑一次前向,計(jì)算得到(邊界框和物體類(lèi)別的預(yù)測(cè))。
  • 通過(guò)每個(gè)邊界框的configdence篩選邊界框,使用NMS去除重復(fù)的框。
  • 2.2、統(tǒng)一檢測(cè)(Unified Detection)

    • 將輸入圖像劃分為S×SS \times SS×S個(gè)單元格(grid cell)。如果某個(gè)物體的中心在某個(gè)單元格內(nèi),那么那個(gè)單元格就負(fù)責(zé)檢測(cè)那個(gè)物體。
    • 每個(gè)單元格(grid cell)要預(yù)測(cè)BBB個(gè)bounding box,每個(gè)bounding box除了要預(yù)測(cè)框的位置外,還要預(yù)測(cè)一個(gè)置信率(confidence)。具體來(lái)說(shuō),每個(gè)bounding box包含5個(gè)預(yù)測(cè)值:xxxyyywwwhhh和置信率(confidence)。
      • (x,y)(x, y)(x,y)表示的是預(yù)測(cè)的bounding box的中心點(diǎn)坐標(biāo)。
      • wwwhhh表示的是bounding box的寬和高。
      • confidence包含了兩重信息:
      • 有多確信這個(gè)單元格(grid cell)內(nèi)有物體?
      • 預(yù)測(cè)的bounding box有多精確?
      • 計(jì)算公式:Pr(object)?IOUpredtruthPr(object) * IOU_{pred}^{truth}Pr(object)?IOUpredtruth?
        • 如果這個(gè)單元格內(nèi)有物體,則Pr(object)Pr(object)Pr(object)取1,否則取0。
        • IOUpredtruthIOU_{pred}^{truth}IOUpredtruth?表示的是預(yù)測(cè)的bounding box與ground truth之間的重疊比例,它這里用的是intersection over union (IOU) 這個(gè)指標(biāo)。
    • 每個(gè)grid cell還需要預(yù)測(cè)CCC個(gè)類(lèi)的輸出,即預(yù)測(cè)為哪個(gè)類(lèi)的輸出,使用one-hot編碼。
    • 整體來(lái)看,總共S×SS \times SS×S個(gè)grid cell,每個(gè)grid要預(yù)測(cè)BBB個(gè)bounding box和CCC個(gè)類(lèi)的輸出。網(wǎng)絡(luò)的輸出定義為一個(gè)長(zhǎng)度為S×S×(B?5+C)S \times S \times ( B * 5 + C)S×S×(B?5+C)的張量。

    2.3、網(wǎng)絡(luò)結(jié)構(gòu)

    • 網(wǎng)絡(luò)結(jié)構(gòu)如下:

    2.4、訓(xùn)練

    • 先在ImageNet上對(duì)前20個(gè)卷積層接上一個(gè)平均池化層和全連接層進(jìn)行預(yù)訓(xùn)練。
    • 隨后保留那20個(gè)卷積層,再加上4個(gè)新的卷積層和2個(gè)全連接層,新加的層使用隨機(jī)權(quán)重初始化。
    • 由于還需要對(duì)細(xì)粒度視覺(jué)信息進(jìn)行分類(lèi),故將輸入圖片的分辨率調(diào)整為448×448448 \times 448448×448(原始分辨率為224×224224 \times 224224×224)。
    • bounding box預(yù)測(cè)的中心點(diǎn)坐標(biāo)xxxyyy用對(duì)應(yīng)網(wǎng)格的偏移歸一化到0-1之間;bounding box預(yù)測(cè)的寬高w和h用整幅圖像的寬高歸一化到0-1之間。
    • 網(wǎng)絡(luò)中使用leaky ReLU替代ReLU。
    • 在計(jì)算loss時(shí),作者最初全部采用了平方和誤差 (sum-squared loss)。
      • 采用平方和誤差的原因是,它很容易優(yōu)化。
      • 然而,也存在幾個(gè)問(wèn)題:
      • 將分類(lèi)誤差和定位誤差看做同等重要顯然是不靠譜的。
      • 另外在一幅圖像中,大多數(shù)網(wǎng)格不含有任何對(duì)象。這會(huì)將這些單元格的置信率(confidence)推為0,由于數(shù)量眾多,很可能會(huì)掩蓋掉含有目標(biāo)的單元格反向傳播回來(lái)的梯度。結(jié)果就是導(dǎo)致模型不穩(wěn)定,甚至發(fā)散。
    • 為了解決前面提到的問(wèn)題,作者提出了以下方法:
    • 更加重視定位的預(yù)測(cè)結(jié)果,給localization的loss部分賦予了更大的權(quán)重,λcoord=5\lambda_{coord}=5λcoord?=5
    • 沒(méi)有對(duì)象的單元格得到的confidence的loss,沒(méi)有那么重要,就賦予較小的權(quán)重,λnoobj?0.5\lambda_{noobj}-0.5λnoobj??0.5
    • 對(duì)于不同大小的box,如果是較大的box,預(yù)測(cè)得稍微偏了一點(diǎn),影響不是很大,也基本看不出來(lái);但如果是較小的box,預(yù)測(cè)得稍微偏一點(diǎn),影響就比較大了,誤差也很明顯。為此,作者采用了一個(gè)比較投機(jī)取巧的辦法,那就是對(duì)width和height取平方根。
      • 如下圖所示,可以看出,在y=xy=\sqrt{x}y=x?上取兩個(gè)鄰近的點(diǎn)做差值。如果值比較小,y=xy=\sqrt{x}y=x?在較小的地方變化率相對(duì)更大,那么這個(gè)差值也會(huì)更大一些。這樣子反應(yīng)到loss上,就是在較小的box上小偏差會(huì)造成更大的loss,而較大的box上小偏差得到的loss則沒(méi)那么大。
    • YOLO每個(gè)網(wǎng)格單元預(yù)測(cè)多個(gè)邊界框。在訓(xùn)練時(shí),每個(gè)目標(biāo)我們只需要一個(gè)邊界框預(yù)測(cè)器來(lái)負(fù)責(zé)。我們指定一個(gè)預(yù)測(cè)器“負(fù)責(zé)”根據(jù)哪個(gè)預(yù)測(cè)與真實(shí)值之間具有當(dāng)前最高的IOU來(lái)預(yù)測(cè)目標(biāo)。這導(dǎo)致邊界框預(yù)測(cè)器之間的專(zhuān)業(yè)化。每個(gè)預(yù)測(cè)器可以更好地預(yù)測(cè)特定大小,方向角,或目標(biāo)的類(lèi)別,從而改善整體召回率。

    • loss函數(shù)完整形式:
      • 1iobj\mathbb{1}_{i}^{obj}1iobj?表示目標(biāo)是否出現(xiàn)在網(wǎng)格單元iii中 ,1ijobj\mathbb{1}_{ij}^{obj}1ijobj?表示網(wǎng)格單元iii中的第jjj個(gè)邊界框預(yù)測(cè)器“負(fù)責(zé)”該預(yù)測(cè)。
      • 這個(gè)loss中,只有當(dāng)某個(gè)單元格中有對(duì)象的時(shí)候才會(huì)計(jì)入分類(lèi)錯(cuò)誤,即對(duì)分類(lèi)錯(cuò)誤進(jìn)行懲罰。
      • 只有當(dāng)某個(gè) box predictor 對(duì)某個(gè) ground truth box 負(fù)責(zé)的時(shí)候,才會(huì)對(duì) box 的 coordinate error 進(jìn)行懲罰,而對(duì)哪個(gè) ground truth box 負(fù)責(zé)就看其預(yù)測(cè)值和 ground truth box 的 IoU 是不是在那個(gè) cell 的所有 box 中最大的。

    2.5、推斷(測(cè)試)

    • 對(duì)于每張圖片,使用如下評(píng)分公式獲取每個(gè)bounding box對(duì)應(yīng)不同類(lèi)的confidence結(jié)果,即class-specific confidence scores :

    Pr(Classi∣Object)?Pr(Object)?IOUpredtruth=Pr(Classi)?IOUpredtruthPr(Class_i | Object) * Pr(Object) * IOU_{pred}^{truth} = Pr(Class_i) * IOU_{pred}^{truth}Pr(Classi?Object)?Pr(Object)?IOUpredtruth?=Pr(Classi?)?IOUpredtruth?

    • Pr(Object)?IOUpredtruthPr(Object) * IOU_{pred}^{truth}Pr(Object)?IOUpredtruth?就是每個(gè)bounding box的confidence。
    • Pr(Classi∣Object)Pr(Class_i | Object)Pr(Classi?Object)為分類(lèi)結(jié)果。
    • 基于class-specific confidence scores設(shè)置閾值篩選bounding box,最后再使用非極大抑制(NMS)去除重疊的框。

    2.6、資料推薦

  • 從YOLOv1到Y(jié)OLOv3,目標(biāo)檢測(cè)的進(jìn)化之路
  • YOLO論文翻譯——中文版
  • You Only Look Once: Unified, Real-Time Object Detection
  • 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的论文笔记:YOLO的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。