精华内容
下载资源
问答
  • YOLO,是目前速度更快的物体检测算法之一。虽然它不再是最准确的物体检测算法,但当您需要实时检测时,它是一个非常好的选择,而不会损失太多的准确性。 Darknet-53 YOLO v2 使用自定义的深度架构 darknet-19,这是...

    @Author:Runsen

    YOLO,是目前速度更快的物体检测算法之一。虽然它不再是最准确的物体检测算法,但当您需要实时检测时,它是一个非常好的选择,而不会损失太多的准确性。

    YOLO 框架

    在本篇博客中,我将介绍 YOLO 在给定图像中检测对象所经过的步骤。

    • YOLO 首先获取输入图像:

    然后框架将输入图像划分为网格(比如 3 X 3 网格):

    图像分类和定位分别应用于每个网格,然后 YOLO 预测边界框及其对应的对象类别概率。

    因此,下一步的方法是将标记数据传递给模型以对其进行训练。假设已将图像划分为大小为 3 X 3 的网格,并且存在有 3 个希望将对象分类的类。

    假设这些类分别是 Pedestrian行人、Car 和 Motorcycle摩托车。对于每个网格单元,标签 y 将是一个八维向量:

    • pc定义对象是否存在于网格中(这是概率)
    • bx , by , bh , bw指定边界框,如果有对象
    • c1、c2、c3表示类别。因此,如果对象是汽车,则 c2将为 1,c1 和 c3将为 0

    从上面的例子中选择了第一个网格:

    由于此网格中没有对象,因此 pc 将为零,此网格的 y 标签为

    这里, ‘?’ 是没有的意思。

    采用另一个网格,其中这里有一辆汽车 (c2 = 1):

    在我们为这个网格编写 y 标签之前,首先要知道 YOLO 如何确定网格中是否确实存在对象。在最上面图中,有两个对象(两辆车),因此 YOLO 将取这两个对象的中点,并将这些对象分配到包含这些对象中点的网格。上面的 y 标签将是:


    由于此网格中有一个对象,因此 p c 将等于 1。 bx、 by、 bh、 bw将相对于正在处理的特定网格单元。由于汽车是第二类,c2 = 1 且 c1和 c3 = 0。因此,对于9个网格中的每一个,将有一个八维输出向量。此输出的形状为 3 X 3 X 8。

    所以现在我们有一个输入图像,它是对应的目标向量。使用上面的例子(输入图像 – 100 X 100 X 3,输出 – 3 X 3 X 8),模型将训练如下:

    在测试阶段,我们将图像传递给模型并运行前向传播,直到我们得到输出 y。在这里使用 3 X 3 网格进行了解释,但通常在实际场景中采用更大的网格(一般是 19 X 19)。

    如何得到编码边界框?

    bx、 by、 bh和 bw是相对于正在处理的网格单元计算的。

    下面通过一个例子来理解这个概念。考虑包含汽车的中右网格:

    bx、 by、 bh和bw将仅相对于该网格进行计算。此网格的 y 标签将是:

    pc = 1 因为在这个网格中有一个物体并且它是一辆汽车,所以 c2 = 1。现在,看看怎么确定 bx、 by、 bh和 bw。在YOLO中,分配给所有网格的坐标是:

    bx , by是对象中点相对于该网格的 x 和 y 坐标。在这种情况下,它将是(大约)bx = 0.4 和 by = 0.3:

    bh 是边界框(上例中的红色框)的高度与相应网格单元的高度之比,在例子中约为 0.9。因此,bh = 0.9。bw是边界框的宽度与网格单元格的宽度之比。因此,大约bw = 0.5。此网格的 y 标签将是:

    请注意,bx和 by将始终介于 0 和 1 之间,因为中点始终位于网格内。而 bh和 bw可以大于 1,这样边界框的尺寸大于网格的尺寸。

    如何确定预测的边界框是否给了我们一个好的结果还是一个坏的结果)?判断的方法就是 Intersection over Union ,计算实际边界框和预测结合框的并集的交集。

    Intersection over Union

    在上图,红色框是实际的边界框,蓝色框是预测的边界框。我们如何确定它是否是一个好的预测?IoU ,全称 Intersection over Union,将计算这两个框的并集上的交集面积。该区域将是:

    IoU = 交集面积/并集面积,即 IoU = 黄框面积/绿框面积

    如果 IoU 大于 0.5,我们可以说预测足够好。0.5 是此处采用的任意阈值。

    还有一种技术可以显着提高 YOLO 的输出——Non-Max Suppression。

    因为对象检测算法中,有的对象可能会多次检测到一个对象,而不是只检测一次。比如下图:

    在这里,汽车被多次识别。Non-Max Suppression 技术对此进行了清理,以便我们对每个对象仅进行一次检测。

    Non-Max Suppression首先查看与每个检测相关的概率并取最大的一个。在上图中,0.9 是最高概率,因此将首先选择概率为 0.9 的框:


    现在,它查看图像中的所有其他框。与当前框具有高 IoU 的框被抑制。因此,在上面的图片中,概率为 0.6 和 0.7 的框将被抑制:

    在这些框被抑制后,它从所有具有最高概率的框中选择下一个框,在图片中为 0.8,不断重复这些步骤,直到所有的框都被选中或压缩,得到最终的边界框。

    这就是非最大抑制Intersection over Union。以最大概率取框并以非最大概率抑制附近的框。

    Anchor Boxes

    由于每个网格只能识别一个对象。但是如果一个网格中有多个对象呢?现实中经常是这样。这将我们引向了 Anchor Boxes锚盒的概念。考虑下图,分为 3 X 3 网格:

    取对象的中点并根据其位置将对象分配到相应的网格。在上面的例子中,两个对象的中点位于同一个网格中。

    我们只会得到两个盒子中的一个,要么是汽车,要么是人。但是如果我们使用锚框,可能可以同时输出两个框!

    首先,我们预先定义了两种不同的形状,称为锚盒。对于每个网格,我们将有两个输出,而不是一个输出。我们也可以随时增加锚框的数量。在这里拿了两个来使这个概念易于理解:

    这是没有锚框的 YOLO 的 y 标签的样子:

    如果有 2 个锚框,你认为 y 标签会是什么?我希望你在进一步阅读之前花点时间思考一下。知道了y 标签将是:

    前 8 行属于锚框 1,其余 8 行属于锚框 2。

    根据边界框和锚框形状的相似性将对象分配给锚框。

    由于anchor box 1的形状类似于personbounding box,后者将被分配给anchor box 1,car将被分配给anchor box 2。这种情况下的输出,而不是3 X 3 X 8 ,使用 3 X 3 网格和 3 个类将是 3 X 3 X 16(因为使用了 2 个锚点)。

    因此,对于每个网格,可以根据锚点的数量检测两个或多个对象。

    训练yolo模型的输入显然是图像及其相应的 y 标签。让我们看一个图像如何制作 y 标签:

    考虑使用 3 X 3 网格,每个网格有两个锚点,并且有 3 个不同的对象类。所以对应的 y 标签将有 3 X 3 X 16的形状。现在,假设我们每个网格使用 5 个锚框并且类的数量已经增加到 5。所以目标将是3 X 3 X 10 X 5 = 3 X 3 X 50

    在测试中,新图像将被划分为我们在训练期间选择的相同数量的网格。对于每个网格,模型将预测形状为 3 X 3 X 16 的输出,此预测中的 16 个值将采用与训练标签相同的格式。

    前 8 个值将对应于锚框 1,其中第一个值将是该网格中对象的概率。值 2-5 将是该对象的边界框坐标,最后三个值将告诉我们该对象属于哪个类。接下来的 8 个值将用于锚框 2 并且格式相同,即首先是概率,然后是边界框坐标,最后是类别。

    最后,非最大抑制Intersection over Union技术将应用于预测框以获得每个对象的单个预测。

    展开全文
  • 基于深度学习的物体检测算法可大致分为“一阶段”和“两阶段”两类。一般而言,以Faster RCNN为代表的两阶段检测器在准确度上有优势;而以SSD为代表的单阶段检测器在速度上有优势。正所谓“他山之石,可以攻玉”,...

    基于深度学习的物体检测算法可大致分为“一阶段”和“两阶段”两类。一般而言,以Faster RCNN为代表的两阶段检测器在准确度上有优势;而以SSD为代表的单阶段检测器在速度上有优势。正所谓“他山之石,可以攻玉”,本文提出了融合一二步法思想的RefineDet物体检测算法,在保持一步法速度的前提下,获得了二步法的精度。

    1.引言

    物体检测是视觉感知的第一步,也是计算机视觉的一个重要分支。物体检测的目标是用框去标出物体的位置,并给出物体的类别。目前,基于深度学习的物体检测算法大致分为两类:一步法检测器和二步法检测器。

    一步法检测器在原图上铺设一系列锚点框,利用一个全卷积网络,对这些锚点框进行一次分类和一次回归,得到检测结果。而二步法检测器在原图上铺设一系列锚点框,先利用一个全卷积网络对这些锚点框进行第一次分类和第一次回归,得到候选区域,抠出每一个候选区域的特征后,再利用一个网络对候选区域进行第二次分类和第二次回归,得到最终的检测结果。

    相对于一步法检测器,二步法检测器多了额外的第二步,若在相同的条件下,如输入、锚点框、机器等,一步法一般胜在高效率,而二步法有更高的精度,现在各个检测库上排名靠前的算法,基本都是二步法。代表性的二步法检测器有Faster R-CNN[1]、R-FCN[2]、FPN[3]、Cascade R-CNN[4],其中Faster R-CNN是奠基性工作,基本所有的二步法检测算法,都是在它的基础上改进的。一步法检测器则有YOLO[5]、SSD[6]、RetinaNet[7]、CornerNet[8],其中SSD是一步法检测器的集大成者,后续大部分的一步法工作都是基于它的。图1 一步法和二步法检测流程的对比

    二步法相对于一步法,多了后面的进一步分类和回归,这一步一般比较耗时但能显著提升精度,原因是它让二步法相对于一步法有了以下三个优势:

    二阶段的分类:二步法中的第一步分类时,正负样本是极不平衡的,导致分类器训练困难,这也是一步法效果不如二步法的原因之一。而第二步分类时,第一步会帮第二步滤掉很多简单负样本,使得第二步分类中时正负样本比例比较平衡,即二步法可以很大程度地缓和正负样本极不平衡的问题。
    二阶段的回归:二步法中的第一步对锚点框进行校正,然后把校正后得到的候选框送给第二步做进一步的校正。
    二阶段的特征:在二步法中,第一步和第二步法除了共享的特征外,都有自己独有的特征,专注于自身不同难度的任务,如第一步的特征专注于二分类和初步回归,第二步的特征处理多分类和精确回归。

    为了能让一步法也具备二步法的这些优势以提升检测精度,同时能够保持原有的检测速度,作者提出了RefineDet这一通用物体检测算法。能够让一步法具备二阶段特征、二阶段分类、二阶段回归,从而在保持一步法速度前提下,获得二步法的精度。

    2.方法图2 RefineDet算法的网络架构示意图

    上图是RefineDet的检测框架示意图,由ARM(Anchor Refinement Module)和ODM(Object Detection Module) 模块组成,它俩由TCB(Transfer Connection Block)连接。ARM专注于二分类,为后续ODM滤掉大量的简单负样本,同时进行初级的边框校正,为后续ODM提供更好的回归起点。ODM把ARM优化过的锚点框作为输入,专注于多分类和精准的边框校正。其中ODM没有使用耗时的逐区域操作,而是直接通过TCB转换ARM特征、融合高层特征,以得到感受野丰富、细节充足、内容抽象的特征,用于进一步的分类和回归,使得一步法检测器RefineDet具备了二步法的二阶段分类、二阶段回归、二阶段特征这3个优势。

    3.实验
    表1 检测精度 vs. 检测速度

    表1总结了著名检测算法的速度以及精度。RefineDet在保持一步法速度的同时,能够达到甚至超过二步法的精度。跟SSD相比,RefineDet算法框架多了下面一部分卷积层和反卷积层,速度还比SSD快一些原因是:

    使用较少的anchor,如512尺度下,RefineDet共有1.6W个框,而SSD有2.5W个框。RefineDet使用较少anchor也能达到高精度的原因是二阶段回归,虽然总共预设了4个尺度(32,64,128,256)和3个比例(0.5,1,2),但是经过第一阶段的回归后,预设的anchor被极大丰富,因此用于第二阶段回归的anchor,具备丰富的尺度和比例。
    使用较少的检测层:RefineDet在基础网络上新加了很少的卷积层,并只选了4个卷积层作为检测层。
    表2 RefineDet在各个数据库上的检测精度

    表2是RefineDet算法在VOC2007,VOC2012,COCO上详细的结果。由于显存的限制,只训了输入为320和512的两个模型。从这些结果中,有以下几点结论:

    输入尺度与精度高度正相关:训练和测试的输入越大,小物体越少,精度就会越高。
    BN的问题:显存的限制会导致每张GPU显卡上图片数量不足,使得BN信息统计不稳定,从而影响检测精度,可以使用同步BN或GN来解决,以训更大尺度的模型。
    多尺度测试很重要:由于RefineDet最大输入只有512x512,而二步法检测器有着较大的输入如1000x600或800x800。为了公平比较而使用了多尺度测试方法,以降低尺度不同的影响。

    4.扩展

    提出RefineDet算法后,作者在更加贴近实际应用的人脸检测任务上对其进行了扩展验证。目前人脸检测领域难度最大数据集是WIDER FACE,它总共有32203张图像,393703个人脸标注,包含尺度,姿态,遮挡,表情,化妆,光照等难点。WIDER FACE每张图像的人脸数据偏多,平均每张图12.2人脸,密集小人脸非常多,同时根据EdgeBox的检测率情况划分为三个难度等级:Easy, Medium, Hard。
    图3 人脸检测算法

    SRNRefineDet在处理人脸检测这一特殊任务时,并不是在所有的检测层上做二阶段分类和二阶段回归都有提升。二阶段分类用于较浅的3个检测层上有效果,原因是98.5%的锚点框关联于较浅的3个层,这些层存在正负样本不平衡的问题,二阶段分类得以发挥作用。此外,二阶段回归用于较深的3个检测层上有效果,原因是强行让较浅层利用二阶段回归去得到更准的小人脸位置,会影响更重要的分类任务,而较深的3个层则不存在这种问题,适合做二阶段回归来提升大中尺度的人脸位置。

     

    图4 人脸检测算法ISRN

    此外,目前的检测器都需要加载预训练模型,这大大限制了网络的灵活性,使得不能够对网络进行任何微小的改动。作者成功地验证了不需要预训练模型也能够成功地训出检测器后,对网络进行了改进以提升小物体的检测性能。常用的ResNet网络对小物体不大友好,因为它第一个卷积层就有一个下采样操作,紧接着的第二个池化层也有一个下采样操作,这会导致小物体的信息基本丢失。为了解决这一问题,作者对ResNet网络进行了相应的改进,以对小物体更友好,并基于RefineDet成功地从零训了一个人脸检测器,在WIDER FACE数据集上达到了较高的检测精度。

    参考文献下载链接:
    https://pan.baidu.com/s/1-Y-V-y5ArfJT8_JJZLsjyA
    提取码:
    mzsn

    展开全文
  • 基于OpenCv的运动物体检测算法

    千次阅读 2015-01-24 16:14:11
    基于一个实现的基于OpenCv的运动物体检测算法,可以用于检测行人或者其他运动物体。 #include #include #include #include int main( int argc, char** argv ) { //声明IplImage指针 IplImage* ...

    基于一个实现的基于OpenCv的运动物体检测算法,可以用于检测行人或者其他运动物体。


     #include <stdio.h>  
     #include <cv.h>  
     #include <cxcore.h>  
     #include <highgui.h>  
     int main( int argc, char** argv )  
    {  
       //声明IplImage指针  
       IplImage* pFrame = NULL;  
      IplImage* pFrImg = NULL;  
      IplImage* pBkImg = NULL;  
      CvMat* pFrameMat = NULL;  
       CvMat* pFrMat = NULL;  
      CvMat* pBkMat = NULL;  
       
       CvCapture* pCapture = NULL;  
        
       int nFrmNum = 0;  
       //创建窗口   
      cvNamedWindow("video", 1);  
      cvNamedWindow("background",1);  
      cvNamedWindow("foreground",1);  
       //使窗口有序排列  
      cvMoveWindow("video", 30, 0);  
      cvMoveWindow("background", 360, 0);  
       cvMoveWindow("foreground", 690, 0);  
       argc = 1;
       
       if( argc > 2 )  
         {  
           fprintf(stderr, "Usage: bkgrd [video_file_name]\n");  
           return -1;  
         }  
       //打开摄像头  
       if (argc ==1)  
         if( !(pCapture = cvCaptureFromCAM(-1)))  
           {  
         fprintf(stderr, "Can not open camera.\n");  
         return -2;  
           }  
       //打开视频文件  
       if(argc == 2)  
         if( !(pCapture = cvCaptureFromFile(argv[1])))  
           {  
         fprintf(stderr, "Can not open video file %s\n", argv[1]);  
         return -2;  
           }  
        
       //逐帧读取视频  
       while(pFrame = cvQueryFrame( pCapture ))  
         {  
           nFrmNum++;  
            
           //如果是第一帧,需要申请内存,并初始化  
           if(nFrmNum == 1)  
         {  
           pBkImg = cvCreateImage(cvSize(pFrame->width, pFrame->height),  IPL_DEPTH_8U,1);  
           pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height),  IPL_DEPTH_8U,1);  
           pBkMat    = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);  
           pFrMat    = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);  
           pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);  
           //转化成单通道图像再处理  
           cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);  
           cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);  
           cvConvert(pFrImg, pFrameMat);  
           cvConvert(pFrImg, pFrMat);  
           cvConvert(pFrImg, pBkMat);  
         }  
           else  
         {  
           cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);  
           cvConvert(pFrImg, pFrameMat);  
           //先高斯滤波,以平滑图像  
           //cvSmooth(pFrameMat, pFrameMat, CV_GAUSSIAN, 3, 0, 0);  
            
           //当前帧跟背景图相减  
           cvAbsDiff(pFrameMat, pBkMat, pFrMat);  
           //二值化前景图  
           cvThreshold(pFrMat, pFrImg, 60, 255.0, CV_THRESH_BINARY);  
           //进行形态学滤波,去掉噪音   
           //cvErode(pFrImg, pFrImg, 0, 1);  
           //cvDilate(pFrImg, pFrImg, 0, 1);  
           //更新背景  
           cvRunningAvg(pFrameMat, pBkMat, 0.003, 0);  
           //将背景转化为图像格式,用以显示  
           cvConvert(pBkMat, pBkImg);  
           //显示图像  
           cvShowImage("video", pFrame);  
           cvShowImage("background", pBkImg);  
           cvShowImage("foreground", pFrImg);  
           //如果有按键事件,则跳出循环  
           //此等待也为cvShowImage函数提供时间完成显示   
           //等待时间可以根据CPU速度调整  
           if( cvWaitKey(2) >= 0 )  
             break;  
       
         }  
         }  
          
       //销毁窗口  
       cvDestroyWindow("video");  
       cvDestroyWindow("background");  
       cvDestroyWindow("foreground");  
       //释放图像和矩阵  
       cvReleaseImage(&pFrImg);  
       cvReleaseImage(&pBkImg);  
       cvReleaseMat(&pFrameMat);  
       cvReleaseMat(&pFrMat);  
       cvReleaseMat(&pBkMat);  
       cvReleaseCapture(&pCapture);  
       return 0;  
     }


    展开全文
  • 人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。由中国科学院大学主办,中国科学院大学学生会承办,读芯术作为指定...中科院张士峰博士为大家带来报告《基于深度学习的通用物体检测算法对比探索》。...

    https://www.toutiao.com/a6674792954369933838/

     

    人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。由中国科学院大学主办,中国科学院大学学生会承办,读芯术作为指定合作自媒体的“AI未来说·青年学术论坛”第三期“计算机视觉”专场已于2019年3月24日下午在中科院举行。中科院张士峰博士为大家带来报告《基于深度学习的通用物体检测算法对比探索》。

    张士峰,中科院自动化所2015级直博,导师李子青研究员,研究方向为基于深度学习的物体检测,主要包括通用物体检测、人脸检测、行人检测。目前已发表论文14篇,其中第一作者论文11篇,包括3篇CVPR、IJCV、ICCV、ECCV、IJCAI、AAAI等。在投论文7篇,在审专利4项,获CCF-CV学术新锐奖、百度奖学金、国家奖学金、唐立新奖学金、必和必拓奖学金、攀登一等奖学金、三好学生、国际人脸检测竞赛季军、最佳学生论文等荣誉。

    报告内容:目前基于深度学习的通用物体检测算法大致可以分为两类:一步法检测器和二步法检测器。一步法检测器有较高的检测速度,但检测精度不如二步法检测器。而二步法检测有较高的检测精度,但检测效率不如一步法检测器。为了使得一步法检测器获得二步法检测器的检测精度,同时保持较高的检测效率,我们对一步法和二步法检测器进行了一系列探索,提出了RefineDet、SRN、ISRN等系列算法。此次分享将概括地介绍通用物体检测算法,以及我们自己一系列相关的工作。

    中科院张士峰:基于深度学习的通用物体检测算法对比探索

     

    基于深度学习的通用物体检测算法对比探索

    中科院张士峰:基于深度学习的通用物体检测算法对比探索

     

     

    中国科学院自动化研究所张士峰博士报告的主要内容包括物体检测的介绍、一二步法的对比探索和检测发展的讨论展望。

    张士峰博士首先介绍了物体检测的定义,简单来说就是判断给定的一幅图像上是否存在感兴趣的物体,如果存在,就给出所有感兴趣物体的类别(What)和位置(Where)。紧接着讲到了物体检测的应用,如人脸检测,交通标志检测,车辆检测,车牌检测,行人检测,交通信号检测和行车道检测等。

    然后以Faster-RCNN为例讲了物体检测的基本流程,主要包含两个阶段。

    第一阶段包括:

    1)预设一系列不同大小和比例的anchors。

    2)整张图传入CNN提取特征。

    3)RPN对anchors进行分类和回归,得到候选区域(proposals)。

    第二阶段包括:

    1)利用ROIPooling抠取每个候选区域的特征。

    2)把抠取的特征送入到后续R-CNN网络。

    3)对候选区域进行进一步分类和回归,得到最终的检测结果。

    中科院张士峰:基于深度学习的通用物体检测算法对比探索

     

     

    后面又讲到了物体检测的分类,一般可以分为两类,即一步法检测器和二步法检测器。一步法检测器,即为在原图上铺设一系列锚点框(anchor),利用一个全卷积网络,对这些锚点框进行一次分类和一次回归,得到检测结果。二步法检测器,即为在原图上铺设一系列锚点框(anchor),利用一个网络对这些锚点框进行两次分类和两次回归,得到检测结果。二步法检测器比一步法检测器多了一个步骤,在相同的条件下(相同的输入、anchor设置和实验环境),一步法胜在效率,而二步法的精度要更高一些。二步法检测器的典型算法包括 Faster-RCNN、R-FCN、FPN、SNIP和Cascade R-CNN,其中以Faster-RCNN最具代表性。一步法检测器的典型算法包括 YOLO、SSD、CornerNet 和RetinalNet,其中以SSD最具代表性。

    之后总结了二步法检测器相对于一步法检测器的优势,即二阶段的分类、二阶段的回归和二阶段的特征。并讲到了为让一步法检测器具有二步法检测器的优势所进行的研究探索,即RefineDet。RefineDet的检测框架包括两个模块,即Anchor Refinement Module (ARM) 和ObjectDetection Module(ODM)模块。两个模块由TransferConnection Block (TCB) 连接。其中ARM模块的作用是过滤负样本和初步的边框校正,ODM模块的作用是基于ARM矫正过的锚点框,并利用更好的特征(感受野丰富,细节丰富,内容抽象)进行精细的分类和进一步的回归。后面又介绍了RefineDet的演变过程。

    最后张士峰博士对物体检测的未来进行了展望,即更快的速度(满足嵌入式的需求)、更高的精度(解决特定的错误,如小尺度、遮挡)、多任务联合的 Multi-task(检测+属性、关键点、分割)、视频物体检测(利用帧间信息加速和提升精度)和 Learning Everything(学习anchor和NMS)。更多精彩的内容请观看视频的内容。

    展开全文
  • 总结各种物体检测算法

    万次阅读 2018-04-19 20:59:43
    第一,覆盖所有基于区域的目标检测算法,包括:Fast RCNN, Faster-RCNN, Mask RCNN, R-FCN, FPN.第二, 介绍SSD算法(single shoot detectors)第三,介绍所有算法的表现和实现细节。Part1 我们从基于区域的物体检测...
  • 物体检测一向是比较热门的研究方向,它经历了传统的人工设计特征+浅层分类器的框架,到基于大数据和深度神经网络的End-To-End的物体检测框架的发展,然而许多人其实并未系统的了解过物体检测算法的整个发展内容。...
  • 物体检测算法的历史发展脉络综述

    千次阅读 2019-05-14 16:50:05
    物体检测(或目标检测),是计算机视觉领域非常重要的应用,是许多项目的基础。在计算机视觉识别领域,主要有分类和检测两大主要任务,分类只需要把当前物体归属到特定类别,而检测除了需要分类外,还需要检测出物体...
  • 物体检测算法SSD简述

    千次阅读 2018-03-08 14:56:18
    其实SSD的论文是在YOLOv2之前看的,但由于那时本人初识机器学习,还不了解...论文原文中提到,作者提出的SSD算法比之前的YOLO算法更快、更精确,精确度可以媲美之前的Faster R-CNN。为了理解方便,本文将原论文中...
  • 1.研究问题: 物体分类:
  •  4、假设训练的模型为60:15, 检测窗口最小尺度(m1)为60:15,最大尺度(m2)为240 :60,则从m1开始到m2进行检测和从m2开始到m1进行检测,效果是一样的。    暂时到这里,后续如果有心得会继续补充。 ...
  • Frequency-tuned Salient Region Detection:一种快速显著物体检测算法 原论文名称: Frequency-tuned Salient Region Detection 原作者:Radhakrishna Achantay, Sheila Hemamiz, Francisco Estraday, and ...
  • 图像物体分类与检测算法综述

    万次阅读 多人点赞 2017-04-01 13:41:49
    图像物体分类与检测算法综述 转自《计算机学报》 图像物体分类与检测是计算机视觉研究中的两个重要的基本问题,也是图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。 本文从物体分类与检测问题的基本定义...
  • 物体检测SURF算法matlab实现

    千次阅读 2016-04-22 23:46:54
    注:此次实现中用到的函数需要在matlab2013后的版本才能正常运行,故顺手附上matlab2014b下载地址: http://download.csdn.net/detail/lrrent/9499859close all; clear all; clc; boxImage = imread('2_2.jpg');...
  • 深度学习 | 物体检测

    千次阅读 2019-06-30 09:03:35
    • 介绍基于深度学习方法的物体检测算法 • 分析典型算法 • 回顾前面提及的深度学习方法的特点 • 介绍物体检测算法的评测过程 • 效果 • 深入了解计算机视觉发展历史 • 加深对深度学习特点的记忆和理解 • 掌握...
  • 华为云-物体检测YOLO V3算法实践-使用ModelArts预置算法介绍说明前言实践步骤第一步:准备数据第二步:创建训练任务第三步:查看训练情况第四步:导入模型第五步:部署服务 介绍 说明 本文是根据作者实践经历编写而...
  • 物体检测之选择性搜索Selective Search0 概述1 物体检测和物体识别1.1 滑窗法1.2 候选区域(Region ...本文牵涉的概念是候选区域(Region Proposal ),用于物体检测算法的输入。无论是机器学习算法还是深度学习...
  • 复杂背景下多类物体实时检测算法

    千次阅读 2012-12-29 11:05:26
    通过离线收集海量图片和视频样本,人为标定...在复杂背景下,本算法可为后续的复杂分割识别任务提供精确的目标物体,从而节约资源、提高效率。 优势: 可同时检测多类物体,如人脸、人体、车体、车牌、车标、交通
  • 【摘要】 YOLO作为一个one-stage目标检测算法,在速度和准确度上都有杰出的表现。而YOLO v3是YOLO的第3个版本(即YOLO、YOLO 9000...在ModelArts 实战营第四期中,我们学习使用了YOLO V3算法进行的物体检测训练和推...
  • 3D物体检测(一)

    千次阅读 2020-02-24 12:36:11
    总结一下在bilibili上看到的基于点云场景的三维物体检测算法及应用,有兴趣的也可以去看看这个视频。 这一部分主要总结一下,结合雷达点云数据和相机采集的二维图像数据的方法。 主要包括: MV3D-Net、F-PointNet MV3...
  • 三维物体AABB碰撞检测算法

    万次阅读 2014-12-13 16:42:08
     也就是说在二维场景的碰撞检测中,每个物体的顶点坐标信息都可以由两个坐标来确定,即两个坐标就可以标识一个物体了,所以两个物体的碰撞检测只需要获得到四个点坐标就可以了。  之前在图1-2中已经看到...
  • yolov3算法检测单类物体

    万次阅读 多人点赞 2018-08-29 19:05:18
    yolov3是目前目标检测类检测效果和检测速度最好的算法,原版的yolov3检测的物体种类众多,本文实在原有yolov3上将多累物体检测简化为单类物体检测,本文的原始代码基于github上copy的,源码下载地址为:...
  • 刚刚结束的ICCV 2017期间,旷视科技(Face++)在竞争激烈的MS COCO大赛中,击败谷歌、微软、Facebook等国际巨头,夺得物体检测、人体关键点检测和Places物体分割三项核心竞赛冠军。 MS COCO Challenge是计算机...
  • % This function initializes a constant velocity filter based on a detection. function filter = initSimDemoFilter(detection) % Use a 2-D constant velocity model to initialize a trackingKF filter. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,082
精华内容 23,632
关键字:

物体检测算法