- 博客(160)
- 问答 (1)
- 收藏
- 关注
原创 6 自研rk3566/rk3588+rgbd相机之深度计算库程序详解
支持raw8/raw10/raw16 格式tof模组标定参数读入及解析//alloc eeprom memory and parse paraint wuqi_lsi_eeprom_data_parse(unsigned char* eeprom_data);模组的标定参数以bin文件形式保存:MZ_ToF_cal.bin通过读入bin并对其进行解析得到标定参数如下://board offset 板子延时参数unsigned char bof_data1[4];unsigned char b
2024-08-30 06:15:00
3
原创 经典网络训练图像分类模型一
加载预训练模型,torchvision中有很多经典网络架构,调用起来十分方便,并且可以用人家训练好的权重参数来继续训练,也就是所谓的迁移学习。- 需要注意的是别人训练好的任务跟咱们的可不是完全一样,需要把最后的head层改一改,一般也就是最后的全连接层,改成咱们自己的任务。- ImageFolder假设所有的文件按文件夹保存好,每个文件夹下面存贮同一类别的图片,文件夹的名字为分类的名字。- 训练时可以全部重头训练,也可以只训练最后咱们任务的层,因为前几层都是做特征提取的,本质任务目标是一致的。
2024-08-30 06:00:00
943
原创 6 自研rk3566/rk3588+rgbd相机之深度计算库移植及测试
深度计算库包括深度图像解析,读入eeprom标定参数进行深度矫正与深度还原,原始深度数据输出。需要将深度库从windows平台修改交叉编译为linux平台的arm64库。读入eeprom, 读入raw图像文件,调用深度计算库进行深度计算。交叉编译后生成动态链接库。
2024-08-29 06:15:00
177
原创 经典网络训练图像分类模型二
标准化操作也是必须的,用跟训练数据相同的mean和std,但是需要注意一点训练数据是在0-1上进行标准化,所以测试数据也需要先归一化。- 最后一点,PyTorch中颜色通道是第一个维度,跟很多工具包都不一样,需要转换。output表示对一个batch中每一个数据得到其属于各个类别的可能性。- crop操作的目的是保证输入的大小是一致的。- 测试数据处理方法需要跟训练时一致才可以。- 我们现在只训练了输出层。
2024-08-29 06:00:00
548
原创 文本分类python入门
self.save_path = dataset + '/saved_dict/' + self.model_name + '.ckpt' # 模型训练结果。self.dev_path = dataset + '/data/dev.txt' # 验证集。self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') # 设备。
2024-08-28 06:00:00
837
原创 卷积神经网络python入门
卷积网络中的输入和层与传统神经网络有些区别,需重新设计,训练模块基本一致。- 注意卷积最后结果还是一个特征图,需要把图转换成向量才能做分类或者回归任务。- 当前任务中为什么全连接层是32*7*7 其中每一个数字代表什么含义。- 一般卷积层,relu层,池化层可以写成一个套餐。- 分别构建训练集和测试集(验证集)- DataLoader来迭代取数据。- 再加入一层卷积,效果怎么样?
2024-08-27 06:00:00
787
原创 神经网络分类任务python入门
torch.nn.functional中有很多功能,后续会常用的。那什么时候使用nn.Module,什么时候使用nn.functional呢?一般情况下,如果模型有可学习的参数,最好用nn.Module,其他情况nn.functional相对更简单一些。- 一般在训练模型时加上model.train(),这样会正常使用Batch Normalization和 Dropout。- 必须继承nn.Module且在其构造函数中需调用nn.Module的构造函数。- torch.nn.functional模块。
2024-08-26 06:00:00
886
原创 5 自研rk3566/rk3588+rgbd相机之v4l2-rgb出图框架开发二
v4l2是video for linux two的简写,是用于linux设备从内核空间到用户空间传输图像数据的常用框架,是应用程序从驱动程序接收图像数据的桥梁或媒介,出图中扮演重要角色。
2024-08-25 11:20:58
31
原创 5 自研rk3566/rk3588+rgbd相机之v4l2-tof出图框架开发
v4l2是video for linux two的简写,是用于linux设备从内核空间到用户空间传输图像数据的常用框架,是应用程序从驱动程序接收图像数据的桥梁或媒介,出图中扮演重要角色。
2024-08-25 11:20:18
29
原创 4 自研rk3566/rk3588+rgbd相机之i2c点亮sensor调试
调试sensor过程中硬件的功能确认,以及通信确认是必不可少的,主要分为一下几个部分。通过原理图确认mipi-camera接口所用的i2c是属于第几个接口,比如用i2c-2或者i2c-4都是可以进行sensor驱动测试验证的。用i2c-tools可以识别到是否i2c总线上有接设备,是确认mipi-camera设备是否联通的第一步。查看 设备文件节点 /dev/i2c-0,/dev/i2c-2用i2cdetect -y 0命令探测某个端口的设备是否存在以及设备地址有哪些是否对的上。读取模组的eeprom
2024-08-25 11:18:16
25
原创 3 自研rk3566/rk3588+rgbd相机之mipi-camera设备驱动程序二
3 自研rk3566/rk3588+rgbd相机之mipi-camera设备驱动程序1 rgb sensor mipi-camera驱动程序开发总结2 rgb驱动程序开发总结rgb出图格式:sensor ID:i2c寄存器设定:probe探测函数功能:snesor初始化操作:rgb sensor mipi-camera驱动程序1 rgb sensor mipi-camera驱动程序开发总结需要增加的文件kernel/drivers/media/i2c/sc2310.c驱动总结:1 probe探测函
2024-08-25 11:17:25
37
原创 3 自研rk3566/rk3588+rgbd相机之linux-mipi-camera设备驱动程序
3 自研rk3566/rk3588+rgbd相机之linux-mipi-camera设备驱动程序开发1 linux-mipi-camera驱动介绍2 mipi-camera驱动调试及注意事项总结需要开发的驱动文件内容:I2C时钟频率配置总结:内核调试打印:mipi时钟信号调试总结:像素时钟参数计算总结:3 tof sensor linux mipi-camera驱动程序详解1 linux-mipi-camera驱动介绍mipi-camera驱动程序是用来识别并驱动mipi接口的相机的设备驱动程序,其驱动
2024-08-25 11:13:20
29
原创 2 自研rk3566/rk3588+rgbd相机之设备树文件配置
linux3.0内核以后设备驱动程序的硬件差异部分都用设备树文件来配置及修改,rk3566支持两个mipi-csi高速接口可以同时接两个mipi-camera,rk3588可以接4个mipi-camera相机,rk3566-rgbd相机分别接tof,rgb到mipi-camera接口,其sensor的访问地址和驱动方式,以及原理图接口都不同,需要配置设备树后才能被内核驱动加载配置信息后通过驱动才能访问sensor芯片并出图。因此配置设备树文件是内核驱动开发的重要环节。
2024-08-25 11:12:53
145
原创 1 自研rk3566/rk3588+rgbd相机之camera-sensor设定与linux内核配置
本篇文章正式开始进入基于rk3566/rk3588 rgbd相机的开发阶段,首先介绍内核驱动编写前的准备工作,内核配置方法。
2024-08-25 11:12:06
120
原创 搭建PyTorch神经网络进行气温预测
friend:这一列可能是凑热闹的,你的朋友猜测的可能值,咱们不管它就好了。* year,moth,day,week分别表示的具体的时间。* actual:这就是我们的标签值了,当天的真实最高温度。* average:在历史中,每年这一天的平均最高温度值。* temp_2:前天的最高温度值。* temp_1:昨天的最高温度值。#看看数据长什么样子。
2024-08-25 06:00:00
677
原创 车位识别算法python
minLineLengh(线的最短长度,比这个短的都被忽略)和MaxLineCap(两条直线之间的最大间隔,小于此值,认为是一条直线)lower_red和高于upper_red的部分分别变成0,lower_red~upper_red之间的值变成255,相当于过滤背景。#rho距离精度,theta角度精度,threshod超过设定阈值才被检测出线段。#Step 3: 找到多个列,相当于每列是一排车。#Step 2: 对直线按照x1进行排序。#Step 5: 把列矩形画出来。#Step 1: 过滤部分直线。
2024-08-24 06:00:00
274
原创 空间变换其参数化二
目录刚性变换的问题描述最优平移向量求解最优旋转矩阵求解反射矩阵消除基于SVD刚性变换矩阵计算流程总结令P={p_1,p_2,...,p_n}和Q={q_1,q_2,...,q_n}是R^d空间内的两组对应的点。希望找到一个刚性的变换,在最小二乘的意义上最优地对齐两个点集,也就是说,寻求一个旋转矩阵R和一个平移向量t来满足: (R,t)=argmin┬RϵSO(d),tϵR^d∑_i=1^n▒ω_i‖(Rp_i+t)−q_i‖^2 (1) 其中ω_i>0是每个对点的权重。假设R被
2024-08-16 06:00:00
1556
原创 旋转关系介绍
设旋转矩阵R=[■8(r_11&r_12&r_13@r_21&r_22&r_23@r_31&r_32&r_33)],轴角使用一个单位向量n和一个角度值θ来表示。仿射变换中如果已知轴角ω=θn,其中n=[n_x,n_y,n_z]^T。轴角与欧拉角采用间接转换的方式,从轴角转到欧拉角需要先将轴角转换为旋转矩阵再转换为欧拉角,而从欧拉角转到轴角则需要先将欧拉角每个元素转换为单一的轴角再相乘之后转换为最终的轴角。转轴n是矩阵R特征值1对应的特征向量,求解方程之后进行归一化得到旋转轴。
2024-08-14 06:00:00
339
原创 空间变换其参数化
两个坐标系之间的运动是由一个旋转和一个平移所组成,我们称这种运动为刚体运动。由于刚体运动保持了向量的长度和夹角,相当于我们把一个刚体原封不动地进行移动或旋转,不改变它自身的形状,因此它是一种欧式变换。假设单位正交基(e_1,e_2,e_3)经过了一次旋转变成(e_1^′,e_2^′,e_3^′),那么对于向量a而言,它在两个坐标系下的坐标分别为(a_1,a_2,a_3)^T和(a_1^′,a_2^′,a_3^′)^T。
2024-08-12 06:00:00
593
原创 tof系统标定流程之机台环境配置及测试烧录
socket的作用是安装固定与连接模组,确保连接器的开度足够大是重要的,以致于连接器的盖板不会干预到TOF模组的FOV和激光的ROI。为了估计模组的数量验证环境的数量是重要的,因为即使标定已经正确完成了,验证环境有任何问题也会导致一个错误的结果。6)真实值的精度:设定中的一个主要目标是通过放置模组在具体的和不同的距离上来特性化深度测试。这些样本可以通过在一个大的开阔的没有多路径光线影响的环境中的夹具来实现。4)模组的平行度:TOF模组相对于目标的调整是重要的,这可以尽可能的减少目标与模组之间的位置偏差。
2024-08-10 21:50:29
51
原创 GMMREG:基于高斯混合模型的鲁棒点集配准
不同点在于本节算法采用L2距离来衡量两个点云之间的相似性,而5.7节中的NDT算法采用的是作者定义的匹配势来衡量,实际上是所有线段对之间的差异。并且本节算法中加入了薄板样条插值算法来解决非刚性点云的配准问题。给定一组生猪点云数据,如图1,2所示。利用GMMREG算法进行配准,配准结果如图3所示。可以看到配准效果良好,并且继续增加迭代次数进行TPS插值,还能够继续降低L2距离,使得配准效果进一步上升。该算法选择L2距离来衡量两个高斯混合密度之间的相似性。
2024-08-08 06:00:00
282
原创 一致点漂移算法
一致点漂移算法(CoherentPointDrift,CPD)利用高斯混合模型将两个点集的配准问题转化为概率密度函数的参数估计问题,设其中一个点集中的各点代表高斯混合模型(GaussianMixtureModels,GMM)中各个高斯分量的质心(待配准点集),另一个点集代表高斯混合模型所生成的观测样本数据(参考点集)。不同的变换T(y,θ)中,参数θ是不一样的。基于空间变换估计的配准算法目的是获得最优的空间变换模型参数,通过该模型使坐标变换后,将待配准的点集中的各点准确的配准到目标点集中的对应点。
2024-08-08 06:00:00
282
原创 非刚性ICP算法
dist(T,v_i)表示v_i与其在T中的最近点的距离;若v_i在T上找不到对应点与其最近点间的距离超过某个阈值),则将ω_i置为0,否则将ω_i置为1。非刚性ICP配准通过对V上的每个顶点v_i,利用仿射变换X_i来对模板网格进行变形。由此将V形变成为一个形变模板网格V^′,使得V^′与目标数据T的形状越接近越好,即V^′上的每个顶点在T上的对应点为该顶点在T中的最近点。给定一个对应特征点集合L={(v_i_1,l_1),⋯,(v_i_l,l_l)},即将模板网格的顶点映射到目标数据表面的对应点上。
2024-08-07 06:00:00
363
原创 基于拟牛顿法求解的鲁棒非刚性配准方法(Quasi-Newton Solver for Robust Non-Rigid Registration, Fast_RNRR)
该方法的关键思想是使用Welsch的函数来加强稀疏性,将Welsch函数用于能量函数中对齐项和正则项的构造,以实现鲁棒配准。与l_p正则化不同的是Welsch函数是平滑的,不会导致非光滑优化。V_G初始为空,对于源点集中的所有点,将执行主成分分析(PCA)提取协方差矩阵的最大特征值所在方向作为一个轴,将源点集中所有的点投影到该轴上,并对投影值进行排序。根据排序遍历每个源点集中的点v_i,如果V_G为空,或者当前点v_i到V_G内所有已经存在的每个点的最短测地线距离大于给定半径R,则将其加入到V_G中。
2024-08-06 06:00:00
127
原创 具有重加权位置和变换稀疏性的鲁棒非刚性配准算法 (RPTS)
该算法针对非刚性配准的问题。相较于刚性配准,非刚性配准更具有挑战性。要解决的问题通常是不适定的(ill-posed)、且自由度高,因此对噪声和异常值很敏感。为了提高非刚性配准算法对噪声和异常值的鲁棒性,李坤等人提出了这个具有重加权位置和变换稀疏性的鲁棒非刚性配准算法。
2024-08-05 06:00:00
133
原创 tof系统标定流程之validation原理与代码详解
tof系统标定流程之validation原理与代码详解validation介绍validation流程validation实现代码validation介绍完成了以上所有的标定流程后,下一步就是进行标定结果的验证,标定验证过程是标定的反向过程,具体的用标定的模组采集固定距离及完整视场下的深度数据,将每一个标定环节的标定参数从模组的eeprom中读出,或者以文件的形式记录的参数读入,用读入后的参数对深度数据进行补偿。周期误差标定读入傅里叶级数表达式系数4个或者6个正余弦系数,构造傅里叶级数,对相位值用傅里
2024-08-03 11:30:32
44
原创 tof系统标定流程之双频测距与代码详解
双频测距的计算流程是,对每个单独的频率分别进行周期误差,固定相位模式噪声,温度,lens的标定以及光程差还原,得到单个频率的标定后深度值,将两个频率的测试距离进行查找表法计算融合后的测距范围,具体的将两个频率在周期最小公倍数内的相位组合成查找表,用两个频率的实际测试相位在查找表中找到对应的组合点,组合点对应的测试距离即为融合后的测试距离。f2,其中m,n取整数,f1,f2表示测距范围用距离或相位表示。如下代码是分别对100MHZ和80MHZ频率进行相位展开相位解包裹的双频融合测距算法的核心函数。
2024-08-03 11:18:39
73
原创 tof系统标定流程之光程差还原与代码讲解
什么是光程差,即光在发射端到接收端所走过的距离。为什么要进行光程差还原,因为模组的调制激光是可以看成由空间中一个点向外发射到达被射物体表面,而不是由同一个距离的不同点向外发射激光,因此理想情况下对于平面表面的每个点的光程都不一样,就是由光程差的差异,最终拍摄平面得到深度不是一个平面而是抛物曲面,因此需要对光程差还原成相同的光程,即每个平面点的光经过路程相同相当于平行照射得到深度才是平面。
2024-08-03 10:50:26
38
原创 泛化的最近点迭代法(Generalized-ICP)
在标准ICP算法中,通过迭代使得对应点的欧氏距离即∑▒||R·b_i+t−m_i||^2最小化,但point-to-plane变体中,是使源表面上的点沿目标表面的曲面法线投影到切平面子空间上的误差最小化,如图,源表面上的点s1沿目标表面上的点d1的法线方向l1投影到d1的切平面上,投影点到d1的距离即为所求误差。实际计算中,这个旋转矩阵是通过计算该点附近的点的协方差矩阵,并进行奇异值分解(Singular Value Decomposition,SVD)得到的,即为Σ ̂=UDU^T中的矩阵U。
2024-08-02 06:00:00
847
原创 tof系统标定流程之fppn标定及代码详解
仅仅拍摄一次是不够的,因为棋盘格的黑白区域有不同的反射率,白色反射率在85%以上,黑色反射率20%左右,因此计算得到的深度值在黑色区域是不准确的需要过滤掉,只能使用白色区域,而过滤掉后的有效深度像素点的数据量比较少,所以需要相对棋盘格旋转模组三次,每次旋转90度,依次以0,90,180,270四个角度拍摄棋盘格,分别得到四张IR图和四个角度的四相位图即四张深度图,四张深度图分别过滤黑色棋盘区域,过滤的方法是利用四相位图计算出的置信度图,置信度低的区域对应黑色区域过滤掉。由此产生的全局偏移,所有像素都有。
2024-08-01 06:00:00
52
基于ros2的lds激光雷达sdk程序,c++程序
2024-07-13
rk3566平台,UVC相机传输配置方法与示例代码,c++程序
2024-08-04
基于rk3566-npu的rgbd相机目标检测模型部署,c++程序
2024-08-04
基于rk3566的mipi-camera内核驱动程序开发, c语言,linux内核驱动开发
2024-08-03
linux 系统cpu占用率,进程线程状态监控,shell脚本
2024-07-13
Linux系统相关问题,ota,文件系统,外设驱动
2024-08-24
从零开发rk3588最小系统板都有哪些步骤和参考资料
2024-08-22
有哪些基于线特征的slam视觉定位方案
2024-08-21
Fpga如何部署深度学习神经网络
2024-08-10
用二维码辅助定位时二维码能否满足精确定位或粗定位的功能
2024-07-21
如何用二维码辅助slam定位
2024-07-12
线特征和深度学习特征点做slam
2024-07-12
如何解决2d激光slam中的退化问题
2024-07-09
2d激光slam加入视觉前端里程计的标定问题
2024-07-09
如何提高双目视觉计算精度
2024-07-08
isaac sim仿真软件使用
2024-04-19
360环视avm算法离线仿真
2024-04-18
2d栅格点云粗匹配除了暴力匹配还有哪些算法
2024-04-16
2d激光slam叠图问题
2024-04-14
rk3566双目相机用v4l2采图,图像数据不更新,只有一帧
2022-06-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人