当前位置: 首页 > news >正文

平面设计模板素材网站工商企业注册登记网官网

平面设计模板素材网站,工商企业注册登记网官网,wordpress 无法登陆后台,如何做论文网站看完吴恩达老师的 deeplearning.ai 课程目标检测这节课程的学习笔记。 文章目录1. 目标定位(object localization)2. 基于滑动窗口的目标检测算法滑动窗口的卷积实现Bounding Box预测#xff08;Bounding box predictions#xff09;交并比#xff08;Intersection over uni…看完吴恩达老师的 deeplearning.ai 课程目标检测这节课程的学习笔记。 文章目录1. 目标定位(object localization)2. 基于滑动窗口的目标检测算法滑动窗口的卷积实现Bounding Box预测Bounding box predictions交并比Intersection over union3. 非极大值抑制4. Anchor Boxes5. 候选区域参考1. 目标定位(object localization) 图像分类、目标定位以及检测的区别如下图所示前两个是图片中只有 1 个对象的情况而检测是图片有多个对象的情况。 所以目标定位实际上是在分类的基础上定位到对象的位置即找到对象在哪里并且直到这个对象是属于哪一类。 在图像分类中一般定义的标签 y 的维度和类别是一样的即假如是有 3 个类别那么标签 y 的维度也是 3 个比如令 y[c1,c2,c3]y[c_1, c_2, c_3]y[c1​,c2​,c3​] 然后输出的时候就判断哪个类别的预测概率大就将其作为该对象的预测类别。 而在目标定位中增加了寻找对象的位置的工作那么标签就需要有坐标信息所以这里假设是 3 个类别定义其标签为 y[pcbxbybhbwc1c2c3]y \ \begin{bmatrix}p_c \\ b_x \\ b_y \\ b_h \\ b_w \\ c_1 \\ c_2 \\ c_3 \\\end{bmatrix} y ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​pc​bx​by​bh​bw​c1​c2​c3​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​ 其中pcp_cpc​ 表示图片是否包含有对象如果对象属于指定的3 个类别中的一个那么pc1p_c1pc​1, 否则就是 pc0p_c0pc​0然后接下来的 bx,by,bh,bwb_x, b_y, b_h, b_wbx​,by​,bh​,bw​ 表示的就是坐标或者说就是边界框参数一般来说就是左上角的坐标加上边界框的宽和高然后最后 3 个就是代表类别了有多少个类别就有多少个参数其数值表示的预测概率。 然后神经网络的损失函数一般就是采用平方误差策略假设类别 yyy 和网络的输出 y^\hat{y}y^​那么损失函数就是这么计算了,根据上述的标签定义是有 9 维的 L(y^,y)(y1^−y1)2(y2^−y2)2⋯(y8^−y8)2L(\hat{y}, y) (\hat{y_1}-y_1)^2(\hat{y_2}-y_2)^2\dots (\hat{y_8}-y_8)^2 L(y^​,y)(y1​^​−y1​)2(y2​^​−y2​)2⋯(y8​^​−y8​)2 当然了这里是用平方误差简化了实际应用中通常做法是对边界框的坐标应用平方差或者类似方法对 pcp_cpc​ 应用逻辑回归函数或者评分预测误差而对类别标签应用对数损失函数。 2. 基于滑动窗口的目标检测算法 对于基于滑动窗口的目标检测算法首先是创建一个标签训练集也就是将图片进行剪切成多个图片样本如下图所示将左图进行剪切得到中间的 5个样本然后按照样本是否包含汽车进行标注标签然后将这个训练集输入 CNN 中训练得到一个模型。 当训练好模型后就可以进行测试测试的例子如下所示选择一个特定大小的窗口然后从图片左上角开始滑动每次将窗口内的图片送入模型中判断该图片内是否有汽车依次重复操作直到滑动窗口滑过测试图片的每个角落。 上述做法就是滑动窗口目标检测。以某个步幅滑动这些方框窗口遍历整张图片对这些方形区域进行分类判断是否包含目标对象。 该算法的一个很明显的缺点就是计算成本。主要原因是跟滑动窗口的大小有关系选择太小的那么就会需要滑动很多次也就是需要检测多个小窗口提高了计算成本而如果窗口过大那么窗口数量会减少但是会影响模型的性能。 滑动窗口的卷积实现 上述介绍的实现基于滑动窗口的目标检测的方法效率是比较低这里会介绍如何通过卷积实现滑动窗口首先需要将 CNN 的全连接层转换为卷积层也就是得到一个全卷积网络FCN如下图所示 这里的输入图片例子是一个 14×14×314\times 14\times 314×14×3 的图片然后经过一个卷积核大小是 5×55\times 55×5 的卷积层输出是 14×14×314\times 14\times 314×14×3 接着是一个 Max pooling 层参数是 2×22\times 22×2 输出就是 5×5×165\times 5\times 165×5×16 原本是接着两个 400×400400\times 400400×400 的全连接层现在改为用 1×1×4001\times 1\times 4001×1×400 的两个卷积层。 接着是主要参考论文 OverFeat 来介绍如何通过卷积实现滑动窗口对象检测算法。 具体实现例子如下所示第一行表示训练时候使用 14×14×314\times 14\times 314×14×3的图片第二行表示测试时候使用的输入图片大小是 16×16×316\times 16\times 316×16×3。而使用这个图片在经过卷积层的时候这里步幅是 2所以卷积核是移动了四次得到了输出是 12×12×1612\times 12\times 1612×12×16最终的输出也是 2×2×42\times 2\times 42×2×4。 可以看到其实在这 4 次卷积操作中有很多计算是重复的因为有很多区域都是重叠的具体四次如下所示不同颜色的框表示四次操作的范围左边第一个图的红色然后移动 2 格是第二个图中绿色框的区域接着是第三张图里橙色也就是左下角然后第四张图里右下角其实中间区域都是重叠的也就是四个角落是有所不同。 简单说通过这个卷积操作我们就可以不用将测试图片分割成 4 个子图片分别输入网络中执行前向操作进行预测直接整张图输入网络即可卷积层就会帮我们完成这个操作也就是一次前向操作即可节省了 4 倍的时间。 不过这种方法虽然提高了算法的效率但也有一个缺点就是边界框的位置可能不够准确。 Bounding Box预测Bounding box predictions 接下来要介绍如何可以得到精确的边界框这里介绍的就是著名的 YOLOYou only look once 算法目前也是目标检测里很常用的一种算法以及有了更多的版本从最初的 YOLO到目前的 YOLOv5持续进行改进和提升。 YOLO 算法的做法如下图所示采用一个 3×33\times 33×3 的网格将输入图片分成了 9 个区域然后检测每个区域内是否有目标对象YOLO 算法会将检测到的对象根据其中点位置将其分配到中点所在的格子里所以下图中编号 4 和 6 包含了汽车但是编号 5 虽然同时有两辆车的一部分但因为中心点不在所以这个格子输出的结果是不包含有汽车。 采用这个算法网络输出的结果就是 3×3×83\times 3 \times 83×3×8 , 这里表示 3×33\times 33×3 的网格每个网格的结果是一个 8 维的向量也是之前定义好的即 pc,bx,by,bw,bh,c1,c2,c3p_c, b_x, b_y, b_w, b_h, c_1, c_2, c_3pc​,bx​,by​,bw​,bh​,c1​,c2​,c3​ 。 该算法的优点就是CNN 可以输出精确的边界框在实践中可以采用更多的网格比如 19×1919\times 1919×19即便图片中包含多个对象但如果网格数量越多每个格子就越小一个格子存在多个对象的概率就会很低。 YOLO 算法的另一个优点是它采用卷积实现速度非常快这也是它很受欢迎的原因。 交并比Intersection over union 交并比(IoU)表示两个边界框交集和并集之比。并集就是如下图中绿色区域部分即同时包含两个边界框的区域而交集就是两个边界框重叠部分下图中橙色区域。所以交并比就是橙色区域面积除以绿色区域的面积。 一般来说IoU 大于等于 0.5就可以说检测正确结果是可以接受的这也是一般的约定。但IoU 越大边界框就约精确了。 这也是衡量定位精确到的一种方式IoU 是衡量了两个边界框重叠的相对大小。 3. 非极大值抑制 目前的检测算法还会存在一个问题就是对同一个对象作出多次的检测而非极大值抑制就可以确保算法只对每个对象检测一次。 非极大值抑制算法的执行过程如下图所示这里是采用 19×1919\times 1919×19 的网格对每个网格先执行检测算法得到的输出就是 19×19×819\times 19 \times 819×19×8。当然这里只是预测是否有汽车那么其实可以暂时不需要分类部分也就是每个网格输出一个 5 维向量pcp_cpc​ 以及边界框的四个坐标参数。 然后开始实现非极大值抑制算法 去掉所有预测概率低于阈值的边界框比如设置阈值是 0.6那么对于 pc≤0.6p_c \le 0.6pc​≤0.6 的边界框都被抛弃在剩下的边界框里将预测概率最高的边界框将其输出作为预测结果然后将还剩下的边界框里和第一步被抛弃的边界框有高 IoU 的比如 IoU≥0.5IoU \ge 0.5IoU≥0.5 的边界框都抛弃掉对所有边界框都进行处理按照上述 3 个步骤来判断抛弃还是作为输出结果 4. Anchor Boxes 上述说的检测都是限制于一个格子检测出一个对象但如果需要一个格子可以检测多个对象那么就需要用到 anchor box。 如下图所示假设现在输入图片是左图中的例子在第三行的第二个格子中是刚好同时存在人和汽车并且中心点都落在这个格子里但根据之前的算法只能检测到其中一个对象。而要解决这个问题就需要用到 anchor box 了。 这里 anchor box 的思路是预先定义两个不同形状的 anchor box如上图的两个当然实际情况里可能会采用更多的 anchor box比如 5 个甚至更多。不过这里只需要两个即可。 接着就是重新定义标签不再是开始的 8 维向量而是 2×82\times 82×8 的向量前面 8 个和 anchor box1 相关联而后面 8 个和 anchor box2 相关联。如上图右侧的 yyy 所示。 在实际例子中还有一些情况 比如使用两个 anchor box但一个格子里出现 3 个对象这种情况算法也处理不好同个格子有两个对象但它们的 anchor box 形状也一样这种也是算法处理不好的情况 另外一般怎么选择 anchor box 呢通常是手工指定 anchor box 形状选择 5-10 个不同形状的尽量覆盖多种不同的形状覆盖你想要检测对象的各种形状。 另一种做法是在 YOLO 后期论文中介绍的k-平均算法用它来选择一组 anchor box最具有代表性的一组 anchor box。 5. 候选区域 目标检测里另一个比较出名的算法R-CNN跟 YOLO 相比是另一种思路所以也基于此算法产生了很多检测算法比如对其持续改进优化的Fast-RCNNFaster-RCNN 等。 R-CNN 算法是尝试找到一些区域在这部分区域里运行 CNN 进行检测。而选择这些候选区域的方法是运行图像分割算法分割的结果如下图所示。根据分割算法得到的结果在不同的区域运行分类器判断该区域是否有目标对象比如图中标注号码的几个区域。 这种做法相比滑动窗口可能是不需要图片的每个地方都去检测一遍只需要对分割算法得到的色块加上边界框然后对边界框内的区域运行分类器虽然是工作量会减少一些但实际上速度还是很慢但优点是精度会很不错这个就和 YOLO 算法刚好相反。 因为速度太慢的问题后续也有很多改进的算法 Fast-RCNN同样的方法进行候选区域的筛选但通过卷积实现滑动窗口对候选区域进行分类Faster-RCNN采用 CNN 来生成候选区域 参考 deeplearning.ai 04 课程第三周–目标检测
http://www.zqtcl.cn/news/942445/

