06 2020 档案
c++使用eigen库,矩阵维度错误
摘要:/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32: error: static assertion failed: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES #define EIGEN_STATIC_
阅读全文
Eigen 求最小二乘
摘要:
阅读全文
TensorFlow2.x —— mageDataGenerator
摘要:在图像深度学习任务中,对于小数据集,可以通过Image Data Augmentation图像增强技术来扩充数据。比如Keras的ImageDataGenerator。 ImageDataGenerator的使用: tf.keras.preprocessing.image.ImageDataGene
阅读全文
目标检测模型评价指标IoU、mAP
摘要:@ 一、IOU 交并比loU(intersection-over-union) 二、mAP 2.1 简介 mAP(mean average precision)平均准确率均值 2.2 计算方法 多标签图像分类任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准。首先用训练好的模型得到所有
阅读全文
Tensorflow2.x——FeutureColumns特征列详解
摘要:@ 特征列feature_column 特征列 通常用于对结构化数据实施特征工程时候使用,图像或者文本数据一般不会用到特征列。可以将特征列视为原始数据和 Estimator 之间的媒介。特征列非常丰富,使您可以将各种原始数据转换为 Estimators 可用的格式,从而可以轻松进行实验。 特征列就是
阅读全文
OpenCV_Python —— (10)视频读取存储
摘要:@ 一、摄像头读取 # 从摄像头获取图像数据 cap = cv2.VideoCapture(0) while(True): # ret 读取成功True或失败False # frame读取到的图像的内容 # 读取一帧数据 ret,frame = cap.read() # 变为灰度图 gray = c
阅读全文
OpenCV_Python —— (9)Canny边缘检测
摘要:@ Canny边缘检测原理 Canny 边缘检测是一种非常流行的边缘检测算法,是 John F.Canny 在1986 年提出的。它是一个有很多步构成的算法,我们接下来会逐步介绍。 1.噪声去除 由于边缘检测很容易受到噪声影响,所以第一步是使用 5x5 的高斯滤波器去除噪声,这个前面我们已经学过了。
阅读全文
OpenCV_Python —— (8)图像梯度
摘要:I是图像像素的值(如:RGB值) 一阶导数: x的梯度:Gx = I(x+1,y)-I(x,y) y的梯度:Gy = I(x,y+1)-I(x,y) 二阶导数: x的梯度:I(x+1,y)+I(x-1,y)-2I(x,y) y的梯度:I(x,y+1)+I(x,y-1)-2I(x,y) OpenCV
阅读全文
OpenCV_Python —— (7)二值化Thresholding
摘要:二值化就是把图片传换成只有white和black这两种颜色。通过Thresholding,可以让图片中感兴趣的颜色变成主角--white,其余的颜色全部隐藏--black。另外,二值化后的图片也便于计算机进行分析,因为边缘轮廓十分清晰,所以计算机可以轻松找到边界线。然而,在找边界这方面,Thresh
阅读全文
OpenCV_Python —— (6)图像色彩空间
摘要:@ 一、RGB RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。 红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当
阅读全文
OpenCV_Python —— (5)图像模糊/平滑/滤波
摘要:@ 一、Averaging平均滤波 计算卷积框覆盖区域所有像素的平均值得到卷积的结果 # 输入图像 # 核的尺寸大小:(3,3) (5,15).....都可以,可以不是正方形 blur = cv2.blur(image, (15,15)) 二、Gaussian高斯模糊 现在把卷积核换成高斯核(简单来
阅读全文
OpenCV_Python —— (4)形态学操作
摘要:@ 原始图像 一、结构元素 因为形态学操作其实也是应用卷积来实现的,这个卷积核也叫结构元素。结构元素可以是矩形/椭圆/十字形,可以用cv2.getStructuringElement()来生成不同形状的结构元素,比如: 二、Erosion腐蚀(白色部分被腐蚀,黑色部分变大) 原理是在原图的小区域内取
阅读全文
OpenCV_Python —— (3)通道切分合并、图像金字塔
摘要:@ 一、通道切分合并 # 通道切分 (R, G, B) = cv2.split(image) # 通道合并 merged = cv2.merge([R,G,B]) 二、图像金字塔 图像金字塔 一般情况下,我们要处理是一副具有固定分辨率的图像。但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行
阅读全文
OpenCV_Python —— (2)图像翻转、裁剪、图像算术、位计算
摘要:@ 一、图像翻转 # 包含所需的库 import numpy as np import cv2 import matplotlib.pyplot as plt # 图像显示函数 def show(image): plt.imshow(image) plt.axis('off') plt.show()
阅读全文
OpenCV_Python —— (1)画基本图形
摘要:@ 准备空白图像 # 包含所需的库 import numpy as np import cv2 import matplotlib.pyplot as plt # 图像显示函数 def show(image): plt.imshow(image) plt.axis('off') plt.show()
阅读全文
Matplotlib快速上手
摘要:@ Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python、numpy、pandas基本数据结构,运营高效且有较丰富的图表库 import numpy as np import pandas as pd import matplotlib.pyplot as
阅读全文
Pandas —— (8)数据读取
摘要:@ 一、读取普通分隔数据:read_table 可以读取txt,csv data1 = pd.read_table('data1.txt', delimiter=',',header = 0, index_col=1) print(data1) # delimiter:用于拆分的字符,也可以用sep
阅读全文
Pandas —— (7)数据分组
摘要:@ 分组统计 - groupby功能 根据某些条件将数据拆分成组 对每个组独立应用函数 将结果合并到一个数据结构中 Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新值,然后函数执行结果被合并到最终的结果对象中。 df.groupby(by=N
阅读全文
Pandas —— (6)多个DataFrame的合并、连接、去重、替换
摘要:@ Pandas具有全功能的,高性能内存中连接操作,与SQL等关系数据库非常相似 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False,
阅读全文
Pandas —— (5)文本数据处理
摘要:@ 一、常用方法 通过str访问,且自动排除丢失/ NA值 s = pd.Series(['A','b','C','bbhello','123',np.nan,'hj']) df = pd.DataFrame({'key1':list('abcdef'), 'key2':['hee','fv','w
阅读全文
Pandas —— (4)常用数学、统计方法
摘要:@ 和numpy的操作基本一致 基本参数:axis、skipna # 基本参数:axis、skipna import numpy as np import pandas as pd df = pd.DataFrame({'key1':[4,5,3,np.nan,2], 'key2':[1,2,np.
阅读全文
Pandas —— (3)数据查看、转置、添加、修改、删除、运算(对齐)、排序
摘要:@ 一、数据查看、转置 # 数据查看、转置 df = pd.DataFrame(np.random.rand(16).reshape(8,2)*100, columns = ['a','b']) print(df.head(2))# .head()查看头部数据 print(df.tail())# .
阅读全文
Pandas —— (2)索引与切片
摘要:@ 一、索引 Series和Datafram索引的原理一样,我们以Dataframe的索引为例 1.1 列索引:df['列名'] (Series不存在列索引) df = pd.DataFrame(np.random.rand(12).reshape(3,4)*100, index = ['one',
阅读全文
Pandas —— (1)基础数据结构概念和创建
摘要:@ 一、Pandas简介 1.1 数据结构 1.2 大小可变与数据复制 Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。 Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的
阅读全文
奇异值分解(SVD)方法求解最小二乘问题的原理
摘要:@ 一、奇异值分解(SVD)原理 1.1 回顾特征值和特征向量 我们首先回顾下特征值和特征向量的定义如下: 其中A是一个n×n的实对称矩阵,x是一个n维向量,则我们说λ是矩阵A的一个特征值,而x是矩阵A的特征值λ所对应的特征向量。 求出特征值和特征向量有什么好处呢? 就是我们可以
阅读全文
数学基础知识 ——(1)高等数学
摘要:https://blog.csdn.net/qq_34213260/article/details/106756944
阅读全文
动态内存与智能指针
摘要:@ 一、简介 动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。有时我们会忘记释放内存,在这种情况下就会产生内存泄漏;有时在尚有指针引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针。 为了更容易(同时也更安全)地使用动态内存,新的标准库提供了两种智能指针(s
阅读全文
VIO(3)—— VIO 残差函数的构建
摘要:@ IMU与VO的融合问题可以看作是对状态量的最小二乘估计,因此核心问题就转换为了VIO 残差函数的构建。 一、系统需要优化的状态量 二、视觉重投影误差 三、预积分模型 3.1 IMU 测量值的积分问题 3.2 IMU预积分模型的提出 3.3 IMU 的预积分误差 第二项可以由第一章公式(7)得到
阅读全文
Numpy(4)—— 保存和导入文件
摘要:一、文件读写 Numpy可以方便的进行文件读写,如下面这种格式的文本文件: # 使用np.fromfile从文本文件'housing.data'读入数据 # 这里要设置参数sep = ' ',表示使用空白字符来分隔数据 # 空格或者回车都属于空白字符,读入的数据被转化成1维数组 d = np.fro
阅读全文
Numpy(3)—— 线性代数相关函数
摘要:diag:以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0)。 # numpy.linalg 中有一组标准的矩阵分解运算以及诸如求逆和行列式之类的东西 # np.linalg.diag 以一维数组的形式返回方阵的对角线(或非对角线)元素, # 或将一维数组
阅读全文
Numpy —— (2)随机数np.random
摘要:@ 主要介绍创建ndarray随机数组以及随机打乱顺序、随机选取元素等相关操作的方法。 一、创建随机ndarray数组 创建随机ndarray数组主要包含设置随机种子、均匀分布和正态分布三部分内容,具体代码如下所示。 设置随机数种子 # 可以多次运行,观察程序输出结果是否一致 # 如果不设置随机数种
阅读全文
Numpy —— (1)基础数据结构
摘要:@ 一、简介 Python中的list列表也可以非常灵活的处理多个元素的操作,但效率却非常低。与之比较,ndarray数组具有如下特点: ndarray数组中所有元素的数据类型相同、数据地址连续,批量操作数组元素时速度更快。而list列表中元素的数据类型可能不同,需要通过寻址方式找到下一个元素。 n
阅读全文
VIO(2)—— IMU传感器测量模型、误差模型、运动模型(预积分模型)
摘要:@ 一、旋转运动学 1.1 线速度与角速度 1.2 旋转坐标系下的运动学 补充:右扰动模型: 在旋转坐标系下观察,运动的物体(运动方向和旋转轴不为同一个轴时)会受到科氏力的作用。 二、IMU 测量模型及运动模型 2.1 MEMS(Micr
阅读全文