2023.01更新 c++下面部署yolov8检测和实例分割模型(七)

先开贴占个坑。

yolov8:https://github.com/ultralytics/ultralytics

这次的v8更新的是一个框架,里面也可以用v5和v3。

但是这次更新来说,目前模型的检测效果和之前的yolov7刚出来一样,会多出很多误检,在某些情况下这些误检反而效果不好。另外最重要的一点是易用性下降很多,使用体验真不如yolov5那么好用,修改点东西都得debug半天才能找到源码在哪里实现的,所有的参数都用一个文件控制,老鸟狂喜,新手懵逼,整个项目结构变动很大,对新手真不友好,新手建议换yolov5。

由于这次的更新变动比较大,并且opencv版本的问题,需要使用opencv4.7及其以上的版本(这里的版本是指使用opencv-dnn部署需要4.7以上的版本,如果是onnxruntime的话就不需要,应该4.0以上的版本都可以),目前已经完成了实例分割的opencv版本,onnxruntime还在修改,检测模型等分割写好之后,改下一些设置和后处理就可以换到检测了,这个比较快。

目前最大的问题还是在于opencv版本一下子需要提升到4.7的问题,但是4.7由于某些原因,一些cpu不支持AVX2的4.7版本会挂掉,需要使用```net.enableWinograd(false)```关闭Winograd加速,目前还在看能否修改到4.5.0可以使用的版本。

目前yolov8已经完成,包括目标检测和实例分割两个模块。除了一些结构上和yolov5的不一样,在部署中最大的问题在于输出结构变了,需要转置之后才能按照正常的方式来进行后处理,这个等后面有空了详细说。

具体代码在:

GitHub - UNeedCryDear/yolov8-opencv-onnxruntime-cpp: detection and instance segmentation of yolov8,use onnxruntime and opencv

猜你喜欢

转载自blog.csdn.net/qq_34124780/article/details/128800661