此页面由 AI 自动翻译。查看英文原版

本页目录

  • 整体记录
  • 环境变量配置
  • 功能示例
  • 整体回放
  • 功能示例
  • 限制

整体记录与回放

为了简化应用程序的开发以及后续的测试和调试,您可以记录和回放测试数据。通过使用环境变量和配置文件,无需对代码进行任何更改即可实现此目的。您可以使用 holistic_record.py 脚本创建整体记录,然后通过将 DEPTHAI_REPLAY 环境变量设置为记录的路径来回放它。整体记录与回放通过记录应用程序中使用的源节点(CameraIMU)的校准、相机特性信息和数据(消息)来工作,然后可以像源节点再次发送相同数据一样进行回放。

整体记录

整体记录会将启用的源节点流记录到一个 tar 文件中。这可以在代码中启用:

Python

Python
1with dai.Pipeline as pipeline:
2    config = dai.RecordConfig()
3    config.outputDir = "./recordings";
4    config.videoEncoding.enabled = True # 使用视频编码
5    config.videoEncoding.profile = dai.VideoEncoderProperties.Profile.H264_MAIN
6
7    pipeline.enableHolisticRecord(config)

C++

C++
1dai::Pipeline pipeline;
2dai::RecordConfig config;
3config.outputDir = "./recordings";
4config.videoEncoding.enabled = true;  // 使用视频编码
5config.videoEncoding.profile = dai::VideoEncoderProperties::Profile::H264_MAIN;
6
7pipeline.enableHolisticRecord(config);
或者通过使用 DEPTHAI_RECORD 环境变量:
Command Line
1DEPTHAI_RECORD="./recordings" python3 application.py

环境变量配置

在上面的示例中,DEPTHAI_RECORD 环境变量被设置为记录输出目录。这启用了具有默认配置选项的整体记录。如果您想要更多控制,可以将变量设置为指向配置文件:
JSON
1{
2    "outputDir": "recordings/",
3    "compressionLevel": 3,
4    "syncCameraOutputs": true,
5    "videoEncoding": {
6	"enabled": true,
7        "bitrate": 0,
8        "lossless": false,
9        "profile": "MJPEG",
10        "quality": 80
11    }
12}
配置参数如下:
  • outputDir 设置记录的输出目录
  • compressionLevel 配置元数据的压缩。范围从 0 到 5(含),对应以下压缩级别:NONEFASTESTFASTDEFAULTSLOWSLOWEST
  • syncCameraOutputs 启用相机输出同步。这可以防止丢弃的消息在回放到 StereoDepth 或需要同步帧的类似节点时引起问题。
  • videoEncoding 配置用于编码相机流的 VideoEncoder
    • enabled 启用 VideoEncoder。当设置为 false 时,记录的是 Camera 节点的输出,这可以降低设备 CPU 使用率,同时增加带宽使用量
    • profile 设置编码配置文件
    • bitrate 设置 VideoEncoder 的比特率(设置为 0 时自动确定)
    • lossless 确定在适用时编码是否无损
    • quality 确定在适用时的编码质量

功能示例

整体回放

整体回放会回放记录的源流。它会自动循环输入流并相应地更新消息时间戳和序列号。与整体记录类似,它可以在代码中启用:

Python

Python
1with dai.Pipeline as pipeline:
2    pipeline.enableHolisticReplay("./recordings/recording.tar")

C++

C++
1dai::Pipeline pipeline;
2pipeline.enableHolisticReplay("./recordings/recording.tar");
或者通过使用 DEPTHAI_REPLAY 环境变量:
Command Line
1DEPTHAI_REPLAY="./recordings/recording.tar" python3 application.py

功能示例

限制

此功能仍在开发中,并存在一些限制:
  • 由于回放需要将消息从主机发送到设备,因此使用此功能会显著降低管道的帧率。
  • 回放时,帧时间戳可能会在每次循环时发生漂移,因为每次相机流的循环时间戳偏移量都是独立计算的。这可能导致一段时间后消息同步出现问题。
  • 目前,只能对单设备管道进行整体记录和回放。