DNN的数学原理 前言数学是现实世界的精确抽象,再花里胡哨的东西,内在终究还是一堆加减乘除。因此,从数学的角度写一下到底啥是深度学习,学过线代就能懂。 神经网络模型的结构神经网络的基础单元是神经元,多个神经元纵向堆叠形成神经网络层,神经网络层横向堆叠形成神经网络。 神经元的数学原理对于一个神经元,进行的数学计算为: 接受一个向量$\boldsymbol{a}^{[j-1]}$,通过与$\boldsymbo 2020-01-12 工作技能 神经网络 深度学习 神经网络 DNN
点到直线距离的一种简便实现 前言没记错的话,点到直线距离的求解应该是一个初中几何的基础问题,不难,但是用代码实现的时候还是需要认真思考一下才写出来。。 首先定义一下问题: 已知: 三个点的坐标,$P(x_1, y_1)$, $Q(x_2, y_2)$, $M(x, y)$ 求解: 求点$M$到直线$PQ$的最短距离$d$ 基础知识回忆初中知识,解这个问题需要先从$M$点向$PQ$做垂线,得到垂足$N$,线段$MN$的长度 2022-10-18 工作技能 无人驾驶 几何
gdb调试插件 前言使用gdb进行调试时,最重要的功能就是看变量的当前值。 但是,当这个需求遇到OpenCV中的Mat或者Eigen中的Matrix时,就变得不太好搞。因为这些矩阵很大,又往往被封装的比较复杂,所以直接打印出来对调试而言非常不友好。 因此,便可以借助python对于gdb的支持,来搞一些插件,来优化打印结果。 这里先介绍一下gdb插件加载机制的原理,然后介绍两个目前找到的比较好的插件,分别针对Ei 2022-09-01 工作技能 C/C++笔记 gdb debug gdb插件 Eigen OpenCV
ROS坐标转换详解 相关文章 直角坐标系转换公式推导 前言搞机器人或者自动驾驶,坐标转换无论如何是绕不过的。 一般而言各种自动驾驶框架都会提供一种通用服务,维护整个系统中各个坐标系之间的实时转换关系并对外广播,然会需要进行坐标变换的模块按需订阅即可。 对于ROS框架而言,这套通用服务的实现就是tf模块。这里以tf为例子,梳理一下坐标变换过程中涉及到的关键概念,以及这些概念在tf中的具体实现。 定义问题在线性代数的语 2022-08-12 工作技能 无人驾驶 坐标系转换 刚体运动 坐标转换 ROS tf
conan包管理的简单使用 前言本文是Linux下C++的编译、链接以及包管理一文的支线,最好先去看下前文。 简单说conan就是一个C++的包管理工具,包含包的封装、存储、发布、使用等一整套体系。 其实每一种编程语言都有自己包管理工具,比如python的pip,javascript的npm,java的maven等等。但是C++很特殊,它的包管理工作比较难做,基本没有一统江湖型的解决方案。 conan相对而言是一个比较成功的 2022-07-18 工作技能 C/C++笔记 Cmake 编译 conan C++包管理
Cmake的find_package机制 前言本文是Linux下C++的编译、链接以及包管理一文的支线,最好先去看下前文。 不看也没关系,Cmake的find_package机制也算是一个比较独立的话题。简单说就是,你从别的地方搞到自己机器上一个包之后,怎么通过Cmake来用它,或者说让它参与编译和链接? 先说结论,在CMakeLists.txt中find_package(XXX)被调用之后,后台程序去一些路径下查找名称中包含XXX,而且 2022-07-18 工作技能 C/C++笔记 C++ Cmake 编译
gcc编译隐藏规则 前言Linux下C++的编译、链接以及包管理一文中提到,Linux系统本身和GCC编译器在针对包的管理上存在一定的配合。 具体来说体现在,GCC在进行编译时会默认在特定的系统目录下去寻找头文件和库文件,而这些特定的系统目录恰恰是包安装的位置。 本文就展开说说这些默认规则。 基本规则在介绍默认规则之前,先来回忆一下gcc命令行的基础规则有哪些:1gcc main.c function/head.c 2022-07-18 工作技能 C/C++笔记 C++ 链接 编译 gcc
Linux下C++的编译、链接以及包管理 前言最近一段时间要设计一套,同时支持公司自动驾驶中间件和ROS的静态融合代码开发工作流。搞完之后,对Linux下C++的编译、链接以及包管理有了更深入的理解。所以认真搞一篇文章,记录分享一下。 主要围绕一个非常基础、非常关键、非常实用的问题,即如何在自己的程序中使用别人现成的代码?,从具体实践(而不是理论)的角度来展开。 最简单直观的做法当然是,别人写了一个很好用的函数,你拷贝过来粘到你的头文件里 2022-07-17 工作技能 C/C++笔记 C++ 链接 Cmake 编译 Linux conan
直角坐标系转换公式推导 二维直角坐标系记录一个经常遇到的问题: 已知: 一个点A在直角坐标系XOY下的坐标为$(x,y)$; 另一个直角坐标系X’O’Y’的原点O’在XOY下的坐标为$(x_0, y_0)$,旋转角为$\theta$(逆时针旋转为正); 求解: 点A在X’O’Y’下的坐标$(x’, y’)$ 推导:主要通过三角函数的合角公式来求解。 根据上图,有: x - x_0 = rcos(\alpha + 2022-07-06 工作技能 无人驾驶 坐标系转换 刚体运动 坐标转换
状态估计理论体系下的“滤波”概念 相关文章 什么是滤波? 卡尔曼滤波概要 卡尔曼滤波实践 “滤波”的常见误解在接触状态估计的相关理论之前,估计有不少人对于“滤波”一词的理解都是: 给定一个信号,在时域上绘制出来之后“锯齿状”比较严重,那就用一个滑动窗口求一下均值,使得信号曲线更加平滑,这个过程就叫做“滤波”,对应的滤波器就是最基础的均值滤波器。 但是,开始接触到所谓的卡尔曼滤波器、贝叶斯滤波器这些针对状态估计而产生的概念之后,就 2022-06-22 工作技能 数据融合 状态估计 滤波