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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yolo v1原理

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolo v1原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目標檢測系列文章
yolo v1原理:https://blog.csdn.net/cjnewstar111/article/details/94035842
yolo v2原理:https://blog.csdn.net/cjnewstar111/article/details/94037110
yolo v3原理:https://blog.csdn.net/cjnewstar111/article/details/94037828
SSD原理:https://blog.csdn.net/cjnewstar111/article/details/94038536
FoveaBox:https://blog.csdn.net/cjnewstar111/article/details/94203397
FCOS:https://blog.csdn.net/cjnewstar111/article/details/94021688
FSAF: https://blog.csdn.net/cjnewstar111/article/details/94019687

基本原理

將輸入圖像劃分為S*S(最終feature map的大小)個cell,每一個cell預測B個bounding boxes,以及這些bounding boxes的confidence scores(置信度),以及C個類別概率。由于一個cell只有一組分類概率,所以在yolov1中,一個cell只能預測一個物體。訓練過程中,ground truth的中點落在哪個cell中,那個cell就負責預測這個ground truth框。

網絡結構

摘自論文翻譯:我們的網絡架構受圖像分類模型GoogLeNet的啟發。我們的網絡有24個卷積層,后面是2個全連接層。我們只使用1×1降維層,后面是3×3卷積層,這與Lin等人類似,而不是GoogLeNet使用的Inception模塊。完整的網絡如圖所示。我們還訓練了快速版本的YOLO,旨在推動快速目標檢測的界限。快速YOLO使用具有較少卷積層(9層而不是24層)的神經網絡,在這些層中使用較少的濾波器。除了網絡規模之外,基本版YOLO和快速YOLO的所有訓練和測試參數都是相同的。我們網絡的最終輸出是7×7×30的預測張量。

實現細節:

S*S格的劃分

其實就是看CNN提取特征最后一層的輸出大小。原始論文中輸入是448*448,最后輸出的feature map是7*7(縮小64倍),那么就劃分為7*7的cell。每一個cell最終會產生一個30維的向量(B=2,一個cell產生2個bounding box的坐標位置和置信度,以及20個類別的概率 B(4+1)+20=30)。

正負樣例的選擇

一個cell中有多個bounding box,那么具體是哪個bounding box作為有效的,而其他作為無效的呢?訓練過程中,將每個預測的bounding box和gt求IOU。這個cell中的哪個bounding box與gt的iou大,那么這個bounding box就就是有效的bounding box,作為正樣例(response bounding box)。其他bounding box就作為負樣例(not response bounding box)。(有的資料中需要把iou小于某一個閾值,才作為負樣例。其實區別不大,就是在計算負樣例的置信度loss的時候的數量不一樣而已)

一個cell中有多個gt怎么處理?

這個是yolo v1的缺點,一個cell只有一組概率預測,也就是一個cell只能預測一個物體。所以如果一個cell中有多個gt,那么只能選擇其中的一個用來訓練。

位置信息

位置信息采用歸一化的(X中心,Y中心,寬,高)表示

X中心的歸一化采用相對cell的x軸長度表示。圖中的黃色虛線a/黃色虛線b

Y中心的歸一化采用相對cell的y軸長度表示。圖中的藍色虛線a/藍色虛線b

寬的歸一化表示采用相對原始圖片的寬度表示。圖中的黃色虛線c/黃色虛線d

高的歸一化表示采用相對原始圖片的高度表示。圖中的藍色虛線c/藍色虛線d

置信度(confidence)

bounding box的置信度 = 該bounding box內存在對象的概率 * 該bounding box與該對象實際bounding box的IOU

損失函數

損失函數分為三部分:坐標誤差,置信度誤差和分類誤差

置信度誤差針對所有的bounding box都要計算。由于無效的bounding box多,所以無效bounding box的置信度有一個系數系數0.5

坐標loss針對有物體的bounding box(response bounding box)計算,分類loss針對有物體的cell計算

如何判斷一個bounding box是有效的還是無效的

首先是判斷gt的中點有沒有落在cell里面,如果落在cell里面,那么預測的兩個bounding box,哪個和gt的iou大,哪個就是有效的bounding box,是正樣例(response bounding box),而iou小的就作為負樣例(not response bounding box)。有些資料里面把iou小于某一個閾值才作為負樣例。

yolo推理

yolo推理的時候,把置信度乘以分類的最高概率,作為一個bounding box的得分,然后大于某一個閾值的得分的bouding box再送到NMS里面處理,最終得出輸出框

數據增強

通過改變訓練數據的飽和度,曝光度,色調,抖動進行數據增強

?

yolo v1的優缺點

優點:

速度快,達到了完全實時的效率

錯誤率低(相對于faster rcnn會把很多背景預測為物體)

泛華能力強(在美術繪畫作品中也有較好的效果)

缺點:

定位不夠精確(map低)

對小目標檢測效果不好(召回率低)

?

參考資料

《真的,關于深度學習與計算機視覺,看這一篇就夠了 | 硬創公開課 》

《物體檢測-回歸方法(YOLO+SSD) 》

《 RCNN學習筆記(10):SSD:Single Shot MultiBox Detector 》

《YOLOv1論文理解》

《YOLO詳解》來自 <https://zhuanlan.zhihu.com/p/25236464>

《YOLO: Real-Time Object Detection 官網》來自 <https://pjreddie.com/darknet/yolo/>

《【YOLO】詳解:YOLO-darknet訓練自己的數據》來自 <http://blog.csdn.net/Jinlong_Xu/article/details/75577007>

《TensorFlow-YOLO代碼閱讀筆記——YOLO中的Loss是如何計算的?》來自 <https://www.cnblogs.com/irenelin/p/7612129.html>

《YOLO v1的詳解與復現》http://www.cnblogs.com/xiongzihua/p/9315183.html

github開源實現 https://github.com/xiongzihua/pytorch-YOLO-v1

總結

以上是生活随笔為你收集整理的yolo v1原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。