hku-mars / FAST-LIVO

A Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry (LIVO).
GNU General Public License v2.0
1.26k stars 202 forks source link

位姿估计只使用了可见光相机,如果使用红外相机做位姿估计的话,需要多考虑什么问题吗? #110

Closed Xujiaming1 closed 3 months ago

Xujiaming1 commented 3 months ago

感谢作者的优秀的开源工作!我们复现了您的fast-livo的软硬件方案,用了一个红外相机和一个可见光相机以及一个Livox Avia LiDAR,位姿估计只使用了可见光相机,但通过把红外相机和可见光相机的颜色一起加权融合来给点云上色,算法跑的效果不错如下图。我想问下如果使用红外相机做位姿估计的话,在计算光度学误差时需要多考虑什么东西么? 微信图片1 微信图片2 微信图片3 微信图片4

xuankuzcr commented 3 months ago

感谢您的关注和复现!感觉可以预先标定红外图像的亮度值和温度值之间的关系,使用温度值计算不同patch之间的光度误差。

import numpy as np

# 定义普朗克常数、光速和玻尔兹曼常数
h = 6.626e-34  # 普朗克常数 (J·s)
c = 3.0e8      # 光速 (m/s)
k_B = 1.381e-23 # 玻尔兹曼常数 (J/K)

# 红外相机校准参数(示例值)
R = 1.0
B = 1.0
F = 1.0

def brightness_to_temperature(brightness, R, B, F, wavelength):
    """
    将亮度值转换为温度值
    :param brightness: 红外图像中的亮度值
    :param R: 相机校准参数 R
    :param B: 相机校准参数 B
    :param F: 相机校准参数 F
    :param wavelength: 波长 (米)
    :return: 温度值 (K)
    """
    # 普朗克定律的逆运算,求解温度
    temperature = (h * c) / (wavelength * k_B * np.log((2 * h * c**2) / (brightness * wavelength**5) + 1))
    return temperature
Xujiaming1 commented 3 months ago

好的,再次感谢作者优秀的开源工作和回复!

85256638 commented 2 weeks ago

好的,再次感谢作者优秀的开源工作和回复! @Xujiaming1 请问佬用的什么红外相机?把红外相机也融合起来,在代码里需要改动哪里呢?谢谢!

Xujiaming1 commented 1 week ago

你好,红外相机使用的是海康的,型号:MV-CI003-GL-N15。