一、挑件海思文档重要描述

1、拼接原理:
使用HiPQTools工具HiPQStitchingTool进行图像拼接,就要先进行标定,确定相机之间的位置关系,和畸变校正,
前面写的文章中,介绍了,使用opencv的surf特征匹配和最佳缝合线算法,进行处理,然后离线计算获得参数,查表法进行图像拼接
存在局限性,只能适合静态的放置相机,和纹理丰富的场景,安防监控,不适合运动的场景,比如车载运动的全景场景。

全景拼接的基本方法是将各路采集的图像按照对应的镜头模型投影到虚拟球面,进行拼接融合,然后再通过设置的投影方式输出平面全图。AVSP 标定的目的就是通过标定估计出相应的镜头模型参数,包括内部参数、外部参数及有效区域。其中内部参数用于矫正镜头的畸变,外部参数用于匹配不同镜头之间的相对位置,有效区域的标定主要是为了减小重叠区从而减小系统的处理压力,特别是鱼眼图像,由于鱼眼图像有效区域为圆饼图,故需要将相应的圆饼图区域标定出来进行处理,其他区域省略,提高系统处理效率。

步骤 1 模型标定。
模型标定阶段每个产品类型只需标定一次,可从同一批产品中挑选一个结构最佳的机器作为模型标定机器。标定时该机器需要拍取大量的棋盘格图片,以保证标定结果的鲁棒性。第一步标定完成后可使用 AVSP 标定工具生成模型标定结果.cal 文件。模型标定需要一个特定的棋盘格,推荐使用规格如图 3-2(a)所示,具体规格如下:棋盘格内角点数为 9*6,内角点的定义如图 3-2(b)红圈所示,单个格子大小 5cm。棋盘格边缘保留至少 8cm 以上的白色边缘,有利于提高棋盘格检测的速度及准确性

角点,指的是如下红圈的点。

标定时需确定镜头 FOV 及镜头类型,便于模型计算快速收敛。其中 FOV 指 sensor 成像的水平视角,即图像宽度所对应的 FOV。另外镜头模型提供三种类型,分别为 Non Fisheye, Fisheye Full Fov 及 Fisheye Circular Fov,其区别如图 3-3 所示。一般情况下,
长焦畸变较小的镜头选择 Non Fisheye 类型,短焦广角镜头选择 Fisheye Full Fov 模型,因为一般广角镜头也是鱼眼模型,鱼眼镜头选择 Fisheye Circular Fov

模型标定需要抓取以下两类场景的图片:只要相邻的相机,有重叠区域的,都要进行一对一标定。
标定单镜头的畸变矫正的场景
该场景标定图用于标定镜头内参。每个镜头至少拍取 10 张图像。
保存时以<固定前缀名><镜头号><帧序号>.jpg 来对图像进行命名。
拍取时,将棋盘格放置于镜头前方,并不断变换棋盘格方向、距离及在画面中位
置,使之均匀覆盖全画面,且至少涵盖两种距离以上。
对于非鱼眼镜头,近距离棋盘格约占画面 1/2 即可,远距离约占画面 1/4;
对于鱼眼镜头,由于 FOV 较大,近距离棋盘格约占画面 1/5,远距离约占画面
1/10 左右,抓拍时建议将棋盘格均匀绕鱼眼镜头一周,采集不同位置的棋盘格图
像。
标定相邻镜头相对位置的场景
该场景标定图用于标定镜头外参。每组镜头至少抓拍 10 对图片。
保存时以<固定前缀名><镜头号>
<较小镜头号><较大镜头号>_<帧序号>.jpg 来对图像进行命名。
拍取时,需先确定相邻镜头,每组相邻镜头同时抓拍。抓拍时将棋盘格放置于重
叠区内,相邻镜头都要看到完整的棋盘格,不断变换棋盘格距离、小幅度旋转,
并且变换在重叠区的位置,使之均匀覆盖整个重叠区,特别是需要主要覆盖边角
位置且至少涵盖 3 种距离以上。



步骤 2 产线标定.
产线标定阶段每个产品个体都需要标定,以解决个体之间的差异,标定时只需将个体放在特定球形环境里每路拍取一张图像即可。将拍取的图像与第一步生成的.cal 文件作为第二步输入,即可使用 AVSP 标定工具生成针对该个体的标定结果.cal 文件。
一般不需要产线标定,不进行量产的。