相关文章:

  • 网站建设行业细分专业动漫如何制作
  • 做地方网站数据哪里来模板网站建设教程视频
  • 株洲建设网站制作网络怎么推广自己的产品
  • dtu网站开发赣县网站制作
  • 东莞旅游网站建设微网站怎么做
  • 网站怎么没有排名做义工旅行有哪些网站
  • 阳江房地产信息网官方网站创业网站开发要多少钱
  • 工业设计招聘信息网站常用的seo网站优化排名
  • 温岭市建设规划局网站网站规划与建设ppt
  • 龙岩网站建设较好的公司做网站销售的换工作
  • 潞城建设局网站建设网站服务器自营方式的特点
  • 西安网站seo公司东莞市专注网站建设怎么样
  • dede游戏网站模板如何做盆栽蔬菜网站
  • 江都建设网站网站开发技术介绍
  • 网站介绍视频怎么做网站建设优化服务
  • 可以左右滑动的网站有口碑的盐城网站建设
  • 360报危险网站注册界面设计
  • 不用淘宝客api如何做网站北京移动官网网站建设
  • 手表哪个网站做的好河北网站备案流程
  • 凡科做的网站推效果网站做seo第一步
  • 建设在线观看视频网站免费企业网站建设免费
  • 网站开发需要后台吗哪家建站公司好
  • 个人建设网站论文网站视频怎么做的
  • 不同类型的购物网站汉川网站建设
  • 网站开发需求文档范文广州公司网站托管
  • 网站制作公司官网首页撸撸撸做最好的导航网站
  • 网站建设毕业设计综述centos 安装wordpress lnmp
  • 济宁专业做网站网站建设中 html
  • 中国排名高的购物网站最新发布的手机2022
  • 备案的网站名与公司名称出国用哪个地图app好