rcnn

基于Faster RCNN的ADAS实践

依然范特西╮ 提交于 2020-03-06 17:46:09
文章目录 36第一课:ADAS:Advance Drive Assistance System中的CV应用 1 业务场景描述 2 CV应用于ADAS 3、ADAS场景行业应用现状 37第二课:Kitti数据集标注格式、下载 1. KITTI下载 2. KITTI数据集介绍(100G、激光雷达等) 3 load 12G 目标检测及注释 38 Kitti数据集类别的提取VOC格式 1 生成VOC格式 36第一课:ADAS:Advance Drive Assistance System中的CV应用 1 业务场景描述 导航与实时交通系统TMC 电子警察 车辆网 自适应巡航ACC 车道偏移报警系统 车道保持系统 碰撞避免或预碰撞系统 自动泊车 交通标识识别 10. 驾驶员疲劳探测 2 CV应用于ADAS 检测车载视频数据中的 机动车、非机动车、行人、交通标识 标准的目标检测问题 不同目标的外观差异 光照(数据增强)、遮挡(局部特征) 视角、大小(尺度变化)、位置 对比人脸检测任务,背景更复杂 判断模型的好坏 检测率、误报率 AP和mAP,s交并比 数据集资源 KITTI数据集:无人驾驶、检测、分割庞大数据集 MOT(可用于目标跟踪) Berkeley的大规模自动驾驶视频数据集(1.8T) https://blog.csdn.net/u010821666/article/details

深度学习之路(四):Fast-RCNN

