1. 程式人生 > >yoloV3論文解讀及應用注意事項

yoloV3論文解讀及應用注意事項

一、yolov3論文解讀

1. yolov3實現的idea

1.1 邊界框的預測(Bounding Box Prediction)

與之前yolo版本一樣,yolov3的anchor boxes也是通過聚類的方法得到的。yolov3對每個bounding box預測四個座標值(tx, ty, tw, th),對於預測的cell(一幅圖劃分成S×S個網格cell)根據影象左上角的偏移(cx, cy),以及之前得到bounding box的寬和高pw, ph可以對bounding box按如下的方式進行預測:


在訓練這幾個座標值的時候採用了sum of squared error loss(平方和距離誤差損失),因為這種方式的誤差可以很快的計算出來。

yolov3對每個bounding box通過邏輯迴歸預測一個物體的得分,如果預測的這個bounding box與真實的邊框值大部分重合且比其他所有預測的要好,那麼這個值就為1.如果overlap沒有達到一個閾值(yolov3中這裡設定的閾值是0.5),那麼這個預測的bounding box將會被忽略,也就是會顯示成沒有損失值。


說一下我在應用中的事:yolov3它的訓練輪數是50200,我的資料量比較小,因此迭代到900輪的時候,每一輪訓練完顯示的損失值都是nan,其原因可能就是上邊因為閾值他直接忽略掉了這個bounding box導致沒有loss,之前的版本我使用時貌似不是這樣的。

1.2 分類(Class Prediction)

每個框預測分類,bounding box使用多標籤分類(multi-label classification)。論文中說沒有使用softmax分類,只是使用了簡單的邏輯迴歸進行分類,採用的二值交叉熵損失(binary cross-entropy loss)。

1.3 跨尺度的預測(Predictions Across Scales)

yolov3在三個(num=3)不同的尺度預測boxes,yolov3使用的特徵提取模型通過FPN(feature pyramid network)網路上進行改變,最後預測得到一個3-d tensor,包含bounding box資訊,物件資訊以及多少個類的預測資訊。論文給出是這樣子的:(N×N×[3*(4+1+80)])這裡的80即是80類物體。

FPN接面構如下:


yolov3使用這樣的方式使得模型可以獲取到更多的語義資訊,模型得到了更好的表現。

yolov3依然使用k-Means聚類來得到bounding box的先驗,選擇9個簇以及3個尺度,然後將這9個簇均勻的分佈在這幾個尺度上。

1.4 特徵提取(Feature Extractor)

yolov3的特徵提取模型是一個雜交的模型,它使用了yolov2,Darknet-19以及Resnet,這個模型使用了很多有良好表現的3*3和1*1的卷積層,也在後邊增加了一些shortcut connection結構。最終他有53個卷積層,因此作者也把它們叫成Darknet-53。它們的結構是這樣的:


最後論文說明這個模型的優良之後還說了一句,Resnet模型後邊有太多層並且不是很有效。抱歉,我可是KaiMing的迷弟,哈哈,說的委婉一點多好。

1.5 訓練

最後論文說它們訓練的時候使用了很多方法,諸如資料增強,BN等等,具體怎麼訓練的給出了一個引用,在論文的【12】可以找到。

2. yolov3做了些什麼?

就說yolov2有個毛病就是對小物體的檢測不敏感,關鍵在於它那個cell預測時導致的毛病,而如今增加了多尺度預測之後yolov3在對小物體檢測方便有了好轉,但是現在的毛病是對中、大size的物體表現的不是那麼好,這還得需要我們去努力做。然而在論文中yolov3各種表示的還行。

3. yolov3那些嘗試過並沒有提升表現的想法

① 想對Anchor box的x,y偏移使用線性啟用方式做一個對box寬高倍數的預測,結果發現沒有好的表現並且是模型不穩定。

②對anchor box的x, y使用線性的預測,而不是使用邏輯迴歸,實驗結果發現這樣做使他們模型的mAP掉了。

