yolo算法介绍
(2020-06-06 16:49:28)
把Yolo模型搞清楚后不得不再次为人类的智慧感慨,一个巧妙的模型。
要想理解Yolo我们先要搞清楚Yolo到底要解决一个什么问题,解决这个问题必须做哪些事情。
Yolo属于多目标检测,因此需要解决两个问题:
1)从一张图片中可以识别出多个不同种类的物体
2)并且用一个框将每个物体分割出来,既要得到物体的尺寸。
直观来看这两个问题,那一个是分类问题,另一个是回归问题。分类问题就是说能够从图片中识别出不同物体种类,回归问题是可以通过非线性拟合计算出物体的尺寸坐标。
把握住解决问题的实质就可以明确样本训练如何设计了,分类问题就是常规的图像识别,而回归问题就需要我们提前画好一个框将被识别物体恰到好处的框起来,这个框的尺寸就是就可以当做目标值。这样就建立了输入和输出的关系:输入是图像,输出是种类和尺寸。
要对图片中一个物体进行分类,首先要解决如何从图片中发现这个物体,最直观的方法就是用不同尺寸的方框进行扫描,这个方框可以被称为window,和要得到的物体尺寸是两回事。这就是RNN的方法,但这种方法计算量大,因此出现了Yolo,其核心思想就体现在如何从一张图像准确获取目标的方法上。基本思路就是先对图像进行划分,划分成围棋格子那样,之后以每个网格为核心进行目标检测。注意这里的格子仍然是window的概念不是物体尺寸,具体过程是这样的,训练对每个网格进行的,这个网格是否能代表某一个物体及物体尺寸在训练集都是可以得到的。预测同样也是以每个网格进行的。
这样就带来一个问题,如果多个网格都说自己识别到了某一个物体该如何处理,这里使用了基于IOU的非极大值抑制算法,就是找到一个最合理的框,以得分最高的为基准,想同类并且IOU大于0.5的就说明是同一个物体,想同类IOU小于0.5说明虽然是统一物体但可能出现在了照片不同位置。
后来又发现一个问题,同一个格子检测出两个物体怎么办,这是就提出了Anchor
box的概念,既一个格子之前的输出就是一个物体种类的信息,那现在不是了,可能是2个或3个。这时就带来了新问题,这么多事先画好的预选框,各种目标都可能重合,怎么合理分配呢。这是就引入了聚类和金字塔的技术结合的方法:
1)聚类就是把不同预选框按照尺寸进行自动归类
2)Yolo从模型上建立金字塔模式,将不同预选框按照尺寸分配给不同的特征层。
这样就实现了大尺寸在深层识别,小尺寸在浅层识别,还实现了语义上下文分析功能,最终得到了完美的多目标检测算法。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。