1 背景

HaaS智能门禁等应用场景需要用到双目视觉,让门禁系统可以拒绝打印图片,手机屏幕,面具,3D头套等非活体攻击。

这里先从计算机双目视觉的设计出发,看看出现过的不同的变种,以及用来解决的问题。

1.1 对称双目视觉

计算机的双目视觉一开始的设计就是对称双目视觉,模拟自然界中生物的双目视觉来得到只有双目才能实现的立体视觉能力,比如获取目标的深度信息。

自然界中草食动物一般是两只眼睛长在脸两边,两只眼睛的视野几乎能覆盖360°,为了能够看到四面八方的捕猎者。模拟草食动物的视野的就是全景相机。

肉食动物的眼睛一般是长在脸的前面,为了能够确定猎物空间位置用于捕猎。模拟肉食动物的视野的就是3D相机。

1.2 非对称双目视觉

随后计算机的双目视觉派生出了非对称双目视觉的设计,包括广角+长焦,彩色+黑白,彩色+红外等等。

广角+长焦相机是现今手机上很常见的组合,通过裁切来实现模拟变焦。

彩色+黑白相机是华为手机曾经使用过的设计,用高像素的黑白相机提供亮度信息,低像素的彩色相机提供颜色信息,理论上由于人眼对亮度敏感度大于颜色敏感度,这样可以在有限的成本下实现比较好的画质。

彩色+红外相机则是在普通相机的基础上增加了夜视和活体检测的功能。由于人体无时无刻不在向外散发红外线,所以红外相机可以不利来光线检测到人体,以及通过红外线来判断彩色摄像头拍摄到的图像是来自一个真人,还是一张图片,或者手机屏幕。

2 用来解决什么问题

双目计算机视觉拟合算法是用来解决什么问题的。

在各种不同的双目视觉场景下,都希望知道两个摄像头的视场角的空间关系,来进行双目视觉的计算。

比如,在彩色摄像头的一个区域发现了一张人脸,那么要知道这个人脸所在的区域,对应到红外摄像头上,是那一块区域,我们才能去进行活体计算。

也就是说,需要可靠的双目视觉视场角匹配算法,产品才能最终落地。

2.1 理想情况下,两个摄像头的空间关系

红色和蓝色的方锥分别是左右两个摄像头的取景范围

那么在这样的情况下,在某景深下,同一个物件在两个摄像头中的成像就是这样的映射关系:

(即使在理想情况下,同一个物件不同景深下的两个摄像头的映射关系也不一样)

2.2 考虑到生产工艺的问题

由于生产工艺所限,两个摄像头在间距,垂直高度,上下角度,左右角度上都会出现一些偏差,并且每台设备的偏差都不一样。

(为了表现偏差的影响,下图中画的比较夸张)

那么在考虑到生产工艺之后,在某景深下,同一个物件在两个摄像头中的成像就是这样的映射关系:

2.3 进一步考虑到摄像头的光学畸变

在单个摄像头的成像上大概是这个样子:

光学畸变分为径向畸变和切向畸变,如果想要用数学方法来拟合极其困难。

本文就不加以展开,参考论坛上其他文章。

在上图的空间关系的基础上,考虑到两个摄像头不同的区域的光学畸变的影响也不同,建立空间映射关系就变的非常复杂。

3 如何解决问题

3.1 建立固定距离的纠偏的模型

由于光学畸变导致空间数学建模变的非常复杂,而实际应用场景往往对一定距离范围内(比如0.5米-1.5米)的摄像头的视场角中心(中心25%)区域比较关心,可以采用多项式拟合的方式来建立在某个特定的距离下从摄像头A到摄像头B的映射关系,这样能保证中心区域相当精准,而边缘区域的误差也在可以接受的范围内。

在足够的采样点的情况下,更高次的多项式能够更精准的拟合结果。但是实际我们采用了3次多项式,因为在不使用高精度数学库的情况float型的精度也就只能保证3次多项式的结果足够精准了。

比如3次多项式拟合摄像头A当中点(Xa, Ya)到摄像头B当中点(Xb, Yb)的函数如下:

Xb = Xa^3 * P3 + Xa^2 * P2 + Xa * P1 + P0

Yb = Ya^3 * Q3 + Ya^2 * Q2 + Ya * Q1 + Q0

而其中P3~P0,Q3~Q0就是拟合过程中需要计算出的参数。

3.2 计算出固定距离的拟合参数

将一张棋盘格图纸放在两个摄像头都能完整拍摄到的地方,且尽量铺满图像。

如下图左边为红外摄像头的图像,右边为彩色摄像头的图像。

然后找到两边棋盘格的17*31个内顶点(opencv有现成的函数findChessboardCorners()),这样就找到了摄像头A的527个位置点以及他们分别映射到摄像头B的位置点。

然后通过最小二乘法或者其他多项式拟合算法分别对X轴和Y轴计算,算出P3~P0,Q3~Q0这8个拟合参数。

本文就不加以展开,参考论坛其他文章。

3.3 应用固定距离的拟合参数

对摄像头A的图像的每个位置点,应用拟合函数,生成在摄像头B的图像中的对应位置点。

下图是在摄像头B的图像基础上画上了计算结果来验证拟合参数。

红圈是摄像头A的图像中的某个位置点

蓝圈是根据摄像头A的图像中的该位置点拟合出来的摄像头B中的对应位置点的估算位置

红圈和蓝圈用红线相连

绿圈是摄像头B中的对应位置点的实际位置

结果可见,在固定距离下,拟合的效果还是相当精确,差异都是像素级别。对于人脸识别等场景做人脸匹配,已经完全足够了。

3.4 完善非标准距离的拟合精度

多项式拟合是在固定距离拟合的,那么一旦目标离开估计距离较远就会产生比较大的偏差。

