RealSense ROS 上的点云和 RGB 图像对齐
Pointcloud and RGB Image alignment on RealSense ROS
我正在使用深度学习(Tensorflow 对象检测)和 Real Sense D425 相机开发狗检测系统。我正在使用 Intel(R) RealSense(TM) ROS Wrapper 从相机获取图像。
我正在执行 "roslaunch rs_rgbd.launch" 并且我的 Python 代码订阅了“/camera/color/image_raw”主题以获取 RGB 图像。使用这个图像和对象检测库,我能够推断 (20 fps) 狗在图像中的位置作为框级别 (xmin,xmax,ymin,ymax)
我想用物体检测信息(xmin,xmax,ymin,ymax)裁剪点云信息
并确定狗是远离还是靠近相机。我想在 RGB 图像和点云之间逐个像素地使用对齐信息。
我该怎么做?有什么主题吗?
提前致谢
英特尔在 https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/distance_to_object.ipynb
上发布了关于同一问题的 python 笔记本
他们的做法如下:
获取色框和深度框(你的情况是点云)
将深度与颜色对齐
使用ssd检测彩框内的狗
- 获取检测到的狗的平均深度并转换为米
depth = np.asanyarray(aligned_depth_frame.get_data())
# Crop depth data:
depth = depth[xmin_depth:xmax_depth,ymin_depth:ymax_depth].astype(float)
# Get data scale from the device and convert to meters
depth_scale = profile.get_device().first_depth_sensor().get_depth_scale()
depth = depth * depth_scale
dist,_,_,_ = cv2.mean(depth)
print("Detected a {0} {1:.3} meters away.".format(className, dist))
希望对您有所帮助
我正在使用深度学习(Tensorflow 对象检测)和 Real Sense D425 相机开发狗检测系统。我正在使用 Intel(R) RealSense(TM) ROS Wrapper 从相机获取图像。
我正在执行 "roslaunch rs_rgbd.launch" 并且我的 Python 代码订阅了“/camera/color/image_raw”主题以获取 RGB 图像。使用这个图像和对象检测库,我能够推断 (20 fps) 狗在图像中的位置作为框级别 (xmin,xmax,ymin,ymax)
我想用物体检测信息(xmin,xmax,ymin,ymax)裁剪点云信息 并确定狗是远离还是靠近相机。我想在 RGB 图像和点云之间逐个像素地使用对齐信息。
我该怎么做?有什么主题吗?
提前致谢
英特尔在 https://github.com/IntelRealSense/librealsense/blob/jupyter/notebooks/distance_to_object.ipynb
上发布了关于同一问题的 python 笔记本他们的做法如下:
获取色框和深度框(你的情况是点云)
将深度与颜色对齐
使用ssd检测彩框内的狗
- 获取检测到的狗的平均深度并转换为米
depth = np.asanyarray(aligned_depth_frame.get_data())
# Crop depth data:
depth = depth[xmin_depth:xmax_depth,ymin_depth:ymax_depth].astype(float)
# Get data scale from the device and convert to meters
depth_scale = profile.get_device().first_depth_sensor().get_depth_scale()
depth = depth * depth_scale
dist,_,_,_ = cv2.mean(depth)
print("Detected a {0} {1:.3} meters away.".format(className, dist))
希望对您有所帮助