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