一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于深度學習YOLO系列算法的圖像檢測

新機器視覺 ? 來源:新機器視覺 ? 作者:XPIG ? 2020-11-27 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目前,基于深度學習算法的一系列目標檢測算法大致可以分為兩大流派:

兩步走(two-stage)算法:先產(chǎn)生候選區(qū)域然后再進行CNN分類(RCNN系列)

一步走(one-stage)算法:直接對輸入圖像應用算法并輸出類別和相應的定位(YOLO系列)

1YOLO算法的提出

在圖像的識別與定位中,輸入一張圖片,要求輸出其中所包含的對象,以及每個對象的位置(包含該對象的矩形框)。

對象的識別和定位,可以看成兩個任務:找到圖片中某個存在對象的區(qū)域,然后識別出該區(qū)域中具體是哪個對象。對象識別這件事(一張圖片僅包含一個對象,且基本占據(jù)圖片的整個范圍),最近幾年基于CNN卷積神經(jīng)網(wǎng)絡的各種方法已經(jīng)能達到不錯的效果了。所以主要需要解決的問題是,對象在哪里。最簡單的想法,就是遍歷圖片中所有可能的位置,地毯式搜索不同大小,不同寬高比,不同位置的每個區(qū)域,逐一檢測其中是否存在某個對象,挑選其中概率最大的結(jié)果作為輸出。

顯然這種方法效率太低。RCNN開創(chuàng)性的提出了候選區(qū)(Region Proposals)的方法,先從圖片中搜索出一些可能存在對象的候選區(qū)(Selective Search),大概2000個左右,然后對每個候選區(qū)進行對象識別,總體來說,RCNN系列依然是兩階段處理模式:先提出候選區(qū),再識別候選區(qū)中的對象,大幅提升了對象識別和定位的效率。不過RCNN的速度依然很慢,其處理一張圖片大概需要49秒。因此又有了后續(xù)的Fast RCNN 和 Faster RCNN,針對 RCNN的神經(jīng)網(wǎng)絡結(jié)構(gòu)和候選區(qū)的算法不斷改進,F(xiàn)aster RCNN已經(jīng)可以達到一張圖片約0.2秒的處理速度。

R-CNN系列雖然準確率比較高,但是即使是發(fā)展到Faster R-CNN,檢測一張圖片如下圖所示也要7fps(原文為5fps),為了使得檢測的工作能夠用到實時的場景中,提出了YOLO。

2 算法的簡介

YOLO意思是You Only Look Once,創(chuàng)造性的將候選區(qū)和對象識別這兩個階段合二為一,看一眼圖片(不用看兩眼哦)就能知道有哪些對象以及它們的位置。

實際上,YOLO并沒有真正去掉候選區(qū),而是采用了預定義的候選區(qū)(準確點說應該是預測區(qū),因為并不是Faster RCNN所采用的Anchor)。也就是將圖片劃分為 7*7=49 個網(wǎng)格(grid),每個網(wǎng)格允許預測出2個邊框(bounding box,包含某個對象的矩形框),總共 49*2=98 個bounding box??梢岳斫鉃?8個候選區(qū),它們很粗略的覆蓋了圖片的整個區(qū)域。

RCNN雖然會找到一些候選區(qū),但畢竟只是候選,等真正識別出其中的對象以后,還要對候選區(qū)進行微調(diào),使之更接近真實的bounding box。這個過程就是邊框回歸:將候選區(qū)bounding box調(diào)整到更接近真實的bounding box。既然反正最后都是要調(diào)整的,干嘛還要先費勁去尋找候選區(qū)呢,大致有個區(qū)域范圍就行了,所以YOLO就這么干了。

邊框回歸為什么能起作用,本質(zhì)上是因為分類信息中已經(jīng)包含了位置信息。就像你看到一只貓的臉和身體,就能推測出耳朵和屁股的位置。

3 算法的結(jié)構(gòu)

去掉候選區(qū)這個步驟以后,YOLO的結(jié)構(gòu)非常簡單,就是單純的卷積、池化最后加了兩層全連接。單看網(wǎng)絡結(jié)構(gòu)的話,和普通的CNN對象分類網(wǎng)絡幾乎沒有本質(zhì)的區(qū)別,最大的差異是最后輸出層用線性函數(shù)做激活函數(shù),因為需要預測bounding box的位置(數(shù)值型),而不僅僅是對象的概率。所以粗略來說,YOLO的整個結(jié)構(gòu)就是輸入圖片經(jīng)過神經(jīng)網(wǎng)絡的變換得到一個輸出的張量,如下圖所示。

4 輸入輸出映射關(guān)系

因為只是一些常規(guī)的神經(jīng)網(wǎng)絡結(jié)構(gòu),所以,理解YOLO的設(shè)計的時候,重要的是理解輸入和輸出的映射關(guān)系。

