精华内容
下载资源
问答
  • 3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标检测上,不少学术界提出的框架已经投入商用。但是,...

    3D目标检测论文阅读多角度解析

    一.前言

    CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标检测上,不少学术界提出的框架已经投入商用。但是,具体落实到自动驾驶,机器人这类应用场景上时,2D场景下的目标检测对于3D真是世界的场景描述依然不够。

    目标检测问题实际上包含了两个任务:定位和分类。3D目标检测在定位这一任务上的目标是返回3D bounding boxes,而其需要的信息除了2D的RGB图像以外,还包含了与之对应的深度信息Depth Map:

    RGB-D=普通的RGB三通道彩色图像+DepthMap

    在3D计算机图像中,Depth Map(深度图)是包含与试点的场景对象的表面的距离有关的信息的图像或图像通道。其中,Depth Map类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离。通常RGB图像和Depth图像是配准的,因而像素点之间具有一对一的对应关系。本文以时间为主轴,带你速览自2014年依赖的,在RGB-D图像上进行目标检测的典型论文。

    有一些图像分割的背景知识也很有意思,简单列下, 概述下来,主要是五大任务, 六大数据集, 七大牛人组,一个效果评估。

    二.基于深度学习的图像目标检测历史介绍

    五大图像处理任务

    1. 图像分类

    在这里插入图片描述

    1. 分类和定位

    在这里插入图片描述

    1. 目标物体检测

    在这里插入图片描述

    1. 语义分割

    一下子从框的世界进入了像素点的世界。

    在这里插入图片描述

    1. 实例分割

    在这里插入图片描述

    六大图像数据库

    在这里插入图片描述

    1. PASCAL
      Visual Object Classes (VOC) 挑战

    人、车、自行车、公交车、飞机、羊、牛、桌等20大类
    在这里插入图片描述

    1. MS
      COCO: Microsoft Common Object in Context

    80大类, 多目标

    在这里插入图片描述

    1. ImageNet
      Object Detection: ILSVRC DET 任务

    200类别,578,482 图片

    在这里插入图片描述

    1. Oxford-IIIT
      Pet Dataset

    37 类别,每个类别 200 图片

    1. Cityscapes
      Dataset

    30 类别,25,000 + 真实开车场景图片

    在这里插入图片描述

    1. ADE20K
      Dataset

    150+ 类别,22,000 + 普通场景图片

    在这里插入图片描述

    七大牛人组

    1. Navneet
      Dalal 和
      Bill Triggs (INRIA)

    两人提出了Histogram of Gradient (HOG) 获得2015年的
    Longuet-Higgins Prize大奖
    在这里插入图片描述

    1. Pedro
      Felipe Felzenszwalb

    和学生Ross Girshick一起发明了DPM,深化了HOG.

    在这里插入图片描述

    1. Ross Girshick

    Felzenszwalb的高徒, RBG大神、发明了R-CNN、Mask R-CNN。 Ross目前在Facebook人工智能研究院 FAIR。
    在这里插入图片描述

    1. Koen
      van de Sande

    提出Selective Search的大神。

    在这里插入图片描述

    1. Jitendra
      Malik

    去噪模型Perona-Malik扩散和聚类分割里面的归一化分割Normalized Cut的发明人, RBG大神的博士后导师,鼓励RBG引入CNN做目标检测, R-CNN发明人之一。

    在这里插入图片描述

    1. Pietro
      Perona去噪模型Perona-Malik扩散的发明人,
      李飞飞的博士导师, 2013获得Longuet-Higgins Prize。
      和高徒Piotr Dollar一起提出Fast Feature
      Pyramids的神器。他的另外一个高徒Stefano Soatto搞出了 Structure From Motion SFM,视觉运动信息的多幅二维图像序列估计三维结构的技术。 他弟子Piotr Dollar目前在FAIR。
      在这里插入图片描述

    2. 何凯明 ResNet,SPP, Mask-CNN发明人,目前在FAIR。

    在这里插入图片描述

    一个效果评估mAP(mean average precision)

    借用了文档检索里面的标准,
    假设目标物体的预测在所有的图像中都进行预测, 在每个图像上计算准确和召回。 但是最后计算每个目标物体的AP的时候,
    仅仅选用相关的图像,进行平均average, 最后计算mAP的时候再求平均mean。 是一个奇怪的名字,却是一个蛮直观的评价!

    在这里插入图片描述

    R-CNN系列

    R-CNN的横空出世, 随后经过一系列改进, 走到了Mask R-CNN和Mask^X R-CNN的神奇境界。

    在这里插入图片描述

    CNN结构上从AlexNet过渡到ResNet, 中间也受到Overfeat和SPPNet的影响深远!

    1, R-CNN的前世

    2013年之前, 基本由RBG和他导师的DPM主导, 当然离不开SS和SVM的应用,和后续Box
    Regression的修正。

    在这里插入图片描述

    1).
    Histogram of Gradient (HOG) 特征

    8x8像素框内计算方向梯度直方图

    在这里插入图片描述

    2).
    HOG Pyramid

    特征金字塔,对于不同大小的物体进行适应。
    在这里插入图片描述

    3).
    HOG特征 -> SVM分类
    在这里插入图片描述

    4).
    DPM模型 Deformable Part Model

    加组件组合的HOG特征, 组件间计算弹性得分,优化可变形参数。

    在这里插入图片描述

    如果没有弹性距离,就是BoW (Bag of Word)模型, 问题很大, 位置全部丢失:

    在这里插入图片描述

    n个组件的DPM计算流程
    在这里插入图片描述

    5).
    Selective Search 思想

    首先, 过分割后基于颜色纹理等相似度合并,
    在这里插入图片描述
    在这里插入图片描述

    然后,过分割、分层合并、建议区域排序

    6).
    基于Selective Search + DPM/HoG + SVM的物体识别

    在这里插入图片描述

    7).
    AlexNet的图像分类

    2012年AlexNet赢得LSVRC的ImageNet分类竞赛。深度CNN结构用来图像特征提取。

    在这里插入图片描述

    8)bounding-box
    regression 框回归

    BBR 在DPM时代就和SVM分类结合,一般直接使用线性回归,或者和SVR结合。

    在这里插入图片描述

    2, R-CNN的出世

    这个工作是RBG在Malik那里读博士后的产出。
    这个工作的影响巨大!

    2.1 R-CNN的本质, 用深度CNN网络取代了HoG/DPM的特征提取!

    在这里插入图片描述

    2.2 R-CNN依赖分类预训练的特征

    在这里插入图片描述

    2.3 通过bounding-box regression改进效果,对于SS推荐的, 经过SVM分类的结果进行修正。
    在这里插入图片描述

    这样,我们就得到了最后RNN的框架,我们看到区域推荐、SVM和Bound Box Regression都是成熟的技术的整合:

    在这里插入图片描述

    R-CNN优点:

    1. 效果比DPM方法大幅度提高

    2. 开启了CNN网络的目标检测应用

    3. 引入了BBR和分类结合的思想

    4. 定义了RoI, 基于推荐区域的思想

    R-CNN问题:

    不是端到端的模型,依赖SS和SVM!

    计算速度相当慢!

    对于过大过小的东西,效果很不好。

    譬如,对于长凳, 或者眼镜等等。

    在这里插入图片描述

    3,MR-CNN的改进

    Multi-Region的提出, 开始对Box进一步做文章, 相当于对Box进一步做增强,希望改进增强后的效果,主要改善了部分重叠交叉的情况。
    在这里插入图片描述

    但是特征拼接后使得空间变大,再使用SVM处理, 效果和R-CNN基本类似。
    在这里插入图片描述

    MR-CNN改进有限!

    4, Overfeat的改进

    LeCun的Overfeat是个端到端的模型,直接抛弃了SVM,并且把BBR整合一起使用FCN(Fully-Connected
    Net)搞定, 解决了后面一端的问题(取代了SVM和BBR)。

    在这里插入图片描述

    另外, 也直接抛弃了SS,采用CNN上滑动窗口来进行框推荐,搞定前面一端。

    在这里插入图片描述

    然后直接根据滑动窗口的不准确的判断, 进行Box 回归(BR)来进行准确定位。

    在这里插入图片描述

    并且在计算上做了三大优化: 第一, 先进行CNN再滑动窗口, 而不是先滑动窗口再进行CNN计算。 把窗口滑动放到CNN之后进行。 避免重复的特征计算。
    在这里插入图片描述

    第二, 多类别并行计算框架, 进一步减少CNN特征计算因为没有找到特定类别而浪费。
    在这里插入图片描述

    第三, 把FCN直接用CNN网络取代, 计算量大大减少。怎么做到的呢?
    结合上面两点, 利用每个类别实现一个0-1的CNN网络, 然后所有类别并行处理。

    在这里插入图片描述

    还做了一大改进, 考虑了多尺度衍生:

    在这里插入图片描述

    Overfeat优点:

    1). 端到端的模型

    2). 回归和分类结合的计算模型

    3). 首次将区域计算后移, 极大节省计算量, 优化速度

    4). 有多尺度考量,试图优化极大极小目标问题

    Overfeat问题:

    1). 取消区域推荐, 依赖窗口滑动和BR效果后的推荐效果一般。

    2). 定位准确, 但是对于重叠目标物体的情况,效果很差。

    在这里插入图片描述

    5, SPPNet的改进

    这个工作是何凯明在孙剑指导下, 微软的工作。 后来孙剑去了旷视科技, 而何凯明去了Facebook人工智能实验室FAIR。 前面, 我们提到R-CNN和Overfeat都存在部分多尺度,重叠效果的问题。 某种意义上, 应对了HoG特征, 这样对于物体来说类似BoW模型, 我们知道DPM里面,是带有组件空间分布的弹性得分的, 另外也有HoG
    Pyramid的思想。 如何把Pyramid思想和空间限制得分加入改善多尺度和重叠的效果呢? MR-CNN里面尝试了区域增强, Overfeat里面尝试了多尺度输入。 但是效果都一般。 这里我们介绍另外一个技术Spatial Pyramid
    Matching, SPM。把空间和Pyramid结合的思想。

    1). SPM

    把BoW修改金字塔Pyramid方式进行空间限制,做特征提取。

    在这里插入图片描述

    2). SPM用在CNN特征之后,R-CNN里面 SVM分类之前。

    在这里插入图片描述
    在这里插入图片描述

    3). 基于CNN的Pooling技术来实现SPM, 通过不同尺度的Pooling技术很容易就实现了CNN特征的SPM特征。

    4). 先特征后区域的处理, 某种意义上取代了多尺度输入,或者特征增强。
    在这里插入图片描述

    和R-CNN相比做到了先特征后区域, 和Overfeat相比自带Multi-Scale。

    在这里插入图片描述

    于是SPPNet(Spatial Pyramid
    Pooling Net)很空出世!

    在这里插入图片描述

    SPPNet优点:

    1). 提取SPP的概念, 把CNN的Pooling用的出神入化, 取代了HoG Pyramid的改进。 对于大小尺度的物体识别有改进。

    2). 进一步强调了CNN特征计算前移, 区域处理后移的思想, 极大节省计算量。

    SPPNet缺点:

    1. 依然不是端到端的模型

    2. 过于注重CNN特征的分离, CNN特征提取没有联动调参数!

    在这里插入图片描述

    Fast R-CNN的改进

    RBG从后来去了微软,在微软了解了何凯明的SPPNet工作。 所以Fast
    R-CNN 基本和SPPNet类似, 但是进一步联动改进!全部打通区域推荐之后到目标识别后一端!而且效果较好!

    在这里插入图片描述

    基于SPPNet, Fast R-CNN做了两大改进:

    1), 简化SPP成为RoI Pooling, 只用了最细分的SPPNet。 把RoI区域变成了RoI Pooling, 这就是RoI Pooling的思想的来源。 Pyramid上层更粗的特征, 可以依赖FCN进行整合学习。

    在这里插入图片描述

    2), CNN特征网络联动调参数!

    在这里插入图片描述

    这样, Softmax分类误差和线性回归误差叠加的误差, 可以反传通过FCN, ROI Pooling和ConvNet层。

    Fast R-CNN优点:

    1). 吸收了SPPNet和R-CNN的精华,极大的打通并且改进了从区域推荐到目标检测一端。

    2). RoI Pooling技术横空出世, 极大的发挥了区域计算后移的优势, 加快了训练速度。

    3). Log 损失和Smooth L1的损失下的FCN、RoI Pooling、ConvNet三层联动调参数成熟, 并且带来效果上的提升。

    4). 并且应用VGG16,取代AlexNet作为CNN网络模型

    在这里插入图片描述

    Fast R-CNN缺点:

    依然没有实现端到端的模型,对SS区域推荐依赖严重。

    在这里插入图片描述

    Faster R-CNN的改进

    SPPNet和Fast R-CNN都面临着并非端到端模型的困惑, 那么RBG、何凯明和孙剑,
    微软的3位牛人合作开启了端到端模型的开发。

    提出RPN(Region Proposal Net)取代了SS区域推荐。 RPN有点类似Overfeat的ConvNet的滑动窗口, 但是加入了Anchor Box的设计。

    在Overfeat的ConvNet上的滑动窗口,
    加上Multi-Scale的图像输入设计, 编程了带Anchor Box推荐的区域Pyramid。 这种机制, 某种意义上是带了先验的Attention机制。

    这样 RPN的Anchor和Pyramid和定位都可以是参数学习, 例如:9 anchors x 2 scores x width x height。
    在这里插入图片描述

    如果在考虑ROI Pooling对推荐区域的修正作为新的RPN,就会带来ROI Pooling的迭代:

    在这里插入图片描述

    所以最初, RPN的损失是单独计算进行参数学习的。

    在这里插入图片描述

    但是后来, RPN的误差也全部整合处理了, 一个端到端的模型诞生,并且具有较好的区域推荐、特征Pyramid,和Box回归的效果保证。

    在这里插入图片描述

    Faster R-CNN优点:

    1). 和Overfeat一样是一个端到端的模型, 但是集成了以前图像处理里面的思想: 区域推荐, 特征Pyramid和Box回归。

    2). 较好的ConvNet特征共享, 效率更高

    3). 提出了RPN网络,并且整合后的效果和Fast R-CNN一样

    Faster R-CNN缺点:

    1). 依然难以做到实时高效

    2). 功能上没有进入实例分割阶段。

    在这里插入图片描述

    结论
    在这里插入图片描述

    我们发现, 单纯的端到端ConvNet模型的Overfeat很难达到较好的效果。
    如何融合图像处理经典思想里面的区域推荐, 特征金字塔, 和框回归,还是非常有必要。 而Faster R-CNN做到了这些。 这个过程中一直伴随着性能的提升, 其中重要一步就是如何让特征计算不要重复,做到一次计算。 如何进一步提高速度,
    和增强功能, 是后续网络的要改进的地方。 例如, 我们发现ConvNet的计算在Faster R-CNN已经达到很高的共享, 但是ROI之后依然有ConvNet的计算, 如何进一步共享这部分计算呢? 请看下期。
    在这里插入图片描述

    1. 论文

    2014年:Learning Rich Features RGB-D Images for
    Object Detection and Segmentation (ECCV’ 14)。

    本文是rbg大神在Berkeley时的作品。“基于CNN已经在图像分类,对象检测,语义分割,细粒度分类表现出了相当的优势,不少工作已经将CNN引入在RGB-D图像上的数额任务上。这些工作中一部分直接采用4-channel的图像来进行予以分割任务(not object detection),一部分只是在非常理想的环境下对小物体进行目标检测。”

    作者的方法实在2D目标检测框架R-CNN的基础上,增加对Depth Map进行利用的module,总体结构如下:

    在这里插入图片描述

    (1)
    基于RGB图像和Depth Map,检测图像中的轮廓,并生成2.5D的proposals(从overview上可以看到,所谓2.5D实际包括目标每个像素的视差,高度,倾斜角)。

    (2)
    利用CNN进行特征提取,这里的网络包括两个:Depth CNN学习深度图上的特征,RGB CNN学习2D图像上的特征,最后,利用SVM进行分类。

    在对Depth Map的利用上,论文所述方法并没有直接利用CNN对其进行学习,而是encode the depth image with
    three channels at each pixel: horizontal disparity(水平视差),height above ground(亮度),and the angle the
    pixel’s local surface normal makes with the inferred gravity direction(相对于重力的倾斜角)。

    2015年:3D Object Proposals for Accurate Object Class
    Detection (NIPS’ 15)。清华的陈晓智的作品(也是CVPR17: Multi-View 3D Object Detection
    Network for Autonomous Driving的论文的第一作者)。

    作者首先指出,目前最先进的RCNN方法在自动驾驶数据集KITI上表现不好,原因之一在于KITI上的测试图像中,包含许多小型物体,遮挡,阴影,是的实际包含了object的proposals被认为是不包含的。此外,KITTI对区域的惊喜程度要求很高(overlap),而目前大多数区域推荐都基于强度和纹理的grouping super
    pixels,它们无法获得高质量的proposals。

    文章面向自动驾驶场景,提出了一种新的object proposal方法。对于每一个3D bounding box(记为y),将其用一个元组来表示(x,y,z,θ,c,t),(x,y,z)表示3D box的中心,θ表示其方位角,c代表object是哪一类,t代表相应的3d
    box模板集合。

    以x代表点云,y代表proposal。作者认为y应该有以下特性:

    包含点云的高密度区域

    不能与free
    space重叠

    点云不应该垂直延伸在3d
    box之外

    Box附近的点云高度应该比它低

    基于这些特性,作者列出了能量方程,目标为最小化E(x,y),采用ICML2004上一篇文章中所述的structured SVM进行训练。

    在这里插入图片描述

    文章中所述方法的效果,代码,数据: 3D Object Proposals for Accurate Object Class Detection。

    文章中所述方法的效果、代码、数据:3D Object Proposals for Accurate Object Class Detection
    在这里插入图片描述

    2016年: Deep Sliding Shapes for Amodel 3D Object
    Detection in RGB-D Images (CVPR’16)。

    文章来自普林斯顿大学,提出的方法为Faster R-CNN的3D版本,侧重于indoor scene下的object detection。

    目前关于3D目标检测任务的方法,有采用2D方法来结合深度图的,也有在3D空间内进行检测的。这不仅让作者发文: which representation is
    better for 3D a model object detection, 2D or 3D?接着指出,目前2D方法表现更优异的原因,可能是因为其CNN模型更为powerful (well designed & pretrained
    with ImageNet),而不是由于其2D表达。

    作者的方法是设计名为Deep Sliding Shapes的3D CNN,输入3D立体场景,输出3D
    bounding boxes,由此,提出了Multi-scale 3D RPN(Region Proposal Network):
    在这里插入图片描述

    Figure 1.3D A model region Proposal Network: Taking a 3D volume
    from depth as input, our fully convolutional 3D network extracts 3D proposals
    at two scales with different receptive fields.

    类似于Faster R-CNN中的RPN网络,对于每一个滑动窗口,作者定义N=19种anchor boxes:

    在这里插入图片描述

    而后,为了检测大小不一的目标,作者增加了多尺度的检测手段。具体来说,在不同的卷积层上进行滑窗。这里的滑窗是3D sliding window,因为整个网络结构就是接收3D input的。为了精修区域,作者改进了box regression,提出3D box regression:一个3D box可以由中心坐标[cx,cy,cz],长宽高[s1,s2,s3] 来表示,最后要得到的是6个偏移量。

    在这里插入图片描述

    采用与2D box regression同样的smooth
    L1 loss即可。

    补充:如何从Depth Map得到3D
    Input?

    Encoding 3D Representation:不同于Depth RCNN的disparity+height+angle表达,作者在这里采用了TSDF方法,可以看如下的引用:

    KinectFusion在世界坐标系中定义了一个立方体,并把该立方体按照一定的分辨率切割成小立方体(voxel)。以图上例所示,图中定义了一个333立方米的立方体,并把立方体分为不同分辨率的小立方体网格。也就是说,这个立方体限制了经过扫描重建的模型体积。然后,KinectFusion使用了一种称为“截断有符号距离函数”(truncated
    signed distance function,简称TSDF)的方法来更新每个小网格中的一个数值,该数值代表了该网格到模型表面的最近距离,也称为TSDF值。对于每个网格,在每一帧都会更新,并记录TSDF的值,然后再通过TSDF值还原出重建模型。例如,通过两幅图中的网格的TSDF数值分布,可很快还原出模型表面的形状和位置。这种方法通常被称为基于体数据的方法(Volumetric-based method)。该方法的核心思想是,通过不断更新并“融合”(fusion)TSDF这种类型的测量值,能够越来越接近所需要的真实值。
    在这里插入图片描述

    2017:Learning Cross-Modal Deep Represnetations for
    Robust Pedestrian Detection (CVPR’ 17)。

    这篇文章虽然是针对于专门的pedestrians detection任务,但是,其做法是很有启发性的,所以,也贴在这里。

    作者指出,“行人检测任务在深度学习的帮助下已经取得重大突破,同时,新型传感器(如thermal
    and depth cameras)也为解决不利照明和遮挡提供了新的机会。但是,现有监控系统绝大多数仍然采用传统的RGB传感器,因此,在illumination variation, shadows,and low external light仍然具有十分挑战。”

    在针对照明条件不利环境下的行人检测任务,文章描述了一种依赖于cross-modify
    learning framework的学习框架,由两个网络组成:
    在这里插入图片描述

    Figure 1. Overview of our framework. Our approach relies on two
    networks. The first network, named Region Reconstruction Network (RRN) is used
    to learn a non-linear feature mapping between RGB and thermal image pairs.
    Then, the learned model is transferred to a target domain where thermal inputs
    are no longer available and a second network, the Multi-Scale Detection Network
    (MDN), is used for learning an RGB-based pedestrian detector.

    (1) Region
    Reconstruction Network (RRN)

    RRN 用于学习在RGB图像和thermal
    image间的映射,而后学习得到的模型就可以用于依据RGB生成thermal
    image。RRN接收RGB+行人proposals,在ROI Pooling后加了重建网络(全卷积)。这里的重建网络不重建整幅图像的thermal image,而是只对行人区域进行重建。

    (2) Multi-Scale
    Detection Network (MSDN)

    MSDN利用RRN学习的cross-modal
    representations来进行检测。其包含两个子网(sub-net A和sub-net B),其中sub-net B中的参数从RRN中迁移而来,最后的fc分别做multi-task:bbox regression和softmax。
    在这里插入图片描述

    Figure 4. Architecture of the Multi-Scale Detection Network. Two
    Sub-networks(Sub-Net B) with the
    same structure are used in MSDN. The parameters of all the convolutional layers
    of sub-net B (highlighted in yellow) are transferred from the Region
    Reconstruction Network.

    2017: A modal Detection of 3D Objects: Inferring 3D Bounding
    Boxes from 2D Ones in RGB-Depth Images (CVPR’17)。

    来自斯坦普尔大学的文章。作者在这里与2016的Deep
    Sliding Shapes思路不同,重新回到2.5D方法来进行3D目标检测。所谓2.5D方法,实则就是从RGB-D上提取何时的表达,而后building modals to convert
    2D results to 3D space。“虽然利用三维几何特征检测前景光明,但在实践中,重建的三维形状往往不完整,由于遮挡,反射等原因而含有各种噪声。”

    整个系统的overview如下,其基于Fast
    R-CNN实现:
    在这里插入图片描述

    Figure 1. Overview of the proposed 3D object detection system.
    For each 2D segment proposal, we firstly initialize the localization of a 3D
    box (yellow dash box) based on depth information and its size according to
    classwise prior knowledge. Then object class and 3D regression offsets are
    jointly learned based on 2D features only, with the goal of obtaining the final
    3D detection (green solid box) by adjusting the location, dimension, and
    orientation of the initial 3D box.

    对于每一个2D的proposal(这里关于2D proposals的方法就是用的Depth R-CNN中的方法),由分类结果和depth information来初始化一个3D bounding box(图中黄色虚线框),而后,也是用一个3d box regression来进行区域精修。重点关注3D box proposal
    and regression:
    在这里插入图片描述

    图中是3D box proposal的一个实例。每一个3d box由向量[xcam, ycam, zcam, I, w, h, θ]来表达,[xcam, ycam, zcam]表中心位置,[I, w, h]表是尺寸,θ∈[-π/2,
    π/2]表示方位角,即图中黄色的箭头与z轴形成夹角。在初始化的时候,关于尺寸是由某一类物体的类别来进行确定的。最后,输出7个调整量[δx,δy,δz,δl,δw,δh,δθ],利用smooth L1 Loss作为损失函数。

    结语

    3D目标检测对于自动驾驶与机器人等领域意义重大。本文以时间为序,重点关注和分析了基于RGB-D的3D Object Detection方法。从Depth R-CNN到3D Faster-RCNN,似乎始终基于2D的目标检测框架在循环改进。

    展开全文
  • ExcelReader 该项目是使用版本9.1.1生成的。 开发服务器 为开发服务器运行ng serve 。... 如果您更改任何源文件,该应用程序将自动重新加载。...要获得有关Angular CLI的更帮助,请使用ng help或查看 。
  • 【CNN】多角度理解CNN

    2020-02-28 12:21:05
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要4分钟跟随小博主,每天进步一丢丢来自:NewBeeNLP本文主题图像FilterFilter 作用图像后结果如何得到?等式角度神经网...

    点击上方,选择星标置顶,每天给你送干货

    阅读大概需要4分钟

    跟随小博主,每天进步一丢丢

    来自:NewBeeNLP

    本文主题

    图像

    Filter

    Filter 作用图像后结果

    如何得到?

    等式角度

    神经网络角度

    矩阵乘法角度

    上图的矩阵可以看成是传统神经网络中的权重矩阵,但是有两点不同:

    • 灰色显示的0是不可训练的,这意味着它们在整个优化过程中保持为零;

    • 有些权重是相等的,虽然它们是可训练的(即可改变的),但它们必须保持相等。这些被称为“共享权重”。

    Dense 神经网络角度

    这一角度可以更好理解传统神经网络和 CNN 之间的联系,其中左图是传统神经网络,右图是 Dense 神经网络视角下的 CNN。灰色连接对应于不可训练的 0。

    通过 zero-padding 保持原尺寸

    注意到我们以上是从 3x3 矩阵变成了 2x2,但是通过 zero-padding 我们可以得到 3x3 结果,具体实现为,

    Reference

    1. Fast.ai 课程[1],特别是其中的conv-example[2]以及对应的视频(0:00-14:00)[3]

    2. Michael Nielsen 的神经网络与深度学习[4]

    3. Realistic views[5]

    4. Visualizing what ConvNets learn[6]

    本文参考资料

    [1]

    Fast.ai 课程: https://course.fast.ai/

    [2]

    conv-example: https://github.com/fastai/courses/blob/master/deeplearning1/excel/conv-example.xlsx

    [3]

    对应的视频(0:00-14:00): https://www.youtube.com/watch?v=V2h3IOBDvrA

    [4]

    Michael Nielsen 的神经网络与深度学习: http://neuralnetworksanddeeplearning.com/

    [5]

    Realistic views: http://setosa.io/ev/image-kernels/

    [6]

    Visualizing what ConvNets learn: http://cs231n.github.io/understanding-cnn/

    - END -


    投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

    方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等

    记得备注呦

    让更多的人知道你“在看”

    展开全文
  • 从关注接口和父类(抽象类)的角度来提升阅读代码效率: 接口就是定义行为,一般都是行为性的动作定义,从这个接口我们可以了解到类实现了什么行为; 父类(抽象类)是为了复用,是为了更高层次抽象一些属性或者...

    从关注接口和父类(抽象类)的角度来提升阅读代码效率:
    接口就是定义行为,一般都是行为性的动作定义,从这个接口我们可以了解到类实现了什么行为;
    父类(抽象类)是为了复用,是为了更高层次抽象一些属性或者行为,从这个我们可以到一些共性的属性或者行为;
    当阅读代码的时候,如果你更加想知道这个类的行为,那么请重点看他的接口定义,或者他的父类的接口定义;
    如果你想了解一些细节(属性相关的),那么就多看看他的类属性或者父类的属性等等;

    展开全文
  • 从CV的角度看,Transformer(后面称trans)和SENet有些像,其本质是在做特征的重标定,让特征中相关性更强的特征有更的注意力。是一个很好的特征提取器。 例如I arrived at the bank after crossing the river.这...

    动机

    这篇文章做的任务是机器翻译。而前面使用广泛的RNN等网络只能对距离较近的词建模较高的关联性,而这篇文章提出一个名为Transformer的网络,具有self-attention机制,能对所有词进行关联性学习,无论远近。

    方法

    从CV的角度看,Transformer(后面称trans)和SENet有些像,其本质是在做特征的重标定,让特征中相关性更强的特征有更多的注意力。是一个很好的特征提取器。

    例如I arrived at the bank after crossing the river.这句话的翻译,结合river可以知道bank的意思是河岸而不是银行,所以bank和river是相关的,和after等是不想关的。而在trans中,这一过程表现为:拿着这句话每一个单词(例如bank)去和自己匹配,找到after、crossing等,都不想关,而river是相关的,所以经过attention后的特征,就要建模这种相关性,也就是在bank-river上花的注意力更大,权重更大。

    作者认为,attention实际上就是一个函数,从一个特征变到另一个更好的特征。作者设计这个函数时,提出了query,key,value三个概念。上面的例子中,bank就是query,after、crossing、river都是key,query和key相互作用计算出一个权重,加权到value上,形成新的特征,就是这篇文章做的核心事情。

    具体而言,作者递进地提出了他做self-attention的方法:Scaled Dot-Product Attention和Multi-Head Attention。第一个过程就是一个重加权的过程:

    Q,K,V就是query,key,value,都是向量,由网络前面的特征提取器提取而来。最直观的想法,就是Q=K=V,因为是自监督,Q和K就是一样的东西。但后面说明了这种效果不一定好,所以作者做了进一步改进。dk是一个超参数。这就是作者对self-attention的基础实现。

    进一步,作者认为把Q,K,V投影到不同的空间,会使得网络表达能力更强,所以作者设计了多个线性变换矩阵(可学的),即multi-head attention,如下图所示:

    W就是上面所说的多个线性变换矩阵。head1到headh就是作者将Q,K,V进行不同的映射后得到的最终特征,叠加后输出。最终的网络结构如下图所示:

    Input就是“I arrived at the bank after crossing the river.”,Output就是“我过河后到达了河岸”。Positional Encoding是因为作者在这篇文章中提出的这种self-attention是和位置无关的,任意两个单词互换,得到的特征还是一样,所以作者对单词顺序做了一次编码,随后一起输入到特征的self-attention中去。

    思考

    从CV的角度来看,trans有类似于捕捉图像中全局相关性的能力,和non-local的思路有些像,比如在去噪领域,利用别的地方的信息来补被噪声影响的地方的信息。

    展开全文
  • 热文导读 | 点击标题阅读如何进阶成为Java和Android架构师?你的经历分配决定你人生的层次Android性能优化系列——网络和电量优化作者:豆沙包67来源:htt...
  • 以下各篇文章,主要是参考阅读了巨潮信息网上关于最近2年公司接待机构投资者的文字记录,以及参考阅读媒体采访公司高层领导的公开报道……前言:语音识别与人工智能的发展路线图(注:摘自于机器之心2015.9对胡郁的...
  • 1.背景和主题 \quad该篇文章为中科院计算所智能信息处理重点实验室VIPL课题组,邬书哲博士在CVPR2018上的论文。论文主要针对的是在不同平面角度下的人脸...\quad首先作者说明了多角度旋转情况下的人脸检测, ...
  • 阅读之前,我想你很可能已经使用过许多存储层的技术了,例如缓存、文件、关系数据库,甚至一些云上 key-value 的存储服务,但就如同我之前提到的那样,某项具体技术总是相对好学,可对于全栈知识系统地学习,也...
  • 本例子一篇文章只有一个问题,有的文章,存在个问题的情况。下述所操作对象均指一篇文章的一个问题及其答案 2. 对文章进行分词 对上例中的paragraph_text按照\s,\t,\r,\n进行分词,最终得到结果: doc_tokens = ['...
  • 1.9 更多阅读材料 通过下列资源可以阅读有关DevOps的不同定义: Gartner技术成熟度曲线[Gartner]把DevOps归为处于上升期:http://www.gartner.com/DisplayDocument?doc_cd=249070。 AgileAdmins从敏捷角度解释了...
  • 从两个角度阐述传统词向量距离的缺陷:基于纯文本语料的词向量构建,与人类通过多种感官途径接受信息不符;传统的模态词向量通过拼接词向量与图像特征略显粗糙。本文提出了基于空间注意力机制的模态词向量构建...
  • 译是一款体验极佳的桌面端翻译工具,支持 MacOS 与 Windows 系统,支持文段翻译...这里的“不好用”包括很角度:比如“翻译结果不准确”、比如“翻译操作不方便”、比如“功能不够齐全”。 那么,译是怎么...
  • 一个软件产品做的好不好,从用户角度至少会有三个因素:产品的价格、性能、服务(用户体验)。以前很用户往往只关注前面两个因素,现在的用户对产品的服务以及用户体验的重视程度已经远远高于前两项。就像我们到...
  • 文章目录前言1. Redis 线程模型2....从 Redis 自身角度来说,读写网络的 read/write 系统调用占用了 Redis 执行期间大部分 CPU 时间,瓶颈其实主要在于网络的 IO 消耗。基于这种情况,Redis 优化
  • 从源码角度深入理解Handler

    千次阅读 2015-10-18 16:45:22
    为了获得良好的用户体验,Android不允许开发者在UI线程中调用耗时操作,否则会报ANR异常,很时候,比如我们要去网络请求数据,或者遍历本地文件夹...这些都很简单,我们就不说了,今天我主要想通过阅读源码来理解H
  • 经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这...
  • 欢迎来我的博客阅读:《从实现角度分析js原型链》 网上介绍原型链的优质文章已经有很了,比如说: https://github.com/mqyqingfeng/Blog/issues/2 https://github.com/creeperyang/blog/issues/9 作为补充,就让...
  • 源码阅读系列:Picasso源码阅读Picasso初始化加载图片 ...在接下来的博客中,我将对一系列优秀的开源框架源码进行阅读分析,目的有两个,一是理解框架的实现机制,从源码的角度去分析怎样更好的使用这些框架。二是从...
  • JDK源码(1)-阅读指引

    千次阅读 2019-12-08 23:29:39
    其实JDK源码的阅读,网上资料特别,我阅读的最主要目的是自己学习,所以我读的可能不那么好,我的角度是从源码和源码对应的注释读起,顺便还能练练英语。 接下来准备对JDK的常见源码进行一下阅读,特整理一个学习...
  • 书籍阅读

    2018-09-17 22:03:26
    评价:这是一本更站在数据分析(偏向网站分析)角度讨论这个岗位在国内电子商务公司的工作环境情况基本业务情况及一些基础相关知识的总结 对象:适合对国内互联网公司数据分析岗位做什么不了解的人阅读 精彩部分...
  • 本人一向不喜欢阅读比砖头厚的书。但是,这几周每天早上在班车上或晚上回家吃过晚饭,都迫不及待的拿起《SteveJobs》这本比转头还厚的书。刚开始看的时候,觉得不过就是另一本励志自传而已。可是,当给我看到乔布斯...
  • 前面几篇从代码角度记录了midpoint框架的了解,接下来的几篇文章将在业务场景上以普通用户的角度记录下midpoint的使用。本次的业务场景基于midpoint提供的示例——租户用户管理,该示例的官网介绍如下:...
  • 阅读杂谈

    2020-06-06 15:18:00
    阅读杂谈 从3月份开始,我就在准备面试,说是面试,实际上是我想趁着这段难得的时间,把一些基础知识补习一下,计算机组成原理,操作系统,算法,软件建模等,不求精通,但求有一个大体上的理解,也算是为之后的职业...
  • 这款在小编用过的阅读器中绝对排第一位,无论从阅读器的兼容度还是从便捷性的角度上,这款阅读器都完成的非常优秀。整体界面都给人一种非常舒适的体验,操作傻瓜,非常亮眼的一个功能是它能够将阅读数据上传到云端...
  • 本博客阅读指南

    千次阅读 2019-03-23 21:28:43
    主要关注Java主流开源中间件,博客从JAVA高端基础入手,从源码的角度分析了Java集合框架、Java并发包(线程、并发锁),紧接着进入到网络编程专题,开通了源码分析Netty5系列专栏,随后依次开通了源码分析Mycat系列...
  • 这款在小编用过的阅读器中绝对排第一位,无论从阅读器的兼容度还是从便捷性的角度上,这款阅读器都完成的非常优秀。整体界面都给人一种非常舒适的体验,操作傻瓜,非常亮眼的一个功能是它能够将阅读数据上传到云端...
  • 这款在小编用过的阅读器中绝对排第一位,无论从阅读器的兼容度还是从便捷性的角度上,这款阅读器都完成的非常优秀。整体界面都给人一种非常舒适的体验,操作傻瓜,非常亮眼的一个功能是它能够将阅读数据上传到云端...
  • 这是一个老生常谈的话题:努力,但我会给你提供全新的、更本质的角度看待这个问题。 请在阅读这篇文章的过程中始终琢磨一个词:系统困境。 系统困境之一 再努力也不能直接打开的死结 什么是死结? 即解决方案就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,507
精华内容 1,002
关键字:

多角度阅读