来源:投稿 作者:某一个名字
编辑:学姐
Mobilenet作为轻量化模型的代表,目前大量用于分类与语义分割中的特征提取,由于其很小的参数量,工业部署时在计算效率方面有着较大的优势。Mobilenet系列有v1、v2、v3三个版本,使用较多的是v2、v3,现在就以mobilenetv2分类模型为例介绍下工业应用时的流程以及涉及到的工具链。
https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_classification/Test6_mobilenet
环境安装教程以及注意事项可参考本人的另一篇分享文章《基于deeplabv3+的工业应用流程分析》。
1)首先根据自己的数据集更改class_indices.json中类别名称,例如猫狗分类:
{
"0": "cat",
"1": "dog"
}
2)数据分类存放,每一种类的数据图片放在同一个文件夹下即可。
该代码库对于模型训练参数的更改设置均在train.py文件中,通常给出自己数据集的路径即可。
目前模型部署的工具有很多例如openvino、libtorch、tensorrt、onnxruntime、opencvdnn等,上一篇分享是基于libtorch进行部署的,现在就以openvino为例来说明下分类模型部署的流程。
openvino安装教程
1.下载与安装
下载地址
https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit-download.html?operatingsystem=window&distributions=webdownload
2.选择版本安装
选择新的版本,本文已openvino_2021.2.185为例,下载得到w_openvino_toolkit_p_.exe文件,点击extract,然后一路默认下一步安装,直至安装完成。
3.系统环境变量配置
环境变量中加入如下四项,版本不同的话只需修改版本名即可:
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\external\tbb\bin
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\bin\intel64\Release
C:\Program Files (x86)\Intel\openvino_2021.2.185\deployment_tools\ngraph\lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\bin
4.vs2019配置openvino
配置如下说明所示,版本不同的话只需修改版本名即可:
首先修改VS编译为release版本下的x64
VC++-目录
包含目录:
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\include
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\include
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\include\opencv2
库目录
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib
链接器-输入
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_c_api.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_ir_reader.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_legacy.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_lp_transformations.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_onnx_reader.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_preproc.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_transformations.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_calib3d451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_core451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_dnn451.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_features2d451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_flann451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_gapi451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_highgui451.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_imgcodecs451.lib
C:\ProgramFiles (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_imgproc451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_ml451.lib
C:\ProgramFiles(x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_objdetect451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_photo451.lib
C:\ProgramFiles (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_stitching451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_video451.lib
C:\Program Files (x86)\Intel\openvino_2021.2.185\opencv\lib\opencv_videoio451.lib
至此基于Windows的openvino安装以及vs2019配置已完成,接下来就可以开始计算机视觉模型的部署工作了。
首先创建一个image_classes.txt文件,里面写好类别,例如:
基于openvino的分类模型CPU部署的代码属于通用代码,任何模型均可使用。
mobilenet网络在工业数据分类中的应用就这样实现了,这是本人对于分类网络的探索应用,后续再介绍最后一种目标检测网络,还有很多需要指正的地方,希望大家一起加油,谢谢!
关注公众号【学姐带你玩AI】
回复“轻量化”获取mobilenet论文+代码数据集