论文阅读1---OpenCalib论文阅读之factory calibration模块

前言

该论文的标定间比较高端,一旦四轮定位后,可确定标定板与车辆姿态。以下为本人理解,仅供参考。

工厂标定,可理解为车辆相关的标定,不涉及传感器间标定

该标定工具不依赖opencv;产线长度一般2.5米
Factory Calibration Tools:四轮定位+多位姿标定板

1、Calibration Board Setup Tools

1)根据传感器安装位姿,生成标定板放置范围
2)检测当前环境标定板姿态是否合适

2、Calibration board detection:

1)标定线可使用5种类型标定板[chessboard, circle board, vertical board, aruco marker board, and round hole board]

2)chessboard
板子边沿设置为白色;选定初始化阈值进行自适应二值化图片检查,拓展到黑格子的四个角点;候选点,通过添加约束条件聚类获取角点;最后输出角点检测结果。

3)circle board
高精度,由于圆边沿的像素都会使用以减低图像噪点,保证了高精度
从二值化图片中提取圆:最大、最小边沿与轮廓中心距离满足一定阈值,则该轮廓判断为像素圆;
水平圆心连线通过Ransac算法与斜率实现[筛选条件:平行、半径接近、重投影重合、线段距离和半径距离限制]

4)vertical board
鲁棒性。灰度图获取角点,找三条通过角点的垂直线。对于每一条直线组合,将左右直线上的角点投影到中间的直线上,通过投影线上角点与图案特征之间的距离进行筛选和分割,得到正确的角点

5)aruco marker board
灰度图像二值化,邻域搜索候轮廓,轮廓受边数量约束;条件筛选获取四边形;过滤过于接近的四边形。然后,通过径向变换从四边形中提取外矩形,用 127 的阈值对图像进行去二值化处理,切割图像以获得二维码区域,并用 6*6 的网格划分二维码。根据二维码库获取码id,进而获取角点在标定板上位置

6) round hole board
轮廓匹配获取圆心,根据已知板子尺寸与孔尺寸信息,二维遍历进而匹配。标定板激光点云圆轮廓获取,提取图片标定板园轮廓,匹配算得外参。

3、相机标定

工厂标定:
需要:智驾产品正常运作前提是标定

一般标定条目:
相机标定包括校准灭点位置、相机到地面的单应矩阵计算,相机与车辆标定

工厂标定前,需要进行四轮定位

1)灭点标定:两条视觉平行线交点就是灭点。所寻找的消失点是与车身坐标平行的平行线的交点,那么灭点的计算方法就是相机通过标定板的一条线,并且这条线与车身保持平行。

2)camera与车辆标定:在出厂标定之前,需要对要标定的汽车进行四轮定位。四轮定位后,标定板板相对于车身中心的坐标被固定,然后使用相机识别标定板并进行标定。可以得到相机相对于车体坐标的姿态,这通常由 PnP 算法求解[个人未进行公式推导]
3)camera与地面标定:
在这里插入图片描述
A-VP与B-VP平行,纵坐标距离可根据距离公式获取,横坐标相同。根据ABCD四点的像素坐标与世界坐标系的关系,可算得相机到地面的单应矩阵[个人未进行公式推导]
距离公式计算参考:
在这里插入图片描述
在这里插入图片描述
补充:上图基于针孔模型理解

4、lidar到车辆标定

已知标定板在车辆坐标系下的姿态[个人理解,采用百度类似标定房,四轮定位后,每块标定板姿态都是可知的],lidar也能测量出标定板在lidar坐标系下的姿态,那么根据公式:

在这里插入图片描述
残差函数:
在这里插入图片描述
那么,可以算得lidar到车辆的标定外参

资料来源:
OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving
Vision-based ACC with a Single Camera: Bounds on Range and Range Rate Accuracy

#################
好记性不如烂笔头
积硅步期千里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/237712.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础知识:整理9 文件的相关操作

1 文件的打开 # open() 函数打开文件 # open(name, mode, encoding) """name: 文件名(可以包含文件所在的具体路径)mode: 文件打开模式encoding: 可选参数,表示读取文件的编码格式 """ 2 文件的读取 文…

Find My资讯|AirTag 2或推迟上市,Find My功能十分强大

苹果于 2021 年4月推出了初代 AirTag。苹果已将第二代 AirTag 的推出推迟到 2025 年,目前苹果官方并不急于推出AirTag 2的原因还有AirTag所搭载的搜寻定位功能非常的强大,在市场上几乎没有任何竞争对手可言。 AirTag使用蓝牙和苹果设备的“查找我的”网…

Redis命令 - Lists命令组常用命令

