深度学习(十四)——Softmax详解, 目标检测, RCNN
https://antkillerfarm.github.io/
Softmax詳解
首先給出Softmax function的定義:
yc=ζ(z)c=ezc∑Cd=1ezd?for?c=1,…,C
從中可以很容易的發現,如果zc的值過大,樸素的直接計算會上溢出或下溢出。
解決辦法:
zc←zc?a,a=max{z1,…,zC}
證明:
ζ(z-a)c=ezc?e?a∑Cd=1ezd?e?a=ezc∑Cd=1ezd=ζ(z)c
Softmax的損失函數是cross entropy loss function:
ξ(X,Y)=∑i=1nξ(ti,yi)=?∑i=1n∑i=cCtic?log(yic)
Softmax的反向傳播算法:
?ξ?zi=?∑j=1C?tjlog(yj)?zi=?∑j=1Ctj?log(yj)?zi=?∑j=1Ctj1yj?yj?zi=?tiyi?yi?zi?∑j≠iCtjyj?yj?zi=?tiyiyi(1?yi)?∑j≠iCtjyj(?yjyj)=?ti+tiyi+∑j≠iCtjyi=?ti+∑j=1Ctjyi=?ti+yi∑j=1Ctj=yi?ti
參考:
https://mp.weixin.qq.com/s/2xYgaeLlmmUfxiHCbCa8dQ
softmax函數計算時候為什么要減去一個最大值?
http://shuokay.com/2016/07/20/softmax-loss/
Softmax輸出及其反向傳播推導
https://mp.weixin.qq.com/s/HTIgKm8HuZZ_-lIQ3nIFhQ
淺入深出之大話SoftMax
目標檢測
概述
object detection是計算機視覺的一個重要的分支。類似的分支還有目標分割、目標識別和目標跟蹤。
以下摘錄自Sensetime CTO曹旭東的解讀:
傳統方法使用滑動窗口的框架,把一張圖分解成幾百萬個不同位置不同尺度的子窗口,針對每一個窗口使用分類器判斷是否包含目標物體。傳統方法針對不同的類別的物體,一般會設計不同的特征和分類算法,比如人臉檢測的經典算法是Harr特征+Adaboosting分類器;行人檢測的經典算法是HOG(histogram of gradients)+Support Vector Machine;一般性物體的檢測的話是HOG特征+DPM(deformable part model)的算法。
基于深度學習的物體檢測的經典算法是RCNN系列:RCNN,fast RCNN(Ross Girshick),faster RCNN(少卿、凱明、孫劍、Ross)。這三個工作的核心思想是分別是:使用更好的CNN模型判斷候選區域的類別;復用預計算的sharing feature map加快模型訓練和物體檢測的速度;進一步使用sharing feature map大幅提高計算候選區域的速度。其實基于深度學習的物體檢測也可以看成對海量滑動窗口分類,只是用全卷積的方式。
RCNN系列算法還是將物體檢測分為兩個步驟。現在還有一些工作是端到端(end-to-end)的物體檢測,比如說YOLO(You Only Look Once: Unified, Real-Time Object Detection)和SSD(SSD: Single Shot MultiBox Detector)這樣的算法。這兩個算法號稱和faster RCNN精度相似但速度更快。物體檢測正負樣本極端非均衡,two-stage cascade可以更好的應對非均衡。端到端學習是否可以超越faster RCNN還需要更多研究實驗。
進化史
DPM(2007)->RCNN(2014)->Fast RCNN->Faster RCNN
參考:
http://blog.csdn.net/ttransposition/article/details/12966521
DPM(Deformable Parts Model)–原理
CV實踐的難點
從理論上說,無論是傳統CV,還是新近崛起的DL CV,其本質都是通過比對目標圖片和訓練圖片的相似度,從而得到識別的結果。
CV的輸入一般是由像素組成的矩陣。相比其他領域的數據挖掘而言,CV的實踐難點主要包括:
1.視角的改變。照相機的移動會導致像素矩陣發生平移、旋轉等變換。
2.光照影響。同一物體在不同光照條件下的影像有所不同。
3.形變。典型的例子是動物的運動,會導致外觀的改變。
4.遮擋。待識別物體通常不是完全可見的。
5.背景。雪地、沙灘等不同場景,會影響物體的識別。
6.同類差異。比如各種貓都是貓,但它們的外觀有細微的差異。
參考
https://www.zhihu.com/question/34223049
從近兩年的CVPR會議來看,目標檢測的研究方向是怎么樣的?
https://zhuanlan.zhihu.com/p/21533724
對話CVPR2016:目標檢測新進展
https://mp.weixin.qq.com/s/r9tXvKIN-eqKW_65yFyOew
谷歌開源TensorFlow Object Detection API
https://mp.weixin.qq.com/s/-PeXMU_gkcT5YnMcLoaKag
CVPR清華大學研究,高效視覺目標檢測框架RON
https://mp.weixin.qq.com/s/_cOuhToH8KvZldNfraumSQ
什么促使了候選目標的有效檢測?
https://mp.weixin.qq.com/s/LAy1LKGj5HOh_e9jPgvfQw
視覺目標檢測和識別之過去,現在及可能
https://mp.weixin.qq.com/s/ZHRP5xnQxex7lQJsCxwblA
深度學習目標檢測的主要問題和挑戰!
https://mp.weixin.qq.com/s/XbgmLmlt5X4TX5CP59gyoA
目標檢測算法精彩集錦
https://mp.weixin.qq.com/s/BgTc1SE2IzNH27OC2P2CFg
CVPR-I
https://mp.weixin.qq.com/s/qMdnp9ZdlYIja2vNEKuRNQ
CVPR—II
https://mp.weixin.qq.com/s/tc1PsIoF1RN1sx_IFPmtWQ
CVPR—III
https://mp.weixin.qq.com/s/bpCn2nREHzazJYq6B9vMHg
目標識別算法的進展
https://mp.weixin.qq.com/s/YzxaS4KQmpbUSnyOwccn4A
基于深度學習的目標檢測技術進展與展望
https://mp.weixin.qq.com/s/JPCQqyzR8xIUyAdk_RI5dA
RCNN, Fast-RCNN, Faster-RCNN那些你必須知道的事!
https://www.zhihu.com/question/35887527
如何評價rcnn、fast-rcnn和faster-rcnn這一系列方法?
http://blog.csdn.net/messiran10/article/details/49132053
Caffe matlab之基于Alex network的特征提取
https://mp.weixin.qq.com/s/YovhKYeGGLqSxxSqMNsbKg
基于深度學習的目標檢測學習總結
https://mp.weixin.qq.com/s/nGSaQXm8AczYodtmHD1qNA
深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD
https://mp.weixin.qq.com/s/c2oMJfE95I1ciEtvdTlb4A
完全脫離預訓練模型的目標檢測方法
https://mp.weixin.qq.com/s/NV2hWofOCractLt45-wI1A
山世光:基于深度學習的目標檢測技術進展與展望
https://mp.weixin.qq.com/s/zJ3EN175_9num2OknVvnyA
鄔書哲:物體檢測算法的革新與傳承
https://mp.weixin.qq.com/s/1vOdOMyByBacSBMVrscq5Q
黃暢:基于DenesBox的目標檢測在自動駕駛中的應用
https://mp.weixin.qq.com/s/6rSeJOqbKyrDj3FpS8J5eg
黃李超講物體檢測
https://mp.weixin.qq.com/s/JjsAnB_OxKS1Af9XAtw5sA
一文帶你讀懂深度學習框架下的目標檢測
https://mp.weixin.qq.com/s/dcrBQ-t3tLOTouEyofOBxg
間諜衛星:利用卷積神經網絡對衛星影像進行多尺度目標檢測
https://mp.weixin.qq.com/s/66yXsRIeZdHfoZkJkci24w
地平線黃李超開講:深度學習和物體檢測!
https://mp.weixin.qq.com/s/x0r-2J_YdYgIQlRDqvGofg
CVPR 2017論文解讀:用于單目圖像車輛3D檢測的多任務網絡
http://blog.csdn.net/zhang11wu4/article/details/53967688
目標檢測最新方法介紹
https://mp.weixin.qq.com/s/RNHgm1GW79iXVe2tit6IyA
曠視&清華大學提出新型兩步檢測器Light-Head R-CNN
https://mp.weixin.qq.com/s/6cUP9vvfcuv8rIEnGnAFiA
NCSU&阿里巴巴論文:可解釋的R-CNN
https://mp.weixin.qq.com/s/ZrZtGBxVOZmexDMw_S_Orw
TensorFlow深度學習目標檢測模型及源碼架構解析
https://mp.weixin.qq.com/s/HPzQST8cq5lBhU3wnz7-cg
R-FCN每秒30幀實時檢測3000類物體,馬里蘭大學Larry Davis組最新目標檢測工作
https://mp.weixin.qq.com/s/u3eXhoFvo7vZujc0XoQQWQ
曠視研究院解讀Light-Head R-CNN:平衡精準度和速度
RCNN
《深度學習(五)》中提到的AlexNet、VGG、GoogleNet主要用于圖片分類。而這里介紹的RCNN(Regions with CNN)主要用于目標檢測。
車牌識別的另一種思路
在介紹RCNN之前,我首先介紹一下2013年的一個車牌識別項目的解決思路。
車牌識別差不多是深度學習應用到CV領域之前,CV領域少數幾個達到實用價值的應用之一。國內在2010~2015年前后,有許多公司都做過類似的項目。其產品更是隨處可見,很多停車場已經利用該技術,自動識別車輛信息。
車牌識別的難度不高——無論是目標字符集,還是目標字體,都很有限。但也有它的技術難點:
1.計算資源有限。通常就是PC,甚至嵌入式設備,不可能用大規模集群來計算。
2.有實時性的要求,通常處理時間不超過3s。
因此,如何快速的在圖片中找到車牌所在區域,就成為了關鍵問題。
常規的做法,通常是根據顏色、形狀找到車牌所在區域,但魯棒性不佳。后來,同事L提出了改進方法:
Step 1:在整個圖片中,基于haar算子,尋找疑似數字的區域。
Step 2:將數字聚集的區域設定為疑似車牌所在區域。
Step 3:投入更大運算量,以識別車牌上的文字。(這一步是常規做法。)
RCNN的基本原理
RCNN是Ross Girshick于2014年提出的深度模型。
注:Ross Girshick(網名:rbg),芝加哥大學博士(2012),Facebook研究員。他和何愷明被譽為CV界深度學習的雙子新星。
個人主頁:
http://www.rossgirshick.info/
論文:
《Rich feature hierarchies for accurate object detection and semantic segmentation》
代碼:
https://github.com/rbgirshick/rcnn
RCNN相對傳統方法的改進:
速度:經典的目標檢測算法使用滑動窗法依次判斷所有可能的區域。RCNN則(采用Selective Search方法)預先提取一系列較可能是物體的候選區域,之后僅在這些候選區域上(采用CNN)提取特征,進行判斷。
訓練集:經典的目標檢測算法在區域中提取人工設定的特征。RCNN則采用深度網絡進行特征提取。
使用兩個數據庫:
一個較大的識別庫(ImageNet ILSVC 2012):標定每張圖片中物體的類別。一千萬圖像,1000類。
一個較小的檢測庫(PASCAL VOC 2007):標定每張圖片中,物體的類別和位置,一萬圖像,20類。
RCNN使用識別庫進行預訓練得到CNN(有監督預訓練),而后用檢測庫調優參數,最后在檢測庫上評測。
這實際上就是《深度學習(九)》中提到的fine-tuning的思想。
總結
以上是生活随笔為你收集整理的深度学习(十四)——Softmax详解, 目标检测, RCNN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(十三)——花式池化, Batc
- 下一篇: maskrcnn用于目标检测_用于目标检