您好,欢迎访问仪器信息网
注册
天津瑞利光电科技有限公司

关注

已关注

银牌1年 银牌

已认证

粉丝量 0

400-860-5168转6160

仪器信息网认证电话,请放心拨打

当前位置: 瑞利光电 > 解决方案 > 使用FLIR机器视觉相机构建自己的立体视觉

使用FLIR机器视觉相机构建自己的立体视觉

2024/03/29 16:23

阅读:47

分享:
应用领域:
电子/电气
发布时间:
2024/03/29
检测样品:
音/视频产品
检测项目:
立体视觉
浏览次数:
47
下载次数:
参考标准:

方案摘要:

本技术应用说明的目的是提供一个示例,说明如何使用两台FLIR机器视觉切刀大小的外壳相机,通过PC使用OpenCV算法和Spinnaker API执行处理,构建自己的立体视觉系统。

产品配置单:

分析仪器

美国FLIR相机BFLY-PGE-23S6M-C

型号: BFLY-PGE-23S6M-C

产地: 美国

品牌: 菲利尔

面议

参考报价

联系电话

方案详情:


使用FLIR机器视觉相机构建自己的立体视觉


适用产品


所有FLIR机器视觉相机


应用说明


本技术应用说明的目的是提供一个示例,说明如何使用两台FLIR机器视觉切刀大小的外壳相机,通过PC使用OpenCV算法和Spinnaker API执行处理,构建自己的立体视觉系统。


概述


立体视觉是一种成像技术,可以在非结构化和动态环境中提供全视场3D测量。数码相机图像中的每个像素都收集沿着3D射线到达相机的光。如果世界上的一个特征可以被识别为图像中的像素位置,我们就知道这个特征位于与该像素相关的3D射线上。如果我们使用多个相机,我们可以获得多条光线。这些射线的交点是特征的三维位置。

在这个例子中,两个摄像机固定在适当的位置,并拍摄已知校准目标的图像。从这些图像中,透镜失真被去除并且图像被校正。对于密集立体算法,通常必须将相机的图像重新映射到适合针孔相机模型的图像。这个重新映射的图像被称为校正图像。然后,算法在图像中找到像素或特征的匹配以确定视差。

视差是指从左校正图像中找到的特征或像素块到右的像素距离。较大的视差意味着特征或对象更靠近相机(成像平面),而较小的视差则意味着对象离相机更远。立体视觉使用视差来计算与物体的距离。


PC配置


• Windows 7 64x

• 华硕Z97-PRO主板

• 英特尔酷睿i7-4790 CPU@3.60Hz

• 8 GB内存


硬件设置


在本应用说明中,两台摄像机安装在THOLABS支架、燕尾导轨和SLIK三脚架上,以确保它们水平。摄像机需要相对彼此牢固地固定到位。微小的变化,尤其是在垂直轴上的变化,会使算法用于查找匹配项的扫描线错位。这种错位可能会导致视差图较差。

摄像头:

2 x BFS-U3-50S5C-C(固件版本1803.0.167.0)

镜头:

富士农DF6HA-1B 6毫米透镜

安装设备:

• THORLABS

*AB90和AB90A/M安装在ACC-01-0011三脚架适配器上

*所用安装夹具的组合:

XT34C2–3 x

XT34D2-30–3 x

*XT34DP-500导轨(切割至200 mm)

*使用ACC-01-0003适配器将摄像头安装在XT34D2-30上

• SLIK 450G三脚架

• 使用的基线:7.88厘米(摄像机传感器中心之间的距离)



软件要求


Visual Studio 2015

Spinnaker SDK 1.21.0.61或更高版本