先创建一个 key 叫做 mylist,mylist存一个list。 list数据类型底层是一个链表。先进后出,后进先出。 命令中的L(Left)、R(Right)代表链表的头部L(下标0的位置)和尾部R(…

uni-app分包预下载

模块的二级页面,按模块处理成分包页面,有以下好处: 按模块管理页面,方便项目维护。减少主包体积,用到的时候再加载分包,属于性能优化解决方案。 ::: tip 温馨提示 通过 VS Code 插件 uni-create-view 可…

AI与编程学习

在C语言中,指针通常与字符数组或字符串打交道时会涉及到ASCII码的转换,而不是用于表现多位数的第一位。48这个值对应的是ASCII码表中数字字符0的编码。 如果你有一个表示多位数的字符数组,例如: c char number[] "1234&qu…

TortoiseSVN·文件锁定与清理

安装 TortoiseSVN 的时候,选择 svn 命令可用, 选择 will be intalled on local hard drive 。 在锁定的文件夹内 cmd 进入终端,输入 find . -type f -name ".svn/lock" -exec rm -f {} \; 删除所有锁定文件。进行清理操作:svn clea…

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本,修复了一个远程代码执行漏洞,攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行,从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before 5.1…

LeetCode刷题.15(哈希表与计数排序解决41. 缺失的第一个正数)

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 示例 2: 输入:nums …

使用setdefault撰写文本索引脚本(出自Fluent Python案例)

背景介绍 由于我们主要介绍撰写脚本的方法,所以用一个简单的文本例子进行分析 a[(19,18),(20,53)] Although[(11,1),(16,1),(18,1)] ambiguity[(14,16)] 以上内容可以保存在一个txt文件中,任务是统计文件中每一个词(包括字母,数…

wireshark使用教程

目录 windows平台安装Wireshark组件选择Additional TasksPacket CaptureUSB CaptureNpcap Installation Options Ubuntu上安装 Wireshark不使用 sudo 运行 Wireshark 使用GUI抓包使用命令行抓包确定抓取哪个网卡的报文抓取数据包停止抓包设置过滤条件 参考资料 Wireshark 是一款…

系列七、Spring Security中基于Jdbc的用户认证 授权

一、Spring Security中基于Jdbc的用户认证 & 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式,其实Spring Security中还提供了基于Jdbc的用户认证 & 授权,再说基于Jdbc的用户认证 & 授权之前,不得不说一下Spring Se…

DM数据库安装注意事项

数据库安装注意事项 一、安装前 一些参数需要在数据库创建实例前找用户确认。 参数名参数掩码参数值备注数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K,建议默认:32),可以为 4K、8K、16K 或 32K 之一,选择的页大小越大…

1.5矩阵元素的引用

通过下标来引用矩阵的元素 A(3, 2)表示A矩阵第3行第2列的元素。 >> arr [1,2,3;4,5,6]; >> arr(4, 5) 10arr 1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 10>> 如果引用元素超过矩阵的大小将自…

React项目实战--------极客园项目PC端

项目介绍:主要将学习到的项目内容进行总结(有需要项目源码的可以私信我) 关于我的项目的配置如下,请注意下载的每个版本不一样,写的api也不一样 一、项目介绍 1.资料 1)短信接收&M端演示&#xff1a…

SpringFramework实战指南(二)

SpringFramework实战指南(二) 2.1 Spring 和 SpringFramework概念2.2 SpringFramework主要功能模块2.3 SpringFramework 主要优势 2.1 Spring 和 SpringFramework概念 Spring-ioc 广义的 Spring:Spring 技术栈(全家桶&#xff0…

学会编写自定义configure脚本,轻松实现定制化配置

学会编写自定义configure脚本,轻松实现定制化配置 一、configure脚本的作用和重要性二、configure脚本的基本结构和语法三、编写自定义configure脚本的步骤四、示例五、常见的问题总结 一、configure脚本的作用和重要性 configure脚本是用于自动配置软件源代码的脚…

周赛379(排序、分类讨论、记忆化搜索(动态规划))

文章目录 周赛379[3000. 对角线最长的矩形的面积](https://leetcode.cn/problems/maximum-area-of-longest-diagonal-rectangle/)排序 [3001. 捕获黑皇后需要的最少移动次数](https://leetcode.cn/problems/minimum-moves-to-capture-the-queen/)分类讨论 [3002. 移除后集合的最…

监控平台zabbix介绍与部署

1. 完整的项目 业务架构:客户端 -> 防火墙 -> 负载均衡(四层、七层)-> Web缓存/应用 -> 业务逻辑(动态应用)-> 数据缓存 -> 数据持久 运维架构:运维客户端 -> 堡垒机/跳板机&#x…

Docker详解

文章目录 Docker1.初识Docker1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操作系统环境差异1.1.4.小结 1.2.Docker架构1.2.1.镜像和容器1.2.2.DockerHub1.2.3.Docker架构1.2.4.小结 1.3CentOS安装Docker1.3.1.卸载(可选&…

【Python机器学习】SVM——预处理数据

为了解决特征特征数量级差异过大,导致的模型过拟合问题,有一种方法就是对每个特征进行缩放,使其大致处于同一范围。核SVM常用的缩放方法是将所有的特征缩放到0和1之间。 “人工”处理方法: import matplotlib.pyplot as plt from…