暮年|构建 AI 新生态,“软件定义”摄像机打造机器智能新捷径( 二 )


暮年|构建 AI 新生态,“软件定义”摄像机打造机器智能新捷径软件定义摄像机有很好的算法移植能力 , 以 Caffe 模型为例 , 将 Caffe 模型通过模型转换工具转化为可在软件定义摄像机上加载的 NNIE 模型 , 该文件模型以 wk 为后缀 , 开发者可以在软件定义摄像机上调用 NNIE 接口做模型推理 。
马俊凯还解答了开发者关心的精度损失问题 。
RuyiStudio 模型转换工具同时也提供了精度损失分析的功能 。 该工具读入模型文件(prototxt、caffemodel 文件) , 选定一个测试集 , 利用测试集做前向推理 , 得到 GPU 模型每一层 Feature Map 的输出 , 再用同样一张测试图片和 WK 模型做前向推理 , 得到转化完成之后 WK 每一层的 Feature Map 输出 , 用两层 Feature Map 的输出 , 就可以计算出每一层 Feature Map 的相似度水平 。 如果量化误差很小 , 那么相似度就会很高 。
马俊凯还分析了掉点问题 , 对于模型的优化问题 , 也提出了一些建议 。
暮年|构建 AI 新生态,“软件定义”摄像机打造机器智能新捷径摄像机 AI 模型部署与推理实践华为机器视觉智能算法软件架构设计师杨磊就摄像机 AI 模型部署与推理实践做了分析与解读 。
暮年|构建 AI 新生态,“软件定义”摄像机打造机器智能新捷径基于 SDC OS 架构实现板端推理 , 首选应初始化 SDC 服务 , 处理好 YUV 数据帧队列 , 对数据流 YUV 数据进行通道设置 , 比如设置分辨率和通道号 。 其次进行模型加载和初始化 , 需要初始化 NNIE 参数 , 如 anchor、类别、阈值 , 还要分配输入和输出的 blob 。 然后可订阅 YUV 数据 , 继而做前向处理 。 前向处理后可做算法的后处理 。 最后要发送到 web 或后端服务器 , 把算法结果发送出去 。 如果要实现算法 App , 需要关注加载模型、卸载模型 , 然后做前向处理和订阅 YUV 数据 , 用这四个服务就可以实现 App 的主体流程 。

  • 加载模型关注两个字段 , 第一个是 url , 第二个是 method 。 url 是 SDC_URL_NNIE MODEL , 而 method 就是 SDC_METHOD_CREATE 。
  • 卸载模型类似 , url 类型就是 SDC_URL_NNIE MODEL , method 就是 SDC_METHOD_DELETE 。
  • 前向处理的 url 是 SDC_URL_NNIE_FORWARD , 而它的 method 是 SDC_METHOD_GET 过程 , 要从内存中 GET 到 Feature Map 。
  • 订阅 YUV 数据 , url 是 SDC_URL_YUV_DATA , method 也是 SDC_METHOD_GET , 因为我们要从之前分配好的内存队列中 GET 到 YUV 数据 。 加载模型可以使用输入字符串或者输入文件字符串的加载方式 , 也可以通过内存加载 。 文件只需要输入模型字符串就可以实现加载;而内存加载时要先 open 模型 , 传入模型地址后才可加载 。 订阅 YUV 数据的扩展头就可以获取当前队列里面的 MAX , 就是我们已有的 YUV 个数 。
杨磊还就 YUV 处理问题给予了解答 。 因为输入输出的 blob 是三维的 , 而不同的模型输出的 blob 个数不一样 。 NNIE 输出的内存排布格式也不一样 , 它首先排布坐标框 , 接着排前景概率、类概率 , 然后按照不同 Anchor 来排布 , 直到最后回归 。 可以按照这样的编译地址取到相应的值 , 回归出坐标框 。
机器视觉开发者社区介绍华为机器视觉开发者社区运营经理谭义鑫从社区论坛、生态开放实验室、赋能培训、职业认证、开发者活动五个方面对华为机器视觉开发者社区进行了详细的介绍 。 开发者社区既是知识分享和技术交流平台 , 也是开发者求助的通道 , 开发者遇到机器视觉技术问题 , 都可以在社区论坛或通过工单进行求助 。