OpenCV 3.4(3.4.3 minimum

1.下载Win pack,然后将OpenCV安装到“C:\OpenCV\build\x64\vc15”中

2.环境变量

• 添加/设置“OPENCV_DIR”为“C:\OPENCV\build\x64\vc15”

• 将“%OPENCV_DIR%\bin”添加到路径

3.在Visual Studio中配置OpenCV

• 按照OpenCV入门中“在Visual Studio中配置OpenCV”部分中的步骤进行操作


校准模式


在本技术应用说明中,打印出了用于立体校准的棋盘图案。OpenCV将每个角的位置插值到子像素级别。然后,它使用这些位置来计算相机相对于彼此的内在失真、外在旋转和平移的矩阵。理想情况下,这种模式应该保持不变。要最大化校准的视场覆盖范围,请将图案移近或使用更大的图案。

所用方格图案的正方形尺寸:3.0厘米x 3.0厘米。

镜头调整


为了使立体视觉发挥作用,图像需要有足够的细节来在校正后的图像中找到相应的像素。在应用程序所需的大部分距离范围内,镜头都应处于对焦状态。关闭光圈可以增加景深,从而使距离范围更大,但这将减少到达传感器的光量。

为了在校准时获得更好效果,请在SpinView中将“自动曝光”设置为“关闭”,然后进行更改,使棋盘图案清晰,白色方块不会过度曝光。C++控制台应用程序生成校准文件后,可以在SpinView中将增益和曝光设置为自动。



在配置首选曝光设置后,拧紧镜头上的调节旋钮以保持焦点和光圈固定。



如何显示实时视差图


1.下载opencv_steo_vision.zip。

opencv_steo_vision文件夹应与其他Spinnaker示例放在相同的文件夹位置。这是Spinnaker SDK的src文件夹(源文件夹的默认位置是C:\Program Files\Point Grey Research\Spinnaker\src)。

2.确保您能够成功构建Stereo_Acquisition_vs2015.sln文件,该文件位于opencv_steo_vision \示例代码\src\Sstereo_Acquisition下。

3.运行opencv_steo_vision.zip文件中提供的Stereo_Acquisition_v140.exe。



4.成功构建Stereo_Acquisition_vs2015.sln后,打开命令提示符并导航到opencv_steo_vision \示例代码\bin64\vs2015文件夹。

5.输入命令:Stereo_Acquisition_v140.exe–帮助查看有关如何运行此程序的说明。




校准收集图像模式


此模式用于捕获校准相机所需的图像。在该程序中,每个相机都是软件触发的,以在用户输入时捕获6个图像(总共12个图像)。这些图像稍后用于校准。您可以使用以下命令设置图像的存储路径:




为了使OpenCV算法在这些图像中找到像素或特征的匹配,在ROI(感兴趣区域)内的不同位置捕获目标的图像是很重要的。


注:这些是在运行calibrate_gather_images时直接从两台相机中的一台相机拍摄的6张未剪切、未处理的图像的示例,将由calibrate_calculate中的opencv算法使用。


校准计算模式


该模式是对先前捕获的图像执行计算并生成校准数据。当执行“calibrate_calculate”模式时,会生成三个.yml(校准)文件——2个内部文件和1个外部文件。这些校准文件的路径必须与保存校准图像的位置相同。外部文件(约3 KB)包含两台相机在OpenCV中使用立体视觉所需的矩阵和物理参数。



实时视差模式


此模式用于实时创建和显示视差图。

调用DepthMapping.cpp中的DepthMapping()函数(位于C:\Program Files\Point Grey Research\Spinnaker\src\opencv_steo_vision\Example Code\src\stereo_Acquisition中),加载从calibrate_calculation创建的外部文件,并显示视差图,如下所示:



用于校准的物理特性


除了为了根据视差计算深度而捕获的图像之外,还需要一些物理特性。Stereo_Acquisition_vs2015.sln中使用的数据集为:

图案尺寸(方格大小):3厘米

花纹宽度(棋盘纵向内侧方形边数):8

图案高度(棋盘内方形边的高度数):6

基线(摄像头传感器中心之间的距离):7.88厘米

传感器宽度和高度。这些可以使用传感器分辨率和像素大小来找到。例如,BFS-U3-50S5C-C的分辨率为2448 x 2048,像素大小为3.45 um。传感器宽度=0.00000345*2448=0.0084456 m=0.84456 cm


设置自己的立体视觉系统时,需要根据相机设置更改这些属性的值。例如,本例中使用的基线为7.88 cm。但是,如果您的应用程序需要不同的基线,您可以在执行Stereo_Acquisition_v140.exe mode=calibrate_calculate时更改此值,如上所示。

注:示例使用厘米表示所有物理长度。


显示视差图像


DepthMapping.cpp文件中的OpenCV StereoBM和StereoSGBM算法用于提供16位的视差。最后4位是分数位,因此视差精确到1/16像素。要获得实际的浮点值,您需要将输出(short int)分为小数部分和整数部分,转换为浮点值,最后将它们相加。



分辨率性能


高分辨率不能很好地与立体块匹配算法配合使用,因为它们显著增加了处理时间,并且使得实时视差计算不切实际。高分辨率还需要更精确的校准。在1000 x 700的情况下,减少¼个像素并不太重要。然而,在2400 x 2000的情况下,校准的不准确度会产生更大的差异,因为它几乎偏离了一个像素。

理论上,更高的分辨率可以提供更高精度的视差图,但在实践中很难实现。Binning可用于获得较小的分辨率,而无需修改传感器尺寸计算。


校准顺序


使用Stereo_Acquisition_vs2015.sln完成的校准序列:

1. 首先进行内部校准,这涉及到每个相机的单独校准。它也被称为相机矩阵。固有参数是相机特有的,它们包括焦距和光学中心等信息。

使用Calib3d.cpp中的findCheckerboardCorners()和cornerSubPix()进行内部校准。

2. 然后进行stereoCalibration(),它使用内部校准并提供相对的外部信息。  


优化


默认情况下,校准设置在Acquisition_vs2015.sln(C:\Program Files\Point Grey Research\Spinnaker\src\opencv_steo_vision\Example Code\src\stereo_Acquisition)中进行硬编码,以在1000 x 800左右的分辨率下工作良好。立体掩模的大小和视差图中的视差是最大的因素。使用滑块在“real_time_disparity”模式下执行Stereo_Acquisition_v140.exe时,可以更改这些设置。

改变立体掩模大小会改变图像之间匹配的像素块的大小,视差值的范围就是视差。距离较近的物体需要大范围的差异。



结果


2个BFS-U3-50S5C

2 x 6毫米镜头(富士农DF6HA-1B)

基线7.88 cm

方格图案的正方形尺寸为3.0厘米

计算的传感器宽度和高度:0.84456厘米x 0.70656厘米

这种设置可以检测1.2米外精确到2毫米左右的变化。

注意:示例中提供的默认值假设您使用的是此处记录的确切设置。


下载本篇解决方案:

资料文件名:
资料大小
下载
使用FLIR机器视觉相机构建自己的立体视觉.pdf
654KB
相关方案

PALAS AQ Guard在欧洲撒哈拉沙尘事件中的应用

每个人都能看到和感觉到:从3月14-16日开始,大量撒哈拉沙尘从撒哈拉沙漠带到欧洲,特别是西班牙、法国、瑞士和德国。 天空变红了,到处都是灰尘(汽车、桌子、雪等)。虽然西班牙的细尘PM2.5和PM10值也有非常强劲的增长,但德国的增长较为温和。由于降雨,撒哈拉沙漠的大部分灰尘被冲走,成为降水,即所谓的血雨,因此,尤其是粗颗粒在气溶胶状态下不会停留很长时间。

环保

2024/07/08

室内气溶胶:适当措施的规划、实施和验证

SGS Institut Fresenius扩大了其服务范围,并依靠Palas GmbH Karlsruhe/Longuich的技术。SGS Institut Fresenius研究所正在扩大其在室内空气质量领域的服务范围。重点在于规划、实施和验证以气溶胶浓度为重点的改善室内空气的措施。来自卡尔斯鲁厄的Palas GmbH的技术用于此目的。

环保

2024/07/03

355nm DPSS激光切割铜和金薄膜

许多红外激光器与不锈钢、冷轧钢、高镍合金和一些铝等金属相互作用良好。然而,IR波长与诸如铜合金和金合金的红色金属不一致。另一方面,355 nm DPSS激光器具有这些高反射性和导热性的金属片,非常有效。

材料

2024/07/02

使用355nm直接DPSS激光器标记塑料管材

许多应用场合都需要专用塑料管来抵抗化学品、酸、热溶剂和热量。通常很难直接在这些材料上打印,标签是一种无效的解决方案。这些塑料中的许多都可以直接用355 nm DPSSL激光器进行标记。355nm激光器提供了几种优于用于标记这些设备的典型IR和CO2激光器的优点。

材料

2024/07/02

推荐产品
供应产品

天津瑞利光电科技有限公司

查看电话

沟通底价

提交后,商家将派代表为您专人服务

获取验证码

{{maxedution}}s后重新发送

获取多家报价,选型效率提升30%
提交留言
点击提交代表您同意 《用户服务协议》 《隐私政策》 且同意关注厂商展位