ぃ、小莉子 提交于 2020-03-01 01:39:35
前文中已经讲述了R-CNN以及SPP-Net两个经典的入门级算法,下来向我们走来的是R-CNN家族的另一位优秀代表——Fast-RCNN。region proposal Fast-RCNN顾名思义,就是快速的R-CNN,其目的就是解决R-CNN训练慢、检测慢的难题。 一. 论文解读 Fast-RCNN的论文是就是《Fast R-CNN》,其作者是rbg大神,论文简单明了,目的性贼强。(百度云链接: https://pan.baidu.com/s/1fQlWVSY19kphn8X9zOyGEA ,提取码:aglm)。 Fast-RCNN是建立在以前所使用的的卷积神经网络有效地分类目标的成果上的。其采用了多项技术,从而提高训练速度和检测速速来提高检测精度。Fast-RCNN在训练VGG-16时比R-CNN 快9倍,检测时快213倍,并且还取得了较高的检测精度(在PASCAL VOC数据集上)。 论文的第一章简介中介绍了当前的图像分类与检测算法的发展已经取得了较大的成就,But,目标检测由于其复杂性检测不光慢,还检测精度差。然后论文就对就说明了产生复杂性的两个原因:其一是必须处理大量的候选区域,其二是候选框定位不准确,需要精细化以实现定位。这些问题的解决必然会造成检测速度慢,检测精度差。然后,论文就把自己的Fast-RCNN提出来了。 接下来论文又较为详细的分析R-CNN与SPP

RCNN算法

半城伤御伤魂 提交于 2020-02-20 03:18:48
Region CNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖,如今供职于Facebook旗下的FAIR。 这篇文章思路简洁,在DPM方法多年平台期后,效果提高显著。包括本文在内的一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码。 思想 本文解决了目标检测中的两个关键问题。 问题一:速度 经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。 问题二:训练集 经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深度网络进行特征提取。可供使用的有两个数据库: 一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。 一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。 本文使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。 流程 RCNN算法分为4个步骤 - 一张图像生成1K~2K个候选区域 - 对每个候选区域,使用深度网络提取特征

Rcnn/Faster Rcnn/Faster Rcnn的理解

混江龙づ霸主 提交于 2020-02-06 14:29:48
基于候选区域的目标检测器 1. 滑动窗口检测器 根据滑动窗口从图像中剪切图像块-->将剪切的图像块warp成固定大小-->cnn网络提取特征-->SVM和regressor进行分类和回归定位 选择性搜索 2. R-CNN R-CNN 利用候选区域方法创建了约 2000 个 ROI --> 将每个ROI区域warp成固定大小的图像--> CNN网络提取特征- -> SVM和regressor进行分类和回归定位; 3. Fast R-CNN Fast R-CNN 使用 特征提取器(CNN) 先提取整个图像的特征( 而不是从头开始对每个图像块提取多次 )--> 在特征图上,利用候选区域方法得到ROI区域,并在对应的特征图上裁剪以得到特征图块--> 将这些特征图块warp成固定大小--> 输入CNN网络提取特征--> svm/regressor 进行分类和回归; 4. Faster R-CNN Faster R-CNN 采用与 Fast R-CNN 相同的设计,只是它用 内部深层网络 代替了 候选区域方法 。新的候选区域网络(RPN)在生成 ROI 时效率更高,并且以每幅图像 10 毫秒的速度运行。 参考:https://baijiahao.baidu.com/s?id=1598999301741831102&wfr=spider&for=pc 来源: https://www

目标检测:R-CNN

元气小坏坏 提交于 2020-02-04 23:37:43
R-CNN:Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。 R-CNN 基于卷积神经网络( CNN ),线性回归,和支持向量机(SVM)等算法 ,实现目标检测技术。 创新点: 将CNN用作目标检测的特征提取器、有监督预训练的方式初始化CNN、在CNN特征上做BoundingBox 回归。 目标检测区别于目标识别很重要的一点是其需要目标的具体位置,也就是BoundingBox。而产生BoundingBox最简单的方法就是滑窗,可以在卷积特征上滑窗。但是我们知道CNN是一个层次的结构,随着网络层数的加深,卷积特征的步伐及感受野也越来越大。例如AlexNet的Pool5层感受野为195*195, feature map大小 为32*32,显然这种感受野是不足以进行目标定位的。使用浅层的神经网络能够保留这种空间结构,但是特征提取的性能就会大打折扣。RCNN另辟蹊径,既然我们无法使用卷积特征滑窗,那我们通过 Region P roposals( 区域建议 ) 方法产生一系列的区域,然后直接使用CNN去分类这些区域是目标还是背景不就可以吗?当然这样做也会面临很多的问题,不过这个思路正是RCNN的核心。因此RCNN全称为Regions with CNN features。 RCNN算法分为4个步骤 : 候选区域生成:一张图像生成1K~2K个候选区域 (采用Selective

【论文阅读笔记】faster rcnn 代码阅读细节

[亡魂溺海] 提交于 2020-02-01 01:41:26
faster rcnn细节 bounding box regression原理 理论 faster rcnn 代码 box_coder.py 参考: https://zhuanlan.zhihu.com/p/31426458 https://www.cnblogs.com/dudumiaomiao/p/6560841.html bounding box regression原理 如图所示绿色框为飞机的Ground Truth(GT),红色为提取的positive anchors,即便红色的框被分类器识别为飞机,但是由于红色的框定位不准,这张图相当于没有正确的检测出飞机。所以我们希望采用一种方法对红色的框进行微调,使得positive anchors和GT更加接近。 理论 对于窗口一般使用四维向量 ( x , y , w , h ) (x,y,w,h) ( x , y , w , h ) 表示,分别表示窗口的中心点坐标和宽高。 对下图,红色的框A代表原始的positive Anchors,绿色的框G代表目标的GT,我们的目标是寻找一种关系,使得输入原始的anchor A经过映射得到一个跟真实窗口G更接近的回归窗口G’,即: 给定anchor A = ( A x , A y , A w , A h ) A=(A_x,A_y,A_w,A_h) A = ( A x ​ , A y ​ ,

目标检测之YOLO v1

前提是你 提交于 2020-01-29 01:31:13
本文 转载自简书 ,仅用于个人学习,侵删 YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。 现在YOLO已经发展到v3版本,不过新版本也是在原有版本基础上不断改进演化的,所以本文先分析YOLO v1版本。 关于 YOLOv2/YOLO9000 的分析理解请移步 YOLO v2 / YOLO 9000 。 对象识别和定位 输入一张图片,要求输出其中所包含的对象,以及每个对象的位置(包含该对象的矩形框)。 图1 对象识别和定位 对象识别和定位,可以看成两个任务:找到图片中某个存在对象的区域,然后识别出该区域中具体是哪个对象。 对象识别这件事(一张图片仅包含一个对象,且基本占据图片的整个范围),最近几年基于CNN卷积神经网络的各种方法已经能达到不错的效果了。所以主要需要解决的问题是,对象在哪里。 最简单的想法,就是遍历图片中所有可能的位置,地毯式搜索不同大小,不同宽高比,不同位置的每个区域,逐一检测其中是否存在某个对象,挑选其中概率最大的结果作为输出。显然这种方法效率太低。 RCNN/Fast RCNN/Faster RCNN RCNN开创性的提出了候选区(Region Proposals)的方法,先从图片中搜索出一些可能存在对象的候选区(Selective Search),大概2000个左右

Faster RCNN(Pytorch) 配置过程记录及问题解决

心已入冬 提交于 2020-01-25 19:55:22
github地址: https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 一、配置过程记录 1.安装torch 到 https://pytorch.org/get-started/locally/ 查看相应的安装命令 我使用的是conda,python3.6,CUDA10.0,安装torch1.0 conda install pytorch==1 . 0 . 0 torchvision==0 . 2 . 1 cuda100 - c pytorch 2.git clone 到本地 git clone - b pytorch - 1 . 0 -- single - branch -- depth=1 -- recursive https: / / github . com / jwyang / faster - rcnn . pytorch . git 其中: -b 是分支名, --single-branch 是clone指定分支的命令, --depth==1 是只克隆最近一次更改, --recursive 用于循环递归克隆子项目。 3.创建数据文件夹 1 . cd 进入project根目录 2 . mkdir data 4.下载数据 cd 进入data文件夹 下载压缩文件 wget http: / / host

cv实习面试记录

最后都变了- 提交于 2020-01-25 16:22:55
网易传媒(2020.01.09) 一面(45分钟):聊项目 二面(65分+我中途有事打断面试) 上来问项目【45分钟+】(图片特征提取faster rcnn ,固定36个,如何构建graph,graph特征融合,attention LSTM) 深度学习基础【15分钟】: (1) 参数计算(channel 3 , 3*3, feature map 是64 ) (2)softmax(我居然说成sigmoid(尴尬!)) (3)交叉熵损失 代码(打断了…) 毕马威(2020.01.11) 一面(40分钟,过): 针对项目,问了下faster rcnn的大体流程,attention lstm如何实现 了解单步检测算法么,大致说说SSD、YOLO,为什么比faster rcnn快,区别在哪? 1*1卷积的作用 来源: CSDN 作者: 一只帅气的小菜鸡 链接: https://blog.csdn.net/weixin_42028608/article/details/103918579

RCNN keras实现

蹲街弑〆低调 提交于 2020-01-24 19:32:54
代码地址: https://github.com/xiaoxu1025/rcnn-keras 这里仅仅只是做了个简单的实现 方便对论文有更深的理解 代码参考: https://blog.csdn.net/u014796085/article/details/83931150 https://github.com/yangxue0827/RCNN R-CNN分为三个部分 selective-search、特征抽取、svm 对于模型我这里是用的keras自带的VGG16来做特征抽取 from keras.applications.vgg16 import VGG16 from keras.models import Model from keras.layers import Dense, Flatten, Input def create_model(num_classes): input = Input(shape=(224, 224, 3)) vgg16_model = VGG16(input_tensor=input, include_top=False) # 弹出最后一层 x = vgg16_model.output x = Flatten(name='flatten')(x) x = Dense(4096, activation='relu', name='fc1')(x)