跑通SOLOV1-V2實例分割代碼,並訓練自己的數據集


SOLOv 2:實例分割(動態、更快、更強)

 

論文鏈接:https://arxiv.org/abs/1912.04488

 

論文解讀博文

https://blog.csdn.net/sanshibayuan/article/details/103895058

 

 

就目前來講,很多實例分割算法存在的問題弊端主要是:

  • 速度太慢了,比如Maskrcnn,雖然聲名遠揚,但是要把它部署到realtime,還是很困難的;

  • 精度不夠,比如Yolact,即便是Yolact++,其精度其實也只能說差強人意,連MaskRCNN都比不上的實力分割,速度再快,也會限制它的使用場景;

  • BlendMask,CenterMask這類的算法,都差不多,基於FCOS構建,本質上沒啥區別,還是和MaskRCNN整體流程差不多,只不過檢測器變了而已,對於部署來說依舊很麻煩。

 

對於許多二階段的實例分割算法,轉換到另一個推理平台很麻煩,主要是這里面存在RPN的一些操作,即便是類似於CenterMask這樣的模型,也需要先獲取box,然后經過ROIAlign和ROIPool來得到需要的mask,這個過程不僅計算繁瑣,而且很難導出到我們想要的模型格式,比如ONNX就不支持這里面的很多op。SOLOV2的性能似乎比maskrcnn差不多,推理速度只要一半,並且速度和精確度都超過了BlendMask。

 

通過改進,SOLOv2的AP性能比SOLOv1高出1.9%,而速度提高了33%。Res-50-FPN SOLOv2在具有挑戰性的MS-COCO數據集上以18 FPS的速度實現38.8%的掩模AP,在單個V100 GPU卡上進行評估。一個輕量級版本的SOLOv2以31.3FPS的速度執行,產生37.1%的掩模AP。有趣的是,雖然本文的方法徹底消除了bounding box的概念,但是本文的bounding box的副產品,即直接將預測的掩模轉換為bounding box,產生42.4%的AP用於bounding box對象檢測,它甚至超過了許多最先進、高度工程化的目標檢測方法。

 

圖片

 

跑通SOLOV1-V2實例分割代碼

 

系統平台:Ubuntu18.04  

硬件平台:RTX2080 super

cuda和cudnn版本:cuda10.0   cudnn:7.5.6

pytorch版本:pytorch1.2.0

 

環境安裝:

 

圖片

 

完成上面操作就可以跑demo了,但是solo只給了單張圖片的預測,攝像頭預測是無法運行的,下面的代碼是攝像頭實時檢測的代碼,大家可以試一下:

 

圖片

 

 

圖片

 

 

 

 


代碼 獲取方式:

分享本文到朋友圈

關注微信公眾號 datayx  然后回復 實例分割 即可獲取。

AI項目體驗地址 https://loveai.tech

 

 

店鋪地址:

https://shop585613237.taobao.com

圖片

 

 

數據集准備:

我們標注數據集使用的是labelme來標注,每一個圖片會生成一個json標注文件,標注完成后我們需要將我們所有json文件合並為一個json文件。代碼如下:

 

圖片

 

 

轉換完之后,我們需要生成如下幾個文件夾。annotations存儲的是我們上面轉換的json文件。train2017和val2017存儲的是訓練和測試的圖片。

 

圖片

 

創建我們自己的數據集。在SOLO/mmdet/datasets文件夾下面創建我們自己的數據集,我創建的是pig_data.py文件:

 

圖片

 

修改SOLO/mmdet/datasets/__init__.py文件,將我們的數據集加進去。

 

圖片

 

修改訓練文件:

模型訓練文件在SOLO/configs/solo文件夾下,我修改的是solo_r50_fpn_8gpu_3x.py。你想要訓練哪個就修改哪個。

圖片

圖片

圖片

圖片

這樣就可以完成solo訓練自己的數據集了,經過測試分割效果很出色,邊緣信息也比較好。

 

圖片

 

 

機器學習算法AI大數據技術

 搜索公眾號添加: datanlp

圖片

長按圖片,識別二維碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM