2021年1月17日,我在github发布了一套使用OpenCV部署yolov5的程序,包含C++和Python两种版本的程序实现。地址是
https:// github.com/hpc203/yolov 5-dnn-cpp-python
https:// github.com/hpc203/yolov 5-dnn-cpp-python-v2
5月1日,我在github上发布了一套使用OpenCV部署yolov5检测人脸+关键点,地址是
https:// github.com/hpc203/yolov 5-face-landmarks-opencv
https:// github.com/hpc203/yolov 5-face-landmarks-opencv-v2
这套程序只依赖opencv库就可以运行yolov5检测人脸+关键点,程序依然是包含C++和Python两个版本的,这套程序里还有一个转换生成onnx文件的python程序文件。只需运行这一个.py文件就可以生成onnx文件,而不需要之前讲的那样执行两个步骤,这样大大简化了生成onnx文件的流程,使用方法可以阅读程序里的README文档。
8月8日,看到最近旷视发布的anchor-free系列的YOLOX,而在github开源的代码里,并没有使用opencv部署的程序。因此,我就编写了一套使用OpenCV部署YOLOX的程序,支持YOLOX-S、YOLOX-M、YOLOX-L、YOLOX-X、YOLOX-Darknet53五种结构,包含C++和Python两种版本的程序实现。在今天我在github发布了这套程序,地址是
https:// github.com/hpc203/yolox -opencv-dnn
在旷视发布的YOLOX代码里,提供了在COCO数据集上训练出来的.pth模型文件,并且也提供了导出onnx模型的export_onnx.py文件,起初我运行export_onnx.py生成onnx文件之后Opencv读取onnx文件失败了,报错原因跟文章最开始的第(2)节里的一样,这说明在YOLOX的网络结构里有切片操作,经过搜索后,在 yoloxmodels etwork_blocks.py 里有个Focus类,它跟YOLOv5里的Focus是一样的,都是把输入张量切分成4份,然后concat+conv。这时按照第(2)节里讲述的解决办法,修改Focus类,重新运行export_onnx.py生成onnx文件,Opencv读取onnx文件就不会再出错了。
8月22日,我在github发布了一套使用OpenCV部署Yolo-FastestV2的程序,依然是包含C++和Python两种版本的程序实现。地址是
https:// github.com/hpc203/yolo- fastestv2-opencv
经过运行,体验到这个Yolo-FastestV2的速度确实很快,而且onnx文件只有957kb大小,不超过1M。
8月29日,我在github发布了一套使用OpenCV部署全景驾驶感知网络YOLOP,可同时处理交通目标检测、可驾驶区域分割、车道线检测,三项视觉感知任务,依然是包含C++和Python两种版本的程序实现。地址是:
https:// github.com/hpc203/YOLOP -opencv-dnn
9月18日,我在github上发布了一套使用ONNXRuntime部署anchor-free系列的YOLOR,依然是包含C++和Python两种版本的程序。起初我是想使用OpenCV部署的,但是opencv读取onnx文件总是出错,于是我换用ONNXRuntime部署。地址是:
https:// github.com/hpc203/yolor -onnxruntime
9月19日,我在github上发布了一套使用深度学习算法实现虚拟试衣镜,结合了人体姿态估计、人体分割、几何匹配和GAN,四种模型。仅仅只依赖opencv库就能运行,除此之外不再依赖任何库。源码地址是:
https:// github.com/hpc203/virtu al_try_on_use_deep_learning
10月6日,我在github上发布了一套使用ONNXRuntime部署鲁棒性视频抠图的程序,依然是包含C++和Python两种版本的程序。起初,我想使用opencv的dnn模块作为推理引擎,但是程序运行到cv2.dnn.readNet(modelpath) 这里时报错,因此使用onnxruntime 作为推理引擎,源码地址是:
https:// github.com/hpc203/robus tvideomatting-onnxruntime
10月17日,我在github上发布了使用OpenCV部署SCRFD人脸检测,依然是包含C++和Python两种版本的程序实现。SCRFD是一个FCOS式的人脸检测器,2021年5月在insightface仓库里发布的,它也是检测人脸矩形框和5个关键点。我发布在github上的源码地址是:
https:// github.com/hpc203/scrfd -opencv
11月6日,我在github发布了使用OpenCV部署libface人脸检测和SFace人脸识别,包含C++和Python两种版本的程序,仅仅只依赖OpenCV库就能运行。源码地址是:
https:// github.com/hpc203/libfa ce-sface_detect-recognition-opencv
人脸检测和人脸识别模块是由人脸识别领域的两位大牛设计的, 其中人脸检测是南科大的于仕琪老师设计的,人脸识别模块是北邮的邓伟洪教授设计,其研究成果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文件拷贝进去,接下来编译运行就可以了。
12月4日,我在github发布了使用OpenCV部署P2PNet人群检测和计数,包含C++和Python两种版本的实现,仅仅只依赖OpenCV库就能运行。源码地址是:
https:// github.com/hpc203/crowd counting-p2pnet-opencv
12月12日,我在github发布了使用OpenCV部署faster-rcnn检测证件照,包含C++和Python两种版本的程序,仅仅只依赖opencv库就能运行。源码地址是:
https:// github.com/hpc203/faste r-rcnn-card-opencv
还发布了使用OpenCV部署YOLOV3检测二维码,包含C++和Python两种版本的程序,仅仅只依赖opencv库就能运行。源码地址是:
https:// github.com/hpc203/yolo- qrcode-opencv
12月18日,我在github发布了使用ONNXRuntime部署PicoDet目标检测,包含C++和Python两个版本的程序,源码地址是:
https:// github.com/hpc203/picod et-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
2022年1月16日,我在github发布了使用ONNXRuntime部署人脸动漫化——AnimeGAN,包含C++和Python两个版本的代码实现,源码地址是
https:// github.com/hpc203/Anime GAN-onnxruntime
1月21日,我在github发布了
使用OpenCV部署ByteTrack目标跟踪,包含C++和Python两个版本的程序。
使用ONNXRuntime部署ByteTrack目标跟踪,包含C++和Python两个版本的程序。
源码地址是:
https:// github.com/hpc203/bytet rack-opencv-onnxruntime
1月22日,我在github发布了使用ONNXRuntime部署U-2-Net生成人脸素描画,包含C++和Python两个版本的程序,源码地址是
https:// github.com/hpc203/u2net -onnxruntime
1月28日,我在github发布了
使用OpenCV部署yolov5检测车牌和4个角点,包含C++和Python两个版本的程序
使用ONNXRuntime部署yolov5检测车牌和4个角点,包含C++和Python两个版本的程序
程序会输出车牌的水平矩形框的左上和右下顶点的坐标(x,y),车牌的4个角点的坐标(x,y)
源码地址是
https:// github.com/hpc203/yolov 5-detect-car_plate_corner
2月7日,我在github发布了使用ONNXRuntime部署yolov5-lite目标检测,包含C++和Python两个版本的程序,源码地址是