來了解一下deeplabv3+模型的工業(yè)應(yīng)用流程
來源:投稿 作者:某一個(gè)名字
編輯:學(xué)姐
導(dǎo)語
在工業(yè)視覺應(yīng)用中,目標(biāo)檢測算法常用于特征的粗定位,而語義分割則在特征的精定位方面有著突出的表現(xiàn)。使用較多的語義分割模型主要有FCN、deeplab系列、unet等,根據(jù)自身的實(shí)踐來看deeplabv3+以及unet往往能夠在工業(yè)數(shù)據(jù)集上有著良好的檢測效果。這里就先介紹下deeplabv3+的工業(yè)應(yīng)用流程。
1、代碼獲取
1.1這里推薦使用的代碼庫
https://github.com/bubbliiiing/deeplabv3-plus-pytorch
1.2版本選擇

2、兩種途徑
很多教程往往只會(huì)說按照readme的要求安裝requirements即可,但是往往會(huì)出現(xiàn)torch或者torchvision安裝失敗等現(xiàn)象,這里提供兩種途徑可以規(guī)避可能出現(xiàn)的坑。
2.1 pytorch與torchvision的離線安裝
首先在官網(wǎng)https://download.pytorch.org/whl/torch_stable.html下載對(duì)應(yīng)的torch以及torchvision版本。下載完成后cmd定位到下載文件夾后利用文件夾名進(jìn)行安裝即可,例如(torch1.4)E:\torch>pip install torch-1.4.0-cp37-cp37m-win_amd64.whl
。
2.2 鏡像安裝庫
例如安裝opencv_python==4.1.2.30可通過pip install opencv_python==4.1.2.30 -i
https:://pypi.doubanio.com/simple。
3、模型訓(xùn)練
3.1訓(xùn)練數(shù)據(jù)處理
使用labelme工具制作自己的數(shù)據(jù)集,制作完成后將原圖與json格式文件一起放入datasets\before文件夾下,運(yùn)行json_to_dataset.py生成檢測圖片與標(biāo)簽圖片,分別位于datasets\JPEGImages、datasets\SegmentationClass下。最后將這兩個(gè)文件夾copy到VOCdevkit\VOC2007文件夾下,運(yùn)行voc_annotation.py即可生成最終的訓(xùn)練數(shù)據(jù)集格式。
注意點(diǎn):運(yùn)行json_to_dataset.py之前需要將classes更改成自己數(shù)據(jù)集種類,例如classes=[“_background_”,”luo”]。
3.2 模型訓(xùn)練
該代碼庫對(duì)于模型訓(xùn)練參數(shù)的更改設(shè)置均在train.py文件中做了很詳細(xì)的說明,可以按照給出的注釋適配自己的數(shù)據(jù)。
4、模型導(dǎo)出
目前模型部署的工具有很多例如openvino、libtorch、tensorrt、onnxruntime、opencvdnn等,個(gè)人使用比較多的是openvino、libtorch、tensorrt,現(xiàn)在就以libtorch為例來說明下模型部署的流程。
4.1 pth2pt
Libtorch接受的是pt格式的模型文件,所以需要將訓(xùn)練得到的pth權(quán)重文件轉(zhuǎn)化為pt模型文件格式,轉(zhuǎn)化代碼為:
5、模型部署
5.1基于Windows的libtorch安裝以及vs2019配置
5.1.1下載與安裝
5.1.2附加依賴
1)opencv:需要提前配置opencv,本文以openCV3.4.0為例;
2)cuda:如果需要GPU部署的話需要提前配置cuda,本文以cuda10.2為例如只需要CPU部署這步可忽略。
5.1.3下載地址
1)libtorch下載地址: https://pytorch.org/get-started/locally/
5.1.4 vs2019配置libtorch(注意文件路徑即可)
release、X64
VC++-目錄:
包含:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
D:\opencv\build\include\opencv
D:\opencv\build\include\openCV2
D:\opencv\build\include
D:\libtorch\include\torch\csrc\api\include
D:\libtorch\include
庫目錄:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib
D:\opencv\build\x64\vc15\lib
D:\libtorch\lib
鏈接器-輸入:
D:\libtorch\lib\torch.lib
D:\libtorch\lib\torch_cuda.lib
D:\libtorch\lib\caffe2_detectron_ops_gpu.lib
D:\libtorch\lib\caffe2_module_test_dynamic.lib
D:\libtorch\lib\torch_cpu.lib
D:\libtorch\lib\c10_cuda.lib
D:\libtorch\lib\caffe2_nvrtc.lib
D:\libtorch\lib\mkldnn.lib
D:\libtorch\lib\c10.lib
D:\libtorch\lib\dnnl.lib
D:\libtorch\lib\libprotoc.lib
D:\libtorch\lib\libprotobuf.lib
D:\libtorch\lib\libprotobuf-lite.lib
D:\libtorch\lib\fbgemm.lib
D:\libtorch\lib\asmjit.lib
D:\libtorch\lib\cpuinfo.lib
D:\libtorch\lib\clog.lib
D:\opencv\build\x64\vc14\lib\opencv_world340.lib
5.2 基于libtorch的部署代碼如下


語義分割論文學(xué)姐也準(zhǔn)備了部分經(jīng)典必讀!需要的同學(xué)來領(lǐng)取啦~
關(guān)注【學(xué)姐帶你玩AI】回復(fù)“500”即可