檢測9000類物體的YOLO9000
YOLO9000
原文為Joseph Redmon與Ali Farhadi的文章“YOLO9000: Better, Faster, Stronger”。本想總結一下,看完發現整篇文章多餘的話有點少。YOLO的實時性眾所周知,所以還等什麼,皮皮蝦我們走~
摘要
多尺度訓練YOLOv2;權衡速度和準確率,執行在不同大小影象上。YOLOv2測試VOC 2007 資料集:
聯合訓練物體檢測和分類,可檢測未標籤檢測資料的物體的類別。ImageNet檢測驗證集上,YOLO9000僅用
1. 簡介
神經網路引入後,檢測框架變得更快更準確。然而,大多數檢測方法受限於少量物體。相比分類和加標籤等其它任務的資料集,目前物體檢測的資料集有限。
將檢測擴充套件到分類層面。然而,標註檢測影象相比其它任務更加昂貴。因此,提出新方法擴充套件目前檢測系統的範圍。對物體分類的分層檢視可合併不同的資料集。
檢測和訓練資料上聯合訓練物體檢測器,用有標籤的檢測影象來學習精確定位,同時用分類影象來增加詞彙和魯棒性。
原YOLO系統上生成YOLOv2檢測器;在ImageNet中超過
2. 更好
相比Fast R-CNN對YOLO誤差分析,顯示YOLO有顯著的定位誤差。YOLO與其它基於區域建議的方法召回率相對較低。因此,保持分類準確率的同時,著重改善召回率和定位。
計算機視覺一般傾向更大更深的模型。訓練更大網路或整合多個模型通常會有更好的效果。然而,我們希望YOLOv2檢測器保留速度的同時更加精確,因此,簡化網路來易於學習表示。結果見表
2.1 塊歸一化(Batch Normalization)
無需其它形式的正則,塊歸一化收斂時顯著變好。塊歸一化有助於模型正則,可從未過擬合的模型中刪除dropout。YOLO上所有卷積層上新增塊歸一化,mAP提高
2.2 分類器輸入更高解析度
所有領先的檢測方法都使用ImageNet上預訓練好的分類器。從AlexNet起,大多分類器的輸入影象解析度都小於
- 原YOLO:
- YOLOv2:ImageNet上按
2.3 用錨箱(Anchor Boxes)的卷積
YOLO用卷積特徵提取器頂部的全連線層來直接預測邊界框的座標。
Faster R-CNN用精心挑選的先驗來預測邊界框。Faster R-CNN中的區域建議網路(RPN)僅用卷積層直接預測錨箱的偏移和置信度。因預測層為卷積層,RPN預測特徵圖中每個位置上錨箱的偏移。
預測偏移而非座標,簡化了問題,且使網路更易學。
刪除YOLO的全連線層,用錨箱預測邊界框:刪除一池化層使網路卷積層的輸出有更高的解析度。將網路輸入影象的解析度從
輸入影象解析度為
錨箱的使用從空間位置中解耦出類別預測,並預測每個錨箱的類別和物體(objectness):
- 物體預測:同YOLO,仍為預測建議框與真實框的IOU;
- 類別預測:給定已存在物體,預測該類的條件概率。
使用錨箱,準確度略降。YOLO對每幅圖僅預測98個建議框,而用錨箱模型可預測上千個建議框。無錨箱時的中間模型得
2.4 維度聚類
YOLO中用錨箱會碰到兩個問題。第1個問題:錨箱的維度為手動挑選,網路可學習合適地調整錨箱,但為網路挑選更好的先驗能更容易學到更好的檢測器。
訓練集邊界框上用K-means聚類來自動找好的先驗:用標準K-means(歐幾里德距離)時,更大的邊界框會產生更大的誤差。而獲得好的IOU分數的先驗應與建議框的大小無關。因此,使用如下距離測量:
選多個k值,畫出最近中心的平均IOU,如下圖。權衡模型複雜度和高召回率,選擇
比較表1中聚類策略的最近先驗與手動挑選的錨箱的平均IOU。
K-means生成的邊界框有更好的表示,任務更易學。
2.5 直接預測位置
YOLO中用錨箱時遇到的第2個問題:模型不穩定,尤其是早期迭代時。大多不穩定來自預測錨箱的位置
如,
該公式無約束,使錨箱可到達影象中任意位置。隨機初始化的模型要花很長時間穩定,才可預測出合理的偏移。
除了預測偏移,同YOLO一樣,預測相對網格單元的位置座標。真實邊界框的位置範圍落入
對輸出特徵圖中的每個單元,網路預測
相關推薦
檢測9000類物體的YOLO9000
YOLO9000 原文為Joseph Redmon與Ali Farhadi的文章“YOLO9000: Better, Faster, Stronger”。本想總結一下,看完發現整篇文章多餘的話有點少。YOLO的實時性眾所周知,所以還等什麼,皮皮蝦我們走~
R-FCN每秒30幀實時檢測3000類物體,馬里蘭大學Larry Davis組最新目標檢測工作
【導讀】美國馬里蘭大學、復旦大學和Gobasco人工智慧實驗室聯合提出R-FCN-3000實時3000類目標檢測框架,對R-FCN框架中的物體檢測和分類進行解耦。本文對R-FCN體系結構進行修改,其中位置敏感濾波器在不同的目標類之間共享來進行定位。對於細粒度的分類,這些位
檢測終端類型
移動終端 android ipad navi window code 移動端 color 是否 js檢測: var ua = navigator.userAgent.toLocaleLowerCase(); var isMobile = /iPhone|iPad|iPod
python模塊之imghdr檢測圖片類型
logs python模塊 資料 .cn href 類型 manager 表示 response 1. imghdr是什麽 imghdr是一個用來檢測圖片類型的模塊,傳遞給它的可以是一個文件對象,也可以是一個字節流。 能夠支持的圖片格式: 2. 如何使用 提
檢測raid類型和磁盤壞道腳本
hostname inux tex img 磁盤信息 second har inf printf #!/bin/sh #腳本功能: #安裝工具MegaCli64 #Host Information:主機名和ip地址 #Raid Information:raid信息和充電狀
跨類/物體的方法呼叫 u3d學習總結筆記本
1.訊息推送 :遊戲物件.SendMessage //無視修飾符限制public/private 2.獲取指令碼 :遊戲物件.GetComponents<指令碼元件>().方法();//獲取自身所有元件 3.拖拽 //====================
i春秋:警惕您站上的空位元組截斷目錄路徑檢測繞過類上傳漏洞
截斷目錄繞過上傳檢測 首先開啟BurpLoader,選擇 Proxy->Options ,設定BurpLoader代理地址,預設為127.0.0.1、埠:8080。 接著修改IE的代理設定,修改代理地址以及埠(設定與在BurpLoader中設定的代理地址相同:127.0.0.1、埠:8080)。
yolo2 檢測到的物體輸出2
說明 檢測到的物體被box所標記,輸出box所在的位置,並存儲到txt中。 上次是在src/image.c的程式碼中修改的,相當於是在畫出檢測出的物體的框的同時把座標存入了txt,這次修改的是examples/detector.c檔案。 先來看一下主函式 examples/d
yolo2檢測到的物體位置輸出
說明 檢測到的物體被box所標記,輸出box所在的位置,並存儲到txt中。(待完善,如何根據每個圖片名字儲存不同的txt) 進入src/image.c,修改void draw_detections函式。 void draw_detections(image im, int
UGUI射線檢測與普通物體檢測
UGUI物體檢測與普通物體檢測有所不同(UGUI射線檢測已經被封裝好): 1.Graphic Raycaster 主要用於UI上的射線檢測,掛有這個元件的物體,必須要掛上Canvas這個元件(當掛上Graphic Raycaster時Canvas也會自動掛上)。 Ign
[Java工具類]spring常用工具類 2.特殊字元轉義和方法入參檢測工具類
特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特
檢測com類中CLSID為{F9364159-6AED-4F9C-8BAF-D7C7ED6160A8}的元件時失敗,錯誤80040154
自己查了很多資料,都沒查到關於我這個的解決方法。遇到這種問題,網上的解決方法是首先在好的電腦的登錄檔中找這個CLSID(登錄檔裡面的資料夾CLSID包含了所有的CLSID),找到之後查出對應的dll檔案(這時候可能會有個問題,你
【OpenCV】OpenCV輪廓檢測,計算物體旋轉角度
OpenCV輪廓檢測,計算物體旋轉角度 效果還是有點問題的,希望大家共同探討一下 // FindRotation-angle.cpp : 定義控制檯應用程式的入口點。 // // findContours.cpp : 定義控制檯應用程式的入口點。 /
Spring 的優秀工具類盤點,第 2 部分: 特殊字元轉義和方法入參檢測工具類
特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特
關於spring中Assert的應用(方法入參檢測工具類)
Web 應用在接受表單提交的資料後都需要對其進行合法性檢查,如果表單資料不合法,請求將被駁回。類似的,當我們在編寫類的方法時,也常常需要對方法入參進行合 法性檢查,如果入參不符合要求,方法將通過丟擲異常的方式拒絕後續處理。舉一個例子:有一個根據檔名獲取輸入流的方法:Input
檢測某個方法是否屬於某個類中--解析php函數method_exists()與is_callable()的區別
檢查 -1 元素 高級 ech 9.png true strong 原創 php函數method_exists() 與is_callable()的區別在哪?在php面相對象設計過程中,往往我們需要在調用某一個方法是否屬於某一個類的時候做出判斷,常用的方法有 meth
Spark 數據導入時的類型檢測相關問題
spark 大數據 hadoop sqlserverSpark 可以讀取文本,csv和rmdb中的數據,並且帶有類型自動檢測功能public final static String DATA_SEPARATOR_TAB = "\t";session.read().format("csv").option("d
為什麽用Object.prototype.toString.call(obj)檢測對象類型?
fin date regexp 對象 boolean on() obj all function console.log(Object.prototype.toString.call("jerry"));//[object String]console.log(Objec
cocos 射線檢測 3D物體 (Sprite3D點擊)
get director 轉化 cocos hello dir 調用 true 得到 看了很多朋友問怎麽用一個3D物體做一個按鈕,而且網上好像還真比較難找到答案, 今天翻了一下cocos源碼發現Ray 已經封裝了intersects函數,那麽剩下的工作其實很簡單了, 從屏幕
一篇文章看懂物體檢測的發展脈絡 轉
現實生活 有關 攝像頭 層次 contex 人的 圖像特征 其實在 展示 轉 https://zhuanlan.zhihu.com/p/28399320 第一,什麽是物體檢測,如何去評價一個物體裏系統的好壞。 第二,物體檢測整個的框架是怎麽樣的?它一般包含了圖像的分類