orbslam

ORBSLAM的ORB特征提取

故事扮演 提交于 2020-01-19 01:39:55
ORBSLAM中的主要使用了ORB特征,也就是FAST特征+BRIEF描述子的组合,具体这两种方法就不详细介绍了,这里主要说一下每个特征对应的描述子在ORBSLAM中的维护方式; 首先需要说明的是每个frame都有自己对应的找到的feature,在进行特征提取前会先初始化一个Extractor,也就是: void Frame::ExtractORB(int flag, const cv::Mat &im) { if(flag==0) (*mpORBextractorLeft)(im,cv::Mat(),mvKeys,mDescriptors); else (*mpORBextractorRight)(im,cv::Mat(),mvKeysRight,mDescriptorsRight); } 第二步:初始化完成后就是提取,这里的入口函数是: // 计算ORB特征,_keypoints中的坐标与scale已经无关 /* _image: 原图 * mvImagePyramid:ComputePyramid() 的结果,不同大小的图片 * allKeypoints:对应mvImagePyramid中每一层图像的特征点,是与金字塔图像坐标对应的,就是在原图像的基础上经过缩放的 * _keypoints:对allKeypoints中每一个点找到对应的描述子后,再进行scale, *

ubuntu18.04笔记本摄像头跑orbslam

喜欢而已 提交于 2019-12-31 02:30:40
在运行orbslam之前需要的准备工作: 1. 安装usb_cam 参考 摄像头标定 ,笔记本相机的标定(也可以不标定,使用程序中提供的相机参数,反正也不对地图有什么高要求。。。),外接相机也可以,好像是把某个文件中的0改成1. 2. 安装orbslam2 在catkin_ws/src中下载orbslam2,网上有教程。 至于orbslam的安装网上也有很多的教程,首先要安装一些依赖库,github上也有说明,然后编译orbslam,注意去掉文件build.sh中make之后的-j,防止卡死。还有usleep问题,需要在某个文件(程序报错后你就知道了)中加入头文件 #include <unistd.h> ,这样应该没什么问题了,如果有自己取搜吧。 还有是要编译build_ros.sh,这个的话需要在.bashrc(位于/home/用户名)中加入 export ROS_PACKAGE_PATH = ${ROS_PACKAGE_PATH} :/home/用户名/catkin_ws/src/ORB_SLAM2/Examples/ROS 当时我找方法的时候找了很多,然后在/opt/ros/melodic中的setup.bash中也加了这句话,保险起见还是加上吧,上边的路径注意换自己 的用户名,然后就是环境设置,打开终端,运行 source /opt/ros/melodic/setup