鉴于本人从事视觉感知方向,所以本文也只简述了人工智能的CV方向在工业界的推进流程:人工智能——>深度学习——>神经网络——>计算机视觉——>工业界(自动驾驶、安防、医疗)

前沿文章的精度、速度很难在工业界掀起助澜,原因在于:
1、不同的依赖项需要重新搭建环境
2、不同框架实现的算法要重新移植
3、新的算法要重新部署和验证
4、学术界一般用Pytorch/Tensorflow框架,工程上一般Caffe框架经典好用
工业界通常会调研一些经典算法,有具体场景、大量数据的加持以及后端处理,得到的效果基本不会差。借用一张目标检测网络发展图:

所以工业界不是站在神经网络顶端的人,只要所采用的模型
能用:准确性达标;
实用:速度达标;
好用:准确率速度达到平衡且不太占用硬件资源;

  • 传统的arm板上采用cpu只能跑小型化神经网络,利用针对cpu端的框架ncnn、mnn等,其他一般需要gpu、fpga等加持。
  • 带有AI芯片的开发板通常各大硬件厂商都配套自己的NN框架,比如高通自带的SNPE,TI自带的TIDL等,但是其灵活性和完备性都有待改善,并且随着芯片性能的提升,以及工业应用中多任务的场景出现。如果只用一个网络就能解决所有问题固然好,但是子任务精度的权衡,损失的综合都需要考虑,所以一些公司摒弃硬件厂商提供的SDK,直接利用芯片算力将同一个网络部署到不同的计算模块;或者将不同任务的模型分别部署到不同的计算模块同时处理。
  • 落地产品的开发通常不完全基于开源模型基础上(faster rcnn/ssd等)做一些改进,实际过程中优先满足精度需求的同时,速度上对模型做裁剪、量化、压缩等更偏工程化的内容。
  • 工程应用的落地,只要针对实际情况满足要求即可,不会因为学术界出了一个新模型就去复现去部署,太耗费资源。

工业界对模型的关注以下问题(数据绑定和场景受限):
- 这个模型要不要堆很多机器?
- 这个模型可解释性怎么样?
- 这个技术复现和上线要多少人日的工作量?
- 这个模型能否良好地插入我们现有的业务pipeline里面?
- 这个模型除了模型指标外能不能给我们的业务指标带来提升?
- 这个模型的bad case有多bad,我们能不能接受?
不采用所谓最前沿模型,并不代表业界工程师们不用去实现,那么工程师的职责是什么:
- 在产品环境的应用背后,是几种甚至几十种可能方案对比后取优的结果
- 需要跟踪、调研、预研前沿模型,消化吸收其中的idea,思考能否在自己的业务上起到正向的作用
- 多尝试;如inference time在不同平台的增加,SE在不同model size下性能提升
- Tradeoff
工业领域偏好:
1、计算机视觉领域,企业倾向于用简单的模型+各种优化技巧。另外,其实最关键的是标数据
2、传统视觉领域,可以用最前沿的方法,但是要有其它的non-parametric算法对worst case做保证
3、时序分析/建模/决策,做这个的算法工程师挺多的,其中很多是数学出身,工作内容直接对客户负责,因而要求模型必须有可解释性。他们对前沿的方法持非常保守的态度。用的最多的是传统的统计回归,xgboost,gbdt也经常用到。有时候在预测/决策/推理的过程中还要model uncertainty。这类业务其实很有挑战性,想做好不容易,业务规则限制太多,完全有可能train了两个月模型还不如hard coding规则。
如何做AI产品:
1. 目标检测网络:这里研究的目标检测网络会更具有针对性,一方面考虑到自动驾驶车载控制器的硬件性能,需要对网络进行裁剪,压缩,剪枝。神经网络里的"万金油",用哪个平台都离不开模型压缩,还有NV自带的Tensor RT压缩工具。
针对工程化实现对检测网络做相应的修改:
应用场景(园区/港口/城区);
网络模型的选取(小型化/轻量化);
设计(被检测的对象:人/车/静态物体等);
网络层的修改(回归2D点/3D点)
总结:不同的场景需求,就更考验工程化能力了,不单单是统一常规的检测网络了。
2.工程化:以车载iecu为例,算力有限,gpu资源有限,选取的网络模型需尽可能的小型化轻量化。程序框架的构思为:
输入接口:
(1)相机的调用,图像读取(若是鱼眼图像,还需做标定,畸变处理)。
(2)加载检测网络的输出接口。
(3)读取车辆的一些信息,包括自车的车体坐标,航向角等信息(lcm模块)。这几个部分的处理,线程的统一调度,相互之间的数据传递等
中间处理过程:
(1)检测是一方面,还需要加入被检测物体的位置信息,这就涉及到相机模型的理解,测距功能前视相机测距和鱼眼相机测距原理是不一样的。
(2)加入追踪功能,不加追踪出来的检测框抖动会比较大,同时,仅有检测也无法给出被检测物体的id号。会加一些帧间匹配和滤波的功能消除框抖动的问题。
(3)数据的处理,滤波操作,视频检测框不同于图像检测,实时过程中会存在抖动,影响测距功能,所以需要加入一些后处理平滑功能,使检测框更平稳。
输出模块包括向融合决策层提供被检测物体的label,id,distance,age等,感知层与融合层的通信需要统一定义的接口协议来联调,发送的时间接收的时间是否对应上,写入的数据是否满足定义的数据类型等。
上述所有一切完成后,还有大量的测试,实验,测试,实验,然后暴露问题,分析问题,解决问题,不断的feedback,debug,modify,再重复测试,如此循环。

