本文主要是基于上一篇YOLOv3训练WIDERFACE数据集而补充的知识,上一篇中使用了YOLOv3的官网代码进行训练的,本文中将说明使用Tensorflow和keras进行训练,主要是基于Lilnux下,在Windows下也可以运行,只不过对于路径的问题,需要修改一下,详见文章底部。
参考上面代码链接,下载相关代码,可以直接使用git下载,也可以下载到本地后上传到服务器上。
Tensorflow不推荐使用2.0版本以上的,之前使用过2.0版本以上的,报错是很难解决的,网上的解决方法特别少,过一段时间可能就好了。
YunYang大佬的代码中,对你下载的.weights文件(可能是yolov3.weights、darknet53.weights、darknet53.conv.74),首先进行convert_weights(或者是from_darknet_weights_to_cpkt)操作,转换成Tensorflow样式的权重文件,转换之后,你可以进行相应的操作,但是如果你想检测图片,不管是使用原先的Tensorflow样式的权重文件还是你训练出来的权重文件,都得经过freeze_graph(或者from_darknet_weights_to_pb)操作,生成pb文件,因为检测代码中使用的正是pb文件。
qqwwee大佬的代码中,对权重文件进行convert操作后转换成了h5文件,进行相应的操作。
服务器中无法直接显示图片,你可以保存下检测结果进行查看,修改代码如下:
image = Image.fromarray(image)
image.save('./picture/output.jpg')
#image.show()
r_image = yolo.detect_image(image)
r_image.show()
r_image.save('./picture/output.jpg')
def detect_video(yolo, video_path, output_path="./output001.mp4"):