当前位置: 首页
AI教程
J6B违规场景样本采集标注完整流程教程

J6B违规场景样本采集标注完整流程教程

热心网友 时间:2026-07-03
转载

1. 功能概述

这个 sample 实现了单路、多路 VIO 通路的接入和处理,下面重点介绍 1V、2V、6V 这几种典型的接入场景。无论你是刚接触这套方案,还是想快速验证硬件连接,都可以从这几个场景入手。

1.1. 软件架构说明

整个数据通路依赖 VIO API 完成,核心目标就是让多路 camera 能够顺利地接入并跑起来。同时,每一路数据还支持 dump 图像,方便调试和验证。软件控制关系如下图所示:J6B vio scenario sample

1.2. 硬件数据流说明

每个场景的图中都标注了具体的硬件连接关系,照着接就行。

需要特别留意的是,运行这个 sample 之前,必须保证硬件外设与场景图里的连接关系一致。如果手头的硬件不同,那就得按实际情况修改配置文件 hb_j6dev.json,或者直接更换外设。配置文件怎么改?可以参考“VIN 配置”章节。

1V 场景如下:

2V 场景如下:

6V 场景如下:

1.3. 代码位置及目录结构

sample 代码放在 SDK 工程的 {sdk_dir}/test/samples/platform_samples/source/S83_Sample/S83E04_Module/vio_scenario_sample 目录下。根目录有 Kconfig 和外部接口的 Makefile——Kconfig 控制是否参与整体编译;cfg 目录放 JSON 配置文件;src 目录下的 vio_scenario_sample.c 是 main 入口。

1.4. API 流程说明

API 的调用流程可以参考下面这张图:

主干代码大致是这样:

