如何用matlab做双目视觉车距检测以及标定时遇到的问题

如何用matlab做双目视觉车距检测以及标定时遇到的问题,第1张

您好,Aspect ratio optimized (est_aspect_ratio = 1) -> both components of fc are estimated (DEFAULT)

Principal point not optimized (center_optim=0) Note: to set it in the middle of the image, clear variable cc, and run calibration again

Skew not optimized (est_alpha=0) - (DEFAULT)

Distortion not fully estimated (defined by the variable est_dist):

Sixth order distortion not estimated (est_dist(5)=0) - (DEFAULT)

Main calibration optimization procedure - Number of images: 4

Gradient descent iterations: 12

Warning: View #1 ill-conditioned This image is now set inactive (note: to disactivate this option, set check_cond=0)

Warning: View #2 ill-conditioned This image is now set inactive (note: to disactivate this option, set check_cond=0)

Warning: View #3 ill-conditioned This image is now set inactive (note: to disactivate this option, set check_cond=0)

Warning: View #4 ill-conditioned This image is now set inactive (note: to disactivate this option, set check_cond=0)

3Intrinsic parameters at frame 1 do not exist

New optimization including the images that have been deactivated during the previous optimization

标定完一次后退出再试试吧,我也没碰到这种情况。另外,手机是自动变焦的,不行的,你拿相机拍吧。

(一) opencv里面摄像机标定计算内参数矩阵用的是张正友标定法,非常经典,MATLAB标定工具箱也是用的该方法。具体的标定过程可以参见张正友的原文: >

是caltech那个工具箱吧。有个函数叫rodrigues

直接用它就可以了。

R = rodrigues(om);

想转回去还可以om = rodrigues(R);

写出一套MATLAB,也许不是很难,因为这只是把一些数学公式数学知识集成到这个软件中,但需要做大量的基础性工作,有点能力的大学生研究生,都去做短平快的事情,都去做更快的挣钱的事情。爱国家也只是鼓励能够更快更多的挣钱,鼓励能够创造更多的经济效益。一些基础性的工作,目前国家也开始注意了,但是与当前的社会氛围格格不入,很难取得一定的成绩。

环境问题,国外许多厉害软件是开源软件,而我们没有,我们是拿着开源软件一改,号称自己软件,各种捞钱。matlab是一款仿真软件,创作论文必不可少的工具软件。不是一个层面的东西,哪个好做出来没有可比性。但是老美有亚马逊云,比阿里云强。而我们除了老美的matlab,没有自研的可替代的仿真软件。

我上学那会用matlab写了个算法,导师让我一师兄改成C的。他用了一下月改好,还志得意满地说,虽然他程序文件挺大,但效率一定比我原版的高,毕竟是C嘛。结果我用matlab跑完不到1分钟,他的程序用了7--8分钟。最后,他挺尴尬得让我别给导师说。

原来我们国家准备做汽车的时候,也是一片质疑,事实证明做比不做好,不做就永远不会进步。飞机也是一个道理,如果我们把阻碍我们发展的主要项目在国家层面立项,那就没有做不成的事,关键是我们要做的太多,有个急缓。没有MATLAB是不是就不能搞科研了,显然不是,其实自己编程序也不错,就是慢了一点,但是编程水平却提高了,这也许又会有另外的边际效益。事情总有正反面。

我们即使搞出来了也不能解决问题,美国的东西多了去,他制裁一个你就搞一个?现在国外的不让用了,这就空出来国内的市场空间了,国内的软件就有发展机会了,产品开发出来,后续的试错和优化的机会也多了,所以说,这次禁令对国产同类软件公司来说,是一次难得的机会。写出线性代数算法肯定没问题了,纯粹矩阵计算某些情况下比matlab高也正常,但它的核心是各个领域的专业库。

我常用的机器视觉来说,实现并优化各种视觉算法才是最困难的,否则numpy就可以代替matlab了。如果您能自己写一个最常用的相机标定程序,效率和精度都比matlab好,那确实非常厉害。模仿着matlab的功能来做,当然简单了。就如你模仿开发和微信一样功能的APP,几天就能开发好。 但是这些软件在开发时,做了多少背后的需求分析,应用场景分析,性能优化,才有了最终成果。 任何摸石头开发难度都很大,模仿个一模一样的matlab很容易,但是一定会被告!独立开发,估计时间不短!

而且matlab主要用于科研,也就是商业价值相对不大,这样资金来源有限,更加剧了开发难度。高校就应该做到支持国产软件,尤其是以维护国家安全为重点,做到发展国产软件,支持使用国产软件。matlab确实没有国产替代的,但是CAD,CAE,Solidworks,office有啊,这些怎么不去支持国产,发展国产,提交功能改变。

落后就要挨打。 单纯靠国家经费,是不会有好的工业软件开发出来,没市场,没氛围,没人才,没基础,也给不到国外工程师的待遇,即便给了,也是打水漂了。 被打了,简单的打回去,是鲁莽,不吭声,迟早被打死。 比较合理的解决的办法,是从其他当面限制美国,把自己能做好的事情做好,就好像专利授权,大家手上都有几百个专利,总能在某些方面说了算,才能在全局站稳脚跟。

