RetinaNet網(wǎng)絡(luò)介紹
2017發(fā)布,實(shí)現(xiàn)了一階段網(wǎng)絡(luò)首次在精度方面超過二階段網(wǎng)絡(luò)的經(jīng)典網(wǎng)絡(luò),作者最大的一個(gè)創(chuàng)新就是在訓(xùn)練損失函數(shù)方面,論文比較了CE、BCE、以及論文提出感知損失函數(shù)(FL),最后說明感知損失可以有效解決一階段網(wǎng)絡(luò)訓(xùn)練中的樣本不平衡現(xiàn)象,從而取得更佳的訓(xùn)練效果。論文中提出的感知損失函數(shù)如下:
數(shù)據(jù)集準(zhǔn)備與制作
自己百度收集了一個(gè)無(wú)人機(jī)與飛鳥的數(shù)據(jù)集,其中訓(xùn)練集270張圖像,測(cè)試集26張圖像。
使用labelImg工具完成標(biāo)注,工具下載地址:
https://gitee.com/opencv_ai/opencv_tutorial_data/tree/master/tools
三:模型訓(xùn)練
制作好數(shù)據(jù)集之后,模型訓(xùn)練就成為一件很簡(jiǎn)單事情,基于OpenMV工具軟件,零代碼即可實(shí)現(xiàn)模型訓(xùn)練。運(yùn)行下面界面如下:
model=tv.models.detection.retinanet_resnet50_fpn(pretrained=True)
dummy_input=torch.randn(1,3,1333,800)
model.eval()
model(dummy_input)
im=torch.zeros(1,3,1333,800).to("cpu")
torch.onnx.export(model,im,
"retinanet_resnet50_fpn.onnx",
verbose=False,
opset_version=11,
training=torch.onnx.TrainingMode.EVAL,
do_constant_folding=True,
input_names=['input'],
output_names=['output'],
dynamic_axes={'input':{0:'batch',2:'height',3:'width'}}
)
運(yùn)行時(shí)候控制臺(tái)會(huì)有一系列的警告輸出,但是絕對(duì)不影響模型轉(zhuǎn)換,影響不影響精度我還沒做個(gè)仔細(xì)的對(duì)比。
模型轉(zhuǎn)換之后,可以直接查看模型的輸入與輸出結(jié)構(gòu),圖示如下:
推理運(yùn)行
推理部分的代碼很簡(jiǎn)單,只有三十幾行,Python就是方便使用,這里最需要注意的是輸入圖像的預(yù)處理必須是RGB格式,需要歸一化到0~1之間。對(duì)得到的三個(gè)輸出層分別解析,就可以獲取到坐標(biāo)(boxes里面包含的實(shí)際坐標(biāo),無(wú)需轉(zhuǎn)換)。基于OpenMV工具軟件,可以實(shí)現(xiàn)一鍵零代碼推理演示,效果如下:
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7724瀏覽量
90188 -
無(wú)人機(jī)
+關(guān)注
關(guān)注
230文章
10662瀏覽量
184996 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1221瀏覽量
25212
原文標(biāo)題:Pytoorch輕松學(xué) – RetinaNet自定義對(duì)象檢測(cè)
文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于自定義特征的飛機(jī)結(jié)構(gòu)件智能檢測(cè)規(guī)劃技術(shù)_曾德標(biāo)
如何在android設(shè)備上安裝自定義rom
蘋果新版Reality Converter應(yīng)用可自定義3D對(duì)象
自定義視圖組件教程案例
ArkUI如何自定義彈窗(eTS)
基于AI自定義視覺工作場(chǎng)所安全檢測(cè)系統(tǒng)

用于改進(jìn)應(yīng)用的自定義邏輯外設(shè)

自定義神經(jīng)網(wǎng)絡(luò)對(duì)象識(shí)別開源分享

自定義算子開發(fā)

評(píng)論