[
首先先上目标检测效果,准备好了吗? go!go!go! 看到 目标检测的效果之后,你心动了吗?心动不如行动,让我们放手去干!撸起袖子加油干! 一、环境要求
古人云:“工欲善其事必先利其器”。 我们首先要搭建好GPU的环境。有了GPU的环境,才能跑得快!!! 这里为了方便,就用anaconda的conda命令来搭建环境,执行以下几条命令
验证一下是否可以正常使用gpu加速:
看到下面的画面,即正常加载gpu了,环境搭建就差不多完成了! 二、数据集我们既然要做目标检测,怎么能没有数据集呢?数据集是驱动模型的动力,就像这样! 这里利用 标记好的xml会保存你的矩形框位置,以及类别。 接下来,你就是工具人,请疯狂标注你的数据吧。 三、YoLoV3讲解在正式开始源码之前,还是稍微讲解一下YoLov3。虽然可能一遍看不懂,两遍看不懂,三遍看不懂,只要你不放弃,总会有看懂的一天的。 其实,你要读懂YoLov3,你就要去了解目标检测的发展史,去看one-stage,two-stage算法。去看YoLov3的前辈们。这里我相信你们都看过,没看过也不怕,光脚的不怕穿鞋的! 直接放YoLoV3的网络结构图,让我们稍微看一下YoLov3的网络结构。 YoLoV3网络主要分成两大部分:
1.主干网络DarkNet53 首先是主干网络DarkNet53,结合网络图我们看到它主要是使用了 此外,主干网络DarkNet53每一个卷积使用了特有的 2.多尺度预测 在多尺度预测部分,可以从网络结构图中看到yolov3提取了 这3个特征层会进行5次卷积,处理完 输出层的shape分别为(13,13,75),(26,26,75),(52,52,75),最后一个维度为75是因为该图是基于voc数据集的,它的类为20种,即 至于别的分析,这里就不多说了,直接实战部分了,我知道你们已经迫不及待了! 四、YoLoV3口罩检测实战写代码,是不可能写代码的!先去github把代码给clone下来,原版的话就是 接下来,就看我的表演了。 1.快速使用篇 首先,我们需要下载yolov3事先已经训练好的权重,
但是权重文件这玩意,因为这个墙的问题,时快时慢,我知道你们肯定是这样的: 给你们,都给你们,网盘下载去,权重链接 有了权重之后,我们直接运行一下,看一下效果,
在命令行输入图片地址 怎么样,效果还是不错的。我知道你要说,可是我要训练我自己的数据集呀,我不要官方的。我知道,我知道,不要急。 2.训练自身数据集 首先在第二部分的时候我们已经准备好了数据集,那让我们继续吧。 将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。 将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。 之后利用
运行 在txt里面存放了图片的名称,这里就不放代码了,我知道放了代码你们也不看,直接去我github里面白嫖就行 但是YoLov3处理的并不是这样的文件,所以我们还需要生成YOLOV3所需数据 再运行根目录 我们就会生成这样的一个文件, 好了,让我们中场休息一下!!! 接下来,我准备采取yolov3_tiny架构,当然你也可以用yolov3架构。主要是yolov3-tiny收敛快,而我用的笔记本GPU,跑的速度太慢了~~~ 在训练前我们可根据自身需要修改model_data里面的
接着我们来到model_data里面的 然后来到 运行 你以为大功告成了么,不不不,接下来就是炼丹了,慢慢调参! 四、测试测试一下,就可以开溜了~~~ 修改根目录下
此外对应的yolo.py文件174行改为
此外对应的yolo.py文件174行改为vid = cv2.VideoCapture(“视频路径+视频名+视频后缀名”);
此外对应的yolo.py文件184行改为out = cv2.VideoWriter(“视频路径+视频名+视频后缀名”, video_FourCC, video_fps, video_size); 好了,应该差不多快结束了,最后再测试一下,你看。 五、注意:一张图片最多只能识别20个对象的问题:
好了,结束了,欢迎大家留言!!! |
|