- 博客(9)
- 收藏
- 关注
原创 ARM intrinsics 实战(2):逐像素标定1
其实逐像素标定也比较简单,底层逻辑就是给每个像素减去一个偏差值。重点在于偏差值怎么得到。但是在这里,我们项目上偏差值是提前计算好,会有一个json格式的一个标定文件,对于我们neon加速来说,简化后的逻辑就是:给矩阵的中的每个元素执行减法操作。难点在于偏差值的计算,偏差值需要根据矩阵中元素的值来进行计算。
2023-07-19 15:07:37 143
原创 ARM intrinsics 实战(1):全局标定-2
关于全局标定的介绍以及这篇文章中的用到的部分代码的完整代码可以参考我上一篇文章,这里贴下链接:这篇文章主要是为了测试一下三种寻址方式的快慢,以及完整的全局标定代码,另外,为了方便后续的多线程加速,会把相关的代码都放在一个函数,。
2023-07-17 14:06:42 219 1
原创 ARM intrinsics 实战(1):全局标定-1
全局标定的数学逻辑很简单,就是给距离矩阵减去一个固定偏差。固定偏差有相应的计算方法。类似于A=B-offset;本项目的数据类型采用的是float32位,处理器是128位。总体完成目标:(1)实测三种寻址方式的快慢。寻址方式有三种,一种是按行读取,一种是按列读取,一种是按小矩阵读取。(2)完成全局标定的ARM intrinsics优化本文目标:跑通ARM intrinsics,并且结果无误。
2023-07-12 15:12:10 319 2
原创 树莓派CM4 安装系统
初始化需要注意的是更新Raspberry Pi OS默认自带的应用程序,如果你不是要求一定要用最新版本的程序的话,可以点击Skip跳过,否则点Next自动升级。操作系统就是之前下载的系统,存储卡就是树莓派生成的盘符,如果你之前没有格式化的话,可能会要求你格式化,按提示来就行。注意,如果不能进入初始化界面或者初始化界面闪退,以及初始化完成后,键盘鼠标不动之类的,就断电重启一次就可以了。之后用A对A线连接树莓派和电脑,注意不是树莓派上,所有的usb口都可以烧录。连接好后,能够在电脑上看到树莓派,如下所示;
2023-07-12 14:01:49 1001 1
原创 NEON intrinsics学习笔记(3):NEON intrinsics示例
(1)使用NEON interinsics 加速,实质上就是使用NEON interinsics封装的函数替代原先c中的函数,需要添加头文件,"arm_neon.h"但要注意以下几点:(NEON interinsics封装的函数可以在这个链接里查询:https://developer.arm.com/architectures/instruction-sets/intrinsics/)1、NEON interinsics的逻辑与c语言的逻辑不同,更接近于汇编语言的逻辑。
2023-06-29 13:27:30 447 1
原创 NEON学习笔记(2)NEON Intrinsics
ARM 编译器工具链中的 NEON Intrinsics是一种编写 NEON 代码的方法,该代码比汇编程序更容易维护,同时仍然保持对生成哪些 NEON 指令的控制。NEON Intrinsics是编译器用适当的 NEON 指令或 NEON 指令序列替换的函数调用。然而,您必须优化代码以充分利用 NEON 单元提供的速度提升。有些数据类型对应于包含不同大小元素的 NEON 寄存器(D 寄存器和 Q 寄存器)。这些允许您创建直接映射到 NEON 寄存器的 C 变量。这些变量被传递给 NEON 内部函数。
2023-06-29 09:15:37 1319 1
原创 相机标定-opencv
相机标定采用的是opencv自带的标定文件。主要有下面几个文件:(1)camera_calibration.cpp,这个文件就是生成标定参数的文件,前期准备好后,只需要运行这个文件就可以了。(2) default.xml PS:有的opencv版本里不叫这个名字,叫in_VID5.xml,但内容是一样的,具体的需要查看camera_calibration.cpp文件中这个位置:这个文件中需要修改的是棋盘格内角点的数目,就是棋盘格的数量减1square_size这个参数,实测无影响(3)VID5
2023-06-08 13:19:29 821 1
opencv相机标定文件
2023-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人