參考圖5,輸入就是原始圖像,唯一的要求是縮放到448*448的大小。主要是因為YOLO的網(wǎng)絡中,卷積層最后接了兩個全連接層,全連接層是要求固定大小的向量作為輸入,所以倒推回去也就要求原始圖像有固定的尺寸。那么YOLO設(shè)計的尺寸就是448*448。輸出是一個 7*7*30 的張量(tensor)。根據(jù)YOLO的設(shè)計,輸入圖像被劃分為 7*7 的網(wǎng)格(grid),輸出張量中的 7*7 就對應著輸入圖像的 7*7 網(wǎng)格?;蛘呶覀儼?7*7*30 的張量看作 7*7=49個30維的向量,也就是輸入圖像中的每個網(wǎng)格對應輸出一個30維的向量。參考上面圖5,比如輸入圖像左上角的網(wǎng)格對應到輸出張量中左上角的向量。

要注意的是,并不是說僅僅網(wǎng)格內(nèi)的信息被映射到一個30維向量。經(jīng)過神經(jīng)網(wǎng)絡對輸入圖像信息的提取和變換,網(wǎng)格周邊的信息也會被識別和整理,最后編碼到那個30維向量中。

具體來看每個網(wǎng)格對應的30維向量中包含了哪些信息。

① 20個對象分類的概率

因為YOLO支持識別20種不同的對象(人、鳥、貓、汽車、椅子等),所以這里有20個值表示該網(wǎng)格位置存在任一種對象的概率。也對應為20個object條件概率。

② 2個bounding box的位置

每個bounding box需要4個數(shù)值來表示其位置,(Center_x,Center_y,width,height),即(bounding box的中心點的x坐標,y坐標,bounding box的寬度,高度),2個bounding box共需要8個數(shù)值來表示其位置。

③ 2個bounding box的置信度

bounding box的置信度 = 該bounding box內(nèi)存在對象的概率 * 該bounding box與該對象實際bounding box的IOU, IOU=交集部分面積/并集部分面積,2個box完全重合時IOU=1,不相交時IOU=0。

綜合來說,一個bounding box的置信度Confidence意味著它 是否包含對象且位置準確的程度。置信度高表示這里存在一個對象且位置比較準確,置信度低表示可能沒有對象 或者 即便有對象也存在較大的位置偏差。作為監(jiān)督學習,我們需要先構(gòu)造好訓練樣本,才能讓模型從中學習。對于一張輸入圖片,其對應輸出的7*7*30張量(也就是通常監(jiān)督學習所說的標簽y或者label)應該填寫什么數(shù)據(jù)呢。

首先,輸出的 7*7維度 對應于輸入的 7*7 網(wǎng)格。

① 20個對象分類的概率

② 2個bounding box的位置

③ 2個bounding box的置信度

(請對照上面圖6)

5 損失函數(shù)

損失就是網(wǎng)絡實際輸出值與樣本標簽值之間的偏差。

YOLO給出的損失函數(shù)如下。

6 預測

訓練好的YOLO網(wǎng)絡,輸入一張圖片,將輸出一個 7*7*30 的張量(tensor)來表示圖片中所有網(wǎng)格包含的對象(概率)以及該對象可能的2個位置(bounding box)和可信程度(置信度)。為了從中提取出最有可能的那些對象和位置,YOLO采用NMS(Non-maximal suppression,非極大值抑制)算法。

7 總結(jié)

