【双目视觉】 立体匹配算法原理之“代价函数”

简介: Census方法任取左图一个像素点P,观察周围3*3窗口的像素点灰度值,如果小于P就置1,否则为0,然后编码。右图也是如此。最后异或比较,根据异或后的结果,看‘1’的个数,计算汉明距离

🔥预备知识: 【双目视觉】 理想条件下计算物体距离_什么都只会一点的博客-CSDN博客


image-20220809154728317.png


立体匹配流程


image-20220809154759347.png


定义


db2eaebfff054ecd27d14bad08e2d489.png


代价函数用于计算左、右图中两个像素之间的匹配代价(cost)。cost越大,表示这两个像素为对应点的可能性越低


常见的代价函数


1.AD/BT


C A D ( x , y , d ) = ∣ I L ( x , y ) − I R ( x − d , y )


左图任取一个像素点,减去 向右移动d个像素值的右图,求得代价函数C;我们的目的,就是寻找代价值C最小时,d的值,根据Z =image.png求出距离


2.AD+Gradient


01162ec690c5496b9c21bf57052f231d.png

τ c o l :截断阈值


α :权重


τ grad  :截断阈值


AD+Gradient本质上跟AD相近,只不过是通过阈值去分配权重


3.Census


image-20220809160136197.png


Census方法任取左图一个像素点P,观察周围3*3窗口的像素点灰度值,如果小于P就置1,否则为0,然后编码。右图也是如此。最后异或比较,根据异或后的结果,看‘1’的个数,计算汉明距离


4.SAD/SSD


5.NCC


image-20220809160550819.png


1.特性:对图像亮度的线性变化具有不变性

2.物理意义: 两个向量的夹角的余弦值


6.AD+Census


因为AD代价函数容易实现,但是它容易受辐射差异的影响。 而在Census变换中,不要求像对之间的颜色一致性。因此,它对于辐射差异更加鲁棒


image.png


效果

0b5f10cfef5dbf960dd6e503c1599811.png


7.CNN

相关文章
|
13天前
|
机器学习/深度学习 算法 计算机视觉
YOLOv3的算法原理是怎么样的
YOLOv3的算法原理是怎么样的
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
详解AI作画算法原理
详解AI作画算法原理
11 1
|
14天前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
24 0
|
15天前
|
机器学习/深度学习 编解码 算法
算法工程师面试问题总结 | YOLOv5面试考点原理全解析
本文给大家带来的百面算法工程师是深度学习目标检测YOLOv5面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习目标检测面试问题,并提供参考的回答及其理论基础,以帮助求职者更好地准备面试。通过对这些问题的理解和回答,求职者可以展现出自己的深度学习目标检测领域的专业知识、解决问题的能力以及对实际应用场景的理解。同时,这也是为了帮助求职者更好地应对深度学习目标检测岗位的面试挑战,提升面试的成功率和竞争力。
|
20天前
|
负载均衡 算法 调度
负载均衡原理及算法
负载均衡原理及算法
18 1
|
20天前
|
Arthas 监控 算法
JVM工作原理与实战(二十五):堆的垃圾回收-垃圾回收算法
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了垃圾回收算法评价标准、标记清除算法、复制算法、标记整理算法、分代垃圾回收算法等内容。
27 0
JVM工作原理与实战(二十五):堆的垃圾回收-垃圾回收算法
|
20天前
|
机器学习/深度学习 自然语言处理 算法
机器学习算法原理与应用:深入探索与实战
【5月更文挑战第2天】本文深入探讨机器学习算法原理,包括监督学习(如线性回归、SVM、神经网络)、非监督学习(聚类、PCA)和强化学习。通过案例展示了机器学习在图像识别(CNN)、自然语言处理(RNN/LSTM)和推荐系统(协同过滤)的应用。随着技术发展,机器学习正广泛影响各领域,但也带来隐私和算法偏见问题,需关注解决。
|
20天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】层次聚类算法的原理与应用
【4月更文挑战第30天】层次聚类是数据挖掘中的聚类技术,无需预设簇数量,能生成数据的层次结构。分为凝聚(自下而上)和分裂(自上而下)两类,常用凝聚层次聚类有最短/最长距离、群集平均和Ward方法。优点是自动确定簇数、提供层次结构,适合小到中型数据集;缺点是计算成本高、过程不可逆且对异常值敏感。在Python中可使用`scipy.cluster.hierarchy`进行实现。尽管有局限,层次聚类仍是各领域强大的分析工具。
|
20天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
20天前
|
机器学习/深度学习 算法 数据挖掘
【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例(下)
【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例(下)