- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 基于点云的3D障碍物检测
基于点云的3D障碍物检测主要有以下步骤:点云数据的处理基于点云的障碍物分割障碍物边框构建点云到图像平面的投影点云数据的处理KITTI数据集KITTI数据集有四个相机,主要使用第三个相机(序号为02)拍摄的图片、标定参数和标签文件。点云数据一般表示为N行,至少三列的numpy数组。每行对应一个单独的点,所以使用至少3个值的空间位置点(X, Y, Z)来表示。 在KITTI数据中有一个
2018-02-08 15:32:37
20809
11
原创 处理点云数据(六):点云分割
展示了如何在三维激光雷达数据中检测地平面和发现附近的障碍物。clear;clc;%%% for img_idx = 181:446% fid = fopen(sprintf('D:/KITTI/data_set/2011_09_26/2011_09_26_drive_0009_sync/velodyne_points/data/%010d.bin',img_idx),'rb');%
2018-01-24 16:23:49
24592
42
原创 百度Apollo(二):障碍物感知模块
Apollo解决的障碍物感知问题: 1.高精地图ROI过滤器(HDMap ROI Filter) 2.基于卷积神经网络分割(CNN Segmentation) 3.MinBox 障碍物边框构建(MinBox Builder) 4.HM对象跟踪(HM Object Tracker) 其源码在:apollo\modules\perception\obstacle\lidar高精地图
2018-01-18 09:44:07
9186
原创 百度Apollo(一):代码模块
百度Apollo:https://github.com/ApolloAuto/apollo/tree/master/modules一级目录结构重要文件夹内容:docker:docker有关的文件,如启动docker脚本,进入docker容器脚本。docs:文档模块,有完整英文文档和部分中文文档 。modules:apollo中各个模块的源代码,如感知,决策,规划等核心模块。sc
2018-01-15 11:22:32
7079
1
原创 处理点云数据(五):坐标系的转换
相机的内外参矩阵坐标系主要有两类坐标系,一类为相机坐标系,一类为世界坐标系(即物体所处真实世界) 内参矩阵设空间中有一点P,若世界坐标系与相机坐标系重合,则该点在空间中的坐标为(X, Y, Z),其中Z为该点到相机光心的垂直距离。设该点在像面上的像为点p,像素坐标为(x, y)。 由上图可知,这是一个简单的相似三角形关系,从而得到 但是,图像的像素坐标系原点
2018-01-04 10:54:28
48892
16
原创 处理点云数据(四):点云到图像平面的投影
点云到图像平面的投影坐标系的定义相机(x:右,y:下,z:前) 点云(x:前,y:左,z:上)读取传感器校准参数在KITTI数据集raw_data中有两个传感器校准参数文件calib_cam_to_cam.txt(相机到相机的校准) 和 calib_velo_to_cam.txt(点云到相机的校准)。base_dir = 'D:/KITTI/data_set/2011_09_26/2011_09
2018-01-03 11:15:14
46614
15
原创 处理点云数据(三):三维点云可视化
三维可视化点云使用Mayavi可视化首先使用anaconda安装mayavi,打开命令行界面conda install mayavi如果python版本是py3则会出错,需要安装python2.7版本:conda create -n py2 python=2然后在py2的环境下安装mayavi:conda install -n py2 mayavi如
2017-12-29 12:17:00
23657
7
原创 处理点云数据(二):点云与生成前视图
创建点云数据中的前视图前视图投影为了将激光雷达传感器的前视图平面化为二维图像,必须将三维空间中的点投影到可以展开的圆柱形表面上,以将其平面化。下面公式见论文Vehicle Detection from 3D Lidar Using Fully Convolutional Network# h_res = 激光雷达的水平分辨率# v_res = 激光雷达的垂直分辨率x_img = arctan2(
2017-12-28 17:07:01
10347
3
原创 处理点云数据(一):点云与生成鸟瞰图
点云数据点云数据一般表示为N行,至少三列的numpy数组。每行对应一个单独的点,所以使用至少3个值的空间位置点(X, Y, Z)来表示。 如果点云数据来自于激光雷达传感器,那么它可能有每个点的附加值,在KITTI数据中就有一个“反射率”,这是衡量激光光束在那个位置被反射回来了多少。所以在KITTI数据中,其点云数据就是N*4的矩阵。图像与点云坐标图像的坐标轴和点云的坐标轴是不同的,下图显示了蓝
2017-12-28 16:06:11
33866
8
原创 深度学习(一):激活函数、反向传播和学习率
一、激活方法(Activation Functions)给定一个或者一组输入的节点的输出1.ReLU2. Sigmoid/Logistic3.Binary4.Tanh5.Softplus6.softmax7.Maxout8.Leaky ReLU, PReLU, RReLU, ELU, SELU, and others.二、反向传播(Backpropagation)1.这是一种用于人造神经网络的方法,
2017-08-28 11:41:37
4437
原创 matlab实现RCNN(二)
本文在MatlabR2016b上使用自带的深度学习工具实现RCNN来进行车辆检测。实验环境训练图片数量:825(网上收集+部分公共数据集)图片车辆数量:2300(对每张图片手工标注label得到)实验环境:MatlabR2016b(自带深度学习工具)CPU:I7-4510U显卡:NVIDIA GeForce840M(必须是N卡,因为需要使用cuda加速)内存:8G图片标注使用matlab自带的M文件
2017-08-15 16:47:09
11512
23
原创 matlab实现RCNN(一)
matlab实现RCNN(一)RCNNRCNN(Regions with Convolutional Neural Network Features)算法思想来自于2014年国际计算机视觉与模式识别会议(CVPR)上的经典paper《Rich feature hierarchies for Accurate Object Detection and Segmentation》,其在物体检测领域达到国
2017-08-15 10:35:38
8096
1
原创 opencv笔记(12):支持向量机-SVM
支持向量机-SVM支持向量机(Support Vector Machine,SVM)是一种对线性和非线性数据进行分类的方法,通过寻找最大边缘超平面将数据分类。支持向量机比较其他传统机器学习算法的优点:小样本,SVM解决问题的时候,和样本的维度是无关的,只与落在超平面边缘的侧面的支持向量有关。结构风险最小,对问题真实模型的逼近与问题真实解之间的误差,就叫做风险,更严格的说
2017-05-23 21:57:37
641
原创 opencv笔记(11):SIFT特征
特征提取之SIFT特征尺度不变特征变换(Scale-invariant feature transform,SIFT)是一种检测局部特征的算法,通过求一幅图中的特征点及其有关的scale和orientation的描述子得到特征并进行图像特征点匹配。1.SIFT算法过程(1)构建尺度空间尺度空间理论目的是模拟图像数据的多尺度特征,为初始化操作。可以通过构建图像金字塔来实现图像的多
2017-05-11 20:25:02
1015
原创 opencv笔记(10):Gabor特征
特征提取之Gabor特征Gabor函数可以在频率不同尺度、不同方向上提取相关的特征,Gabor变换是短时Fourier变换中当窗函数取为高斯函数时的一种特殊情况。实质上Gabor变换就是对图像进行卷积操作,其中Gabor滤波器是一个由正弦平面波调制的高斯核函数,分为实部和虚部,实部滤波可以平滑图像,虚部滤波可以边缘检测。1.二维Gabor函数的数学表达式Gabor滤波器是带通滤波器,为
2017-05-11 10:52:01
2328
转载 opencv笔记(9):特征降维-PCA
特征降维-PCA在进行图像的特征提取过程中,提取的特征维数太多经常会导致特征匹配时过于复杂,大量消耗系统资源,所以需要采用特征降维的方法。所谓的特征降维就是采用一个低纬度的特征来表示高纬度。一般的,特征降维有两种方式:特征选择和特征抽取。特征选择是从高纬度的特征中选取其中的一个子集作为新的特征;而特征抽取指的是将高纬度的特征经过某个函数映射至低纬度作为新的特征。常用的特征抽取方法就是主成分分析
2017-05-10 11:07:13
5644
原创 opencv笔记(8):Haar特征
特征提取之Haar特征1.Haar-like特征Haar特征由边缘特征、线性特征、中心特征和对角线特征组合成特征模板。特征模板中有白色和黑色两种矩形,模板的特征值则为白色矩形像素减去黑色矩形像素之和。Haar特征反应了图像灰度变化的情况。对于图中A,B,D这类特征V=sum(白)-sum(黑),而对于C来说则V=sum(白)-2*sum(黑)。2.Haar-like特征的计算:
2017-05-04 20:56:02
975
原创 opencv笔记(7):LBP特征
特征提取之LBP特征局部二值模式(Local Binary Pattern,LBP)是一种描述图像纹理特征的算子,它具有旋转和灰度不变性。一般不将LBP图谱作为特征向量用于分类识别,而是采用LBP特征值谱的统计直方图作为特征向量用于分类识别。1.LBP特征算子1.1原始LBP原始LBP是在3*3的窗口内,以窗口中心元素为阈值,比较周围8个像素,若大于中心像素点,则标记为1,否则为0
2017-05-04 10:09:10
1930
原创 opencv笔记(6):HOG特征
特征提取之HOG特征方向梯度直方图(Histogram of Oriented Gradient,HOG)是一种在计算机视觉和图像处理中用来对物体进行检测的特征描述子。其特征提取的过程为:(1)灰度化。(2)采用Gamma校正法对图像进行颜色空间的归一化:是为了调节图像的对比度,降低图像局部的阴影和光照变化造成的影响,同时抑制噪声的干扰。Gamma压缩公式:一般情况
2017-05-03 20:05:54
743
原创 数据结构(4):树
四、树1.二叉树的遍历void PreOrder(BTNode *b){ //前序遍历 if(b!=NULL){ printf("%c",b->data); PreOrder(b->lchild); PreOrder(b->rchild); }}void InOrder(BTNode *b){ //中序遍历 if(b!=NULL){ InOrder(b->l
2017-05-02 20:50:51
322
原创 opencv笔记(5):Hough变换
六、Hough变换1.Hough线变换Hough线变换是一种用来寻找直线的方法。首先要对图像进行边缘检测处理,Hough线变换的直接输入只能是边缘的二值图像。标准霍夫变换(HoughLines函数)多尺度霍夫变换(HoughLines函数)累计概率霍夫变换(HoughLinesP函数)
2017-04-27 11:08:13
1016
原创 opencv笔记(4):边缘检测
五、边缘检测边缘检测的一般步骤:滤波--->增强--->检测。边缘检测的主要算子和滤波器有:Canny算子、Soble算子、Laplace算子和Scharr滤波器。滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但是导数对噪声很敏感,所以需要采用滤波来改善和噪声有关的边缘检测器的性能。主要的滤波为高斯滤波。增强:增强边缘的基础是确定图像各点领域强度的变化值。增强算法
2017-04-26 19:54:53
640
原创 数据结构(3):串
三、串串是由零个或者多个字符串组成的有限序列,又名叫字符串。1.模式匹配int Index(String S, Sting T, int pos){ //返回子串T在主串S中第pos个字符之后的位置 int i=pos; //i用于记录主串S中当前位置的下标,若pos不为1,则从pos位置开始匹配 int j=1; //j用于记录子串T中当前位置的下标 while(i<=S[
2017-04-25 20:04:43
317
原创 数据结构(2):栈和队列
二、栈和队列1.1栈的顺序存储栈是限定仅在表尾进行插入和删除操作的线性表,即后进先出。其中,允许插入和删除的一端称为栈顶,另外一端称为栈底。进栈是插入,出栈是删除。int Push(Sqstack *s, ElemType e){ //进栈操作 if(s->==MaxSize-1){ //栈满 return 0; } s->top++; //栈顶指针+1
2017-04-22 21:41:32
354
原创 数据结构(1):线性表
一、线性表1.1线性表的顺讯存储线性表的顺序存储结构指的是用一段地址连续的存储单元依次存储线性表的数据元素。int GetElem(sqlist L,int i,ElemType e){ //获取元素 if(iL.length){ return 0; } e=L.data[i-1]; return 1;}插入算法思路:1.如果插入的位置不合理,抛出异常。2.
2017-04-19 22:06:12
345
原创 opencv笔记(3):漫水填充法和图像金字塔
3.漫水填充算法漫水填充算法是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的算法。经常用来标记或分离图像的一部分以便对其进行进一步的处理或分析。也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或只处理掩码指定的像素点。int floodFill(InputOutputArray image, InputOutputArra
2017-04-12 21:07:32
843
原创 opencv笔记(2):图像形态学
二、图像形态学图像形态学最基本的操作是膨胀与腐蚀,特别说明:膨胀和腐蚀是对白色高亮部分进行操作的。它们能实现多种功能:1.消除噪声。2.分割出独立的图像元素,在图像中连接相邻的元素。3.寻找图像中明显的极大值区域或极小值区域。4.求出图像的梯度。1.膨胀(dilate)膨胀就是求局部最大值的操作,核B与图像卷积,即计算核B覆盖区域的像素点的最大值,然后把最大值给参考点指
2017-04-11 21:54:06
470
原创 opencv笔记(1):平滑处理
一、平滑处理平滑处理也被称为“模糊处理”,常用来减少图像上的噪声或者失真,最重要的是降低图像分辨率。平滑操作的各种类型包括线性领域滤波和非线性领域滤波,其中,线性的包括“方框滤波”,“均值滤波”,“高斯滤波”。非线性的包括“中值滤波”,“双边滤波”。线性滤波主要有:1.允许低频率通过的低通滤波;2.允许搞频率通过的高通滤波;3.允许一定范围频率通过的带通滤波;4.阻止一
2017-04-10 20:28:31
962
Deep Learning
2017-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人