下面针对网络和部署模块中进行详细说明:
1、网络的选取和调参是关键;
网络选取:考虑到实际情况的实时性、硬件性能,需考虑参数量较小的检测网络,更倾向于单阶段式的网络;基于yolo\ssd等的多个变体网络;其次基础特征提取网络backbone的替换,传统都是vgg的特征提取,现在mobilenet、v2\v3都可以大幅提速;进一步的提速办法还有初始化、蒸馏以及去掉某些基础特征层以裁剪模型,都可以提升速度;当然前提是精度损失较小的前提下。
调参:这里主要根据数据集来决定;最终的检测效果跟样本数量有关,也跟训练网络的部分参数设置有关;如小物体检测和常规的车辆、行人检测候选框大小差异很大,可以适当修改训练网络的anchor值可以大幅提升检测精度、以及修改损失函数的权重等;
2、工程化
将PC端的目标检测算法移植到嵌入式控制器中,不同控制器开发难度可能不一样,带gpu的控制器最好不过,目前来看Nvidia的还是最好用,但它的相机调用很不友好,官方声明不建议使用opencv,用它自带的NVmedia工具,核心在于目标检测算法C++接口开发,以及联调工作将得到的检测结果发送给上层;大量的在线实测工作,再进行反馈修改。是物体的漏检误检则需要从网络端修改,要么继续调参,要么继续增大数据集提升精度;或者是发送或需增加一些新的功能,则是在工程化代码里修改。

无人驾驶领域模型:

Common Objects in Context

Benchmark Suite - Cityscapes Dataset

欢迎关注小编公众号,最新文章同步更新。

