美文网首页
深度学习 第9次作业 机器学习 目标检测

深度学习 第9次作业 机器学习 目标检测

作者: S_Valley_DiDa | 来源:发表于2018-11-27 23:52 被阅读0次

    目标定位

    目标检测的任务是在图片中定位物体,并将位置标注出来
    标记四类存在与否,定位需要定位目标中心坐标(b_x, b_y)以及图片的高度(b_h)和宽度(b_w)



    输出可以定义为以下形式:
    y_hat 为softmax 的输出,为八个元素
    第一个元素 P_c 表示是否有物体(1/0)
    接下来四个元素定位目标(b_x, b_y, b_h, b_w),
    最后三个元素表示是否是行人(c1:1/0),是否是汽车(c2:1/0)是否是摩托(c3:1/0)
    损失函数
    如果 P_c = 1 表示有目标出现,则 Loos = 8个元素各自的差的平方之和
    如果 P_c = 0 表示没有目标出现,则 Loos = P_c的差的平方
    因此,对于M个特征点来说,输出要有2m+1个元素,第一个代表是否出现该目标,其余每2个元素表示一个特征点的 x坐标和 y 坐标。

    目标检测

    1.滑动窗口法:

    首先选定一个特定大小的窗口,将窗口内的图片输入到模型中进行预测;以固定步幅滑动该窗口,遍历图像的每个区域,对窗内的各个小图不断输入模型进行预测;继续选取一个更大的窗口,再次遍历图像的每个区域,对区域内是否有车进行预测;遍历整个图像,可以保证在每个位置都能检测到是否有车。
    卷积的滑动窗口实现:



    利用类似卷积核的原理实现滑动窗口,采用和单个窗口同样的各层的卷积核来操作图片,可以一次性将所有滑动窗口的结果计算出来


    2. YOLO 算法:

    将图片分割成n×n个小的图片
    在图像的n×n个格子中分别应用图片分类和定位算法
    卷积核方式一次计算出所有格子的结果, 计算效率较高
    每个格子的输出为8个元素(P_c, b_x, b_y, b_h, b_w, c1, c2, c3),则所有格子的结果为 nxnx8
    对于每个网格,以左上角为(0,0),以右下角为(1,1);
    中点b_x、b_y 表示坐标值,在0~1之间;
    宽高b_h、b_w 表示比例值,存在>1的情况。
    交并比(IOU):交集大小/并集大小,用来检测预测边界框的准确性。
    多个格子都认为自己是中心,检测到了一辆车,那么同一辆车就可能被检出多次,非最大值抑制可以确保我们的算法对每个对象只检测一次。(预测的形状面积重合多的认为是重复的,只保留概率最高的那个)
    以单个对象检测为例。对于图片每个网格预测输出矩阵:yi=[P_c, b_x, b_h, b_w],其中P_c表示有对象的概率,抛弃P_c <= 0.6的边界框。对剩余的边界框,选取最大Pc值的边界框,作为预测输出边界框;抛弃和选取的边界框IoU⩾0.5的剩余的边界框。

    3. Anchor Boxes 算法:

    使用Anchor Box可以让一个检测出多个对象。每个对象都和以前一样分配到同一个格子里面,但是现在还要分配到一个Anchor Box,分配的原则是比较并选择该格子内对象与定义的Anchor Box不同形状之间的IOU交并比最高的那个。



    优点:1.处理两个不同类型的对象出现在同一格子里面,实际情况中如果格子够细致的话,一般不会出现两个格子在一个对象里面的。2.能够让算法更有针对行(监督学习),如果你的数据给出的对象的形状大概相似。

    相关文章

      网友评论

          本文标题:深度学习 第9次作业 机器学习 目标检测

          本文链接:https://www.haomeiwen.com/subject/uldvqqtx.html