YoloV5一系列实践详情,Github代码已开源

关注并星标

从此不迷路

计算机视觉研究院

83bc5cb2076a355c1dc2a858ed0ddcc0.gif

42d964ebb671b59e1fcc570cf49a8fea.png

公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

作者:Edison_G

本文主要讲解几个部分,(适合一些在读的研究生啥也不会然后接到一些项目无从下手,如果是大佬的话就可以跳过了)先看看网络摄像头的效果吧(在2060的电脑上运行 )

转自《知乎——kaka》

36007073f249c7ee60156aac712815e9.png

实践时间Pipeline

2021年9月18日,在github上发布了一套使用ONNXRuntime部署anchor-free系列的YOLOR,依然是包含C++和Python两种版本的程序。起初我是想使用OpenCV部署的,但是opencv读取onnx文件总是出错,于是我换用ONNXRuntime部署。

YOLOR是一个anchor-free系列的YOLO目标检测,不需要anchor作为先验。本套程序参考了YOLOR的官方程序(https://github.com/WongKinYiu/yolor), 官方代码里是使用pytorch作为深度学习框架的。根据官方提供的.pth文件,生成onnx文件后,我本想使用OpenCV作为部署的推理引擎的,但是在加载onnx 文件这一步始终出错,于是我决定使用ONNXRuntime作为推理引擎。在编写完Python版本的程序后, 在本机win10-cpu环境里,在visual stdio里新建一个c++空项目,按照csdn博客里的文章讲解来配置onnxruntime, 配置的步骤跟配置Opencv的步骤几乎一样。在编写完c++程序后,编译运行,感觉onnxruntime的推理速度要比 opencv的推理速度快,看来以后要多多使用onnxruntime作为推理引擎了,毕竟onnxruntime是微软推出的专门针对 onnx模型做推理的框架,对onnx文件有着最原生的支持。本套程序里的onnx文件链接:https://pan.baidu.com/s/1Mja0LErNE4dwyj_oYsOs2g,提取码:qx2j

Github地址是:https://github.com/hpc203/yolor-onnxruntime

82f4181c29c5c0ea3b2827d5dcfd915f.png

9月19日,在github上发布了一套使用深度学习算法实现虚拟试衣镜,结合了人体姿态估计、人体分割、几何匹配和GAN,四种模型。仅仅只依赖opencv库就能运行,除此之外不再依赖任何库。源码地址是:https://github.com/hpc203/virtual_try_on_use_deep_learning

这套程序只有Python版本的,我在本地编写了C++程序,但是输出结果跟Python版本的输出结果始终不一致, 对于这个bug我还没有找到原因,因此我在github只发布python程序的。程序启动运行之后,要等几秒种后才能弹窗显示结果, 程序运行速度慢的问题还有待优化。

09cf7aca2902d6203e34895a56a78578.png

10月17日,在github上发布了使用OpenCV部署SCRFD人脸检测,依然是包含C++和Python两种版本的程序实现。SCRFD是一个FCOS式的人脸检测器,2021年5月在insightface仓库里发布的,它也是检测人脸矩形框和5个关键点。我发布在github上的源码地址是:https://github.com/hpc203/scrfd-opencv

8ce386ec86cb508131de968b2b8fcc5a.png

11月6日,在github发布了使用OpenCV部署libface人脸检测和SFace人脸识别,包含C++和Python两种版本的程序,仅仅只依赖OpenCV库就能运行。源码地址是:https://github.com/hpc203/libface-sface_detect-recognition-opencv

656397ac2d9efc82cba260e708540af0.png

人脸检测和人脸识别模块是由人脸识别领域的两位大牛设计的, 其中人脸检测是南科大的于仕琪老师设计的,人脸识别模块是北邮的邓伟洪教授设计,其研究成果SFace发表在图像处理顶级期刊IEEE Transactions on Image Processing。人脸检测示例程序在opencv-master/samples/dnn/face_detect.cpp里,起初我在win10系统里,在visual stdio 2019 里新建一个空项目,然后把opencv-master/samples/dnn/face_detect.cpp拷贝进来作为主程序,尝试编译,发现编译不通过。仔细看代码可以发现face_detect.cpp里使用了类的继承和虚函数重写,这说明依赖包含了其他的.cpp和.hpp头文件的。因此我就编写一套程序, 人脸检测和人脸识别程序从opencv源码里剥离出来,只需编写一个main.cpp文件,就能运行人脸检测和人脸识别程序。于仕琪老师设计的libface人脸检测,有一个特点就是输入图像的尺寸是动态的,也就是说对输入图像不需要做resize到固定尺寸,就能输入到神经网络做推理的,此前我发布的一些人脸检测程序都没有做到这一点,而且模型文件.onnx只有336KB。因此,这套人脸检测模型是 非常有应用价值的。在下载完代码之后,在visual stdio 2019里新建一个空项目,配置opencv,然后把main.cpp和weights文件拷贝进去,接下来编译运行就可以了。

19b98ee30a848074f7362cc4666de669.png

12月12日,我在github发布了使用OpenCV部署faster-rcnn检测证件照,包含C++和Python两种版本的程序,仅仅只依赖opencv库就能运行。源码地址是:https://github.com/hpc203/faster-rcnn-card-opencv

b793606d6a4d4912cda3c91238032ef6.png

12月18日,我在github发布了使用ONNXRuntime部署PicoDet目标检测,包含C++和Python两个版本的程序,源码地址是:https://github.com/hpc203/picodet-onnxruntime

起初,我是想使用opencv部署PicoDet目标检测的,但是opencv的dnn模块读取.onnx文件失败了。于是只能使用onnxruntime部署了。12月28日,我在github发布了使用OpenCV部署NanoDet-Plus,包含C++和Python两个版本的程序;使用ONNXRuntime部署NanoDet-Plus,包含C++和Python两个版本的程序。源码地址是:https://github.com/hpc203/nanodet-plus-opencv

a3b52b0936c748a7ad7579a1d15c3218.png

2022年1月16日,我在github发布了使用ONNXRuntime部署人脸动漫化——AnimeGAN,包含C++和Python两个版本的代码实现,源码地址是https://github.com/hpc203/AnimeGAN-onnxruntime

1月21日,我在github发布了使用OpenCV部署ByteTrack目标跟踪,包含C++和Python两个版本的程序。使用ONNXRuntime部署ByteTrack目标跟踪,包含C++和Python两个版本的程序。源码地址是:https://github.com/hpc203/bytetrack-opencv-onnxruntime

1月28日,我在github发布了使用OpenCV部署yolov5检测车牌和4个角点,包含C++和Python两个版本的程序。使用ONNXRuntime部署yolov5检测车牌和4个角点,包含C++和Python两个版本的程序。程序会输出车牌的水平矩形框的左上和右下顶点的坐标(x,y),车牌的4个角点的坐标(x,y)。源码地址是https://github.com/hpc203/yolov5-detect-car_plate_corner

36e73269470ef5d01d5793de2adb847b.png

2月7日,在github发布了使用ONNXRuntime部署yolov5-lite目标检测,包含C++和Python两个版本的程序,源码地址是https://github.com/hpc203/yolov5-lite-onnxruntime

2月17日,在github发布了使用OpenCV部署多任务的yolov5目标检测+语义分割,包含C++和Python两个版本的程序。使用ONNXRuntime部署多任务的yolov5目标检测+语义分割,包含C++和Python两个版本的程序。源码地址是https://github.com/hpc203/multiyolov5-opencv-onnxrun

2月19日,在github发布了使用OpenCV部署yolov5旋转目标检测,包含C++和Python两个版本的程序。使用ONNXRuntime部署yolov5旋转目标检测,包含C++和Python两个版本的程序。源码地址是https://github.com/hpc203/rotate-yolov5-opencv-onnxrun

在编写这套程序的过程中,发现在python程序里,opencv的dnn模块提供了现成的计算旋转矩形框的NMS函数cv2.dnn.NMSBoxesRotated。但是在C++程序里,opencv的dnn模块提供现成的计算旋转矩形框的NMS函数NMSBoxesRotated。因此在C++程序里,需要自己编写实现计算旋转矩形框的NMS函数。经调研发现opencv库里有表示旋转矩形框的结构体RotatedRect,也有计算两个旋转矩形框的交叠区域和交叠面积的函数rotatedRectangleIntersection和contourArea,最终编写完成了计算旋转矩形框的NMS函数。附上一张C++程序的运行结果图:

c6f316275fd33ddc1448c3a770c8cda1.png

© THE END 

转载请联系本公众号获得授权

2a1b5a27ab9fc1da4f3017bc50cf422b.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

d7551055d78f35efa8a11e5adc37d0a0.png

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

🔗

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而性能高,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv5使用ultralytics/yolov5,在Ubuntu系统上做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型和性能统计。 希望学习在Windows系统上演示的学员,请前往《YOLOv5(PyTorch)实战:训练自己的数据集(Windows)》课程链接:https://edu.csdn.net/course/detail/30923本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793Windows系统 https://edu.csdn.net/course/detail/30923《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉研究院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值