单目测距终于摆脱了参考物,实现单目测距、检测物体大小,增加了实验数据,效果很好
·
🥇版权:本文由作者【Brson.AI】原创首发、各位读者大大敬请查阅、感谢三连🎉🎉🎉
🏆声明:作为大脑的儿子AI,专注于分享更多AI知识干货给大家🌞
🏅文章若有错误之处请大方指出,我会认真改正,谢谢各位看官❤️
📙前言
- 📆最近一直在捣腾关于单目测距和检测物体大小的事情,因为之前对此不是很了解,所以在学习过程中遇见了很多的问题,包括不知道如何进行单目测距,他的原理又是什么呢?而且在测距过程中像素应该如何获取等等问题,使我不知如何是好,也通过网络查询了很多的资料,发现❤️大多数都是通过参照物,即已知实际物体的高度或者宽度来进行测距的。❤️ 这就很难受了。
📘我的想法
- 🍊到这里我就在想,单目测距为什么一定要参考物呢?那我不要参考物行不行呢?能不能用其他方法来做呢?我该怎么去做呢?
- 🍊抱着这些问题,我开始研究网上传播的小孔成像和相似三角形原理,想着怎么通过这两种方法去推算出不需要参考物的模型。最终,我基于在传统方法上终于肝出来了一种新方法🎉🎉🎉
📕传统方法
- 🍊其实单目摄像头的模型可以近似考虑为针孔模型,像下面这种:
❤️其中
f
是焦距
❤️C
是镜头光心
- 🍊物体通过镜头光心映射在图像传感器(像平面)上,像平面上会出现一个倒立的图像,通过对实际物体的测量,我们可以得到实际物体的高度,最后通过数学推算即可得到关于距离
D
的一个数学公式,在这里就给各位读者大大手推一下: - 🍊字写的有点丑,望各位不要嫌弃。如有我没说明白之处,请大方指出,我会非常感谢您! ❤️
- 🍊上图就是前面针孔模型的一个手画版,只不过我把这些参数都标注了出来,方便自己给各位看官理解。
- 🍊在这里通过相似三角形可以推出下面这些数学公式,得到了最终的所求距离D和实际物体半径R的关系式,❤️在这里就可以看出来,我们必须得要清楚的知道实际物体的半径R才可以求出距离
D
,若不知道R
的大小,则就求不出距离D
,而刚好这两个参数都是我需要去求解的东西❤️,当时我就卡在了这里,不知道该如何下手了;后面通过和朋友的沟通学习,我们找出来了第二种方法🎉。
📗新的解法
-
🍊通过前面推解出来的式子,在此基础上我给他增加了❤️移动距离
Y
❤️这个概论,我们通过更改摄像头与实际物体之间的距离D
,使实际物体在像平面中的像素进行改变,随着实际物体距离D
镜头光心越远时,在像平面上所呈现的图像像素就会越小,根据这个原理可以得出下图:
-
🍊根据上面原理,我们可以得出下面两个方程组,通过比值的关系得出❤️距离之比等于像素之比❤️,因为图片像素我们可以之间读出来的,从而像素之比相当于一个常数,令其像素之比为
K
,得到D = D1 * K
再通过三者之间的关系可以得出D = D1 + Y
,将D
代入得到D1 = Y/(K-1)
,从而求出实际物体到光心的距离D
.🎉
-
🍊而当我们的距离求出来之后,我们就可以代回方程组中,得到实际物体的大小。 这样我们就可以实现不需要参考物的情况下实现单目测距和检测物体大小啦🎉🎉🎉
📙感想
-
🌞我写的可能不是很好,也可能会有错误之处,还请各位读者朋友指正一下,我会尽快修改,❤️若我有些地方没有讲的太清楚,还得麻烦各位看官提出来一下,博主全天在线,有问题评论区留言或者私信我,我会及时回复各位的,谢谢各位读者❤️
-
❤️后面我会用
openCV
来实现以上两个功能,程序出来后我会第一时间发❤️博文与大家分享,感兴趣可以持续关注一波博主。
🌞2022年4月30把实验效果拿出来啦
- 🌞今天刚刚把毕业设计做完,就把这个实验数据放出来了。
- 🍊这是我做实验得到的像素值,分别在同一位置测量五次后求其平均,减小误差。
- 🌞在移动距离等于
8cm
时,得到的理论距离和实际距离误差还能接受,实际物体的大小是R=4cm
,还是不错的,后面还有我的一些
- 🍊更多的我就不放出来了,我都还没有进行答辩呢😜😜😜😜
❤️点赞 👍 收藏 ⭐留言 📝 都是博主坚持写作、更新高质量博文的最大动力哦!❤️
更多推荐
已为社区贡献1条内容
所有评论(0)