跑通SOLOV1-V2实例分割代码,并训练自己的数据集
SOLOv 2:實例分割(動態(tài)、更快、更強)
論文鏈接:https://arxiv.org/abs/1912.04488
論文解讀博文
https://blog.csdn.net/sanshibayuan/article/details/103895058
就目前來講,很多實例分割算法存在的問題弊端主要是:
速度太慢了,比如Maskrcnn,雖然聲名遠揚,但是要把它部署到realtime,還是很困難的;
精度不夠,比如Yolact,即便是Yolact++,其精度其實也只能說差強人意,連MaskRCNN都比不上的實力分割,速度再快,也會限制它的使用場景;
BlendMask,CenterMask這類的算法,都差不多,基于FCOS構(gòu)建,本質(zhì)上沒啥區(qū)別,還是和MaskRCNN整體流程差不多,只不過檢測器變了而已,對于部署來說依舊很麻煩。
對于許多二階段的實例分割算法,轉(zhuǎn)換到另一個推理平臺很麻煩,主要是這里面存在RPN的一些操作,即便是類似于CenterMask這樣的模型,也需要先獲取box,然后經(jīng)過ROIAlign和ROIPool來得到需要的mask,這個過程不僅計算繁瑣,而且很難導出到我們想要的模型格式,比如ONNX就不支持這里面的很多op。SOLOV2的性能似乎比maskrcnn差不多,推理速度只要一半,并且速度和精確度都超過了BlendMask。
通過改進,SOLOv2的AP性能比SOLOv1高出1.9%,而速度提高了33%。Res-50-FPN SOLOv2在具有挑戰(zhàn)性的MS-COCO數(shù)據(jù)集上以18 FPS的速度實現(xiàn)38.8%的掩模AP,在單個V100 GPU卡上進行評估。一個輕量級版本的SOLOv2以31.3FPS的速度執(zhí)行,產(chǎn)生37.1%的掩模AP。有趣的是,雖然本文的方法徹底消除了bounding box的概念,但是本文的bounding box的副產(chǎn)品,即直接將預測的掩模轉(zhuǎn)換為bounding box,產(chǎn)生42.4%的AP用于bounding box對象檢測,它甚至超過了許多最先進、高度工程化的目標檢測方法。
跑通SOLOV1-V2實例分割代碼
系統(tǒng)平臺:Ubuntu18.04
硬件平臺:RTX2080 super
cuda和cudnn版本:cuda10.0 cudnn:7.5.6
pytorch版本:pytorch1.2.0
環(huán)境安裝:
完成上面操作就可以跑demo了,但是solo只給了單張圖片的預測,攝像頭預測是無法運行的,下面的代碼是攝像頭實時檢測的代碼,大家可以試一下:
代碼獲取方式:
分享本文到朋友圈
關(guān)注微信公眾號 datayx 然后回復實例分割即可獲取。
AI項目體驗地址https://loveai.tech
店鋪地址:
https://shop585613237.taobao.com
↓
數(shù)據(jù)集準備:
我們標注數(shù)據(jù)集使用的是labelme來標注,每一個圖片會生成一個json標注文件,標注完成后我們需要將我們所有json文件合并為一個json文件。代碼如下:
轉(zhuǎn)換完之后,我們需要生成如下幾個文件夾。annotations存儲的是我們上面轉(zhuǎn)換的json文件。train2017和val2017存儲的是訓練和測試的圖片。
創(chuàng)建我們自己的數(shù)據(jù)集。在SOLO/mmdet/datasets文件夾下面創(chuàng)建我們自己的數(shù)據(jù)集,我創(chuàng)建的是pig_data.py文件:
修改SOLO/mmdet/datasets/__init__.py文件,將我們的數(shù)據(jù)集加進去。
修改訓練文件:
模型訓練文件在SOLO/configs/solo文件夾下,我修改的是solo_r50_fpn_8gpu_3x.py。你想要訓練哪個就修改哪個。
這樣就可以完成solo訓練自己的數(shù)據(jù)集了,經(jīng)過測試分割效果很出色,邊緣信息也比較好。
機器學習算法AI大數(shù)據(jù)技術(shù)
搜索公眾號添加:datanlp
長按圖片,識別二維碼
總結(jié)
以上是生活随笔為你收集整理的跑通SOLOV1-V2实例分割代码,并训练自己的数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Kyma SSL证书请求文件(C
- 下一篇: 微软Power BI 每月功能更新系列—