
学习笔记
文章平均质量分 70
菀er
算法工程师
展开
-
C++学习笔记(二)
1.C++简介 (参考C++菜鸟教程)C++是一种静态的编译式的通用的大小写敏感的不规则的编程语言,支持过程编程、对象编程和泛型编程。C++综合了高级语言和低级语言的特点,是一种中级语言。它是C的一个超集,事实上,任何合法的C程序都是合法的C++程序。标准库:标准的C++由三个重要部分组成:核心语言,提供了所有构建块,包括变量、数据类型和常量等;C++标准库,提供了大量的函数,用于操作文件、字...原创 2020-04-12 20:56:33 · 708 阅读 · 1 评论 -
工业相机的术语相关
一.工业相机术语像素(pixel):图像上的最小组成单元。图像由小方格即像素组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。像素视为整个图像中不可分割的单位。分辨率(resolution):用与衡量相机对物像中明暗细节的分辨能力。相机分辨率是指相机每次采集的像素点数,对于数字相机一般是直接与CCD或CMOS传感器的像元数对应的,如1280*10...原创 2020-03-14 10:37:36 · 3065 阅读 · 1 评论 -
视觉SLAM——位姿估计
******看完位姿估计原理过一段时间又忘记了,现参考高翔视觉SLAM十四讲做本文笔记。SLAM中的里程计都是基于特征点方式的算法。1.特征匹配特征匹配是视觉SLAM中极为关键的一步,它解决了数据关联问题。通过图像与图像或图像与地图间描述子进行准确匹配,可以为后续姿态估计、优化等操作减轻大量负担。由于图像特征的局部特性、误匹配、重复纹理等,仅利用局部特征很难解决问题。首先讨论图像与图像匹配...原创 2020-01-21 08:40:12 · 2892 阅读 · 0 评论 -
图像处理的中一些名词总结
图像处理的基本步骤:获取图像数据—— 平滑处理 —— 边缘检测/阈值分析 —— 形态学操作 —— 获取某些特征点 —— 分析数据二值化变换(binary transformation):图像分割的一种方法。在二值化图象的时候把大于某个临界灰度值的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,实现二值化。根据阈值选取的不同,二值化的算法分为固定阈值和自适应阈值。 常用的二值化方法...原创 2020-01-02 16:19:33 · 1298 阅读 · 0 评论 -
机器学习——yolov3模型解析
YOLO: You Only Look OnceV2的一些改进:(https://blog.youkuaiyun.com/jesse_mx/article/details/53925356)1.batch normalization(批量规范化): Keras中BatchNormalization层:该层在每个batch上将前一层的激活值重新规范化,即使得其输出数据的均值接近0,其标准差接近1.解决了网络...原创 2020-01-06 15:16:23 · 5925 阅读 · 1 评论 -
openmv中模块解析
模块解析1. sensor摄像头模块:包含了感光芯片与图像预处理的各项操作.sensor.reset()#重置并初始化OpenMVsensor.set_pixformat(sensor.RGB565)#选择颜色空间与像素格式RGB565/GRAYSCALE,设定选择颜色空间为RGB, 选择像素格式为RGB565.颜色存储红色(8位)绿色(8位)蓝色(8位).各通道的取值范围0-255, RG...原创 2019-11-28 13:32:27 · 9314 阅读 · 1 评论 -
Python Note
注:是本人在编程过程中的小笔记,常更新。Python3.4*安装software软件时超时情况:pip3 --default-timeout=600 install -U software* #!/usr/bin/env python作为脚本第一行,像运行普通程序一样运行脚本。#是python中注释。*String.endswith(suffix[,start[,end]]) 检查字符串...原创 2018-12-14 08:58:11 · 630 阅读 · 0 评论 -
机器学习——tensorflow笔记
使用的TF前需要明白:TF使用Graph计算任务,在Session上下文中执行Graph,使用tensor表示数据,通过variable维护状态,使用feed,fetch为任意操作赋值或获取数据。图中的节点被称之为 op (operation),一个 op获得 0 个或多个 Tensor , 执行计算, 产生 0 个或多个 Tensor . 每个 Tensor 是一个numpy ndarray...原创 2019-10-24 08:26:27 · 796 阅读 · 0 评论 -
视觉SLAM——非线性优化问题
SLAM位姿求解问题根本上是一个不断进行非线性优化到最优值的问题。1. 最大似然问题。位姿估计本身是求解最大似然估计,即在什么样的状态下xk,最可能产生现在观测到的数据。运动方程:; 表示从k-1时刻到k时刻的运动,表示k-1时刻位姿,是传感器读数,是噪声。观测方程:;在位置观测到某个点,产生一个观测数据,是噪声,是观测值。位姿是可以使用变换矩阵或李代数表示,则在处对点进行一次观测,对应...原创 2019-10-16 14:59:43 · 2073 阅读 · 0 评论 -
机器学习——基于神经网络学习过程的简单理解
优点是神经网络的对所有的问题都可以用同样的流程来解决。即不断地学习所提供的数据,尝试发现待求解的问题的模式。与待处理的问题无关,神经网络可以将数据直接作为原始数据,进行“端对端”的学习。自己的一句话概括就是:神经网络的学习就是把训练中原始数据直接作为输入数据,通过减小结果与原来标签的误差的方法不断调整权重参数,最终使用优化的权重的参数来推理新的数据。(神经网络的学习以损失函数为指标,更新权重参数...原创 2019-09-09 11:19:52 · 1746 阅读 · 0 评论 -
一个简单标准的CMakeLists.txt文件
cmake_minimum_required( VERSION 2.8 )#cmake版本最低要求project(KMeans)#项目名称IF(NOT CMAKE_BUILD_TYPE)#(可选)如果没有指定cmake编译模式,就选择Release模式,必须写成三行SET(CMAKE_BUILD_TYPE Release)ENDIF()set( CMAKE_CXX_FLAGS "-...原创 2018-06-13 17:04:41 · 1287 阅读 · 0 评论 -
Python 数据库
环境: ubuntu1404, python3.4python可以操作多种数据库,如SQLite、MySql、PostgreSQL等.本文针对自己所使用的PostgreSQL数据进行介绍。1. 1. 安装PostgreSQL模块接口,其中PsyCopg对python开发框架的兼容性很好,就以psycopg2为例,首先安装postgresql:a.添加postgresql源:$ sud...原创 2019-01-08 15:14:07 · 460 阅读 · 0 评论 -
视觉SLAM——orbslam中的流程图
位姿 Tcw初始化方法:运动模式跟踪: Tcw = mVelocity*LastFrame.mTcw,地图点通过重投影更新关键帧模式跟踪:Tcw =LastFrame.mTcw, 地图点通过视觉词典ComputeBoW更新重定位模式跟踪:Tcw = PnP(候选关键帧)构建PnP求解器进行若干次P4P Ransac迭代,地图点通过候选参考帧更新优化函数及其使用:1.Pos...原创 2019-02-01 08:31:08 · 3306 阅读 · 0 评论 -
C++ 学习笔记
面向对象编程三大特性------封装、继承、多态一.封装:就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只一些对外接口使之与外部发生联系。对于封装而言,一个对象它所封装的是自己的属性和方法。优点:1、良好的封装能够减少耦合。2、类内部的结构可以自由修改。3、可以对成员进行更精确的控制。...原创 2019-02-01 08:30:34 · 1137 阅读 · 0 评论 -
视觉SLAM—BA模型的理解
参考高翔《视觉SLAM十四讲》BA(Bundle Adjustment)基于图的SLAM算法里面使用图优化替代了原来的滤波器,这里图优化就是指BA。BA的定义: 从视觉重建中提炼出最优的3D模型和相机参数,从每个特征点反射出来的几束光线,把相机姿态和特征点空间位置做出最优调整之后,最后收束到相机光心的过程简称BA。它在视觉SLAM中起核心作用。BA本质上就是最小化重投影残差同时优化位姿和...原创 2019-02-12 10:28:54 · 7386 阅读 · 4 评论 -
旋转矩阵、转换矩阵、欧拉角和四元数的关系及Eigen和g2o中的变换
旋转矩阵R,转换矩阵T,欧拉角:偏航角yaw记为,俯仰角pitch记为,偏转角roll记为,四元数1.旋转矩阵R与转换矩阵T的关系如下: (1)2.四元数q与旋转矩阵R的关系如下: (2) (3) 其中.3.旋转矩阵R与欧拉角的关系如下: (4). 其中sx,cx,sy,cy,sz,cz分别为的正余弦值。(5) g2o中使用SE...原创 2019-02-14 17:02:45 · 1586 阅读 · 0 评论 -
机器学习——一些名词解释
总体上的范围关系是: 人工智能 > 机器学习 > 深度学习 , 这三种都可能会用到神经网络算法。监督式学习(Supervised learning):通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,如分类。监督学习是使用已知正确答案的示例来训练网络的。监督式学习的算法有决策树学习,SVM,KNN等回归分析和统计分类的算法。非监督式学习...原创 2019-03-19 17:03:34 · 2769 阅读 · 0 评论 -
机器学习——一些常用的数学基础
1.范数(norm):衡量向量大小,是将向量映射到非负值的函数。形式上范数定义为:,.当p=2时,范数称为欧几里得范数,经常省略下标2。向量的n范数就是向量元素绝对值的n次方和再开n次方。2.特征分解(eigendecomposition):又称谱分解,将矩阵分解成一组特征向量和特征值,是使用最广的矩阵分解之一。表示如下:. 是特征值也称本征值,是特征向量也称本征矢。这种做法的目的是通过分解矩...原创 2020-01-06 15:37:25 · 551 阅读 · 0 评论 -
基本的路径规划算法
随机路图法(Probabilistic Road Map,PRM):传统的人工势场、单元分解法需要对空间中的障碍物进行精确建模,当环境中的障碍物较为复杂时,将导致规划算法计算量较大。基于随机采样技术的PRM法可以有效解决高维空间和复杂约束中的路径规划问题。PRM是一种基于图搜索的方法,它将连续空间转换成离散空间,再利用A*等搜索算法在路线图上寻找路径,以提高搜索效率。这种方法能用相对少的随机采样点...原创 2019-09-04 10:11:09 · 4342 阅读 · 0 评论 -
ROS Note
*roslaunch的使用和编写: $ roslaunch package_name file.launchroslaunch文件是使用XML语言来描述节点以及相关参数的设置和软件的启动的。<launch>标签:是任何roslaunch文件的根元素。它的唯一目的是作为其他元素的容器。其包含的元素有:<node> 启动节点 <...原创 2018-12-19 08:59:05 · 322 阅读 · 0 评论