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

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

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

Pytoorch輕松學 – RetinaNet自定義對象檢測

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-11-15 16:44 ? 次閱讀

RetinaNet網(wǎng)絡介紹

2017發(fā)布,實現(xiàn)了一階段網(wǎng)絡首次在精度方面超過二階段網(wǎng)絡的經(jīng)典網(wǎng)絡,作者最大的一個創(chuàng)新就是在訓練損失函數(shù)方面,論文比較了CE、BCE、以及論文提出感知損失函數(shù)(FL),最后說明感知損失可以有效解決一階段網(wǎng)絡訓練中的樣本不平衡現(xiàn)象,從而取得更佳的訓練效果。論文中提出的感知損失函數(shù)如下:

681846d0-838b-11ee-939d-92fbcf53809c.png

最終RetinaNet網(wǎng)絡結構如下:

68238f22-838b-11ee-939d-92fbcf53809c.png

數(shù)據(jù)集準備與制作

自己百度收集了一個無人機與飛鳥的數(shù)據(jù)集,其中訓練集270張圖像,測試集26張圖像。

6831c72c-838b-11ee-939d-92fbcf53809c.png

使用labelImg工具完成標注,工具下載地址:

https://gitee.com/opencv_ai/opencv_tutorial_data/tree/master/tools

三:模型訓練

制作好數(shù)據(jù)集之后,模型訓練就成為一件很簡單事情,基于OpenMV工具軟件,零代碼即可實現(xiàn)模型訓練。運行下面界面如下:

683d01e6-838b-11ee-939d-92fbcf53809c.png

總計訓練了25個輪次以后,發(fā)現(xiàn)效果已經(jīng)是相當?shù)牟诲e了,直接導出ONNX格式RetinaNet模型文件。 把模型轉換為ONNX格式,Pytorch是原生支持的,只需要把通過torch.onnx.export接口,填上相關的參數(shù),然后直接運行就可以生成ONNX模型文件。相關的轉換代碼如下:
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'}}
)
運行時候控制臺會有一系列的警告輸出,但是絕對不影響模型轉換,影響不影響精度我還沒做個仔細的對比。 模型轉換之后,可以直接查看模型的輸入與輸出結構,圖示如下:

6847acc2-838b-11ee-939d-92fbcf53809c.png

推理運行

推理部分的代碼很簡單,只有三十幾行,Python就是方便使用,這里最需要注意的是輸入圖像的預處理必須是RGB格式,需要歸一化到0~1之間。對得到的三個輸出層分別解析,就可以獲取到坐標(boxes里面包含的實際坐標,無需轉換)?;贠penMV工具軟件,可以實現(xiàn)一鍵零代碼推理演示,效果如下:

6875599c-838b-11ee-939d-92fbcf53809c.png


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

    關注

    14

    文章

    7586

    瀏覽量

    89003
  • 無人機
    +關注

    關注

    230

    文章

    10484

    瀏覽量

    181334
  • 數(shù)據(jù)集

    關注

    4

    文章

    1208

    瀏覽量

    24748

原文標題:Pytoorch輕松學 – RetinaNet自定義對象檢測

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    自定義函數(shù)測試學習工程

    自定義函數(shù)測試學習工程
    發(fā)表于 07-01 16:37 ?5次下載

    1602自定義字符

    1602液晶能夠顯示自定義字符,能夠根據(jù)讀者的具體情況顯示自定義字符。
    發(fā)表于 01-20 15:43 ?1次下載

    JAVA教程之自定義光標

    JAVA教程之自定義光標,很好的學習資料。
    發(fā)表于 03-31 11:13 ?7次下載

    PDH網(wǎng)管盤 自定義字節(jié)

    PDH網(wǎng)管盤 自定義字節(jié)
    發(fā)表于 12-26 22:13 ?0次下載

    基于自定義特征的飛機結構件智能檢測規(guī)劃技術_曾德標

    基于自定義特征的飛機結構件智能檢測規(guī)劃技術_曾德標
    發(fā)表于 02-08 01:56 ?1次下載

    如何在android設備上安裝自定義rom

    完成后,請執(zhí)行相同的操作,但不要選擇自定義rom,而是選擇間隙。安裝間隙之前需要使用一些自定義rom,您可以從自定義rom的開發(fā)人員網(wǎng)頁上了解,如果他們沒有提及任何相關內(nèi)容,只需在自定義
    的頭像 發(fā)表于 11-05 10:48 ?5184次閱讀

    蘋果新版Reality Converter應用可自定義3D對象

    蘋果在今日向開發(fā)人員通報了新版Reality Converter應用的發(fā)布,該程序旨在協(xié)助用戶在Mac上轉換、查看和自定義USDZ 3D對象。
    的頭像 發(fā)表于 01-14 16:04 ?2250次閱讀

    自定義視圖組件教程案例

    自定義組件 1.自定義組件-particles(粒子效果) 2.自定義組件- pulse(脈沖button效果) 3.自定義組件-progress(progress效果) 4.
    發(fā)表于 04-08 10:48 ?14次下載

    ArkUI如何自定義彈窗(eTS)

    自定義彈窗其實也是比較簡單的,通過CustomDialogController類就可以顯示自定義彈窗。
    的頭像 發(fā)表于 08-31 08:24 ?2239次閱讀

    基于AI自定義視覺工作場所安全檢測系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于AI自定義視覺工作場所安全檢測系統(tǒng).zip》資料免費下載
    發(fā)表于 12-09 10:25 ?0次下載
    基于AI<b class='flag-5'>自定義</b>視覺工作場所安全<b class='flag-5'>檢測</b>系統(tǒng)

    用于改進應用的自定義邏輯外設

    具有可配置自定義邏輯 (CCL) 外設。為了快速輕松地進行設置,MPLAB? 代碼配置器 (MCC) 可用于為正在使用的外設設置和生成 API。
    的頭像 發(fā)表于 05-06 09:51 ?962次閱讀
    用于改進應用的<b class='flag-5'>自定義</b>邏輯外設

    labview自定義控件

    labview自定義精美控件
    發(fā)表于 05-15 16:46 ?17次下載

    自定義神經(jīng)網(wǎng)絡對象識別開源分享

    電子發(fā)燒友網(wǎng)站提供《自定義神經(jīng)網(wǎng)絡對象識別開源分享.zip》資料免費下載
    發(fā)表于 06-16 09:27 ?0次下載
    <b class='flag-5'>自定義</b>神經(jīng)網(wǎng)絡<b class='flag-5'>對象</b>識別開源分享

    自定義算子開發(fā)

    一個完整的自定義算子應用過程包括注冊算子、算子實現(xiàn)、含自定義算子模型轉換和運行含自定義op模型四個階段。在大多數(shù)情況下,您的模型應該可以通過使用hb_mapper工具完成轉換并順利部署到地平線芯片上……
    的頭像 發(fā)表于 04-07 16:11 ?2834次閱讀
    <b class='flag-5'>自定義</b>算子開發(fā)

    labview超快自定義控件制作和普通自定義控件制作

    labview超快自定義控件制作和普通自定義控件制作
    發(fā)表于 08-21 10:32 ?13次下載