论文阅读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.mzph.cn/news/611017.shtml

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

相关文章

浅谈WAF——守护网络安全的无形之盾

随着信息化时代的到来,网络已逐渐融入我们日常生活的方方面面。然而,与此同时,网络安全问题却也如影随形。为此,一种名为“Web应用防火墙”的工具应运而生,简称”WAF”。 WAF是什么? WAF(Web …

实现LCM在docker之间的通信

目录 1.docker容器互联 新建网络 连接容器 2.设置环境变量 3.在两个docker之间实现通信 1.docker容器互联 新建网络 $ docker network create -d bridge test-net 连接容器 运行一个容器并连接到新建的 test-net 网络: $ docker run -itd --name lcm_1 --network tes…

通过iFrame嵌入Grafana页面或pannel

前言 在当前数据驱动的时代,有效地可视化和监控关键性能指标变得至关重要。Grafana,作为一个开源的监控解决方案,提供了强大的功能来呈现和分析数据,从而帮助用户及时洞察和响应各种情况。随着技术的不断发展,将这些信…

docker 容器添加指定网络地址

docker 容器添加指定网络地址 在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下: nginx …

直播美颜SDK开发指南:从零开始搭建主播美颜工具

本篇文章,笔者将带你从零开始,一步步搭建主播美颜工具的开发环境,介绍关键技术和步骤,助你打造出令人惊艳的直播美颜SDK。 第一步:环境搭建 在开始SDK的开发之前,确保你的开发环境准备就绪。选择一个适合的…

挑战Transformer的新架构Mamba解析以及Pytorch复现

今天我们来详细研究这篇论文“Mamba:具有选择性状态空间的线性时间序列建模” Mamba一直在人工智能界掀起波澜,被吹捧为Transformer的潜在竞争对手。到底是什么让Mamba在拥挤的序列建中脱颖而出? 在介绍之前先简要回顾一下现有的模型 Transformer:以其注意力机制而…

一文读懂数字工厂管理系统解决方案

随着科技的飞速发展,数字化转型已成为企业提升竞争力、优化运营管理的必由之路。数字工厂管理系统作为这一转型的核心组成部分,正逐渐受到业界的广泛关注。本文将深入探讨数字工厂管理系统解决方案的核心理念、功能模块、实施步骤及其对企业发展的影响。…

Kubernetes 核心实战之三(精华篇 3/3)

文章目录 6、Ingress ★6.1 安装 Ingress6.2 访问6.3 安装不成功的bug解决6.4 测试使用6.4.1 搭建测试环境6.4.2 配置 Ingress的规则6.4.3 测试I6.4.4 测试II6.4.5 路径重写6.4.6 限流 7. Kubernetes 存储抽象7.1 NFS 搭建7.2 原生方式 数据挂载7.3 PV 和 PVC ★7.3.1 创建 PV …

语义解析:连接自然语言与机器智能的桥梁

文章目录 01 语义解析的应用场景场景一:场景二: 02 语义解析和大模型的关系 语义解析技术可以提高人机交互的效率和准确性,在自然语言处理、数据分析、智能客服、智能家居等领域都有广泛的应用前景。特别是在大数据时代,语义解析能…

2024年甘肃省职业院校技能大赛 “信息安全管理与评估”赛项样题卷①

2024年甘肃省职业院校技能大赛 高职学生组电子与信息大类信息安全管理与评估赛项样题 第一阶段:第二阶段:模块二 网络安全事件响应、数字取证调查、应用程序安全第二阶段 网络安全事件响应第一部分 网络安全事件响应第二部分 数字取证调查第三部分 应用程…

[Linux进程(一)] 什么是进程?PCB的底层是什么?以及进程标识符pid与ppid

文章目录 1、前言2、描述进程 — PCB(os怎么管理进程呢)3、查看进程3.1 方法一3.2 方法二 4、系统调用获取进程标示符(PID)4.1 获取进程的ID4.2 获取进程的父进程ID 5、系统调用创建子进程-fork 1、前言 大家经常都在讲进程,而它到底是什么呢? 这里给大…

Android逆向学习(六)绕过app签名校验,通过frida,io重定向(上)

Android逆向学习(六)绕过app签名校验,通过frida,io重定向(上) 一、写在前面 这是吾爱破解正己大大教程的第五个作业,然后我的系统还是ubuntu,建议先看一下上一个博客,关…

Zookeeper设计理念与源码剖析

Zookeeper 架构理解 整体架构 Follower server 可以直接处理读请求,但不能直接处理写请求。写请求只能转发给 leader server 进行处理。最终所有的写请求在 leader server 端串行执行。(因为分布式环境下永远无法精确地确认不同服务器不同事件发生的先后…

逐步分解,一文教会你如何用 jenkins+docker 实现主从模式

jenkins 主从模式想必大家都不陌生,大家在学习过程中为了学习方便都在自己本地搭建了 jenkins 环境,然后通过 javaweb 方式实现,对于 docker 下实现主从模式大家好像兴趣挺大。 今天就通过这篇文章给大家讲讲怎么玩,希望对大家有帮…

Vivado开发FPGA使用流程、教程 verilog(建立工程、编译文件到最终烧录的全流程)

目录 一、概述 二、工程创建 三、添加设计文件并编译 四、线上仿真 五、布局布线 六、生成比特流文件 七、烧录 一、概述 vivado开发FPGA流程分为创建工程、添加设计文件、编译、线上仿真、布局布线(添加约束文件)、生成比特流文件、烧录等步骤&a…

交叉编译ARM64架构electron详解

基本介绍 本文主要参考Electron官方文档中 构建说明 和 构建步骤(Linux) 在amd64环境内构建arm64的electron包。 如果是arm64环境请查看文章arm64架构编译electron长征路 一、环境说明 操作系统版本:统信1060 操作系统架构:amd64 内存:32G 如下图: electron版本:v25…

企业微信forMAC,如何左右翻动预览图片

1、control commandshifd 进入企业微信的debug调试模式 2、按照如下步骤选择 3、重启企业微信

【K8S 存储卷】K8S的存储卷+PV/PVC

目录 一、K8S的存储卷 1、概念: 2、挂载的方式: 2.1、emptyDir: 2.2、hostPath: 2.3、NFS共享存储: 二、PV和PVC: 1、概念 2、请求方式 3、静态请求流程图: 4、PV和PVC的生命周期 5、…

基于ubuntu2204使用kubeadm部署k8s集群

部署k8s集群 基础环境配置安装container安装runc安装CNI插件部署1.24版本k8s集群(flannel)安装crictl使用kubeadm部署集群节点加入集群部署flannel网络配置dashboard 本集群基于ubuntu2204系统使用kubeadm工具部署1.24版本k8s,容器运行时使用…

Unity | Shader基础知识(第九集:shader常用单词基础知识速成)

目录 一、顶点(Vertex)和法线(Normal) 二、UV信息 三、 基础数据种类 1 基础数据种类 2 基础数据数组 3 基础数据数组的赋值 4 对数据数组的调用 四、 基础矩阵 1 基础矩阵种类 2 对矩阵数组的调用 2.1对一个数据的调用 2.2对多个数据的调用 2…