步骤 3 生成 LUT 及 BBox 表。
步骤 3 之前,需要制作每路输入的 Mask 模板图像,用于标识出输入图像的有效区域。Mask 图像必须是与输入分辨率相同的.png 图像,白色区域表示有效区域,黑色区域表示无效区域。对于双鱼眼结构,mask 为白色的圆形图像,如图 3-9(a)所示。对于水平环绕四鱼眼结构,由于水平方向重叠区较大,mask 推荐为椭圆形图像,将水平方向裁剪剩余大约 120°视角,垂直方向不裁剪,如图 3-9(b)所示。
对于非鱼眼图像,一般来说,mask 为全白的图像即可,如果需要裁剪一些重叠区域,则可以制作成白色的矩形图像,如图 3-9©和图 3-9(d)所示。大部分情况下,并不需要裁剪掉部分重叠区域,只有当系统处理压力较大时,可以通过调整 Mask 的有效区域,减小重叠区,从而减小系统的处理性能压力。但需要特别注意的是,重叠区的裁剪必须格外小心,裁剪过多会导致融合区不够平滑,影响拼接效
果。一般情况下,有效区域的边缘定义不需要太精确,在圆饼图半径及中心点个体差异小于 2%时,相同产品类型的相机可以共用一套 mask 图片。若个体差异大于 2%,则可能造成融合区清晰度下降或者融合区大小不对称问题。而非鱼眼图像不存在无效区域,故一般情况下相同产品类型的相机共用一套 mask 图片即可。

二、使用工具,模拟拼接
标定工具对标定图像命名的要求是:图像编号需按照从 0 开始顺序编号。故标定图像抓拍时可将 pipe0 命名为 camera0,pipe2 命名为 camera1,pipe4 命名为 camera2,pipe6命名为 camera3,标定图抓拍后进行模型或者产线标定,并生成标定文件(即.cal 文
件)。

在使用标定工具之前,用户需要进行图像抓拍。拼接标定要求,抓拍可分为两种类
型:
 标定单镜头的畸变矫正的图片,可将棋盘格放置镜头前方,并不断变换棋盘格方向及位置,每个镜头至少抓取 10 张图像。保存时以<固定前缀名><镜头号>_<帧序号>.jpg 来对图像进行命名。

 标定相邻镜头相对位置的图片。此时需先确定相邻镜头,每组相邻镜头同时拍取标定图片,抓拍时将棋盘格放置于重叠区内,相邻镜头都要看到完整的棋盘格,不断变换棋盘格在重叠区的位置或距离或小幅度旋转,每个重叠区至少抓拍 10 对
20 张图片。保存时以<固定前缀名><镜头号><较小镜头号><较大镜头号><帧序号>.jpg 来对图像进行命名。

1、拍摄图片
没有相机,事先下载opencv里自带标定的图片,选取了十张图片,命名一定要按文档,否则无法标定的,开始弄错了,
选的两个相机,从camera1开始,后面改成camera0开始,且要以01,02、、10这样命名

各相机畸变标定图命名如下:

相邻镜头命名如下:


准备mask图片,可以用画图工具,画一张相同分辨率的白色图片,相机规格都是一样的,可以用同一张。

2、使用hipq工具,标定,生成.cal文件

将前面的图片,全部放在同一个文件夹下,不能用中文,在工具里指定图片所在路径。

我的是两个相机,route count,选2,勾上use the same option,所以相机规格一致,改变一个设置时,全部都被修改,
修改相机分辨率,宽度,高度,和相机镜头的水平视角大小fov,镜头类型,我的是普通镜头,filename文件命名,我的图片命名都是以camera开头命名的。count x,count y ,指的是标定棋盘格的角点个数,横轴上,我有9个,纵轴6个,棋盘格大小是25mm。
点击calibrate,需要等待一会,

标定时,如果一直busy,说明图片有问题,可以看下工具下的tmp目录下,是否检测到了角点,会把正确的图片读入到当前文件下,

成功后,保存.cal文件,直接保存。

3、生成lut表
打开上一步的.cal文件,加载mask图片,spher distense是标定距离,meter是米的单位,可别写错了,我这里写错了20,

最后会生成这样的.bin文件,

下载到板端时,可以生成.yuv图像,

三、hipq软件预览

将.cal、.bin加载到工具,打开文件,进行使用,预览,拼接。camera count和src分辨率是不能手动修改的,点击loadimage,和load lut表
自动加载设置。
手动设置我们想要的dst,分辨率,投影中心,投影方式(等距柱面投影,柱面投影,直线投影),旋转角度,进行观看。
效果惊人,完美,比自己标定,进行拼接,效果太赞了,不知道,内部算法怎么实现的,有没有用特征匹配算法进行拼接,纯粹投影到球面,标定位置关系,进行拼接的?????前期,自己使用matlab,进行标定,转换到同一球面坐标系,进行拼接,没有这么好。

等距柱面投影

调整投影模式,柱面投影

直线投影

调整观察投影角度偏航角

四、下载到板端

将.cal、.bin,.yuv,下载到板端,后续通过应用层,avs自带的例程,打开文件,进行实时拼接使用。

