| by msbeta | No comments

自动驾驶定位算法(十五)基于多传感器融合的状态估计(muti-Sensors Fusion)

1、传感器(Sensor)选取

自动驾驶系统中用于状态估计(State Estimation)的常用传感器包括GPS/GNSS、IMU、激光雷达(Lidar)。

状态估计(State Estimation)选用传感器需要考虑哪些因素:

1)误差不相关性。也就是说,用于Sensor Fusion的传感器其中单个传感器(Sensor Measurement)测量失败,不会导致其它传感器(Sensor)由于相同的原因而同时失败。

2)传感器的相互补充性。 比如IMU可以填充GPS两次定位间隔期间的定位输出,用于平滑GPS/GNSS的定位结果;GPS为IMU提供初值,消除I[……]

继续阅读

Read More
| by msbeta | No comments

辉煌背后的苦难

有一天,你能够将过往的心酸和痛苦笑着说出来的时候,意味着你已经强大到可以从容接纳这些苦难,并使它们成为你生命中一笔宝贵的财富。

–听俞敏洪的分享有感

一、 两次被歹徒绑架

俞敏洪创立新东方之后,曾经两次被绑架,劫走200多万,九死一生。两次绑架的歹徒都是同一个人,该人先后共绑架过7人,除俞敏洪外,其余6起绑架案的受害者全部被杀。

俞敏洪创建新东方之后,经过一段时间的发展,声名鹊起,报名的学生络绎不绝,周末两天就能收50~100万的[……]

继续阅读

Read More
| by msbeta | No comments

使用Keras Tensorflow 2.0实现YOLO V1

本文使用Tensorflow 2.0复现论文<You Only Look Once: Unified, Real-Time Object Detection>的效果。

1.数据预处理(Data Preprocessing)

使用VOC 2007数据集进行网络训练。下载并解压数据集:

处理图片和Label数据,生成待处理的数据。

生成的文本如下:

./data/VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007/JPEGImages/000012.jpg 156,97,351,270,6
 ./data/V[......]

继续阅读

Read More
| by msbeta | No comments

鸽子的迷信

美国心理学家斯金纳有个著名的实验:它把鸽子放在箱子中,每20秒给箱子食槽的挡板自动打开喂食一次,如果在挡板打开之前,鸽子正好扇动了自己的翅膀,它就会认为,扇动翅膀与得到食物之间存在着因果关系,于是,它之后会不停地重复煽动翅膀的动作,以求得食物。扇动翅膀与获得食物之间,其实并无因果联系,而鸽子却对其因果深信不疑。

以鸽子的智慧,它坚定的认为,挥动翅膀和得到食物是一个自然规律;而从人类的角度,明确的知道这两件事情完全不存在关联,它只是一个偶然发生的结果。宇宙对于人类也是如此,你看到的自然规律或许并不一定是规律,只是某一个时刻出现的现象而已。

[……]

继续阅读

Read More
| by msbeta | No comments

Object Detection-深入理解YOLO v1

论文链接

You Only Look Once: Unified, Real-Time Object Detection

https://arxiv.org/abs/1506.02640

1.Object Detection

Object Detection目标是,输入一张图片,输出图片中包含的所有对象以及每个对象的位置(包围该对象的矩形框)。

在YOLO之前,RCNN系列(RCNN/Fast RCNN/Faster RCNN)都是采用两阶段的处理模式,先提出候选区(Region Proposals),再识别候选区中的对象。YOLO创造性的将候选区(Regio[……]

继续阅读

Read More
| by msbeta | No comments

Markdown-空心字母&花体字母

Markdown的空心字母,支持A~Z。

$\mathbb{A}$\mathbb{A}$\mathbb{B}$\mathbb{B}$\mathbb{C}$\mathbb{C}$\mathbb{D}$\mathbb{D}……$\mathbb{Z}$\mathbb{Z}

Markdown的花体字母,支持A~Z。

$\mathcal{A}$\mathcal{A}$\mathcal{B}$\mathcal{B}$\mathcal{C}$\mathcal{C}$\mathcal{D}$\mathcal{D}……$\mathcal{Z}$\mathcal{Z}

Fr[……]

继续阅读

Read More
| by msbeta | No comments

改善程序的性能-C++17 使用 std::string_view避免字符串拷贝

C++中std::string是日常Coding中经常使用的一个类,使用起来非常方便,但是也存在一些弊端。

如下代码,参数传递的过程发生了内存分配(Memory Allocation)和内存拷贝。

再看下面的常用的字符串截取实现:

为了进一步的压榨程序的性能,需要移除掉这些昂贵的字符串内存分配和拷贝操作。C++17中提供了std::string_view可以帮助我们实现这一功能,该类并不持有字符串的拷贝,而是与源字符串共享其内存空间。

string_view构造函数

虽然没有定义参数为std::string的std::string_view函数,下面的[……]

继续阅读

Read More
| by msbeta | No comments

稀缺-专注的”得”与管窥的”失”

专注的红利

不知道你有没有这样的经历,越临近截止日期,你完成工作的灵感越多,效率越高,甚至于你工作中的大多数灵感都是在Deadline前几个小时内迸发出来的。

当你专注于Deadline的工作时,似乎所有的”干扰”都不存在了,身旁嘈杂的电视声、客厅大声喧闹的孩子们,这些平时困扰你无法工作的因素似乎一下子被大脑自动屏蔽掉了,脑海中只有一个事情:完成手头马上要到期限的工作。

在稀缺的状态下,人们的注意力会完全集中在紧急的事情上,并将其它事物排除在外,这种专注会让人们从稀缺中获益,让人获得专注红利。

在实际的生活中,稀缺获取专注红利的例子无处不在。比如所有的会议一开始完全没有[……]

继续阅读

Read More
| by msbeta | No comments

Git如何修改已提交Commit的commit msg

在使用Git提交代码之后,有时候我们需要修改提交的Commit Msg,这时候需要如何操作呢?

Git中的git commit –amend可以帮助我们实现这个目的。

进入编辑界面:

git 默认的编辑器是Nano编辑器,刚开始我还一脸懵逼,不知道怎么操作。

这里我们只需要直接修改commit msg即可。比如我们修改”add demo commit”为”add demo commit, modify!”。

编辑完成之后,按下ctrl+x键,进入如下界面:

输入”Y”,按回车(enter)键:

至此,commit msg修改完毕。[……]

继续阅读

Read More
| by msbeta | No comments

Python中的Yield用法

带有yield的函数在Python中被称之为generator(生成器),也就是说,当你调用这个函数的时候,函数内部的代码并不立即执行 ,这个函数只是返回一个生成器(Generator Iterator)。

1. 使用next方法迭代生成器

generator函数怎么调用呢?答案是next函数。

程序输出:

first iteration:
 0
 second iteration:
 1
 three iteration:
 4
 four iteration:
 9

在函数第一次调用next(gen)函数时,generator函数从开始执行到[……]

继续阅读

Read More
| by msbeta | No comments

Python字典(dict)设置默认值

Python中的collections.defaultdict([default_factory[, ]])在设置的字典key第一次出现的时候,自动调用default_factory方法创建一个默认的对象。这个类在实际使用中非常有用,可以帮助我们简化不少问题。

1.合并键值(Key)相同的键值对

如下所示,我们可以把键值(Key)相同的Value合并到一个List中。

程序输出:

[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

2. 统计字符出现的次数

如下代码所示,当每个字母首次遇到时,d[……]

继续阅读

Read More