简述AI技术的工程部署相关推荐

  1. 13 大论坛同开播!数百专家带你从机器学习技术与工程实践,聊到开源生态 | AI ProCon 2020...

    2020 年 7 月 4 日,由 CSDN 主办的第三届 AI开发者大会(AI ProCon 2020)在线上进行到了第二天的议程.作为"百万人学AI"的阶段性成果展示,AI Pr ...

  2. AI大牛Jerry Kaplan:AGI?没有技术和工程基础

    李根 发自 奇点大学  量子位 报道 | 公众号 QbitAI △ 全球顶尖AI专家Jerry Kaplan(右)与创新工场合伙人方益民 当Jerry Kaplan被问到AGI(通用人工智能),你猜他 ...

  3. AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术

    在这个全民抗疫的特殊时期,今年的春节返潮来得比往年迟了许多.如今不少企业结束了远程办公,开始陆续复工,一时间,无论是重点防控的机场.火车站,还是学校.企业.社区等密集型场所,都安排了密集的防疫驻扎点. ...

  4. 五位工程师亲述:AI技术人才如何快速成长?

    来源:AI前线 本文长度为12000字,建议阅读10分钟 本文与你分享AI技术人才的真实成长经历. 标签:人工智能 前言 参考塞缪尔. 约翰逊(18 世纪英国文学评论家.诗人,著有<英语大辞典& ...

  5. 一文详尽2019全年AI技术突破

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转载自量子位 2019年,整个AI行业的发展如何? NLP模型不断刷新成绩,谷歌和 ...

  6. 致开发者:2018年AI技术趋势展望

    来源|公众号"AI 前线",(ID:ai-front) 译者|核子可乐 编辑|Emily 概要:在 2018 年,开发者如何将一系列 AI 技术成果应用于当前的工作当中呢? 近日, ...

  7. 硅谷顶级VC发声:AI技术公司毛利实在太低,人工和算力成本太高

    赖可 编译 量子位 报道 | 公众号 QbitAI AI技术落地会遇到什么困难?毛利率低,难有通用解决方案,又难以形成技术壁垒. 硅谷顶级VC公司的文章中,把这些挑战挨个分析了一遍.并根据现有经验,提 ...

  8. CTO案头必备|AI技术产业落地的42章经

    每一次技术革命,都是一次生产力与生产关系的大变革.AI时代呼啸而至,深度学习.强化学习.图神经网络显示出强大的技术张力,但为何在产业应用落地中又会遇到种种挑战,让不少产业从业者担忧--AI到底离我们有 ...

  9. 百度AI技术盛宴来了!大咖齐聚解读CV/NLP/跨模态大模型技术!

    随着人工智能步入工业大生产阶段,AI大模型正在加速走出实验室,在全球范围内逐步实现产业落地应用的突破.自2020年至今,越来越多的科技巨头和科研机构参与其中.去年12月,百度发布了全球首个知识增强千亿 ...

最新文章

  1. jpa oracle mysql,oracle+jpa和mysql+mybatis的混合多数据源配置例子
  2. 调用CALL TRANSACTION的三种方法
  3. BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】
  4. 实战|对某棋牌站的一次getshell
  5. when is this.oModel in sap-ui-core.js initialized for navigation working case
  6. 量子计算 qiskit_将Tensorflow和Qiskit集成到量子机器学习中
  7. 三菱q系列plc 和电脑socket_三菱Q系列PLC 以太网通信设置方法
  8. Openresty支持HTTP2
  9. 翻译: 2.2 Pandas Pytorch 数据预处理 深入神经网络
  10. 提供三份程序员简历模板
  11. java编程规范之java命名规范
  12. 域名解析邮箱服务器地址,邮件域名设置解析
  13. 思科Cisco BGP 专题(一) BGP基本概念
  14. b、B、KB、MB、GB 的关系?
  15. 2021-08-14 WPF控件专题 ContextMenu 控件详解
  16. 牛客算法課 (算法入門班) 貪心與模擬(4)
  17. 进阶篇:5.1)公差分析的总流程
  18. 计算机网络故障的检测与排除,计算机网络故障诊断与排除(第3版)
  19. 车易加加油优惠卡_丰田Supra GRMN或2023年发布可 能搭载宝马3.0T发动机
  20. 文献阅读09期:基于ADMM方法的柔性负载实时定价

热门文章

  1. AC自动机(HDU 2222: Keywords Search)
  2. 2017 Multi-University Training Contest - Team 4:1002. Classic Quotation(KMP+DP)
  3. skypebridge.exe 损坏的映像 错误代码 0xc000012f
  4. torch.utils.data.DataLoader 详解
  5. Kubernetes-基于EFK进行统一的日志管理原理(kibana查询语法)
  6. PYUIC和PYRRC作为外部工具的配置
  7. Android开发:getSupportFragmentManager()不可用
  8. C# Redis的操作
  9. R - 变化plot字形,嵌入字体以pdf
  10. ubuntu mysql主从库的搭建