HiPQTools工具HiPQStitchingTool标定(二)相关推荐

  1. 工业机器人工具中心点标定的意义_一种利用平面标定板的机器人工具中心点标定方法_2015108676182_说明书_专利查询_专利网_钻瓜专利网...

    技术领域 本发明涉及机器人工具中心点(Toolcenterpoint,TCP)标定方法,尤其涉及一种利用平面标定板的机器人工具中心点标定方法. 背景技术 机器人工具中心点(Toolcenterpoin ...

  2. 海思3516DV300系列HiPQTools工具ISP图像调试_AWB校定

    海思3516DV300系列HiPQTools工具图像调试_AWB校定 AWB标定前要先对黑白电平进行一次标定 采集图像 AWB工具标定 导入raw,calibrate出结果 把值填到对应的AWB模块里 ...

  3. halocn标定找旋转中心_机器人工具坐标系标定原理

    工业机器人使用过程中经常在机器人末端法兰面安装不同的工具来满足实际生产需求,为了准确控制工具运动的位置与姿态,需要对工具所在坐标系进行标定. 对于工业机器人来说,基坐标 与 末端法兰面所在坐标系 之间 ...

  4. hutool工具类生成二维码案例

    hutool工具类生成二维码案例 一.环境: 添加hutool工具类依赖,hutool生成二维码是利用Google的zixing,而且不是强依赖,所以还需引入zxing依赖 <dependenc ...

  5. 数据分析---数据处理工具pandas(二)

    文章目录 数据分析---数据处理工具pandas(二) 一.Pandas数据结构Dataframe:基本概念及创建 1.DataFrame简介 2.创建Dataframe (1)方法一:由数组/lis ...

  6. Windows磁盘管理工具Diskpart之二 管理动态磁盘

    Windows磁盘管理工具Diskpart之二 管理动态磁盘 2010-10-25 环境:   Window server 2003 SP2英文版   Vmware 7.1.1 目的:   熟悉对动态 ...

  7. 3dmax:3dmax的软件两大常用工具之基本二维图形(线、圆、椭圆、弧、多边形、星形、文本、螺旋线、截面、扩展样条线)之详细攻略

    3dmax:3dmax的软件两大常用工具之基本二维图形(线.圆.椭圆.弧.多边形.星形.文本.螺旋线.截面.扩展样条线)之详细攻略 导读:基本二维图形绘图时,当绘制超出视口范围,按住I键即可. 目录 ...

  8. 白鹭(egret)工具集介绍二

    白鹭[egret]工具集介绍二 前言 一.Egret Wing 3 二.Res Depot 三.Texture Merger 四.Egret Feather 五.Egretia Server 六.Eg ...

  9. 相机标定(二)——图像坐标与世界坐标转换

    相机标定(一)--内参标定与程序实现 相机标定(二)--图像坐标与世界坐标转换 相机标定(三)--手眼标定 一.坐标关系 相机中有四个坐标系,分别为world,camera,image,pixel w ...

最新文章

  1. 年轻人裸辞,需不需要“冷静期”?
  2. linux c 内存泄露 检查工具
  3. 自定义Django的admin界面
  4. 王道计算机考研 数据结构 (查找-上)
  5. nodejs模块导入导出
  6. LeetCode 1035. 不相交的线(最长公共子序列DP)
  7. 深度学习入门|第5章 误差反向传播法(二)
  8. 局域网计算机维护工具,教你用“小浣熊局域网维护小工具”,从此解脱烦恼!...
  9. 双极性根升余弦信号qpsk_基于CCSDS协议的中频信号源设计与实现
  10. 用极大似然法估计因子载荷矩阵_因子分析的方法和公式 - Minitab
  11. virtuoso配合calibre进行电路后仿真
  12. tar 打包压缩命令
  13. 高效能人士的七个习惯读后感与总结概括-(第二章)
  14. 软件开发实训(720科技)――第五课:前端css规范
  15. GRE Over IPSec技术
  16. jacod 使用 WPS或 office相关注册表信息
  17. 存储知识 -- 什么是LUN?LUN有什么用?对理解存储设备很有好处
  18. 【human nature】:马云的故事
  19. ubuntu 16.04极速安装ROS-Kinetic,以及常见错误处理
  20. Java顺序结构之数学函数

热门文章

  1. 算法编程12:单调递增的数字
  2. Docker Swarm简单教程
  3. 在Label mx标签制作软件中普通打印机也可以打标签
  4. 软件测试的核心竞争力是什么?
  5. php知识点之php文件上传
  6. 深度学习中EMA的使用场景
  7. html入门介绍,html标签入门介绍
  8. 组合数学(5)——拉丁方与H矩阵例题
  9. 笨办法学python在线阅读_笨办法学python全集.pdf
  10. O365 EMS M365的区别?