精华内容
下载资源
问答
  • 对象检测之行人检测(1)

    千次阅读 2016-05-20 10:46:05
    这个问题所处理数据主要是图片(对于视频则是抽取成关键帧然后对每一帧进行处理),行人检测则作为对象检测的子问题,与通用对象检测的不同点在于所检测类别仅有行人。整个检测过程的目标在于为图片中所有的行人添加...
    • 问题定义
      对象检测技术是计算机视觉研究中一个重要的研究课题。这个问题所处理数据主要是图片(对于视频则是抽取成关键帧然后对每一帧进行处理),行人检测则作为对象检测的子问题,与通用对象检测的不同点在于所检测类别仅有行人。整个检测过程的目标在于为图片中所有的行人添加位置标注,通俗点说就是用一个框把人框住(给出该框的左上角坐标、长宽值以及这个框作为行人的置信分数[x,y,w,h,score])。如图1所示。
      行人检测示意图
      图1 行人检测示意图

    • 问题难点

      (1)人的姿态变化。由于人本身是非刚体,在图像中出现时可以具备不同的姿态,可以具有站、跑、跳、蹲等不同的动作,同时呈现给摄像头的角度也有区别,采集数据的摄像头可能拍摄到行人正面、侧面抑或背面的信息,因此需要检测系统具备足够强的识别能力。
      (2)光照的变换。在数据采集时,由于天气晴朗、阴暗的变幻,光线的明暗,采集设备的分辨率限制等,都会影响到最终输入图像的质量。特别是对于在夜晚采集的监控视频数据,由于灯光的影响而使得噪声加大,大大加剧了从中准确提取出行人的难度。但夜晚通常又会是犯罪分子选择作案的时机,因此需要行人检测算法在这部分数据上具有较好的鲁棒性。
      (3)遮挡。在监控摄像头采集的数据中,通常行人都不是单独存在的。对于人类来说,大脑可以很容易的通过所呈现的信息自动补全被遮挡的部分,可是对计算机来说,则需要拥有一些先验的背景知识,才能够识别出被遮挡的行人,因此有效处理遮挡也是该问题的难点之一。
      (4)复杂场景。对于行人检测的问题,监控拍摄的场景一般都较为复杂,监控摄像头也多放置在人员密集的场所,例如街道、机场、车站等,,其中所拍摄到的行人着装各异,并可能和背景相互混淆,因此从复杂场景中准确提取行人也是此问题的难点之一。
      (5)行人尺寸不同。对于同一个待检测的行人对象在一个视频的多个位置出现时,会因为距离摄像头的远近而使得他在最终的数据中呈现出不同的尺寸。对于固定分辨率的摄像头而言,此点最终表现为该行人所占区域像素总面积多少的区别。不同尺寸行人所保留的细节信息的多少也有很大差异。因此是否可以同时检测不同尺度的行人也是一个好的行人检测系统需要考虑的重要一环。

    • 解决方案
      (1)滑动窗口
      对于检测这个问题,最初始的解决方案是由Viola和Jones两位大神提出来,称为滑动窗口(Sliding-window)。如图2所示。
      滑动窗口示意图
      图2 滑动窗口示意图
      该过程首先选取一定大小的窗口(图中黄色方框,通常可能是64x128像素大小),然后从图片左上角开始,每次向右移动一定步长(例如4个像素),并且对当前窗口做一个分类,判断是否含有行人。这个扫面的过程逐行进行,直到将整个图片扫面过一遍(黄色窗口抵达图片右下角),此时,我们就找到了图片中所有64x128大小的行人。由于行人有不同的尺寸,所以下一步需要调整窗口的大小,再次进行如上的扫描过程,找到下一个尺寸的行人。
      在刚才这个过程中,涉及到两个问题需要解决。第一个是窗口怎样描述使得计算机能够识别的问题;第二个是如何分类的问题。
      (2)窗口描述
      对于第一个问题,最容易想到的方法就是将整个窗口里所有像素罗列成一个向量来作为窗口描述(如64x128的窗口则被拉成1x8192维的向量),这种方法方法相当于利用每个点的像素值作为特征值,缺点在于像素值本身并不鲁棒,受光照影响较大(当然,如果是神经元网络的算法就另当别论)。因此,在VJ的文章中是使用了Haar-like特征来做人脸检测。而在梯度直方图(Histogram of Gradient,HoG)里,则是通过这个窗口的梯度直方图特征来作为窗口的描述。此处不管是采用何种方法,最终目的都只有一个,就是对窗口形成统一维度的特征向量,以便用于下一步窗口的分类。
      (3)级联分类器
      在刚才描述滑动窗口的过程中,你可能已经发现,那个分类的过程是需要进行很多很多次的,这岂不是很耗时间。因为图中每个位置都要形成一次窗口的描述,然后对这个描述要进行一次分类,同时窗口的大小在完成一次扫描之后还会变化,如果想得到良好的检测结果,那么可能需要数十个不同大小的窗口去扫描图片,也就是说一幅图要进行数十万次分类过程,O My God,计算机岂不要算挂掉。对此,VJ的解决方案是级联分类器。见图3
      级联分类器
      图3 级联分类器示意图
      对于每个当前要分类的窗口,都训练了一系列连在一起的分类器,对于每个分类器,仅需要计算一个特征,(例如分类器1只需要窗口第一个特征值大小,>10,负样本,<=10,待分类,送入分类器2),这样,就会使得大量负样本可以通过的很少的几次计算就被过滤掉,考虑到通常输入图片中难分的样本其实并不多,大量的背景区域可以很容易过滤,那么这个级联分类器的意义就很大了。
      (4)非最大抑制(Non-Max Suppression, NMS)
      在完成了滑动窗口扫描的过程之后,图片中所有的行人应该都已经标注出来了。但是对于同一个行人来说,可能存在几个有部分区域相互重叠的窗口都对该行人做了标注(图4中四个绿色虚线所示的窗口),但此时仅存在一个行人(图中蓝色实线所示的窗口),此时应该去除其中的重叠窗口,仅留下一个窗口作为最终的标定结果。否则在最后计算检测准确率的时候,虽然另外几个窗口的标注都没有出错,但是却只有一个窗口能与标准答案相匹配,这将导致系统的准确率降低。这个去除重复窗口的过程就叫做非最大抑制,见图4。抑制的过程是这样的,首先计算两个窗口的重叠度(overlap=两个窗口重叠部分面积/二者总面积),然后对比例超过一定阈值窗口对,将其中分类器认为该窗口行人分数较低的一个去掉。
      非最大抑制
      图4 非最大抑制示意图
      好了,到此为止,介绍了行人检测大概是个什么东东,下次再来讲讲聚合通道特征(Aggregate Channel Feature,ACF)这个行人检测里常用的算法吧。

    展开全文
  • 对象检测之行人检测(2)

    万次阅读 2016-05-20 11:08:57
    上一次介绍了行人检测的基础算法-滑动窗口方法对象检测之行人检测(1)。这一次来介绍其中检测效果较好的聚合通道特征算法,该算法的优点在于行人检测性能好,同时检测速度极快。 聚合通道特征简介 聚合通道特征...

    上一次介绍了行人检测的基础算法-滑动窗口方法对象检测之行人检测(1)。这一次来介绍其中检测效果较好的聚合通道特征算法,该算法的优点在于行人检测性能好,同时检测速度极快。

    • 聚合通道特征简介
      聚合通道特征(Aggregate Channel Feature,ACF)是由Piotr Dollar这个大神提出的,一开始叫积分通道特征(Integral Channel Feature,ICF),在他的开源toolbox里给出了Matlab版本的实现。
      所谓聚合通道特征,其实就是把几个不同的特征叠加在一起,形成一个统一的特征。要理清这个概念,首先需要说明特征通道是什么。好了,我们先上图,见图1。
      特征通道
      图1 特征通道示意图
      特征通道,用八股文的说法,就是对输入图片的某种输出响应,简单理解就是对输入图片做一个映射,这个映射可以是点对点的,可以是区域的,总之就是要完成从输入到一个与输入同样大小的图片的变换,这个经过变换的图片就是一种通道特征。对于灰度图像而言,可以认为它本身即为最朴素的通道,而彩色图像包含了RGB三个颜色通道,同时也可以计算它所对应的灰度通道或者LUV颜色通道。在此基础上,一阶通道特征可以定义为对某个输入通道在一定区域的像素之和,而高阶通道特征则定义为使用任意多个一阶通道特征相互叠加后计算出的结果值。在图1中,对于输入的(a)图像,分别计算了他的L(b),U(c),V(d)颜色通道,梯度幅值通道(e)以及四个梯度方向通道(f)-(i)的特征。
    • 聚合通道特征的由来
      介绍了聚合通道特征(一开始又称积分通道特征),此时其实很想知道他是怎么来的。此刻就可以追溯到VJ检测算法中所用的Haar-like特征和积分图。在对象检测之行人检测(1)中提到,VJ通道级联分类器的方法大大加速检测过程中每个窗口的分类过程。可是,对于级联分类器,它每一级的判别特征应该作何选择呢。VJ采用了Haar-like特征,示意图见图2。
      这里写图片描述
      图2 Haar-like特征示意图
      对于一个矩形区域,它的Haar-like特征值可以表示为白色像素值之和减去黑色像素值之和。这样的特征具有较好的鲁棒性,对光照变换什么的不敏感,特别是在人脸检测时效果较好。但是其缺点在于计算特征时是以原始图像的灰度图为基础。我们都知道,在行人检测里,HoG特征很好用,而此时我们已经有了特征通道的概念,那么,是否可以用同样的方式表示HoG特征呢。当然了,这就是积分通道特征的思想,此时只要把Haar-like计算过程里的图片从灰度图变成某个方向的梯度图(图1f-图1i),那么一个区域的Haar-like特征就变成了“梯度方向Haar-like特征”。
    • 聚合通道特征计算
      描述了Haar-like特征,每个特征值计算是需要一个区域的像素之和,如果对每个区域都来一个循环叠加统计的话,计算还是太麻烦,因此VJ就提出了积分图的方法来快速计算一个区域像素和,见图3。
      积分图
      图3 积分图
      对于积分图中的任意一点,它的“像素值”为原始图像坐上角到该点所有像素值之和。这样,对于每一个区域的像素值之和,如D,可以简化为四次查表操作和三次加法操作(f(D)=f(4)-f(1)+f(2)+f(3)),在积分图给定的情况下,它的计算复杂度为O(1)。而对于一张图像而言,积分图只在初始化时计算一次。
      对于每一个特征通道,我们都可以计算它所对应的积分图,同时既可计算任意一个区域的“Haar-like通道特征值”。如果一个区域要计算直方图特征怎么办呢,那也简单,使用积分直方图就可以搞定。示意图见图4。
      积分直方图
      图4 积分直方图
      在积分直方图中,任意一点的“像素值”不在是一个单独的值,而变成了一个向量,表示该点左上方区域的直方图统计。使用和积分图同样的思想,就可以轻易的通过查表操作得到一个区域的直方图。此时,聚合通道特征就可以发挥其效力。
    • 特征通道的选择
      在有了聚合通道特征的概念和相应的计算方法之后,剩下来的一个问题就是聚合通道特征中到底应该包含哪些特征了。这个只能通过实验来进行验证。在图像处理领域,特征通道通常有颜色通道(RGB颜色通道、LUV颜色通道、灰度通道)、梯度通道(包括梯度幅值通道和梯度方向通道)和边缘通道(有Sobel边缘通道、Canny边缘通道)等。所以,首先单独采用单一的特征通道来做检测,验证下各个通道的有效性,在INRIA行人数据集上结果为:
      表1 特征通道性能表
      特征通道性能
      从表中可以看到,使用梯度方向通道以及HoG通道的检测效果较好,刚好符合之前人们关于行人检测的认知(在行人检测问题上最好用的特征就是HoG特征)。
    • 聚合通道特征的表示
      有了单一类型的通道特征的检测性能(其中通道特征不限于上述几种,还可以进行更广泛的实验,如测试Gabor滤波特征、SIFT特征等)后,可以对几种特征做组合,得到聚合通道特征,在实验中Dollar发现使用LUV颜色通道+梯度幅值通道+梯度方向通道组合后所形成的特征检测效果非常好,因此也是现在聚合通道特征的标准配置。此时在形成某个窗口的特征描述时,需要将各个通道特征罗列在一起,见图5j。
      聚合通道特征描述子
      图5 聚合通道特征描述子示意图
      窗口中各个通道特征罗列在一起所形成的特征描述,以后则称为聚合通道特征。利用它作为窗口的特征表示,此时就得到了每个窗口统一维度的特征向量了。

    • 特征图像金字塔
      还记得在对象检测之行人检测(1)中讲过,要用不同大小的窗口分别扫描图片。其实还有一种办法,就是窗口大小不变,而改变图片的大小,前一种的思路是缩放窗口,后一种方法的思路是缩放图片,效果都差不多。此时就涉及到图像特征金字塔的生成。见图6
      特征图像金字塔
      图6 特征图像金字塔
      对于每个尺度(既不同大小)上的原始图像(示意箭头上方图像),需要计算它所对应的特征图像(箭头下方图像),所形成的整个特征图像集,就称为特征图像在尺度空间中的特征图像金字塔。这个计算过程很耗时,Dollar在做了相应的探究之后发现,其实并不用再每个尺度都做一遍特征计算,而只需要计算其中的少数几个尺度,例如,每隔8个尺度计算一次,其它尺度上的特征图像则通过相邻尺度上特征图像直接做缩放得到。这样,大大缩减了特征的计算时间,同时检测效果还不差。相比起特征计算而言,图像缩放的计算量可以忽略不计,因此加速想过相当明显。
      此时,整个检测的过程变成了这样,对于一张输入的图片,先构建该图像的特征图像金字塔(尺度空间的大小依据输入图片大小计算得到,特征则包含LUV颜色通道、梯度幅值通道和梯度方向通道),之后,对于金子塔中的每一层,用一个固定尺寸的窗口对该层做扫描,窗口每过一处,就得到该处如图5所示的聚合通道特征描述子。将该描述子丢到分类器中,判别出当前窗口是否是行人。而分类器则采取级联的形式,加快计算的过程。等到计算完了所用尺度中的所有窗口,则图片中的所有行人就都被标注出来了。
      好了,到此就讲完了聚合通道特征相关的东东,下一次我们再来说说检测性能很牛叉的Fast-RCNN是怎么做检测的吧。

    展开全文
  • YOLO,实时对象检测

    千次阅读 2019-04-03 19:13:37
    关于对象检测的先前工作重新利用分类器来执行检测。 相反,我们将对象检测作为回归问题构建到空间上分离的边界框和相关的类概率。 单个神经网络在一次评估中直接从完整图像预测边界框和类概率。 由于整个检测流水线...

    我们提出了一种新的物体检测方法YOLO。 关于对象检测的先前工作重新利用分类器来执行检测。 相反,我们将对象检测作为回归问题构建到空间上分离的边界框和相关的类概率。 单个神经网络在一次评估中直接从完整图像预测边界框和类概率。 由于整个检测流水线是单个网络,因此可以直接在检测性能上进行端到端优化。

     

      我们的统一架构非常快。 我们的基础YOLO模型以每秒45帧的速度实时处理图像。较小版本的网络FastYOLO每秒处理惊人的155帧,同时仍然实现其他的mAP双倍速度的实时检测。 与最先进的检测系统相比,YOLO产生更多的定位误差,但不太可能预测背景上的误报。最后,YOLO学习了物体的非常一般的表示。 当从自然图像推广到其他领域(如艺术品)时,它优于其他检测方法,包括DPM和R-CNN。

     

    1. 引言

    人类瞥了一眼图像,立即知道图像中的物体,它们在哪里,以及它们如何相互作用。 人类视觉系统快速而准确,使我们能够执行复杂的任务,例如在很少有意识的情况下仍能开车。用于物体检测的快速,准确的算法将允许计算机在没有专用传感器的情况下驾驶汽车,使辅助设备能够向人类用户传达实时场景信息,并释放用于通用响应机器人系统的潜力。

    当前的检测系统重新利用分类器来执行检测。为了检测对象,这些系统为该对象采用分类器并在不同位置对其进行评估并在测试图像中进行缩放。 像可变形零件模型(DPM)这样的系统使用滑动窗口方法,其中分类器在整个图像上以均匀间隔的位置运行[10]。

     

    1

    . Resize image.

    2

    . Run convolutional network.

    . Non-max suppression.

    3

    Dog: 0.30

    Person: 0.64

    Horse: 0.28

     

    图1:YOLO检测系统。 使用YOLO处理图像简单明了。 我们的系统(1)将输入图像的大小调整为448×448,(2)在图像上运行单个卷积网络,以及(3)通过模型的置信度对得到的检测进行阈值处理。

    最近更新的方法诸如R-CNN,使用区域提议方法来先在图像中生成潜在的边界框,然后在这些提出的框上运行分类器。分类后,后处理用于细化边界框,消除重复检测,并根据场景中的其他对象重新排列框[13]。 这些复杂的管道很慢且难以优化,因为每个单独的物体必须单独进行训练。

    我们将对象检测重构为单个回归问题,直接从图像像素到边界框坐标和类概率。使用我们的系统,您只需在图像上查看一次(YOLO)即可预测出现的被检测物和它的位置。

    YOLO简洁明了:参见图1.单个卷积网络同时预测这些盒子的多个边界框和类概率。YOLO训练全图像并直接优化检测性能。 与传统的对象检测方法相比,这种统一模型具有多种优势。

    首先,YOLO非常快。 由于我们将检测框架作为回归问题,因此我们不需要复杂的管道。 我们只是在测试时在新图像上运行我们的神经网络来预测检测。 我们的基础网络以每秒45帧的速度运行,Titan X GPU上没有批处理,快速版本的运行速度超过150 fps。 这意味着我们可以实时处理流式视频,延迟时间少于25毫秒。 此外,YOLO的平均精度是其他实时系统的两倍多。 有关我们系统在网络摄像头上实时运行的演示,请参阅我们的项目网页:http://pjreddie.com/yolo/。

    其次,YOLO在做出预测时全局了解图像。与基于滑动窗口和区域提议的技术不同,YOLO在训练和测试时间内查看整个图像,因此它隐式编码有关类的上下文信息及其外观。Fast-R-CNN是一种顶级检测方法[14],它错误地描述了对象中的背景补丁,因为它无法看到更大的上下文。与Fast R-CNN相比,YOLO的背景错误数量不到一半。

    第三,YOLO学习对象的一般化表示。在对自然图像进行训练并对艺术作品进行测试时,YOLO大大优于DPM和R-CNN等顶级检测方法。由于YOLO具有很高的通用性,因此在应用于新域或意外输入时不太可能发生故障。

    YOLO在准确性方面仍然落后于最先进的检测系统。虽然它可以快速识别图像中的对象,但它很难精确地定位某些对象,尤其是小对象。我们在实验中进一步研究了这些权衡。

    我们所有的培训和测试代码都是开源的。还可以下载各种预训练模型。

    1. 统一检测

    我们将目标物检测的单独组件统一到单个神经网络中。我们的网络使用整个图像中的特征来预测每个边界框。它还同时预测所有类的所有边界框。这意味着我们的网络全局了解整个图像和图像中的所有目标物体。 YOLO设计支持端到端训练和实时速度,同时保持较高的平均精度

    我们的系统将输入图像分成S×S网格。如果目标物的中心落入网格单元格中,则该网格单元格负责检测该目标物。

    每个网格单元预测这些框的B边界框和置信度分数。这些置信度得分反映了模型对包含对象的模型的信心程度,以及它对盒子预测的准确程度。我们正式将置信度定义为Pr⁡(Object)*IOUpredtruth如果该单元格中不存在对象,则置信度分数应为零。否则,我们希望置信度得分等于预测框与地面实况之间的联合交叉(IOU)。

    每个边界框由5个预测组成:x,y,w,h和置信度。 (x,y)坐标表示相对于网格单元边界的框的中心。相对于整个图像预测宽度和高度。最后,置信度预测表示预测框和任何地面实况框之间的IOU。

    每个网格单元还预测C条件类概率Pr(Classi| Object)。 这些概率以包含对象的网格单元为条件。 我们只预测每个网格单元的一组类概率,而不管方框B的数量。在测试时,我们将条件类概率与单个框置信度预测相乘,

    PrClassi| Object)* Pr(Object)* IOUpredtruth = P(Classi)* IOUpredtruth(1)

    它为每个框提供了特定于类的置信度分数。这些分数编码该类出现在框中的概率以及预测框与该对象的拟合程度。

     

    图2:模型。 我们的系统将检测模型作为回归问题。它将图像划分为S×S网格,并且每个网格单元预测B边界框,对这些框的置信度和C类概率。 这些预测被编码为S×S×(B * 5 + C)张量。

    为了评估PASCAL VOC上的YOLO,我们使用S = 7,B = 2.PASCAL VOC有20个标记类别,因此C = 20.我们的最终预测是7×7×30张量。

    2.1网络设计

    我们将此模型实现为卷积神经网络,并在PASCAL VOC检测数据集上进行评估[9]。 网络的初始卷积层从图像中提取特征,而完全连接层预测输出概率和坐标。

    我们的网络架构受到GoogLeNet图像分类模型的启发[34]。 我们的网络有24个卷积层,后面是2个完全连接的层。 除了GoogLeNet使用的初始模块,我们只使用1×1缩减层,然后使用3×3卷积层,类似于Lin等[22]。 完整的网络如图3所示。

    我们还训练快速版的YOLO,旨在突破快速物体检测的界限。 快速YOLO使用具有较少卷积层(9而不是24)的神经网络,并且在这些层中使用较少的滤波器。 除了网络的大小,YOLO和Fast YOLO之间的所有训练和测试参数都是相同的。

     

    图3:架构。 我们的检测网络有24个卷积层,后面是2个完全连接的层。 交替的1×1卷积层减少了前面层的特征空间。 我们在ImageNet分类任务上以一半的分辨率(224×224输入图像)预先训练卷积层,然后将分辨率加倍以进行检测。

    我们网络的最终输出是7×7×30张量的预测。

     

    2.2训练

    我们在ImageNet 1000个类的竞赛数据集[30]上预先训练我们的卷积层。对于预训练,我们使用图3中的前20个卷积层,接着是平均池化层和完全连接层。我们训练这个网络大约一周,并在ImageNe t 2012验证集上实现88%的单一作物前5精度,与Caffe模型集合中的GoogLeNet模型相当[24]。我们使用Darknet框架进行所有训练和推理[26]。

      然后我们转换模型以执行检测。任等人表明将卷积和连接层添加到预训练网络可以提高性能[29]。按照他们的例子,我们添加四个卷积层和两个完全连接的层,随机初始化权重。检测通常需要细粒度的视觉信息,因此我们将网络的输入分辨率从224×224增加到448×448。

    我们的最后一层预测了类概率和边界框坐标。我们将边界框宽度和高度标准化为图像宽度和高度,使它们落在0和1之间。我们将边界框x和y坐标参数化为特定网格单元位置的偏移量,因此它们也在0到1之间。

     

      我们优化模型输出中的求和平方误差。我们使用求和平方误差,因为它很容易优化,但它与我们最大化平均精度的目标并不完全一致。 它将定位误差与分类误差相等地加权,这可能并不理想。此外,在每个图像中,许多网格单元不包含任何对象。这些单元格的“置信度”分数为零,通常会压制包含对象的单元格的渐变。 这可能导致模型不稳定,导致训练在早期出现分歧。为了解决这个问题,我们增加了边界框坐标预测的损失,并减少了不包含对象的框的置信度预测损失。 我们使用两个参数,λcoord和λnoobj来实现这一目的。 我们设置λcoord= 5和λnoobj= .5。

    求和误差也同样可以加大大盒子和小盒子中的误差。我们的误差度量应该反映出大箱子中的小偏差比小箱子中的小。为了部分解决这个问题,我们直接预测边界框宽度和高度的平方根,而不是宽度和高度。

    YOLO预测每个网格单元有多个边界框。在训练时,我们只希望一个边界框预测器负责相对应的一个目标物体。我们根据哪个预测具有最高当前IOU和基础事实,将一个预测器分配为“负责的边界框”以预测对象。这导致边界框预测变量之间的特化。 每个预测变量都能更好地预测某些大小,宽高比或对象类别,从而提高整体回忆率。

      在训练期间,我们优化了以下多部分损失函数:

     

         其中liobj表示对象是否出现在单元格i中, li jobj表示单元格i中的第j个边界框预测符对该预测“负责”。

    注意,如果对象存在于该网格单元中,则损失函数仅惩罚分类错误(因此前面讨论的条件类概率)。如果该预测器对地面实况框“负​​责”(即,该网格单元中具有任何预测器的最高IOU),它也仅惩罚边界框坐标误差。

    我们在PASCAL VOC 2007和2012的培训和验证数据集上训练了大约135个迭代的网络。在2012年测试时,我们还包括用于培训的VOC 2007测试数据。在整个培训过程中,我们使用的批量为64,动量为0.9,衰减为0.0005。

    我们的学习率表如下:对于第一个时期,我们慢慢将学习率从10-3提高到10-2。如果我们从高学习速度开始,我们的模型通常会因梯度不稳定而发散。我们继续以10-2为75个时期进行训练,然后以10-3进行30个时期的训练,最后以10-4进行30个时期的训练。

    为避免过度拟合,我们丢失了部分数据和同时进行数据扩充。在第一个连接层之后,速率= 0.5的丢失层阻止了层之间的共同适应[18]。对于数据增强,我们引入了高达原始图像大小20%的随机缩放和翻译。我们还在HSV颜色空间中随机调整图像的曝光和饱和度达1.5倍。

    2.3 推理

    就像在训练中一样,预测测试图像的检测只需要一次网络评估。 在PASCAL VOC上,网络预测每个图像98个边界框和每个框的类概率。 YOLO在测试时非常快,因为它不需要单一的网络评估,这与基于分类器的方法不同。

    网格设计在边界框预测中强制实施空间多样性。通常很清楚一个对象落入哪个网格单元,并且网络仅为每个对象预测一个框。然而,多个边框的边界附近的一些大物体或物体可以被多个框很好地定位。非最大抑制可用于修复这些多个检测。虽然对于R-CNN或DPM的性能并不重要,但非最大抑制在mAP中增加了23%。

    2.4 YOLO的局限性

    YOLO对边界框预测施加了强大的空间约束,因为每个网格单元只预测两个框,并且只能有一个类。此空间约束限制了我们的模型可以预测的附近对象的数量。我们的模型与群体中出现的小物体斗争,例如成群的鸟类。

    由于我们的模型学习从数据中预测边界框,因此很难在新的或不寻常的宽高比或配置中推广到对象。 我们的模型还使用相对粗略的特征来预测边界框,因为我们的体系结构具有来自输入图像的多个下采样层。

    最后,当我们训练一个近似检测性能的损失函数时,我们的损失函数在小边界框中与大边界框相比处理错误。大盒子中的小错误通常是良性的,但小盒子中的小错误对IOU的影响要大得多。 我们的主要错误来源是错误的本地化。

    1. 相比于其他检测系统

    对象检测是计算机视觉中的核心问题。检测流水线通常首先从输入图像中提取一组稳健特征(Haar [25],SIFT [23],HOG [4],卷积特征[6])。然后,分类器[36,21,13,10]或定位器[1,32]用于识别特征空间中的对象。这些分类器或定位器在整个图像上以滑动窗口方式或在图像中的某些区域子集上运行[35,15,39]。我们将YOLO检测系统与几个顶级检测框架进行了比较,突出了主要的相似点和不同点。

    可变形零件模型(DMP)。可变形零件模型(DPM)使用滑动窗口方法进行物体检测[10]。 DPM使用不相交的管道来提取静态特征,对区域进行分类,预测高分区域的边界框等。我们的系统用单个卷积神经网络替换所有这些不同的部分。网络同时执行特征提取,边界框预测,非最大抑制(nonmaximal suppression)和上下文推理(ontextual reasoning)。网络不是静态功能,而是在线训练功能并针对检测任务对其进行优化。我们的统一架构使得模型比DPM更快,更准确。

    R-CNN。 R-CNN及其变体使用区域提议而不是滑动窗口来查找图像中的对象。 选择性搜索[35]生成潜在的边界框卷积网络提取特征SVM对框进行评分,线性模型调整边界框,非最大抑制消除重复检测。这个复杂管道的每个阶段必须独立精确调整,结果系统非常慢,在测试时每个图像需要超过40秒[14]。

    YOLO与R-CNN有一些相似之处。每个网格单元提出潜在的边界框,并使用卷积特征对这些框进行评分。但是,我们的系统对网格单元提议设置了空间限制,这有助于减轻同一对象的多次检测。我们的系统还提出了更少的边界框,每个图像只有98个,而选择性搜索只有2000个。最后,我们的系统将这些单独的组件组合成一个联合优化的模型。

    其他快速检测器 Fast和Faster R-CNN专注于加速R-CNN框架,通过共享计算和使用神经网络来提出区域而不是选择性搜索[14] [28]。虽然它们提供了比R-CNN更快的速度和准确度,但两者仍然没有达到实时性能。

    许多研究工作都集中在加速DPM管道[31] [38] [5]。它们加速HOG计算,使用级联,并将计算推送到GPU。但是,只有30Hz的DPM [31]实际上是实时运行的。

    YOLO没有尝试优化大型检测管道的各个组件,而是完全抛开管道并且设计快速。

    单个类(如面部或人)的探测器可以进行高度优化,因为它们必须处理更少的变化[37]。 YOLO是一种通用检测器,可以学习同时检测各种物体。

    Deep MultiBox。与R-CNN不同,Szegedy等人。训练卷积神经网络来预测感兴趣的区域[8]而不是使用选择性搜索。 MultiBox还可以通过用单个类预测替换置信度预测来执行单个对象检测。但是,MultiBox无法执行常规对象检测,并且仍然只是更大的检测管道中的一部分,需要进一步的图像补丁分类。 YOLO和MultiBox都使用卷积网络来预测图像中的边界框,但YOLO是一个完整的检测系统。

    OverFeat Sermanet等人训练卷积神经网络以执行定位并调整定位器以执行检测[32]。 OverFeat有效地执行滑动窗口检测,但它仍然是一个不相交的系统。 OverFeat优化了本地化,而不是检测性能。与DPM一样,本地化程序在进行预测时仅查看本地信息。 OverFeat无法推断全局背景,因此需要进行大量的后处理才能产生相干检测。

    MultiGrasp。我们的设计在设计上类似于Redmon等[27]的抓握检测。我们对边界框预测的网格方法基于MultiGrasp系统进行回归到掌握。然而,抓取检测是比对象检测简单得多的任务。 MultiGrasp只需要为包含一个对象的图像预测单个可抓取区域。它不必估计对象的大小,位置或边界或预测它的类,只找到适合抓取的区域。 YOLO预测图像中多个类的多个对象的边界框和类概率。

    1. 实验

    首先,我们将POLCAL VOC 2007上的YOLO与其他实时检测系统进行比较。为了理解YOLO和R-CNN变体之间的差异,我们探讨了YOLO和Fast R-CNN对VOC 2007的误差,这是最高性能的版本之一。 R-CNN [14]。 基于不同的错误配置文件,我们显示YOLO可用于重新调整快速R-CNN检测并减少背景误报的错误,从而显着提升性能。 我们还介绍了VOC 2012的结果,并将mAP与当前最先进的方法进行了比较。 最后,我们展示了YOLO比两个艺术品数据集上的其他检测器更好地推广到新域。

    4.1实时系统的比较

    检测的许多研究工作都集中在快速制作标准检测流水线上。 [5] [38] [31] [14] [17] [28]然而,只有Sadeghi等人。实际上产生了一个实时运行的检测系统(每秒30帧或更好)[31]。我们将YOLO与他们在30Hz或100Hz下运行的DPM的GPU实现进行比较。虽然其他工作没有达到实时里程碑,但我们还比较了它们的相对mAP和速度,以检查物体检测系统中可用的准确性 - 性能权衡。

    Fast YOLO是PASCAL上最快的物体检测方法;据我们所知,它是现存最快的物体探测器。通过52.7%的mAP,它比以前的实时检测工作准确度高出两倍多。 YOLO将mAP推至63.4%,同时仍保持实时性能。

    我们还使用VGG-16训练YOLO。这个模型比YOLO更准确但也明显更慢。与其他依赖VGG-16的检测系统进行比较非常有用,但由于它比实时慢,本文的其余部分主要关注我们的快速模型。

    最快的DPM有效地加速了DPM而不会牺牲太多的mAP,但它仍然错过了实时性能2倍[38]。与神经网络方法相比,它还受到DPM检测精度相对较低的限制。

    R-CNN减去R用静态边界框提议取代选择性搜索[20]虽然它比R-CNN快得多,但它仍然没有实时性,并且由于没有好的建议而受到很大的准确性影响。

    Fast-R-CNN加速了R-CNN的分类阶段,但它仍然依赖于选择性搜索,每个图像大约需要2秒才能生成边界框提议。 因此它具有高mAP但是在0.5fps时仍然远非实时。

    Real-Time Detectors

    Train

    mAP

    FPS

    100Hz DPM [31]

    2007

    16.0

    100

    30Hz DPM [31]

    2007

    26.1

    30

    Fast YOLO

    2007+2012

    52.7

    155

    YOLO

    2007+2012

    63.4

    45

    Less Than Real-Time

     

     

     

    Fastest DPM [38]                                      2007      30.4        15

    R-CNN Minus R [20]                                 2007      53.5          6

    Fast R-CNN [14]                             2007+2012      70.0       0.5

    Faster R-CNN VGG-16[28]            2007+2012      73.2          7

    Faster R-CNN ZF [28]                    2007+2012      62.1        18

    YOLO VGG-16                                 2007+2012      66.4        21

    表1:PASCAL VOC 2007上的实时系统。比较快速检测器的性能和速度。 Fast YOLO是PASCAL VOC检测中记录最快的检测器,其精度仍然是其他任何实时检测器的两倍。 YOLO比快速版本更精确10 mAP,同时仍然远远高于实时速度。

    最近的Faster-R-CNN用神经网络取代选择性搜索以提出边界框,类似于Szegedy等人。 [8]在我们的测试中,他们最精确的模型达到7 fps,而较小,不太精确的模型以18 fps运行。 Faster-R-CNN的VGG-16版本高出10 mAP,但也比YOLO慢6倍。 ZeilerFergus速度更快的R-CNN仅比YOLO慢2.5倍,但也不太准确。

    4.2 VC2007误差分析

    为了进一步研究YOLO和最先进的探测器之间的差异,我们将详细分析VOC 2007的结果。我们将YOLO与Fast RCNN进行比较,因为Fast R-CNN是PASCAL上性能最高的探测器之一。 它的检测是公开的。

    我们使用Hoiem等人的方法和工具。[19]对于测试时的每个类别,我们查看该类别的前N个预测。 每个预测都是正确的,或者根据错误类型进行分类:

    •正确:正确的类和IOU> .5

    •本地化:正确的类,.1 <IOU <.5

    •类似:类相似,IOU> .1

    •其他:类错了,IOU> .1

    •背景:IOU <.1表示任何目标

     

    Correct: 71.6%

    Correct: 65.5%

    Loc: 8.6%

    Sim: 4.3%

    Other: 1.9%

    Background: 13.6%

    Loc: 19.0%

    Sim: 6.75%

    Other: 4.0%

    Background: 4.75%

     

          Fast-R-CNN             YOLO

    图4:误差分析:Fast-R-CNN与YOLO这些图表显示了各种类别的前N个检测中的本地化和背景错误的百分比(N =该类别中的#个对象)。

    图4显示了所有20个类中平均每种错误类型的细分。

    YOLO努力正确地定位检测物。 与所有其他来源相结合,本地化错误占YOLO错误的更多。 Fast-R-CNN使本地化错误更少,但背景错误更多。 其中13.6%的顶级检测结果是误报,不包含任何对象。 与YOLO相比,Fast-R-CNN预测背景检测的可能性几乎高出3倍。

    4.3 结合Fast-R-CNN和YOLO

    与Fast-R-CNN相比,YOLO的背景错误要少得多。通过使用YOLO消除Fast R-CNN的背景检测,我们可以显着提升性能。对于R-CNN预测的每个边界框,我们检查YOLO是否预测了类似的框。如果确实如此,我们会根据YOLO预测的概率和两个框之间的重叠来推动该预测。

    最佳FastR-CNN型号在VOC 2007测试装置上实现了71.8%的mAP。当与YOLO结合使用时,其mAP增加3.2%至75.0%。我们还尝试将顶级FastR-CNN模型与其他几个版本的FastR-CNN相结合。这些合奏使mAP的小幅增加在.3和.6%之间,详见表2。

     

    表2:VOC 2007的模型组合实验。我们研究了将各种模型与最佳版本的Fast R-CNN组合的效果。 其他版本的Fast R-CNN仅提供小的优势,而YOLO提供显着的性能提升。

    YOLO的推动不仅仅是模型集成的副产品,因为组合不同版本的Fast R-CNN几乎没有什么好处。相反,正是因为YOLO在测试时犯了不同类型的错误,才能提升快速R-CNN的性能

    不幸的是,这种组合并没有受益于YOLO的速度,因为我们单独运行每个模型然后结合结果。然而,由于YOLO如此之快,与Fast R-CNN相比,它不会增加任何显着的计算时间。

     

    表3:P ASCAL VOC 2012排行榜。 截至2015年11月6日,YOLO与完整的comp4(允许外部数据)公共排行榜进行了比较。显示了各种检测方法的平均精度和每级平均精度。 YOLO是唯一的实时探测器。 Fast-R-CNN + YOLO是第四高得分方法,比快速R-CNN提升2.3%

    4.4 VOC2012的结果

    在VOC 2012测试集中,YOLO的分数为57.9%。 这低于目前的技术水平,更接近使用VGG-16的原始R-CNN,参见表3.与最接近的竞争对手相比,我们的系统与小物体相比更加困难。 在瓶子,绵羊和电视/显示器等类别中,YOLO比R-CNN或特征编辑低8-10%。 然而,在其他类别如猫和火车上,YOLO实现了更高的性能。

    我们的快速R-CNN + YOLO组合模型是性能最高的检测方法之一。 Fast-R-CNN从与YOLO的组合中获得了2.3%的提升,使其在公共排行榜上增加了5个点。

    4.5 概括性:艺术作品中的人物检测

    用于对象检测的学术数据集从同一分布中提取训练和测试数据。在实际应用中,很难预测所有可能的用例,测试数据可能与系统之前的情况有所不同[3]。我们将YOLO与Picasso数据集[12]和人物艺术数据集[3]上的其他检测系统进行比较,这两个数据集用于测试艺术品上的人物检测。

    图5显示了YOLO与其他检测方法之间的比较性能。作为参考,我们在人员上提供VOC 2007检测AP,其中所有型号仅针对VOC 2007数据进行培训。在Picasso模型上接受了VOC 2012的培训,而在People-Art上,他们接受了VOC 2010的培训。

    R-CNN在VOC 2007上具有很高的AP。然而,当应用于艺术品时,R-CNN显着下降。 R-CNN使用选择性搜索来调整自然图像的边界框提议。 R-CNN中的分类器步骤只能看到小区域,需要很好的建议。

    当应用于艺术品时,DPM可以很好地维护其AP。之前的工作认为DPM表现良好,因为它具有强大的对象形状和布局的空间模型。虽然DPM不像R-CNN那样降低,但它从较低的AP开始。

    YOLO在VOC 2007上具有良好的性能,并且当应用于艺术品时,其AP比其他方法降低更少。与DPM一样,YOLO模拟对象的大小和形状,以及对象和对象通常出现的位置之间的关系。图像和自然图像在像素级别上非常不同,但它们在对象的大小和形状方面相似,因此YOLO仍然可以预测良好的边界框和检测。

    5.户外实时检测

    YOLO是一款快速,精确的物体探测器,非常适合计算机视觉应用。 我们将YOLO连接到网络摄像头并验证它是否保持实时性能,包括从相机获取图像并显示检测结果的时间。

    由此产生的系统具有互动性和吸引力 虽然YOLO单独处理图像,但当连接到网络摄像头时,它的功能类似于跟踪系统,在物体移动时检测物体并改变外观。 可在我们的项目网站上找到系统演示和源代码:http://pjreddie.com/yolo/。

     

    图5:Picasso和People-Art数据集的泛化结果。

     

    图6:定性检测结果。YOLO运行样本艺术作品和来自互联网的自然图像。 虽然它确实认为一个人是飞机,但它大多是准确的。

    6.结论

    我们介绍了YOLO,一种用于物体检测的统一模型。 我们的模型构造简单,可以直接在完整图像上进行训练。 与基于分类器的方法不同,YOLO针对与检测性能直接对应的损失函数进行训练,并且整个模型被联合训练。

    Fast YOLO是文献中最快的通用物体探测器,YOLO在实时物体探测中推动了最先进的技术。 YOLO还可以很好地推广到新域,使其成为依赖快速,强大的对象检测的应用程序的理想选择。

     

     

     

     

     

     

     

     

    展开全文
  • TensorFlow 对象检测 API 教程5

    千次阅读 2018-02-11 03:23:39
    TensorFlow 对象检测 API 教程 - 第5部分:保存和部署模型 在本教程的这一步,认为已经选择了预先训练的对象检测模型,调整现有的数据集或创建自己的数据集,并将其转换为 TFRecord 文件,修改模型配置文件并开始...

    TensorFlow 对象检测 API 教程 - 第5部分:保存和部署模型

    在本教程的这一步,认为已经选择了预先训练的对象检测模型,调整现有的数据集或创建自己的数据集,并将其转换为 TFRecord 文件,修改模型配置文件并开始训练。但是,现在需要保存模型并将其部署到项目中。

    一. 将检查点模型 (.ckpt) 保存为 .pb 文件

    回到 TensorFlow 对象检测文件夹,并将 export_inference_graph.py 文件复制到包含模型配置文件的文件夹中。

    
    python export_inference_graph.py --input_type image_tensor --pipeline_config_path ./rfcn_resnet101_coco.config --trained_checkpoint_prefix ./models/train/model.ckpt-5000 --output_directory ./fine_tuned_model
    
    

    这将创建一个新的目录 fine_tuned_model ,其中模型名为 frozen_inference_graph.pb

    二.在项目中使用模型

    在本指南中一直在研究的项目是创建一个交通灯分类器。在 Python 中,可以将这个分类器作为一个类来实现。在类的初始化部分中,可以创建一个 TensorFlow 会话,以便在每次需要分类时都不需要创建它。

    
    class TrafficLightClassifier(object):
        def __init__(self):
            PATH_TO_MODEL = 'frozen_inference_graph.pb'
            self.detection_graph = tf.Graph()
            with self.detection_graph.as_default():
                od_graph_def = tf.GraphDef()
                # Works up to here.
                with tf.gfile.GFile(PATH_TO_MODEL, 'rb') as fid:
                    serialized_graph = fid.read()
                    od_graph_def.ParseFromString(serialized_graph)
                    tf.import_graph_def(od_graph_def, name='')
                self.image_tensor = self.detection_graph.get_tensor_by_name('image_tensor:0')
                self.d_boxes = self.detection_graph.get_tensor_by_name('detection_boxes:0')
                self.d_scores = self.detection_graph.get_tensor_by_name('detection_scores:0')
                self.d_classes = self.detection_graph.get_tensor_by_name('detection_classes:0')
                self.num_d = self.detection_graph.get_tensor_by_name('num_detections:0')
            self.sess = tf.Session(graph=self.detection_graph)
    
    
    

    在这个类中,创建了一个函数,在图像上运行分类,并返回图像中分类的边界框,分数和类。

    
    def get_classification(self, img):
        # Bounding Box Detection.
        with self.detection_graph.as_default():
            # Expand dimension since the model expects image to have shape [1, None, None, 3].
            img_expanded = np.expand_dims(img, axis=0)  
            (boxes, scores, classes, num) = self.sess.run(
                [self.d_boxes, self.d_scores, self.d_classes, self.num_d],
                feed_dict={self.image_tensor: img_expanded})
        return boxes, scores, classes, num
    
    

    此时,需要过滤低于指定分数阈值的结果。结果自动从最高分到最低分,所以这相当容易。用上面的函数返回分类结果,做完以上这些就完成了!

    下面可以看到交通灯分类器在行动

    ai-1

    展开全文
  • 对象检测工具包mmdetection简介、安装及测试代码

    万次阅读 热门讨论 2019-01-29 17:50:33
    mmdetection是商汤和港中文大学联合开源的基于PyTorch的对象检测工具包,属于香港中文大学多媒体实验室open-mmlab项目的一部分。该工具包提供了已公开发表的多种流行的检测组件,通过这些组件的组合可以迅速搭建出...
  • 本文以自动驾驶场景下的对象检测(Object Detection)为研究对象,学习理解滑窗卷积和YOLO等内容。 1.对象检测 对象检测(Object Detection)的目的是”识别对象并给出其在图中的确切位置”,其内容可解构为三...
  • 10行代码让你轻松搞定对象检测

    千次阅读 2018-06-22 13:49:39
    摘要:十行代码轻松搞定对象检测?快来看看如何使用ImageAI。计算机视觉是人工智能领域中最重要的一个分支。计算机视觉是一门能够识别和理解图像及其场景的计算机软件系统的科学。计算机视觉包括图像识别、对象检测...
  • 在此功能中,我将介绍使用OpenCV和Python代码设置对象检测和跟踪所需的功能。使用随附的代码片段,您可以轻松设置Raspberry Pi和网络摄像头,以便制作用于物体检测的便携式图像传感器。 本文适用于任何希望在...
  • YOLO ->SSD -> YOLO2路线是基于回归...YOLO:RCNN系列对象检测太慢了,能快点吗? SSD :YOLO速度是上来了,可是mAP太低了? YOLO2:结合YOLO和Faster RCNN网络各自快速和mAP高的优点,能满足实时和较高的mAP的要求吗?
  • TensorFlow对象检测API是一个建立在TensorFlow之上的开源框架,可以轻松构建,训练和部署对象检测模型。 github地址下载TensorFlow Model模型库TensorFlow 模型库包含了很多开源的模型,包括图像分类、检测、自然...
  • TensorFlow对象检测API是一个建立在TensorFlow之上的开源框架,可以轻松构建,训练和部署对象检测模型。 到目前为止,API的性能给我留下了深刻的印象。在这篇文章中,我将API的对象设定为一个可以运动的玩具。本文...
  • 在树莓派上运行TensorFlow-Lite实现对象检测(Object-Detection) 简介 博主借鉴了目前tensorflow lite运行在树莓上的教程,参考写出了这篇可能是小白最容易理解与上手tensorflow以及对象检测的博客。按照步骤走下来...
  • 首先我们要搞明白图像分类和对象检测的区别: 1、图像分类: 图像分类就是将这幅图像归为某一类,图像中的对象尽量要单一。 2、对象检测对象检测就是将不同的对象用框圈出来并规定为某一类,对象可以多个...
  • 【Python】基于darkflow的YOLO实时对象检测

    千次阅读 热门讨论 2018-02-20 13:30:52
    YOLO全称you only look once,是实时对象检测的技术 环境 python3.6 win10 下载安装darkflow项目 git clone https://github.com/thtrieu/darkflow.git python setup.py build_ext --inplace 下载训练好的模型文件 ...
  • 参考: ...2、https://github.com/opencv/选择性搜索对象检测(C ++ / Python)在本教程中,我们将了解在对象检测中称为“选择性搜索...对象检测与对象识别物体识别算法识别图像中存在哪些物体。 它将整个图像作为输入并
  • 【MaixPy 教程】用mixly玩转K210——20类对象检测 前言 【MaixPy系列教程:】 【MaixPy教程】用maixHub训练模型进行开源硬件识别 【MaixPy 教程】用mixly玩转K210——口罩识别 【MaixPy教程】用mixly玩转K210——...
  • 对象检测之行人检测(3)

    千次阅读 2016-05-25 10:56:19
    对象检测之行人检测(2) 中介绍了 Piotr Dollar 的聚合通道特征算法,在今天我们则来谈一谈检测界另一位大牛 Ross B. Girshick 的RCNN算法以及在它基础上的改进。这位大神也是提出处理遮挡很有效的可形变模型 ...
  • 今天要整理的是OpenCV中dnn模块对于YOLOv3模型的加载调用,以及在此基础上实现图像中的对象检测。OpenCV4.0版本以上支持YOLOv3版本模型的对象检测网络,该网络模型支持80种类别对象的检测,而且现在YOLO发布了v4版本...
  • 在我们内存管理中, 一旦引用计数被清...其实在Xcode里面, 自带是有僵尸对象检测功能的, 只要打开这个功能, Xcode就会一行一行代码去检测哪个为僵尸对象, 而你又有没有对僵尸对象进行一些非法的操作, 大大的节省我们编
  • MPEG-4中的视频对象检测技术研究

    千次阅读 2006-04-18 10:28:00
    MPEG-4中的视频对象检测技术研究万 旻1,郭宝龙1,刘小丁2(1.西安电子科技大学机电工程学院 陕西 西安 710071;2.陕西人民广播电台 陕西 西安 710068) 摘 要:标准中,如何从视频图像分割出视频对象是一个...
  • 这张图在上一张的前面
  • 有人在github上发布了何凯明的Mask R-CNN目标检测对象分割Keras和TensorFlow的实现代码。这个实现基于Python 3、Keras和TensorFlow。模型对图片中的每个对象实例生成包围框(bounding boxes)和分割掩膜...
  • 环境: 1、安装opencv3.3以上,因为3.3以上才有dnn模块。...检测之后: 总结: 我是在window上跑的,配置I5 6402p,用的CPU,不知道GPU怎么跑,有知道的大神欢迎交流。速度基本实时,准确度还可以。
  • 计算机视觉大部分研究都集中在二维对象预测上。虽然2D预测只提供2D边界框,但是通过将预测扩展到3D,可以捕捉到物体在世界上的大小、位置和方向,从而在机器人、自动驾驶车辆、图像检索和增强现实等领域有着广泛的...
  • v-model绑定对象检测不到属性变化?

    千次阅读 2019-07-02 10:50:07
    v-model=”selectValue.code“那么这样就能够检测到属性的变化,所以每次重新获取值应当对整个对象进行重新赋值,而不是仅仅是操作里面的属性。 才尝试写,里面有非常多的问题,欢迎大家提出,本人将会非常感激。...
  • 这5个预测边界框组成了针对对象的超完备集,这可以减少对象检测的不确定性以及处理一些预测Binary Masks的错误。此外,如果相同类型的两个对象彼此相邻放置,则所产生的5个Binary Masks中至少有2个Binary Masks将...
  • 译者:蓝燕子 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢!...为了回应这两个任务,我们设计了一个两个流结构以共同学习对象级别(即边界框)和像素级别(即实例掩码)上的特征。在这个结构...
  • 这个代码库是一个建立在 TensorFlow 顶部的开源框架,方便其构建、训练和部署目标检测模型。设计这一系统的目的是支持当前最佳的模型,同时允许快速探索和研究。 在其官方文档说明书上面说明了提供的几个模型:...
  • 在本文中,我们将深入了解对象检测的实际应用、作为机器学习的对象检测的主要问题是什么、以及深度学习如何在这几年里解决这个问题。 对象检测的例子(检测到四个小恐龙宝宝) 对象检测的实际运用 尽管对象检测仍然...
  • type Peer struct { id uint64 heartbeat time.Time } type Server struct { peers map[uint64]*Peer lock sync.Mutex }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717,789
精华内容 287,115
关键字:

对象检测