深度学习异物检测算法_深度学习算法部署项⽬-开源
前⾔
随着深度学习的不断⽕热,涌现了很多深度学习框架,⽐如caffe tensorflow pytorch mxnet onnx等等,这些框架⼤⼤降低了深度学习的⼊门难度,配合着论⽂+强⼤的python,以及github的各种开源项⽬,⽐较容
易写出⼀个算法训练⼯程,并不断训练和迭代。但是训练⼯程的模型跑分⾼不⼀定代表项⽬部署⼯程的效果好,原因有很多,可能与训练的数据集有关,也可能与部署⼯程的代码逻辑有关,也有可能与部署⼯程的代码效率有关(部署平台的算⼒和训练平台可能有天壤之别),为了将部署⼯程的跑分效果尽可能地与训练⼯程接近,笔者做了⼀套深度学习算法部署⼯程,⽤于部署各种深度识别算法,集成了很多⾼效、优秀的图像处理模块,如neon加速,双线性插值resize,内存共享降低拷贝等等,只为保证实时视频流的⼈脸特征提取(视频中可同时存在30张移动⼈脸)。
⽬前笔者的开源⼯程处于建⽴的初期,很多模块还不完善,所以⽬前是⼀个半开源的状态,但是完全不影响⼆次开发和使⽤,接⼝⽐较简单,感兴趣可以尝试⼀下。
后续笔者会开源所有源代码,但是真⼼希望⼩伙伴们给⼀些点赞和关注,整个项⽬都是业余时间做⽐较⾟苦,如果没⼈关注了不知道能坚持多久,先⾏谢谢了!
mumulin/libalgdeploy-hi3559a g itee
mumulin/libalgdeploy-mxnet g itee
集成算法-hinnie(可扩展)
⼈脸检测
⽊⽊林:⼈脸识别部署-⼈脸检测-海思nnie-hi3559a z huanlan.zhihu
⼈脸关键点检测
⽊⽊林:⼈脸识别部署-⼈脸关键点-海思nnie-hi3559a z huanlan.zhihu
⼈脸特征提取
⽊⽊林:⼈脸识别部署-特征提取-海思nnie-hi3559a z huanlan.zhihu
⽀持硬件平台(可扩展)
linux-aarch64 hi3559a-nnie
linux-x64 mxnet
API接⼊
1 初始化
// ⼈脸检测算法初始化
Alg_Face_Detect_Init(ALG_INIT_PARAMS* _pstInitParams);
// ⼈脸关键点算法初始化
Alg_Face_LMK_Init(ALG_INIT_PARAMS* _pstInitParams);
// ⼈脸特征提取算法初始化
Alg_Face_Feature_Init(ALG_INIT_PARAMS* _pstInitParams);
2 获取图像输⼊c h w
Alg_Face_Get_Input_C(ALG_HANDLE _pHandle);
Alg_Face_Get_Input_H(ALG_HANDLE _pHandle);
Alg_Face_Get_Input_W(ALG_HANDLE _pHandle);
3 图像转换
cv图像转换成api需要的图像格式
开源项目cv2alg(cv::Mat& _stCvImage, INT32 _s32Alignment)
4 推理
推理的图像格式根据获取到的算法图像输⼊进⾏相应变换。⽬前只实现了1个推理接⼝
// 推理整张图⽚ - 已实现
Alg_Face_Forward_Image(ALG_HANDLE _pHandle, ALG_IMAGE_S* _pstImage, INT32 _s32MaxRet, void *_pstResult);
// 根据检测框⾃动裁剪并推理 - 未实现
// 根据关键点⾃动裁剪并推理 - 未实现
算法扩展
参考alg_face_detect_v1.cpp、alg_face_lmk_v1.cpp、alg_face_feature_v1.cpp实现(上⾯的链接),定义⼀个新的算法类,继承algbasic类(NnieAlgBasic、MxAlgBasic等),根据需求实现相应的后处理ab_image_post函数。
转模型
参考笔者的转模型⼯程
mumulin/algmodelconvert g itee
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论