<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 YOLO 進(jìn)行目標(biāo)檢測

          共 3005字,需瀏覽 7分鐘

           ·

          2021-07-28 00:09

          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)

          自從世界了解人工智能以來,有一個特別的用例已經(jīng)被討論了很多。它們是自動駕駛汽車。我們經(jīng)常在科幻電影中聽到、讀到甚至看到這些。有人說,我們將在2010年擁有自動駕駛汽車,有人說到2020年,但我們在2021年就實現(xiàn)了,我們剛剛能夠解決自動駕駛汽車給世界帶來的變化的一角。自動駕駛汽車的一個基本特性,對象檢測。


          什么是目標(biāo)檢測?


          物體檢測——顧名思義就是通過深度學(xué)習(xí)算法檢測圖像或視頻中的物體。目標(biāo)檢測的目的是識別和定位場景中所有已知的目標(biāo)。有了這種識別和定位,目標(biāo)檢測可以用來計數(shù)場景中的目標(biāo),確定和跟蹤它們的精確位置,同時精確地標(biāo)記它們。

          目標(biāo)檢測通常與圖像識別相混淆,所以在我們繼續(xù)之前,澄清它們之間的區(qū)別是重要的。

          圖像識別為圖像分配一個標(biāo)簽。狗的圖片會被貼上“狗”的標(biāo)簽。兩只狗的照片仍然會被貼上“狗”的標(biāo)簽。另一方面,對象檢測在每只狗周圍畫一個盒子,并給這個盒子貼上“狗”的標(biāo)簽。模型預(yù)測每個對象在哪里以及應(yīng)該應(yīng)用什么標(biāo)簽。通過這種方式,目標(biāo)檢測比識別提供了更多關(guān)于圖像的信息。

          物體檢測與圖像識別和圖像分割等其他類似的計算機(jī)視覺技術(shù)密不可分,因為它有助于我們理解和分析圖像或視頻中的場景。


          鑒于這些關(guān)鍵的區(qū)別和物體檢測的獨特能力,我們可以看到為什么它可以在日常使用優(yōu)勢的多種方式中應(yīng)用,一些常見的例子是自動駕駛汽車,人臉檢測,交通調(diào)節(jié),視頻監(jiān)控,人群計數(shù),異常檢測等。


          數(shù)據(jù)集


          在這個項目中,我們使用了VOC2012數(shù)據(jù)集。VOC代表2012年視覺物體分類挑戰(zhàn)賽。這個數(shù)據(jù)集包含了來自PASCAL視覺對象分類挑戰(zhàn)的數(shù)據(jù),對應(yīng)于分類和檢測比賽。所提供的訓(xùn)練數(shù)據(jù)由一組圖像組成;每個圖像都有一個注釋文件,為圖像中20個類中的每個對象提供一個邊界框和對象類標(biāo)簽。有17125幅圖像可供訓(xùn)練。數(shù)據(jù)的大小大約為2GB。


          算法


          我們使用YOLO(你只看一次)算法進(jìn)行對象檢測。YOLO是一個聰明的卷積神經(jīng)網(wǎng)絡(luò)(CNN),用于實時進(jìn)行目標(biāo)檢測。該算法將單個神經(jīng)網(wǎng)絡(luò)應(yīng)用于完整的圖像,然后將圖像劃分為多個區(qū)域,并預(yù)測每個區(qū)域的邊界框和概率。這些邊界框是由預(yù)測的概率加權(quán)的。要理解YOLO,我們首先要分別理解這兩個模型。


          YOLO算法- YOLO算法是一種基于回歸的算法,它不是選擇圖像中有趣的部分,而是預(yù)測整個圖像中的類和包圍框運行一次算法。要理解YOLO算法,我們首先需要了解實際預(yù)測的是什么。最終,我們的目標(biāo)是預(yù)測一類對象和指定對象位置的邊界框。每個包圍框可以用四個描述符來描述:


          ●矩形x中央(bx, by)

          ●寬度(bw)

          ●高度(bh)

          ●對象的類


          YOLO不會在輸入圖像中搜索可能包含對象的感興趣區(qū)域,而是將圖像分割成單元格,通常是19×19網(wǎng)格。每個細(xì)胞負(fù)責(zé)預(yù)測K個包圍框。具有最大概率的類被選擇并分配給特定的網(wǎng)格單元。類似的過程發(fā)生在圖像中的所有網(wǎng)格單元格上。


          在預(yù)測類概率后,下一步進(jìn)行非最大抑制,這有助于算法消除不必要的錨點。

          一旦完成,算法就會找到具有下一個最高類別概率的包圍框,并進(jìn)行相同的過程,直到我們剩下所有不同的包圍框為止。


          在此之后,我們幾乎完成了所有的工作,算法最終輸出所需的向量,顯示各個類的包圍框的細(xì)節(jié)。


          微小Yolo算法——為了讓Yolo運行得更快,Redmon等人(Yolo的創(chuàng)建者)定義了Yolo架構(gòu)的一個變體,稱為微小Yolo。


          YOLOv3(和v3)根據(jù)一組預(yù)定的盒(具有特定的高寬比)預(yù)測偏移量——這些預(yù)定的包圍框就是錨盒。我們設(shè)置了一個條件如果這些包圍框的長度是6而不是YOLO算法我們就會實現(xiàn)Tiny YOLO模型


          實現(xiàn)


          1.它從文件的注釋開始,這基本上意味著在文本文件中有圖像的所有路徑并使用它讀取數(shù)據(jù)。


          2.我們從網(wǎng)上下載Yolov3權(quán)重。然后我們將Darknet YOLO模型轉(zhuǎn)換為Keras模型。然后實現(xiàn)目標(biāo)檢測。


          3.從頭開始實現(xiàn)它是一個具有挑戰(zhàn)性的模型,特別是對于初學(xué)者,因為它需要開發(fā)許多定制的模型元素來進(jìn)行訓(xùn)練和預(yù)測。例如,即使直接使用預(yù)先訓(xùn)練好的模型,也需要復(fù)雜的代碼來提取和解釋模型輸出的預(yù)測邊界框。


          4.我們訓(xùn)練這個模型并添加模型檢查點、降低學(xué)習(xí)率、提前停止和張量板。然后我們訓(xùn)練我們的模型與凍結(jié)層首先得到一個穩(wěn)定的損失和Adam Optimizer編譯,并節(jié)省權(quán)重。


          5.凍結(jié)一層也是一種通過逐步凍結(jié)隱藏層來加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練的技術(shù)。在神經(jīng)網(wǎng)絡(luò)的背景下凍結(jié)一層是關(guān)于控制權(quán)值更新的方式。當(dāng)一個層被凍結(jié)時,這意味著權(quán)重不能被進(jìn)一步修改。


          6.完成以上動作后,繼續(xù)訓(xùn)練模型。這基本上是對模型進(jìn)行微調(diào)。為了應(yīng)用這個更改,我們使用Adam Optimizer重新編譯模型。然后再裝一次,然后節(jié)省重量。模型訓(xùn)練在這里完成。


          7.要將這個模型應(yīng)用于視頻/圖像,我們將輸入和輸出視頻路徑的路徑作為參數(shù),然后加載模型并傳遞配置的路徑和權(quán)重。然后,我們使用Cv2視頻捕獲指向輸出視頻文件,并確定視頻中的幀數(shù)。從輸入幀構(gòu)造一個blob,然后執(zhí)行YOLO對象檢測器的前向傳遞,最后給出邊界框


          8.執(zhí)行這一切我們最后遍歷輸出層和每個檢測在每個輸出后我們添加邊框,定義其動態(tài)形狀,根據(jù)對象的大小,過濾掉弱概率,應(yīng)用non-maxima抑制抑制弱,重疊邊界框,并確保至少一個檢測存在。最后繪制一個邊界框矩形并在框架上進(jìn)行標(biāo)記,并將輸出框架寫入磁盤。

          最后,是我們的測試,可以看出進(jìn)行了有效檢測。

          輸入視頻截圖

          輸出視頻截圖


          結(jié)論


          我們在這個項目中探索的下一步是將其作為一個web應(yīng)用程序部署。我們目前面臨的主要限制是沒有足夠的RAM和空間來在云上托管它。但是,也許使用更輕的模型,我們會嘗試,同時也有這個實時應(yīng)用。


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機(jī)視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日产无码久久久久久久久精英 | 白浆在线 | 日本无码人妻 | 立即播放黑人大屌日本女小嫩逼的视频 | 天天日天天干天天射 |