自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shaozhenghan的博客

GitHub: https://github.com/shaozhenghan

  • 博客(24)
  • 资源 (5)
  • 收藏
  • 关注

原创 主成份分析(PCA)基本原理/步骤及其C++ 实现与优化(结合Eigen矩阵库)

主成份分析是常用的降维方法,其他降维方法还有线性判别分析LDA,二者的区别见:https://www.cnblogs.com/pinard/p/6244265.html   简要说就是:1.PCA将原始数据投影到方差最大的方向,LDA将数据投影到不同样本的中心点距离最大的方向。2. PCA是无监督降维,LDA是有监督降维。3. 若分类主要依赖均值而非方差,则LDA效果好,反之PCA效果...

2018-07-29 20:37:29 2290 3

原创 开源框架PointNet 代码详解——/pointnet/sem_seg/model.py

本文介绍用于点云语义分割(Semantic Segmentation in Scenes)的模型文件 /pointnet/sem_seg/model.py。原论文:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation (Charles R. Qi,  Hao Su,  Kaichun Mo, L...

2018-07-18 16:18:16 7165 7

原创 哈佛大学公开课:计算机科学cs50 学习笔记及代码实现(第9集:归并排序)

用递归算法实现归并排序伪代码如下:if n < 2     return;else     sort left half of elements;     sort right half of elements;     merge sorted halves; 例子:4,2,6,8,1,3,7,5 从小到大排序n < 2? nosort l...

2018-07-31 01:41:48 391

原创 读《协方差矩阵和散布矩阵(散度矩阵)的意义》一文的思考与补充

这篇文章《协方差矩阵和散布矩阵(散度矩阵)的意义》讲的很透彻,分享之:http://blog.csdn.net/guyuealian/article/details/68922981我自己补充几点自己的进一步理解:1。通常来说特征值没有一个上限,为了方便量化比较,归一化到 0-1 范围,可以将单个特征值di 用 di/(d1+d2+...+dn)来代替。另外,在数理统计上,协方差矩阵一定是...

2018-07-30 20:56:46 1137

原创 哈佛大学公开课:计算机科学cs50 学习笔记及代码练习(第8集:冒泡,选择排序,递归)

0. 前言 这门课讲的排序相当清楚,老师用很容易懂的方式讲原理,代码部分在linux下写,用gdb调试,这才是编程的学习方法。记得以前国内本科也学过,但根本没讲清楚。现在研究生又听这门公开课,发现把原理说清楚之后,代码自己很容易就实现了。另外gdb调试工具也很好用很重要,但国内学的时候老师甚至没有提过。1. gdb 调试工具的用法几个命令:run,break, continue, ...

2018-07-30 02:19:12 2374

原创 哈佛大学公开课:计算机科学cs50 学习笔记(第7集:数组,其它)

1. 一个语法糖string s1  = (i==1)? "bottle" : "bottles";代替if -else2. 预处理宏定义例如:#define CONST_NAME 2;若程序多个地方用到2这个常量,用宏定义的好处是,当需要更改这个常量的值比如改为4,只需要在宏定义那里改一次就好了。3. 数组数组就是一整块连续的内存。如同python 中的numpy 数...

2018-07-29 02:58:21 245

原创 点云 数据增强(Data Augmentation):方法与python代码

数据集增强(Data Augmentation)是机器学习常用的数据预处理方法。例如,当手头的数据量太少时,可以人工生成一些有意义的数据用来训练,这种数据获取方法的突出优点是:成本低,效果好。另外,当用来分类的数据集有数据倾斜(skewed data)即某一类样本比另一类多很多时,可以这对样本较少的一类进行数据增强。在图像领域,常用的数据增强方法有:旋转,镜像,缩放等。而在激光点云中,常用...

2018-07-28 21:56:03 10576 7

原创 C++ 与 Python 的接口:Cython的初次使用要点总结

我在用机器学习/深度学习对点云进行分类时,需要对原始点云数据进行增强(Data Aumentation),但原始点云数据为PCD文件,我后续还要用PCL点云库(C++)进行特征提取等操作,因此就想在C++中进行。数据增强的代码当然也可以用C++写,但想学习用一下Cython接口就用了Python(当然Python写起来也简单==)。。。 这部分代码详见我的这篇博客: https://blog.cs...

2018-07-28 19:00:47 4502 3

转载 (转)关于堆栈的讲解

https://blog.csdn.net/yingms/article/details/53188974

2018-07-28 02:42:44 140

原创 哈佛大学公开课:计算机科学cs50 学习笔记(第6集:C语言,RAM)

1. 关于变量对内存的使用#include <stdio.h>void swap(int, int);int main(void){ int x = 1; int y = 2; swap(x, y); printf("x=%i\n", x); printf("y=%i\n", y); return 0;}void swap(int a, int b)...

2018-07-28 02:33:21 988

原创 读论文:CNN for Very Fast Ground Segmentation in Velodyne LiDAR Data

https://arxiv.org/pdf/1709.02128v1.pdf提取地面点的传统方法是基于特征(强度,几何)。有一定局限性,比如地面起伏大的时候。而这篇文章用FCN的方法训练提取地面点,这种方法其实是像素级别的语义分割,也可以用在别的物体的分类上。具体以后补。 ...

2018-07-27 22:39:40 415

原创 哈佛大学公开课:计算机科学cs50 学习笔记(第4~5集:C语言,编译器)

1. fflush()函数此函数包含在stdio.h头文件中,用来强制将缓冲区中的内容写入文件。函数原型:int fflush(FILE *stream) ;函数功能:清除一个流,即清除文件缓冲区,当文件以写方式打开时,将缓冲区内容写入文件。也就是说,对于ANSI C规定的是缓冲文件系统,函数fflush用于将缓冲区的内容输出到文件中去。函数返回值:如果成功刷新,fflush返回0。指定...

2018-07-27 02:12:15 1063

转载 (转)GCC编译过程

https://www.cnblogs.com/king-lps/p/7757919.html

2018-07-26 16:54:20 103

原创 哈佛大学公开课:计算机科学cs50 学习笔记(第3集:C语言,编译器)

1. 编译器 Compiler将代码文本按照ASCII码转换为二进制文件Linux 下用 gcc 或者 g++ 编译器gcc hello.c    默认在当前路径下生成 a.out 可执行文件,运行a.out:./a.out      ./ 表示a.out 在当前路径下若要改变生成可执行文件的名字,则可以 gcc -o hello hello.c可以了解gcc 其他的命令参数...

2018-07-26 16:15:39 998

原创 哈佛大学公开课:计算机科学cs50 学习笔记(第2集:数据表示与存储)

视频网址:http://open.163.com/special/opencourse/cs50.html1. 数据在计算机中的表示与存储日常生活中用的是10进制数,如:位 3 2 1 0 权重 10^3 10^2 10^1 10^0 数值 0 1 2 3 如上表所示数值123在十进制下是这样表示的,即...

2018-07-25 20:56:10 623

原创 Python 批量修改文件名

代码如下:# -*- coding: utf-8 -*-import osdef rename(): i=0 object_class = "car" path="/media/shao/TOSHIBA EXT/data_object_velodyne/training/Classes_data_original_2/car" # 该文件夹下所有的文件(...

2018-07-25 16:33:31 179

原创 C++ 中数据类型转换的方法

用stringstream例如:要注意的是,如果stringstream 放在循环里面需要每次改变值,每次进入循环前要使用clear()方法。否则如果ss的定义放在外面,则ss 每次都添加10。导致不想要的结果。若每次进入循环重新定义,则耗费CPU周期:在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象...

2018-07-25 03:05:54 258

转载 (转)Numpy 的效率问题

转自:为什么用 Numpy 还是慢, 你用对了吗?https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/4-1-speed-up-numpy/

2018-07-18 20:21:39 1942

转载 (转)深度学习中的Batch Normalization

转载自:https://blog.csdn.net/whitesilence/article/details/75667002   此文结合tensorflow写的很清晰https://www.zhihu.com/question/38102762 

2018-07-18 19:36:13 136

原创 tensorflow 中 Batch Normalization 代码实现

理论部分结合:https://www.zhihu.com/question/38102762batch_norm_template 函数实现def batch_norm_template(inputs, is_training, scope, moments_dims, bn_decay): """ Batch normalization on convolutional maps ...

2018-07-18 19:30:39 1771

转载 (转)在NumPy中使用动态数组

本文转自:http://blog.chinaunix.net/uid-23100982-id-3164530.html1. 列表对象的内存动态分配Python的列表对象实际上是一个动态指针数组。当列表中没有空间储存新的元素时,列表会动态地改变其大小,以容纳新的元素。每次改变大小时,它都会预留一部分空间,以降低改变大小的频率。下面的程序可以观察列表的这一行为。import sysimpo...

2018-07-18 01:38:34 4323

原创 开源框架PointNet 代码详解——/pointnet/sem_seg/train.py

/pointnet/sem_seg/train.py 是PointNet 中用来训练点云语义分割(Semantic Segmentation in Scenes)的文件。当需要训练自己的数据集的时候,可能需要对这个训练文件做一些修改,因此有必要看懂其中的代码。记录下来,也是捋清思路。 parser = argparse.ArgumentParser()parser.add_argume...

2018-07-17 22:14:55 7404 22

原创 开源框架PointNet 代码详解——/pointnet/provider.py

provider.py 这个源文件主要用于数据集相关的操作,如数据集增强,数据集加载等。下面依次介绍。import osimport sysimport numpy as npimport h5pyBASE_DIR = os.path.dirname(os.path.abspath(__file__))sys.path.append(BASE_DIR)导入相关库,添加路径。注意...

2018-07-17 20:18:08 6695 2

原创 开源框架PointNet 数据集结构——语义分割部分

要训练自己的数据,需要把自己的数据集做成PontNet所用数据集相似的结构。故记录本文以备忘1. 论文中的描述pointnet 应用分为三部分:点云分类(3D Object Classification),点云部分分割(3D Object Part Segmentation),语义分割(Semantic Segmentation in Scenes)。本文只解释语义分割部分的数据集。论...

2018-07-17 19:43:34 10159 49

点云库PCL学习教程 4

点云处理技术广泛应用在逆向工程、CAD/CAM、机器人学、激光遥感测量、机器视觉、虚拟现实、人机交互、立体3D影像等诸多领域。由于其涉及计算机学、图形学、人工智能、模式识别、几何计算、传感器等诸多学科,但一直以来由于点云获取手段的昂贵,严重阻碍其在各个行业上的广泛应用,也造成国内点云处理的理论性和工具性书籍匮乏。

2018-06-01

点云库PCL学习教程 3

点云处理技术广泛应用在逆向工程、CAD/CAM、机器人学、激光遥感测量、机器视觉、虚拟现实、人机交互、立体3D影像等诸多领域。由于其涉及计算机学、图形学、人工智能、模式识别、几何计算、传感器等诸多学科,但一直以来由于点云获取手段的昂贵,严重阻碍其在各个行业上的广泛应用,也造成国内点云处理的理论性和工具性书籍匮乏。

2018-06-01

智能汽车 matlabsimulink 模拟仿真技术

汽车智能化的模拟仿真技术。MATLAB 2016 年汽车年会。

2018-06-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除