我的一个学计算机的朋友说,凡是你能看到的软件,要高仿一个出来是很简单的,有大批的人干得了这个事,原来没搞是因为有现成的,我们搞了也没人用,现在不搞也得搞了,没得选择。反倒是高端制造领域的材料学、高精度多轴加工中心等倒是很难快速突破。

Pro/E、UG、PM、Cimatron、mastercam,z这几个软件有多少人知道?整个制造行业都在用,但全是外国的!

做Matlab,EDA这样的工业软件,核心不是在功能上,而是在充分性,正确性,和稳定性上。需要有非常专业的validation 和verification,在这之后才能够被广泛使用。中国大部分的软件从业人员都developer,有几个懂计算机科学相关内容比如计算理论,静态分析,动态分析,形式化验证的?而这些恰恰是开发这些工业软件以及相关配套工具的基础,就算你从表面照样画葫芦去开发,也用不起来。

客观地说,确实很难,matlab这样成熟的专业软件,需要底层理论基础,不同使用场景靠很长时间累积才能完成,没有捷径。 自然科学发展的历史的原因,对方不遵守全球分工的游戏规则(利益面前规则都是虚的),不能全怪我们相关科研人员不作为,但确实缺少了远见卓识的布局,也不怪对方,这就是现实,人类生存斗争的现实。 

现实唯一长久的办法,无论五十年,一百年,二百年,哪怕明天因为别的斗争又让用了,也要开发,国家牵头投入,一定要去做。 核心领域都要如此。每个领域配几百人的顶尖专业团队,估计最多也就上百个专业领域吧,花个10年时间,应该也能出个勉强能用的版本吧,最大的问题可能是国内不太好找基础领域顶尖团队吧!

看是很简单,其实写好了很难,这种软件还有个特点不能纯理论。你们用书上公式写简单但没实原应用价值。人家有很多是实验成果别太看扁别人。中国以现在的环境根本写不出这类软件,只能仿到表面像而以。国产软件根本弄不出成套东西只能东拼西凑。

以前没有人写,是因为有现成能用的,就不去费力气写了,现在人家不给你用了,不自己写怎么办,其实我们国家真的要重视这些基础工业软件以及专业软件,这些才是搭建信息化国家的基础。

总而言之就是很难,因为不单是技术问题也是时间积累的问题,但是大家都望而却步的话,那永远都没有机会去实现了。所以对这类似基础学科或者项目的开发应该要让国家来牵头,而且现在已经有存在的东西了,总比开发matlab的初期阶段要条件优越。

这个也和多工业软件一样,要实现某方面的功能 国内应该短时间可以模仿好,全面的功能是人家10几年的积累来的,不可能一下子做成,这也是人家尊重版权的理念基础上才能一直这样发展下去,我们版权理念还没有普及,这样的软件公司在国内根本发展不下去,也就是说国内只利用了廉价的劳动力成本在发展,对知识的价值的尊重和提升才是发展的路线。

单目相机标定误差太大通常是因为标定数据不足、标定板选择不合适、标定精度不够等原因造成的。以下是一些可能的解决方案:

1 提高标定板的质量:标定板应该选用高质量的材料,如高精度玻璃或金属材料。在制造过程中,应尽量避免瑕疵和变形。此外,还需要保证标定板的平整度和刚性。

2 改进标定方法:标定方法应该尽量准确和全面。可以采用多角度、多姿态、多距离等方式,以提高标定精度。

3 增加标定数据:标定数据越多越好,至少应该有10组以上的标定图像。在拍摄标定图像时,应该注意光线的均匀性和稳定性,尽量避免图像中出现阴影或反光等问题。

4 优化相机参数:根据实际需求,进行相机内参、畸变系数、外参等参数的优化,以提高标定的准确度。

5 验证标定结果:标定后需要对标定结果进行验证。可以采用透视变换等方式,将标定结果应用到实际场景中,并检查结果是否符合预期。

如果以上方案无效,你可能需要进一步分析标定误差的原因,例如相机自身质量问题、测量环境的影响等,并采取相应的措施。

VC

可以调用matlab工具箱,

只需要将数据接口修改一下,最简单的方式是matlab程序写成动态连接库,然后用VC直接调用DLL

opencv只是算法库,不是编译环境,不存在opencv调用matlab的说法,

opencv是图像处理库,和做界面没关系

一般情况下,要么移动相机,要么移动标定板。

二般,你也可以选择同时移动相机和标定板。

但是没二般这个必要,因为你的主要目的是求出相机的参数。

由于移动相机比较方便,所以大家常常选择移动相机。

你找到张正友那篇著名的关于相机标定的论文看看就清楚了。

以上就是关于如何用matlab做双目视觉车距检测以及标定时遇到的问题全部的内容,包括:如何用matlab做双目视觉车距检测以及标定时遇到的问题、求鱼眼镜头全景图像校正算法的matlab代码、matlab标定相机的外参数时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10049547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存