③使用Focal loss,測試結果還是掉mAP。(想法的確挺好的)

4. yolov3測試表現的一些截圖





二、yolov3應用到自己的專案中

訓練自己資料之後檢測的結果:


如何使用yolov3訓練自己的資料,如何做出修改,這裡我給出一個教程文件,這個文件一步步的指示如何去製作一個VOC格式的資料集去跑yolov,需要注意的是yolov3模型結構有所改變,這個文件在資料集的製作上沒問題,但是在說如何訓練yolo?它給出的是訓練yolov2的教程,但是大差不差,可以通過上面論文解讀自己修改yolov3裡邊的引數去訓練自己的資料,就當做是一個練習吧!

相關推薦

yoloV3論文解讀應用注意事項

一、yolov3論文解讀1. yolov3實現的idea1.1 邊界框的預測(Bounding Box Prediction)與之前yolo版本一樣,yolov3的anchor boxes也是通過聚類的方法得到的。yolov3對每個bounding box預測四個座標值(tx

關於會議論文會後投期刊,論文版權的一些注意事項

(這是個常見的問題,我們也遇到過很多次,看了一些材料(不同copyright裡的詳細內容)。這個問題實際上不好回答,下面只簡單說一下,也整理一下我以前的回貼。供參考。大家有什麼疑問,可以提出來,瞭解的話,我儘量給予回答。) 總的說來,會議主要目的是為了交流,對版權要求不是很嚴(否則也沒有太多人將好文章投給會議

Sourcetree安裝使用注意事項

Sourcetree安裝及使用注意事項 1.      安裝第二步,需要翻牆,使用google或atlassian賬號登入,網速慢請耐心等待驗證碼出現,可用lan燈或者loco。下一步有時會有稍許延遲,耐心等待 2. &n

SqlBulkCopy 應用注意事項

       在.NET中,有時需要大批量的去插入資料,一般最快反應是使用迴圈逐條插入,但是這麼操作的話,耗時嚴重,且十分損耗效能。本人在查詢之後發現使用sqlbulkcopy之後,速度效率十分之高,然而,中途遇到些尷尬的問題所以與大家分享,希望給同樣遇到這些

MultiPoseNet論文解讀復現

MultiPoseNet: Fast Multi-Person Pose Estimation using Pose Residual Network. 原文連結 PRN網路 論文思路大致解讀 論文提出的網路結構大概分成三部分: 首先第一部分是Backbone網路

考研要求提交論文PDF查重注意事項(知網查重必看!)

現在越來越多學校要求提交PDF格式的論文進行查重。近日有不少學生提交PDF格式論文學校知網檢測時,被查出出眾多重複。小編通過比較和分析,判斷出知網查重系統對PDF版本的檢測比Word格式的論文檢測結果高。 仔細對比兩者發現,在Word文件系統很容易識別出Word各部分內容的格式,比如表格、腳註、

Yii2加入新的應用 注意事項

新部署的YII只有backend和frontend,我們手動新增api應用 1.1 複製frontend下的所有檔案到api資料夾,批量替換frontend為api 1.2 開啟根目錄 common\config\bootstrap.php,複製包含frontend的那一行,並將fron

JavaScript命名規範基礎系統注意事項

前端程式碼中的自定義變數命名           命名方法:     1.駝峰 2.下劃線連線

Log4Net在VS開發程式中的應用注意事項

本人開發是參考的部落格http://www.cnblogs.com/kissazi2/p/3393595.html 作者寫的很全,很詳細,遇到的問題如下: 示例中LogHelper.cs類中有如下程式碼: public static readonly log4net.ILog lo

SQL Server 2016 AlwaysOn 安裝配置注意事項

參考部落格: 此部落格寫已經很詳細了,我只是為了記錄一下在實際操作過程中遇到的問題。 1.叢集管理配置 仲裁見證注意:這個路徑的許可權必須everyone角色具有讀寫許可權,否則叢集會出現以下錯誤提示,如果AlwasyOn的網路共享路徑也配置在域伺服器應該避免檔案見

MyBatis 的一級快取實現詳解使用注意事項

轉自:https://blog.csdn.net/chenyao1994/article/details/79233725 0.寫在前面 MyBatis是一個簡單,小巧但功能非常強大的ORM開源框架,它的功能強大也體現在它的快取機制上。MyBatis提供了一級快取、二級快取 這兩個快取機制,

華大微控制器HC32L110 HC32F003 HC32F005特殊埠應用注意事項三(SWD除錯程式設計埠複用為 I/O功能)

本文旨在拋磚引玉,其餘具體使用歡迎加Q:3230875137或加群164973950交流。 GPIO是通用輸入輸出模組,MCU可將一個 IO設為模擬模式,作為 ADC輸入;設為數字輸 入輸出,或是外設埠,供特定外設使用。使用埠功能前,需要先把 GPIO模組時鐘控制 功能開啟

《深入理解mybatis原理(三)》 MyBatis的一級快取實現詳解 使用注意事項

0.寫在前面         MyBatis是一個簡單,小巧但功能非常強大的ORM開源框架,它的功能強大也體現在它的快取機制上。MyBatis提供了一級快取、二級快取 這兩個快取機制,能夠很好地處理和維護快取,以提高系統的效能。本文的目的則是向讀者詳細介紹MyBatis的一級快取,深入原始碼,解析MyBa

軟體測試環境搭建維護注意事項

搭建測試環境前後要注意以下幾點:   1> 搭建測試環境前,確定測試目的   即是功能測試,穩定性測試,還是效能測試,測試目的不同,搭建測試環境時應注意的點也不同。比如要進行功能測試,那麼我們就不需要大量的資料,需要覆蓋率高,測試資料要求儘量真實,這對硬體環境配置的好壞要求不是太苛刻,

mysql資料庫索引原理使用注意事項

索引原理 索引出現的原因 在使用關係型資料庫的時候,我們常常聽到一個詞:“索引”,在優化資料庫的時候,我們常常聽到有人提到新增索引可以加快資料庫的查詢速度,今天我們就來談一談它的原理。 關係型資料庫之所以叫這個名字,是因為它採用了一種名為“關係”的資料結構來儲存資料,說簡單點就是

Glide4.0整合使用注意事項

1、由於Glide4.0和Glide3.x的用法出入很大 在此總結一下。 在Glide3.x中 載入網路圖片通常習慣預設顯示預載入和載入失敗的圖片 String path= "https://inthecheesefactory.com/uploads/source/glidepicasso/cover.jp

將 Spring boot 專案打成可執行Jar包,相關注意事項(main-class、缺少 xsd、重複打包依賴)

最近在看 spring boot 的東西,覺得很方便,很好用。對於一個簡單的REST服務,都不要自己部署Tomcat了,直接在 IDE 裡 run 一個包含 main 函式的主類就可以了。 但是,轉念一想,到了真正需要部署應用的時候,不可能通過 IDE 去部署

Docker學習系列(三):Ubuntu下使用Docker的基本指令記錄一些注意事項

1.Dockerhub下載映象 有兩種方式可以獲得新的映象 直接從dockerhub下載編譯好的image(該編譯過程在docker hub的雲端完成)(見3.1) 下載docekrfile檔案,在本機進行build 直接在docker

目標檢測:YOLOV3論文解讀

一、yolov3論文解讀1. yolov3實現的idea1.1 邊界框的預測(Bounding Box Prediction)與之前yolo版本一樣,yolov3的anchor boxes也是通過聚類的方法得到的。yolov3對每個bounding box預測四個座標值(tx

C300 OLT轉發原理 配置注意事項

1、 OLT PON卡板 在內聯口 和 Vport 之間 進行二層交換,提供流量管理 2、主控 在內聯口 和上聯口 之間進行 二層 或側三層 交換; 上聯卡板: 結合OLT配置命令講解: pon-onu-mng gpon-onu_1/15/1:1 service 1 gempo