毕设做的是水面目标的目标检测,因为要用Tkinter制作用户界面,于是采用openCV库来实现图像的处理,恰好openCV支持YOLO v3的部署……
因为对Python比较熟悉,综合考虑后选择用Pytorch框架实现,奈何自己太菜,只能去Github上找现成的YOLO v3代码,这个项目里面有详细的使用说明,很容易就上手了,非常感谢作者
网络模型有了,加上数据就可以炼丹了,这里用的数据集是SeaShips(7000),格式是VOC格式,代码需要的也是VOC格式,所以改好文件夹路径就可以直接上了。训练用的是Google Colab,白嫖虽爽,但是也有很多不方便,后面再单独整理一篇使用记录吧
openCV是很常用的图像处理库,支持python、C++等语言,这里用的是openCV-python
openCV中的dnn模块实现了基于Darknet框架的YOLO v3网络,也就是说,模块给你搭好了网络,只需要你自己填入网络参数就好了,这个网络参数就是训练模型得到的权重文件
训练模型时用的框架是Pytorch,而Pytorch框架下的权重文件是.pth格式,而openCV的dnn模块对于YOLO网络仅支持Darknet框架,于是乎,需要把.pth转为.weights格式(.weights是Darknet框架下的权重文件格式)
模型部署可以参考这篇博客的正文,代码都有注释,很容易理解
上面主要讲了对于YOLO v3网络,如何将.pth格式的权重文件转成.weights,其他的像训练模型、部署模型有很多现成的资料供参考,这里就不重复了