Yolo v3 学习笔记摘录

作为一名移动端开发人员,我觉得现在是入门深度学习的最佳时机,毕竟tensorflow也发展好几年了,Facebook也推出了pytorch,github上已经有很多开源的各种神经网络的源码,可以比较轻易的实现一些震撼自己的效果。之前在某公司的计算机视觉部工作,受到深度学习工程师的耳濡目染,离职后,自己才真正去尝试数据采集、标注、训练、移植Android端等步骤,算是草草入门了。

下面分享几段学习笔记。

YOLO是一个用于物体检测的深度神经网络,同类型的还有R-CNN系列的如Faster R-CNN、Mask R-CNN。跟R-CNN不一样的地方是,YOLO采用one stage的网络结构,而后者使用two stage,所以yolo的检出速度会相对快一些,但在精准度方面会低一些。

目前yolo有三个版本,v1, v2, v3。v3是18年发布的,跟v2相比,提高了精度,降低了检出速度。github上已经有不少用tensorflow和pytorch实现的yolo v3版本,也有不少能在android上运行的开源项目。

端对端模型

以前的深度学习,需要手动提取特征,用特征去做识别,但特征不好提取,提取优劣直接影响识别准确率。而现在端对端的模型,不需要开发者考虑特征提取,仅需知道输入数据,和获取预测结果,中间过程的提取特征完全由神经网络自己学习。所以端对端模型简化了训练网络模型的方法,把深度学习的学习门槛大大降低了。

yolo预测前,需要对图片进行预处理

首先把输入的图片的宽高resize成inputsize,一般为正方形,如果图片比例不是正方形比例,会resize成小图内置在inputsize的方形框中,空白补上灰色,最后还需要对图片做归一化处理。

非极大值抑制(NMS)

yolo预测的结果会有多个框有重叠部分,需要执行非极大值抑制,目的是去除重复的框。非极大值抑制步骤,从最高分的框开始,遍历其他框,去掉重叠部分大的框,判断阈值为IOU的大小。然后继续迭代得分第二高的框,如此迭代下去。

在这里插入图片描述

GIoU

在这里插入图片描述

对于任意的两个A、B框,先找到一个能够包住它们的最小方框C,然后计算“C \ (A ∪ B) ”的面积与C的面积的比值,最后用A、B的IoU值减去这个比值得到GIoU。下面有算法的伪代码。

C \ (A ∪ B) 的面积为C的面积减去A∪B的面积

在这里插入图片描述

实时查看训练信息

这个跟yolo没关,这是tensorflow的功能,可以实时查看训练时loss的变化
tensorboard.exe --logdir=C:/Projects/AI/tensorflow-yolov3-master/data/log

我用i7 CPU训练十个小时,loss下降到2~3,已经可以检出物体了。此后持续几个小时,loss很难再下降。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DvLee1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值