日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

yolo算法_吴恩达深度学习笔记(100)-目标检测之YOLO 算法讲解

發(fā)布時間:2024/9/30 目标检测 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolo算法_吴恩达深度学习笔记(100)-目标检测之YOLO 算法讲解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

YOLO 算法(Putting it together: YOLO algorithm)

你們已經(jīng)學(xué)到對象檢測算法的大部分組件了,在這個筆記里,我們會把所有組件組裝在一起構(gòu)成YOLO對象檢測算法。

我們先看看如何構(gòu)造你的訓(xùn)練集,假設(shè)你要訓(xùn)練一個算法去檢測三種對象,行人、汽車和摩托車,你還需要顯式指定完整的背景類別。

這里有3個類別標(biāo)簽,如果你要用兩個anchor box,那么輸出 y 就是3×3×2×8,其中3×3表示3×3個網(wǎng)格,2是anchor box的數(shù)量,8是向量維度,8實際上先是5(p_c,b_x,b_y,b_h,b_w)再加上類別的數(shù)量(c_1,c_2,c_3)。你可以將它看成是3×3×2×8,或者3×3×16。要構(gòu)造訓(xùn)練集,你需要遍歷9個格子,然后構(gòu)成對應(yīng)的目標(biāo)向量y。

所以先看看第一個格子(編號1),里面沒什么有價值的東西,行人、車子和摩托車,三個類別都沒有出現(xiàn)在左上格子中,所以對應(yīng)那個格子目標(biāo)y就是這樣的,

第一個anchor box的 p_c 是0,因為沒什么和第一個anchor box有關(guān)的,第二個anchor box的 p_c 也是0,剩下這些值是don’t care-s。

現(xiàn)在網(wǎng)格中大多數(shù)格子都是空的,但那里的格子(編號2)會有這個目標(biāo)向量y,

所以假設(shè)你的訓(xùn)練集中,對于車子有這樣一個邊界框(編號3),水平方向更長一點。所以如果這是你的anchor box,這是anchor box 1(編號4),這是anchor box 2(編號5),然后紅框和anchor box 2的交并比更高,那么車子就和向量的下半部分相關(guān)。要注意,這里和anchor box 1有關(guān)的 p_c 是0,剩下這些分量都是don’t care-s,然后你的第二個 p_c=1,然后你要用這些(b_x,b_y,b_h,b_w)來指定紅邊界框的位置,然后指定它的正確類別是2(c_1=0,c_2=1,c_3=0),對吧,這是一輛汽車。

所以你這樣遍歷9個格子,遍歷3×3網(wǎng)格的所有位置,你會得到這樣一個向量,得到一個16維向量,所以最終輸出尺寸就是3×3×16。

和之前一樣,簡單起見,我在這里用的是3×3網(wǎng)格,實踐中用的可能是19×19×16,或者需要用到更多的anchor box,可能是19×19×5×8,即19×19×40,用了5個anchor box。這就是訓(xùn)練集,然后你訓(xùn)練一個卷積網(wǎng)絡(luò),輸入是圖片,可能是100×100×3,然后你的卷積網(wǎng)絡(luò)最后輸出尺寸是,在我們例子中是3×3×16或者3×3×2×8。

接下來我們看看你的算法是怎樣做出預(yù)測的?

輸入圖像,你的神經(jīng)網(wǎng)絡(luò)的輸出尺寸是這個3××3×2×8,對于9個格子,每個都有對應(yīng)的向量。對于左上的格子(編號1),那里沒有任何對象,那么我們希望你的神經(jīng)網(wǎng)絡(luò)在那里(第一個p_c)輸出的是0,這里(第二個p_c)是0,然后我們輸出一些值,你的神經(jīng)網(wǎng)絡(luò)不能輸出問號,不能輸出don’t care-s,剩下的我輸入一些數(shù)字,但這些數(shù)字基本上會被忽略,因為神經(jīng)網(wǎng)絡(luò)告訴你,那里沒有任何東西,所以輸出是不是對應(yīng)一個類別的邊界框無關(guān)緊要,所以基本上是一組數(shù)字,多多少少都是噪音(輸出 y 如編號3所示)。

和這里的邊界框不大一樣,希望y的值,那個左下格子(編號2)的輸出y(編號4所示),形式是,對于邊界框1來說(p_c)是0,然后就是一組數(shù)字,就是噪音(anchor box 1對應(yīng)行人,此格子中無行人,p_c=0,b_x=?,b_y=?,b_h=?,b_w=?,c_1=?c_2=?,c_3=?)。

希望你的算法能輸出一些數(shù)字,可以對車子指定一個相當(dāng)準(zhǔn)確的邊界框(anchor box 2對應(yīng)汽車,此格子中有車,p_c=1,b_x,b_y,b_h,b_w,c_1=0,c_2=1,c_3=0),這就是神經(jīng)網(wǎng)絡(luò)做出預(yù)測的過程。

最后你要運行一下這個非極大值抑制,為了讓內(nèi)容更有趣一些,我們看看一張新的測試圖像,這就是運行非極大值抑制的過程。如果你使用兩個anchor box,那么對于9個格子中任何一個都會有兩個預(yù)測的邊界框,其中一個的概率p_c很低。但9個格子中,每個都有兩個預(yù)測的邊界框,比如說我們得到的邊界框是是這樣的,注意有一些邊界框可以超出所在格子的高度和寬度(編號1所示)。

接下來你拋棄概率很低的預(yù)測,去掉這些連神經(jīng)網(wǎng)絡(luò)都說,這里很可能什么都沒有,所以你需要拋棄這些(編號2所示)。

最后,如果你有三個對象檢測類別,你希望檢測行人,汽車和摩托車,那么你要做的是,對于每個類別單獨運行非極大值抑制處理預(yù)測結(jié)果所屬類別的邊界框用非極大值抑制來處理行人類別,用非極大值抑制處理車子類別,然后對摩托車類別進(jìn)行非極大值抑制運行三次來得到最終的預(yù)測結(jié)果。所以算法的輸出最好能夠檢測出圖像里所有的車子,還有所有的行人(編號3所示)。

這就是YOLO對象檢測算法,這實際上是最有效的對象檢測算法之一,包含了整個計算機視覺對象檢測領(lǐng)域文獻(xiàn)中很多最精妙的思路。

總結(jié)

以上是生活随笔為你收集整理的yolo算法_吴恩达深度学习笔记(100)-目标检测之YOLO 算法讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。