2,851
社区成员




使用AI Engine Direct Helper开发AI类应用需要掌握哪些技能,有哪些地方需要特别注意的呢?
AI Engine Direct Helper(也称QAI AppBuilder/QNN Helper等,https://github.com/quic/ai-engine-direct-helper)%E6%98%AFQualcomm%E5%BC%80%E6%BA%90%E7%9A%84%E4%B8%80%E4%B8%AApython%E9%A1%B9%E7%9B%AE%EF%BC%8C%E5%AE%83%E6%98%AF%E5%9C%A8QNN SDK的基础上进行封装的、无需理解QNN SDK底层接口就能上手使用的、仅需要派生一个python类并实现模型推理的前处理和后处理就能把绝大多数模型跑起来并使用NPU进行加速的python模块。使用它开发AI类应用,重点在于前后处理的实现,因此需要掌握opencv、numpy、torch相关的接口,以便对图像进行前处理以及对输出的tensor进行后处理。
需要注意的地方有两个:
一是QNN模型输入输出tensor的shape通常和原始模型输入输出tensor的shape不太一样,需查看QNN模型确认;
二是opencv Mat数据的tranpose操作和pytorch张量的premute操作都不会进行拷贝以重排数据的,而是通过设置步幅(stride)来达到重排的目的,这就导致了重排后数据的不连续性。而QNN SDK在对传过来的数据进行推理时,是忽略应用层数据的stride属性而默认数据是连续的,从而导致推理结果异常。