CalibAnything---传感器标定的项目
1. 环境配置
这里我们提供两个脚本来配置环境
# 版本选择ROS1,其他配置与默认推荐的相同即可
wget http://fishros.com/install -O fishros && . fishros
# 配置ros相关环境
install.sh
# 配置cuda相关环境
install_cuda.sh
2. 内参标定
要安装 camera_calibration 包并确保它与当前安装的 ROS 版本相匹配,你可以使用以下步骤:
确保你的系统中已经安装 ROS:首先确保你已经按照 ROS 的安装步骤成功安装了 ROS。你可以通过以下命令检查当前安装的 ROS 版本:
rosversion -d
这将返回你当前的 ROS 发行版(例如 melodic, noetic 等)。
使用环境变量安装:可以使用 rosversion 命令来动态获取当前的 ROS 版本,并将其用于安装相应的 camera_calibration 包。你可以通过以下命令来实现:
sudo apt install ros-$(rosversion -d)-camera-calibration
这里的 $(rosversion -d) 会被替换为当前的 ROS 版本名。
验证安装:安装完成后,可以通过以下命令检查 camera_calibration 包是否成功安装:
rospack find camera_calibration
如果返回了包的路径,则说明安装成功。
使用 camera_calibration:安装完成后,你可以使用 camera_calibration 工具进行相机标定。以下是一个基本的使用示例:
pip install PyYAML rospkg
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/camera/image camera:=/camera
这里的 --size 参数指定棋盘格的内角点数量,--square 参数指定每个方块的边长(单位为米),image 和 camera 参数分别指定相机图像话题和相机的名称。
打印一张棋盘格图片,可以从这里获取 ,下面给出opencv官网给出的一张9*6内角点棋盘格,格子大小为26mm:

具体标定过程。界面中的
x:表示标定板在视野中的左右位置。
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野中的倾斜位置。
因此,需要移动标定板:x代表左右移动,y代表上下移动,size代表远近移动,skew代表倾斜侧角,可以上下倾,也可以左右倾。

然后我们需要创建一个calib.txt文件在某路径下,并填写
K: 2152.8 0 971.3 0 2155.5 605.9 0 0 1(内参矩阵)
D: -0.1192 0.162 0.00073985 0.0014(畸变参数)
T: 0.0188623 -0.999822 -9.36529e-05 -0.0323222 0.0288601 0.000638227 -0.999583 -0.396685 0.999405 0.0188516 0.028867 -0.0869361(待标定的外参矩阵)
3. 项目编译
git clone git@github.com:lovelyyoshino/Multi_calib.git
cd Multi_calib/
catkin_make
3.1 代码编译以及测试示例
我们提供了两个数据集的示例:
cd src/LidarToCamera
../../build/LidarToCamera/run_lidar2camera ./data/ours/1
../../build/LidarToCamera/run_lidar2camera ./data/kitti/1
我们给出了外参的参考值。您可以在文件data/initial_error.txt中设置初始误差,并测试算法的准确性。格式为“roll pitch yaw(度) x y z(米)”。
测试您自己的数据
../../build/LidarToCamera/run_lidar2camera <data_folder>
数据文件夹应包含:
- 图像文件
- LiDAR文件:需要反射率
- 校准文件:包含相机内参、畸变系数和粗略外参。格式为:
K: 2152.8 0 971.3 0 2155.5 605.9 0 0 1
D: -0.1192 0.162 0.00073985 0.0014
T: 0.0188623 -0.999822 -9.36529e-05 -0.0323222 0.0288601 0.000638227 -0.999583 -0.396685 0.999405 0.0188516 0.028867 -0.0869361
- masks:由Segment Anything生成的掩膜
如果您不想在初始外参中添加误差,请在文件data/initial_error.txt中将初始误差更改为全零。
3.2 深度学习提取分割
- 生成掩膜
请按照Segment Anything中的说明生成图像的掩膜。
首先下载模型检查点。您可以选择vit-l。

3.2.1 环境:python>=3.8,pytorch>=1.7,torchvision>=0.8
3.2.2 安装
cd src/LidarToCamera/python-sam
conda init
conda create -n sam python=3.8
conda activate sam
pip install -e .
pip install catkin_pkg
pip install empy
pip3 install torch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 --index-url https://mirror.sjtu.edu.cn/pytorch-wheels/cu117
pip install opencv-python pycocotools matplotlib onnxruntime onnx
3.2.3 运行
…详情请参照古月居
更多推荐
所有评论(0)