"); //-->
1.引言
在征程 6 算法工具链使用过程中,会存在算法侧与软件侧的交接,偶尔会遇到,需要自证清白的情况,例如:
算法侧反馈:bc 精度没问题,也参考了 文章,使用 hb_verifier 工具验证了 bc 与 hbm 一致性,完成交付,美滋滋,下班!
软件侧反馈:算法侧给我的 hbm 有问题,使用相同的 png 图片,我用 c++写的前处理,推理 hbm 出来的可视化不行,和 bc 对不齐,算法同学快回来加班!
算法与软件:我不相信 hb_verifier 工具,只相信自己的代码。(呃呃呃呃呃)
如果遇到了这种问题,算法侧的同学怎么自证清白呢?怎么证明可能是 c++与 python 前后处理不一致的问题?
很简单:反向使用软件侧的输入,用 python 代码推理一下 bc 与 hbm,并用 python 代码来进行可视化。下面会介绍软件与算法在遇到这种问题时,应该怎么做。
2.软件侧
对于视频通路金字塔过来的图像数据,前处理一般很简单,就是 mean/std/归一化之类的,常见的应该是 NV12 输入,这部分地平线有一套非常成熟的配置方式,下面以 NV12 输入为例,介绍软件侧应该怎么给算法侧输入。
hbm 输入信息如下:
INFO NAME TYPE SHAPE DATA_TYPE
INFO ------- ------ ---------------- ---------
INFO data_y input [1, 224, 224, 1] UINT8
INFO data_uv input [1, 112, 112, 2] UINT8
INFO prob output [1, 1000, 1, 1] FLOAT32
hrt_model_exec 工具有三个功能,本文主要使用 infer 功能,infer 用于模型推理,用户自定义输入图片,推理一帧。infer 功能需要与 input_file 一起使用,指定输入图片路径,工具根据模型信息 resize 图片,整理模型输入信息。本文使用到的相关参数如下

在板端执行类似如下命令:
hrt_model_exec infer --model_file mobilenetv1_224x224_nv12.hbm --input_file zebra_cls.jpg,zebra_cls.jpg --input_img_properties Y,UV --enable_dump
会生成对应的输入/输出数据
model_infer_input_0_data_y.bin
model_infer_input_1_data_uv.bin
model_infer_output_0_prob.bin
将两个输入。bin 数据给算法侧,请算法侧使用这两个输入去可视化 bc 模型。
3.算法侧
下面参考引言部分的文章,算法侧使用软件侧给的输入推理 hbm 模型即可,输入数据加载方式如下。
import numpy as np
加载 bin 文件
y_bin = np.fromfile("./etc/model_infer_input_0_input_0_y.bin", dtype=np.uint8)
uv_bin = np.fromfile("./etc/model_infer_input_1_input_0_uv.bin", dtype=np.uint8)
知道具体输入形状,进行 reshape
y = y_bin.reshape((1,224,224,1))
uv = uv_bin.reshape((1,112,112,2))
inputs = {"input_0_y": y, "input_0_uv": uv}
注意:为了避免引入其他变量,此时转换编译模型时,不要删除任何节点。
推理部分代码如下:
hbm_model = Hbm("./etc.hbm")
hbm_outputs = hbm_model[0].feed(inputs)
最后,用 hbm_outputs 走 python 的后处理与可视化即可。
4.拓展
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
vxwokrs下静态图像压缩算法(上)
地平线征程 6 系列集成 Cadence Tensilica Vision DSP,实现规模化量产,合作加速智能驾驶解决方案部署
加快实现自动驾驶(完整小组讨论)
目标跟踪算法在红外热成像跟踪技术上的应用
面向算法硬件加速的FPGA实现方法
简单实用的单片机CRC 快速算法
PID算法
实时训练驾驶人工智能
特斯拉监督版FSD加入中国市场
携手ADI赢得未来
ADI:传感技术助力未来自动驾驶的发展
无线传感器网络低功耗分簇路由算法设计
2035年自动驾驶出租车市场规模将达1680亿美元
自动驾驶正推动汽车行业加速布局人形机器人
基于LPC2138的血压测量算法开发平台电路图
求FSK信号的解调算法,主要是铁路上的移频信号!
[转帖]us/os就绪表的维护算法分析
76-81GHz自动驾驶CMOS RADAR
数字PID控制及其改进算法的应用
曲面显示屏取代传统汽车挡风玻璃
有关指纹算法
自动驾驶的现状与未来(节选)
高阶智驾要落地,线控底盘为什么必须执行得准
计算机科学与技术反思录(2)
加密算法之MD5算法
Ouster推出 Rev8 OS 激光雷达系列 原生彩色激光雷达正式落地
CRC算法原理及C语言实现
数字PID控制算法之一
掘金自动驾驶,不要把大坑当机会
采用Mean-Shift和Camshift算法相结合的火焰视频图像跟踪设计