跳转至

vision (Vision)


vision 模块提供视觉与图像相关接口,包括图像采集、相机控制、屏幕截图、3D 点云显示、ROS 视觉控制等功能,支持计算机视觉算法的开发与验证。


模块功能

功能 说明
图像采集 从相机、屏幕、仿真环境获取图像数据
相机控制 相机参数配置、视角控制、运动控制
屏幕截图 屏幕内容的实时捕获和录制
3D 点云显示 点云数据的可视化显示和处理
ROS 视觉控制 与 ROS 视觉系统的集成和控制
Open3D 集成 Open3D 库的点云和网格处理功能

核心类与接口

类/接口 说明
VisionCaptureApi 视觉采集核心类,支持多种图像源
CameraCtrlApi 相机控制接口,支持参数和运动控制
ScreenCaptureApi 屏幕截图接口,支持区域和全屏捕获
Open3DApi Open3D 集成接口,支持点云和网格处理
VisionConfig 视觉配置管理,支持参数持久化
RosCtrl ROS 视觉控制接口

图像源支持

图像源 说明
USB 相机 本地 USB 摄像头实时视频流
网络相机 IP 摄像头的网络视频流
仿真相机 RflySim3D/UE 中的虚拟相机
屏幕捕获 桌面屏幕的实时截图
图像文件 本地图像文件的读取和回放
ROS 图像 ROS 话题中的图像数据

使用场景

计算机视觉算法开发

  • 目标检测与识别算法的训练和验证
  • 图像分类和语义分割实验
  • 视觉 SLAM 和定位算法开发

无人机视觉应用

  • 无人机航拍图像处理
  • 视觉导航和避障系统
  • 基于视觉的目标跟踪

仿真环境视觉

  • 从仿真环境获取训练数据
  • 域随机化数据增强
  • 视觉算法的 sim-to-real 迁移

数据记录与回放

  • 飞行过程中的视觉数据记录
  • 数据集的创建和管理
  • 历史数据的回放和分析

代码示例

基本图像采集

from RflySimSDK.vision import VisionCaptureApi

# 创建视觉采集实例
vision = VisionCaptureApi()

# 连接到仿真相机(RflySim3D)
vision.connect(
    source='rflysim3d',
    ip='127.0.0.1',
    port=9999
)

# 设置图像分辨率
vision.setResolution(640, 480)

# 开始图像采集
vision.startCapture()

# 获取一帧图像
frame = vision.getFrame()

# 保存图像
frame.save('capture.png')

# 停止采集
vision.stopCapture()

相机参数控制

from RflySimSDK.vision import CameraCtrlApi

# 创建相机控制实例
camera = CameraCtrlApi()

# 连接到相机
camera.connect('127.0.0.1', 9999)

# 设置相机参数
camera.setExposure(0.01)  # 曝光时间 10ms
camera.setGain(1.5)       # 增益 1.5
camera.setWhiteBalance(5500)  # 色温 5500K

# 控制相机运动
camera.moveTo([10, 5, 3])           # 移动到位置
camera.rotateTo([0, -30, 45])       # 旋转到角度(俯仰-30,偏航45)
camera.setFOV(90)                   # 设置视场角

# 跟随模式
camera.followTarget(
    target_id=1,
    offset=[-5, -5, 2],
    smooth=True
)

点云显示(Open3D)

from RflySimSDK.vision import Open3DApi
import numpy as np

# 创建 Open3D 接口
o3d = Open3DApi()

# 创建点云数据
points = np.random.rand(1000, 3)  # 1000 个随机点
colors = np.random.rand(1000, 3)  # 随机颜色

# 创建点云对象
point_cloud = o3d.createPointCloud(points, colors)

# 显示点云
o3d.show(point_cloud)

# 添加坐标系
o3d.addCoordinateFrame(size=1.0)

# 从 Lidar 数据创建点云
lidar_data = o3d.readLidarData('lidar_scan.bin')
o3d.visualizeLidar(lidar_data)

性能优化

优化项 说明
图像压缩 使用 JPEG/PNG 压缩减少传输带宽
分辨率自适应 根据网络状况动态调整分辨率
帧率控制 限制最大帧率避免资源占用过高
硬件加速 使用 GPU 加速图像处理
缓存机制 图像数据的本地缓存和预加载

相关资源


注意:本文档为 vision 模块的索引页面。各接口的详细 API 说明请参考对应模块的独立文档页面。