如果想要降低距离产生的误差,可以在多个距离标定多套参数,然后根据距离插值。

比如当前目标距离是0.75米,那么把0.5m的拟合参数算出来的结果和1.0m的拟合参数算出来的结果取平均值即可。

但这由引出了一个问题,如何知道双目系统中某个目标的距离,方法一般有:

激光测距等硬件,非常精准,但是需要额外的硬件成本

根据标的物在两个摄像头视场角的相对位置估算距离,这个方案精确度一半,且对算力要求比较高

对于人脸识别等特殊场景,只要是成年人,不论男女胖瘦,人的五官所占区域都差不多大小(胖人的脸大但五官并不大),可以使用五官的尺寸来估算人脸的距离,这个方案精确度较低,且识别目标仅限成年人,但几乎没有额外成本。

4 总结

工程学的一种思想就是,没有最好的方案,只有最合适的方案。在开发成本,运行成本,维护成本,偏差范围这几个因素之前,达到一个局部最优解。

计算机双目视觉视觉角匹配算法相关推荐

  1. 计算机的视觉应用研究,计算机视觉技术应用研究.doc

    计算机视觉技术应用研究 计算机视觉技术应用研究 摘 要 文章在介绍计算机视觉技术相关内容的基础上,对该技术在工业.农业.林业和农产品检测这四个领域的具体应用进行简要分析. 关键词 计算机:视觉技术:应 ...

  2. 腾讯优图计算机招聘视觉大咖(2022届校招+实习)

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 腾讯优图计算机招聘视觉大咖(2022届校招+实习) 大咖岗位要求: 1. 熟练并掌握机器学习.深度学习.计算 ...

  3. 2023年计算机、视觉与智能技术国际会议(ICCVIT 2023)

    计算机.视觉与智能技术国际会议(ICCVIT 2023) International Conference on Computer, Vision and Intelligent Technology ...

  4. 还在为投稿发愁吗?ICCVIT 2023,一个计算机、视觉与智能技术国际会议

    ◆ChatGPT热潮带来的行业革新大行其道,相关区块链.信息安全.视觉.机器学习....产业必将带来诸多变革. 本文为大家梳理了近期可投的4则EI检索的国际会议,均可推荐发表SCI,还有超多IEEE ...

  5. 【ICCVIT 2023征稿通知】计算机、视觉与智能技术国际会议

    第一届计算机.视觉与智能技术国际会议(ICCVIT 2023)将于 2023年8月11日-13日在中国郴州召开.ICCVIT 2023聚焦计算机.视觉和智能技术,旨在为专家.学者和研究人员提供一个国际 ...

  6. 计算机显微视觉相关概念,机器视觉的概念及常见应用

    原标题:机器视觉的概念及常见应用 机器视觉的概念及常见应用 机器视觉的相关概念 下面我们将开始进行机器视觉的学习,那么什么实机器视觉呢?可能还有同学听说过计算机视觉, 还有当前比较火的机器学习,人工智 ...

  7. 文末赠书 | 计算机AI视觉第一人?何恺明的学术成就够得上了吗?

    链接:https://www.zhihu.com/question/424149824 编辑:深度学习与计算机视觉   仅享,侵删 作者:远处群山 https://www.zhihu.com/ques ...

  8. 大道至简,何恺明最新一作火了:让计算机觉视觉通向大模型!

    何恺明,清华大学本科,港中文博士 来源 | 知乎,MLNLP编辑 https://www.zhihu.com/question/498364155 原问题:如何看待何恺明最新一作论文Masked Au ...

  9. 任意角的正弦怎么用计算机算,任意角的正弦函数、余弦函数的定义、

    <任意角的正弦函数.余弦函数的定义..ppt>由会员分享,可免费在线阅读全文,更多与<任意角的正弦函数.余弦函数的定义.>相关文档资源请在帮帮文库(www.woc88.com) ...

最新文章

  1. 【牛腩新闻发布系统】开发前的准备01
  2. 为何Transformer在计算机视觉中如此受欢迎?
  3. 递归计算Linux目录中的文件
  4. Spring ShedLock指南
  5. Android Studio导入github项目详解
  6. Matlab计算多项式的值(数值)
  7. 解析并验证IE6及之前版本的'!important’ BUG(转)
  8. 软件工程——团队作业3
  9. sublime,gedit,vim和mousepad等都出现fribidi_get_par_embedding_levels_ex
  10. django-form and fields validation
  11. 用python分析拼多多_利用Python分析拼多多上卖的最热的产品, 结果出乎大多数人意料!...
  12. SQL案例学习-员工考勤记录
  13. f2fs学习笔记 - 9. f2fs 写文件
  14. Java Excel导出(包含图片) —— Easypoi
  15. GNU GCC 编译
  16. gitgerrit配置
  17. 意大利语合同翻译多少钱
  18. 通过简单的强化学习实现井字棋(Tic-Tac-Toe)
  19. 一维卷积处理时间序列
  20. Java最新面试题及答案

热门文章

  1. SVG_6_矢量图_transform_animateTransform_豚_鼠?
  2. 论文里的好句子(7)
  3. 大数据算法_大数据时代,机器学习算法该如何升级?
  4. 2020-12-17 Scopus文献检索 TargetDetection|Dim|Infrared Image
  5. html5老是自动退出全屏,HTML5--浏览器全屏操作、退出全屏、是否全屏
  6. Oracle EBS AR_RECEIPT_API_PUB集合
  7. 伯禹 动手学深度学习 打卡11之循环神经网络
  8. 重写TiledServiceLayer实现Arcgis访问Mapabc地图服务
  9. 【译】 如何使用ArcGIS Earth来辅助规划一场马拉松
  10. 没有基础的人学java开发难吗_零基础的人怎么学习Java