int main(int argc, char *argv[]){int ret = 0;pthread_t thid[HB_VIO_PIPELINE_MAX];uint32_t pipe_id[HB_VIO_PIPELINE_MAX];signal(SIGINT, get_exit_signal);// get optsret = get_opts_for_vio(argc, argv);

这里有个细节:如果不需要单独控制 sensor 的开关流,代码中的 hb_cam_starthb_cam_stop 其实可以省掉——因为 hb_vio_start_pipelinehb_vio_stop_pipeline 已经包含了 sensor 开关流的功能。其他 sample 文档里涉及这两对 API 的部分,解释也是一样的,具体可以参考“VIO 应用处理接口”。

获取数据和释放数据的代码:

int vio_worker_func(uint32_t pipe_id, int loop_count){int ret = 0, recovery_time = 0;pthread_t recov_thid[HB_VIO_PIPELINE_MAX];pym_buffer_v3_t pym_buf;VIO_DATA_TYPE_E pym_data_type;pym_data_type = HB_VIO_PYM_DATA_V3;struct timeval recovery_start_time, recovery_current_time;#ifdef ENABLE_HBPLAYERPYM_LAYER_TYPE pym_layer_type = (PYM_LAYER_TYPE)g_pym_show_layer;

2. 编译

2.1. 编译环境

本 sample 的编译环境直接用 SDK 自带的 build 工具就行,具体操作参考“Build 环境建立”。

2.2. 编译说明

编译时需要 VPS 系统相关的头文件:

#include "hb_vin_data_info.h"#include "hb_vpm_data_info.h"#include "hb_vio_interface.h"

依赖的库如下:

LIBS += -lvio -lpthread -lalog -lhbmem

编译命令:

# 进入SDK所在目录{sdk_dir},并source构建环境(参见上)。# 编译本sample:bdm libvio-scenario-sample# 输出文件:{sdk_dir}/install/aarch64le/sample/S83_Sample/S83E04_Module/vio_scenario_sample

3. 运行

3.1. 支持平台

J6B Plus Evm

3.2. 硬件环境搭建

接口连接如下:

模组方面:联创模组 OVX8D、IMX623,LONGHORN-ISX031。

连接方式:一路 OVX8D(FOV120)通过 4 合 1 线束的 C 口接到板子的 DES1;一路 IMX623(FOV60)通过 4 合 1 线束的 D 口接到板子的 DES1;四路 ISX031 通过 4 合 1 线束的 ABCD 口接到板子的 DES2。

3.3. 板端部署及配置

刷写好系统软件镜像后,sample 的可执行文件在板端路径:/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/;配置文件在:/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/

3.4. 运行指南

3.4.1. 运行方法

1V 测试命令:

/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_1V_cpe0_sen_cim0_isp0_pym0_mode2_sample/vpm_config.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/1V_OVX8D_RX0/hb_j6dev_plus.json -m 1 -l 1000 -s 10

2V 测试命令:

/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_2V_cpe0_sen_x8d_imx623_cim0_isp0_pym0_mode1_sample/vpm_config.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/2V_OVX8D_IMX623_RX0/hb_j6dev.json -m 3 -l 1000 -s 10

6V 测试命令:

/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_6V_cpe04_sen_cim04_isp0_pym04_sample/vpm_config.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/6V_1xOVX8D_1xIMX623_RX0_4xISX031_RX4_SYNC/hb_j6dev.json -m 63 -l 1000 -s 6

3.4.2. 运行命令行说明

vio_scenario_sample 是应用程序名。下面这张表列出了各参数的含义:

以 1V 测试命令为例:

/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_1V_cpe0_sen_cim0_isp0_pym0_mode2_sample/vpm_config.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/1V_OVX8D_RX0/hb_j6dev_plus.json -m 1 -l 1000 -s 10

-v 参数指定 VIO 配置文件路径,该 JSON 的具体配置参考“VPM 配置”。

-c 参数指定 camera 配置文件路径,该 JSON 的具体配置参考“J6X Camera 配置说明”。

-m 参数为 1,表示使能 pipe0 数据流。

-l 参数为 1000,表示获取 1000 帧 PYM 数据。

-s 参数为 10,表示 dump 前面 10 帧 PYM 数据。

除了以上参数,还有几个可选项:

  • 增加 -t 参数,例如 -t 50000 表示程序最长运行 50000ms。当 -t-l 同时使用时,各线程只要满足其中一个条件(获取到指定帧数或达到运行时间)就会退出。一般情况下不建议同时使用这两个参数。
  • 增加 -e 参数,例如 -e 2 表示通过 hbplayer 看图工具显示 PYM ds 层第 2 层。
  • 增加 -r 参数,例如 -r 1 表示开启自恢复模式,热拔插后能自动恢复,最长等待 15s,超过 15s 没插上就会报错退出。

1.21.3.4.3. 运行结果说明

程序运行时,可以用下面的命令查看每个 IP 的帧率。如果不开启 dump,帧率符合预期就说明程序跑通了。

cat /sys/class/vps/flow/fps

注意:这个命令每次执行间隔必须大于一秒,否则帧率数据会变成 0。

1V 测试结果:

帧率如下:

2V 测试结果:

帧率如下:

6V 测试结果:

帧率如下:

以 6V 测试为例,加上 -t 5000 指定运行 5000ms,结果如下——5000ms 后线程正常退出。其他场景用 -t 参数的现象类似,不再重复。

如果开启自恢复模式(-r 1),摄像头意外断开后各 pipe 会在报错的同时尝试自恢复。恢复正常连接后,当前 loop 报错结束,下一次 loop 到来时就能正常取流,不再继续报错:

若通过 hbplayer 看图,自恢复成功后画面会继续正常显示实时图像。

其他场景使用 -r 参数的现象类似,不再赘述。

3.4.4. 运行可变更说明

3.4.4.1. 帧率变更

本 sample 中各 pipe 的帧率可以通过修改配置文件来调整。比如想改成 25fps,直接修改所用 vpm_config.json 中各 pipe 指定的 lpwm.json 文件里的 period 参数为 40000(即 40.000ms):

lpwm.json 中其他参数的设置方法参考“LPWM 使用”。

以 6V 测试为例,sample 提供了 LPWM 使用中推荐的 25fps 配置文件:/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/6V_1xOVX8D_1xIMX623_RX0_4xISX031_RX4_SYNC/lpwm_25fps.json,以及对应使用该 lpwm.json 的 vpm_config.json/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_6V_cpe04_sen_cim04_isp0_pym04_sample/vpm_config.json,直接拿来用或者参考修改都行。

另外,camera 配置文件 hb_j6dev.json 中各 port 的 fps 参数也要同步改成 25,或者直接用环境变量来选择帧率:

export CAM_CONFIG_SELECT=config_25fps

综上,6V 25fps 场景的完整测试命令如下:

export CAM_CONFIG_SELECT=config_25fps/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_6V_cpe04_sen_cim04_isp0_pym04_sample/vpm_config_25fps.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/6V_1xOVX8D_1xIMX623_RX0_4xISX031_RX4_SYNC/hb_j6dev.json -m 63 -l 1000 -s 6

运行后查看实时帧率,应该是预期的 25fps:

如果不需要 25fps,执行下面命令取消环境变量,再跑测试命令即可:

unset CAM_CONFIG_SELECT

其他场景修改帧率的方法和过程完全类似,不再赘述。

用户还可以在 camera 配置文件中指定效果库文件(不配置或置空则用默认),例如指定 lib_CW_OX8DGB_AST1_065_L.so

"port_0": {"sensor_name": "ovx8dstd","calib_lname": "lib_CW_OX8DGB_AST1_065_L.so","serial_addr": "0x41","sensor_addr": "0x11","eeprom_addr": "0x51","sensor_mode": 5,"fps": 30,"width": 3840,"height": 2160,

本 sample 提供了这个场景下对应的 hb_j6dev.json,位于:/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/6V_1xOVX8D_1xIMX623_RX0_4xISX031_RX4_SYNC/hb_j6dev.json

3.4.5. 看图结果

Dump 出的数据保存在当前目录。例如上面的 6V 测试命令执行后:

960x640_pipe5_pym_ds1_f2_roi_2.yuv 来说,文件名中的含义是:宽 960、高 640,pipe5 的 PYM ds1 层输出图像的第 2 帧(f2),对应 loop 次数为 2(roi_2)。

有一点需要说明:由于收敛时间,各 pipe 的前几帧图像效果可能不太理想,这是正常现象,具体帧数还和实际模组有关。放心,后续的帧都是正常的。

另外,分配 buffer 时内存要求 16 字节对齐。如果配置文件中设置的图像宽度不是 16 的倍数,按分配 buffer 大小 dump 出来的图像右侧就会出现无效数据(看起来像绿边),这也是正常现象。解决方法是把配置文件中的 width 设为 16 的整数倍,或者按图像实际大小保存。

这个 sample 也支持通过 hbplayer 工具看图。先设置平台、IP 地址等参数:

以 6V 测试为例,在命令后加上 -e 2 显示 ds 层第二层:

/app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/bin/vio_scenario_sample -v /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/Scenario_6V_cpe04_sen_cim04_isp0_pym04_sample/vpm_config.json -c /app/sample/S83_Sample/S83E04_Module/vio_scenario_sample/cfg/case_j6evm/6V_1xOVX8D_1xIMX623_RX0_4xISX031_RX4_SYNC/hb_j6dev.json -m 63 -l 1000 -s 6 -e 2

执行后,在 hbplayer 左侧点击 connect 就能看到实时 6V 图像了:

当满足 -l-t 参数指定的条件后,sample 会自动退出;也可以按 Ctrl+C 手动结束。其他测试场景连接 hbplayer 看图的方法和效果完全一样,不再赘述。

来源:https://juejin.cn/post/7657129096331313203

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Claude Token节省十大实用技巧方案

Claude Token节省十大实用技巧方案

通过编辑而非追加消息、每15-20条消息开新对话、合并问题、利用Projects缓存、预设记忆、关闭附加功能、按任务选择模型、分散时段、避开高峰及开启超额使用,能有效减少上下文重读,节省Token。

时间:2026-07-04 14:54
硅基流动冲刺Token工厂第一股亏损反更值钱?

硅基流动冲刺Token工厂第一股亏损反更值钱?

硅基流动冲刺港交所“Token工厂第一股”,2025年营收5533万元,净亏损3 45亿元,毛利率-24%。两条业务线分化:公有云服务亏损严重,本地部署毛利率达82 5%。依赖中立第三方定位吸引资本,但面临原厂降价、大厂竞争及供应链风险,估值77亿背后存隐忧。

时间:2026-07-04 14:54
AI Agent的真正价值在于长在业务流程中

AI Agent的真正价值在于长在业务流程中

AIAgent需嵌入企业业务流程,而非仅作聊天工具。以零售品类管理为例,通过趋势识别、选品与货架规划,预计可带来2%—5%销售提升及10%P&L改善。设计需模块化、可整合,确保可解释性,重新界定人、AI与工具的关系。

时间:2026-07-04 14:54
后张雪峰时代大厂抢滩AI志愿填报

后张雪峰时代大厂抢滩AI志愿填报

AI高考志愿填报工具在大厂推动下普及,能快速整合信息、生成方案,但存在数据幻觉、同质化风险。它无法替代张雪峰式实用主义建议和信誉责任,志愿填报仍需个性化判断与深度信息。

时间:2026-07-04 14:53
阿里禁用Anthropic全系产品的理性风控决策

阿里禁用Anthropic全系产品的理性风控决策

阿里自7月10日起全员禁用Anthropic全系产品,因其ClaudeCode被发现存在隐蔽身份识别与隐写标记机制,且Anthropic曾指控阿里进行模型蒸馏。此举源于安全信任崩塌、中美AI博弈加剧,阿里同步换装自研工具Qoder,推动国产AI编码工具替代。

时间:2026-07-04 14:53
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