YOLO以速度見長,處理速度可以達到45fps,其YoloV4版本(網(wǎng)絡較?。┥踔量梢赃_到155fps。這得益于其識別和定位合二為一的網(wǎng)絡設(shè)計,而且這種統(tǒng)一的設(shè)計也使得訓練和預測可以端到端的進行,非常簡便。不足之處是小對象檢測效果不太好(尤其是一些聚集在一起的小對象),對邊框的預測準確度不是很高,總體預測精度略低于Fast RCNN。主要是因為網(wǎng)格設(shè)置比較稀疏,而且每個網(wǎng)格只預測兩個邊框,另外Pooling層會丟失一些細節(jié)信息,對定位存在影響。

責任編輯:xj

原文標題:基于YOLO系列算法的圖像檢測

文章出處:【微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4710

    瀏覽量

    95405
  • 圖像檢測
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    12050
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122800

原文標題:基于YOLO系列算法的圖像檢測

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    K230在同時使用H265編碼與yolo進行檢測時出現(xiàn)錯誤怎么解決?

    1、單獨使用H265編碼時或者yolo檢測沒有問題 2.一旦將二者結(jié)合,因為H265編碼時YUV格式,所以我另外開了一個RGB平面格式來運行yolo推理 3.報錯信息顯示:兩者的空間會沖突然后導致
    發(fā)表于 07-11 08:15

    k210在線訓練的算法yolo5嗎?

    k210在線訓練的算法yolo5嗎
    發(fā)表于 06-16 08:25

    usb攝像頭輸入的圖像,哪種格式才能讓yolo正常檢測?

    問題1. usb攝像頭捕獲的圖片,通過硬件解碼后,送入yolo,系統(tǒng)卡死。 經(jīng)過驗證,就是 img = UVC.snapshot() img = csc.convert(img) res
    發(fā)表于 06-13 07:55

    基于RK3576開發(fā)板的車輛檢測算法

    車輛檢測是一種基于深度學習的對人進行檢測定位的目標檢測,能廣泛的用于園區(qū)管理、交通分析等多種場景,是違停識別、堵車識別、車流統(tǒng)計等多種
    的頭像 發(fā)表于 05-08 17:34 ?913次閱讀
    基于RK3576開發(fā)板的車輛<b class='flag-5'>檢測算法</b>

    labview調(diào)用yolo目標檢測、分割、分類、obb

    labview調(diào)用yolo目標檢測、分割、分類、obb、pose深度學習,支持CPU和GPU推理,32/64位labview均可使用。 (yolov5~yolov12)
    發(fā)表于 03-31 16:28

    使用Yolo-v3-TF運行OpenVINO?對象檢測Python演示時的結(jié)果不準確的原因?

    通過模型下載器下載了 yolo-v3-tf: ./downloader.py --name yolo-v3-tf 通過模型 優(yōu)化器轉(zhuǎn)換模型: python3 ./model_optimizer
    發(fā)表于 03-06 06:31

    基于高光譜深度特征的油菜葉片鋅含量檢測

    為了實現(xiàn)油菜葉片鋅含量的快速無損檢測,該研究采用一種基于高光譜成像技術(shù)結(jié)合深度遷移學習算法的高精度檢測方法,通過無土栽培的方式,利用高光譜成
    的頭像 發(fā)表于 02-24 18:03 ?362次閱讀
    基于高光譜<b class='flag-5'>深度</b>特征的油菜葉片鋅含量<b class='flag-5'>檢測</b>

    助力AIoT應用:在米爾FPGA開發(fā)板上實現(xiàn)Tiny YOLO V4

    Only Look Once)是一種實時物體檢測模型,它通過一次性掃描整個圖像,實現(xiàn)高效的對象識別。而其簡化版 Tiny YOLO V4 更適合嵌入式設(shè)備,具有較少的層數(shù)和參數(shù)。其輕量化特性更適合在資源
    發(fā)表于 12-06 17:18

    《DNK210使用指南 -CanMV版 V1.0》第四十一章 YOLO2物體檢測實驗

    第四十一章 YOLO2物體檢測實驗 在上一章節(jié)中,介紹了利用maix.KPU模塊實現(xiàn)YOLO2的人手檢測,本章將繼續(xù)介紹利用maix.KPU模塊實現(xiàn)
    發(fā)表于 11-14 09:22

    《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手檢測實驗

    第四十章 YOLO2人手檢測實驗 在上一章節(jié)中,介紹了利用maix.KPU模塊實現(xiàn)YOLO2的人臉檢測,本章將繼續(xù)介紹利用maix.KPU模塊實現(xiàn)Y
    發(fā)表于 11-14 09:20

    《DNK210使用指南 -CanMV版 V1.0》第三十九章 YOLO2人臉檢測實驗

    。通過本章的學習,讀者將學習YOLO2網(wǎng)絡的人臉檢測應用在CanMV上的實現(xiàn)。本章分為如下幾個小節(jié):39.1 maix.KPU模塊介紹39.2 硬件設(shè)計39.3 程序設(shè)計39.4 運
    發(fā)表于 11-13 09:37

    GPU深度學習應用案例

    GPU在深度學習中的應用廣泛且重要,以下是一些GPU深度學習應用案例: 一、圖像識別 圖像識別是
    的頭像 發(fā)表于 10-27 11:13 ?1384次閱讀

    FPGA做深度學習能走多遠?

    中的性能和效率。同時,也可能會出現(xiàn)一些新的基于 FPGA 的深度學習算法創(chuàng)新,拓展其應用領(lǐng)域。 ? 應用領(lǐng)域的拓展:除了在圖像識別、語音處理、自動駕駛等領(lǐng)域的應用,F(xiàn)PGA 在
    發(fā)表于 09-27 20:53

    深度識別算法包括哪些內(nèi)容

    :CNN是深度學習中處理圖像和視頻等具有網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的主要算法。它通過卷積層、池化層和全連接層等組件,實現(xiàn)對圖像特征的自動提取和識別。 應
    的頭像 發(fā)表于 09-10 15:28 ?844次閱讀

    使用OpenVINO C# API部署YOLO-World實現(xiàn)實時開放詞匯對象檢測

    YOLO-World是一個融合了實時目標檢測與增強現(xiàn)實(AR)技術(shù)的創(chuàng)新平臺,旨在將現(xiàn)實世界與數(shù)字世界無縫對接。該平臺以YOLO(You Only Look Once)算法為核心,實現(xiàn)
    的頭像 發(fā)表于 08-30 16:27 ?1703次閱讀
    使用OpenVINO C# API部署<b class='flag-5'>YOLO</b>-World實現(xiàn)實時開放詞匯對象<b class='flag-5'>檢測</b>