视觉定位与感知期末大作业报告

一、作业要求

本课程大作业内容是使用自己的手机或相机,对同一个场景,分别在三个角度拍摄三张图像,最终获得三张图像拍摄时的姿态和位置,以及图像中特征点的三维坐标信息,并评估和验证所实现算法的正确性和精度性能。

二、准备工作

在实验开始前,我们需要准备如下东西:

  • MATLAB R2018B:考虑到作业过程中部分题目需要自己手动实现,故用MATLAB来实现比较简单。
  • OpenCV:OpenCV具有很多库函数,对于不需要自己实现的部分用起来十分便捷。
  • ROS_Melodic:本来可以做很多东西的,但是在这里只是用来做摄像头标定,因为以前用过,所以选择直接用这个来标定摄像头,但是安装ros过程比较麻烦,没有的话也可以使用MATLAB或者OpenCV相应的包进行摄像头校准。
  • 其他物件:USB摄像头,IPad(iPad就用来做棋盘标定板和aruco目标检测)。

三、实验步骤

1. 实现思路

算法实现的思路是,首先选择其中两张图像,通过特征点匹配基础矩阵的求解得到两个拍摄视角的相对位姿,然后使用三角化得到对应特征点的三维点云。对于第三张图,我们可通过相机位姿估算的方式求解其姿态和位置。最后我们可以采用非线性最小二乘法对稀疏三维点和三个相机 Pose 同时优化,得到最终结果。

2. 摄像头标定

本次作业使用ROS对USB摄像头进行标定,主要步骤如下:

  • 安装usb_cam驱动,并编译完成
  • 对usb_cam中的usb_cam-test.launch进行修改,具体是将 “”中的video0改成与所用usb_camera相对应的video序号,在我电脑中他的序号为video2,所以我把他改成了video2。
<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video2" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>
  • 检测usb_camera使用情况,正常的话弹出一个窗口,其中是摄像头图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值