专栏算法工具链flashocc QAT demo 的hdm推理结果异常

flashocc QAT demo 的hdm推理结果异常

已解决
头角峥嵘2024-10-14
228
13

用户您好,请详细描述您所遇到的问题,详细的描述有助于帮助我们快速定位,解决问题~Thanks♪(・ω・)ノ

1. 芯片型号:j6e

2. 天工开物开发包 OpenExplorer 版本:例如 3.0.22

3. 问题定位:QAT 的 hbm推理 异常

4. 问题具体描述:bc推理时,yuv数据需要-128/128;但是在hbm推理时,用官方的demo nv12输入时,为uint8,且无-128/128的操作

请问,QAT的hbm在哪里实现了减均值除方差操作?我猜测这可能是我hbm推理结果异常的原因

算法工具链
征程6
评论2
0/1000
  • Huanghui
    Lv.5

    两点信息提供你做参考:

    1. bc推理时,因为HOST端没有硬件的支持,需要手动将数据从NV12转换为 yuv444_128后送入模型,也就是你说的yuv数据需要-128/128; 

    2. 在hbm推理时,因为有硬件可以完成从NV12到 yuv444_128的转换部分,所以无需手动操作,直接送入NV12给模型即可。

    3. hbm模型的归一化(减均值除方差)操作是在模型开始的preprocess 预处理节点完成的,下图提参考:
    2024-10-17
    0
    11
    • 头角峥嵘回复Huanghui:

      hello Luomantiker,我把hbm模型和其需要的输入,以及C++推理代码上传到

      链接: https://pan.baidu.com/s/1And_dduHO9aR_8cVzLEU6Q?pwd=jnjb 提取码: jnjb

      详细注释在readme.txt里,麻烦看下问题

      bc推理正常结果:


      hbm推理异常结果:

      2024-10-17
      0
    • 头角峥嵘回复Huanghui:

      hello,找到问题了吗?

      2024-10-21
      0
    • Huanghui回复头角峥嵘:

      你好,暂时还没有哈,我们基本上是仅提供方案面建议,你这个涉及代码排查可能需要的时间比较长,我们尽早哈。另外,问一下,你跑的这的测试用例这来自于OE的原有的sample还是你们自己的模型和处理代码呢?


      2024-10-21
      0
    • 头角峥嵘回复Huanghui:

      跑的OE的demo,跟着falshocc教程走的,导出了hbm模型

      hnm模型的C++推理是自己写的

      2024-10-21
      0
    • Huanghui回复头角峥嵘:

      明白了,谢谢,先看看后处理代码的复杂度吧,有结果我尽早反馈!

      2024-10-21
      0
    • 头角峥嵘回复Huanghui:

      hello,有结论了吗?

      2024-10-23
      0
    • Huanghui回复头角峥嵘:

      你好,从目前的结论看,最终量化出的结果不对,但是能导致这个结论的可能有:

      1, 推理结果本身就是有问题,无论可视化部分的逻辑是否有问题,结果不是不对的。

      2, 可视化部分的逻辑有问题,这样即使推理结果是OK的,可视的结果也不对。

      所以,需要对齐一下

      1. 你认为OK的结果图是哪里来的,怎么来的,通过_quntized.bc推理得到的?

      2. _quntized.bc和.hbm的输入输出的要求和结果数据是不是一样的,也就是说同样的输入是不是可以有同样的输出。

      3. 如果确认了_quntized.bc和.hbm的输入输出的要求和结果数据是不是一样, 并且可视化部门没有问题,就可以进行c++的前处理验证了。

      2024-10-24
      0
    • 头角峥嵘回复Huanghui:

      关于输入:

      1. .bc的输入为 6张图片+6个相机外参(生成look up table)

      bc推理时保存 look up table, depth_points 和 feat_points;这两个look up table 也是bc推理必须用到的

      2. .hbm推理的输入:6张图片 + depth_points + feat_points

      至此,.bc和.hbm的输入是一样的,差别在于6张图片的预处理,.bc对图片会-128/128; .hbm直接按nv12喂入,内部会进行-128/128

      关于输出:

      先不看可视化效果,直接把bc推理时的结果保存,这里的结果指的是在softmax 和 sigmoid的之前的结果;同理,把hbm的结果解析出来一一对比,会发现数据对不上


      2024-10-24
      0
    • Huanghui回复头角峥嵘:

      你好,关于flashOcc的部署这里先提供一个参考图给你:

      你看一下是不是部署时把参考点量化部分遗漏了哈。

      2024-10-25
      0
    • 头角峥嵘回复Huanghui:

      非常感谢,我按照你的建议将points量化后输入hbm,推理成功了,但是与bc有一些差异

      2024-10-28
      0
    • Huanghui回复头角峥嵘:

      收到,看来推理错误的问题解决了。

      后面这个问题看起来这个应该是量化损失引入的,对于损失肯定是越小越好,但是需要你们评估一下,目前的业务场景情况是否可用?你们用的这个模型是工具链附带的还是你们做过修改的。自带的模型目前已经进行过优化,进一步的精度优化你可以关注一下新版本的发布。当然,如果模型是你们自己修改的,这个就好看你们的修改点了,不过也要评估一下,修改前的损失,以便对比。 为了方便问题处理和管理,如果需要,请通过新的主题加以跟踪。

      2024-10-28
      0
  • Huanghui
    Lv.5

    你好,你是如果判断推理异常的,请分享错误相关截图或日志,谢谢!

    2024-10-15
    0
    0