先写个简略版的笔记..看之后的情况要不要读得更精细一点..
背景
two stage的检测比one stage的检测效果好,原因是啥?
作者认为是正负样本不平衡导致的. two stage的方法在proposal 的时候干掉了大部分负样本,所以效果好.
阅读更多问题描述
一年debug 三次faster rcnn,每次都有新感觉(不
接到一个bug report,现象为某人脸模型,转换成trt模型,当batch size为1时结果完全正确,但是batch size大于1时结果不正确。 具体的现象是,如果跑多张不同的图,只有第一张图有结果,后面的图都没有结果。 如果跑的图中有相同的,那么和第一张相同的图都会有结果,其余的图没有结果。
阅读更多检测不同尺度的物体一直是计算机视觉领域中比较有挑战性的事情.我们先从之前的工作出发,并对比FPN比起之前的工作有哪些改进.
之前的工作
Featurized image pyramid
思路是对于同一张图,生成不同的scale,然后每个scale的image单独去做检测. 这个方法是手工设计feautre时代的常用办法. 这个办法是比较显然的,也的确可以解决检测不同尺度物体的问题. 缺点非常明显...inference的速度几乎和scale的个数线性相关. 以及由于显存的开销,没办法做end-to-end 的training.
阅读更多概述
SSD是一种单阶段目标检测算法.所谓单阶段,是指只使用了一个deep neural network,而不是像faster-rcnn这种两阶段网络. 为什么有了faster-rcnn还要使用SSD? 最主要是慢... 两阶段网络虽然准确率高,但是在嵌入式等算力不足的设备上做inference速度非常感人,很难达到real time的要求. (实际业务上也是这样,公有云上的检测模型几乎都是faster-rcnn,而到了一些盒子之类的硬件设备,检测模型就全是SSD等single stage 模型了)
阅读更多年中的时候接了离职的同事模型转换的锅,在不断地更新迭代的过程中,发现了一些痛点。 发现k8s能够解决一部分痛点,因此来分享一下在这方面的探索。
什么是模型转换
简单来说,深度学习模型的流程分为training和inference两部分。训练时用的一般是pytorch等框架,这些框架训练出的model是没办法直接部署在各个硬件平台上做inference的。因此需要将使用训练框架得到的模型,转换为能够部署到各个硬件平台上的模型。这个过程就是模型转换。
阅读更多最近有同事report给我们,用同一个模型转换工具,转同一个faster rcnn 模型, 同样的sdk代码,在有些显卡上结果正常,但是再比较新的显卡上(比如Titan V)上 结果完全不正确.
阅读更多动机
将一张图分成多个grid cell进行检测之后,每个cell只能检测到一个object. 如果这个grid cell中不止有一个物体要怎么办呢? 因此提出了anchor box algorithm来解决这个问题.
阅读更多对象检测(Object Detection)的目的是”识别对象并给出其在图中的确切位置”,其内容可解构为三部分:
- 识别某个对象(Classification);
- 给出对象在图中的位置(Localization);
- 识别图中所有的目标及其位置(Detection)。
本文将介绍滑动窗口这一方法.
阅读更多记录一些一个没有之前没有接触过caffe/caffe2的人为了添加自定义的op 到caffe2需要做的工作.
首先参考caffe2 tutorial,随便跑个op来试试,不妨以比较简单的 Accumulate_op 为例子.
阅读更多NMS是为了在诸多CV任务如边缘检测,目标检测等,找到局部最大值
其主要思想是先设定一个阈值,然后计算检测框的IOU(所谓IOU,也就是intersection-over-union,指的是相交面积除以相并面积,是来衡量overlap程度的指数)。如果IOU大于阈值,说明overlap过大,我们要通过某种算法来将其剔除。
阅读更多