- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
邓亚锋-如何打造大规模视觉计算系统
展开查看详情
1 .如何打造大规模视觉计算系统 邓亚峰 格灵深瞳 1
2 .
3 .
4 .计算机视觉是人工智能领域最重要的方向之一 人工智能应用领域 各感觉器官接受信息比例 自动驾驶 人工智能技术领域 视觉 智慧城市 计算机 听觉 视觉 智慧医疗 嗅觉 机器人 语音识别 核心算法:机器学习 触觉 自然语言 深度学习 味觉 增强现实 理解 计算机视觉是当前中国最活跃、与国际水平最相近的AI方向之一 2
5 .计算机视觉是智慧物联网时代最大的数据入口,拥有广阔的应用场景 感知分析 大数据应用 计算机视觉 技术 安防 交通 零售 数据采集 计算机视觉 推动视频大 移动互 数据广泛应 联网 金融 互联网 以深度学 用 物理世界 习为核心 机器人 自动驾驶 医疗 中国计算机视觉市场规模 中国大数据应用市场规模 800 视频大数据 600 725 8229 10000 6090 行业前景广 400 4163 5000 阔 200 319 767 1106 1776 2665 11 40 120 0 0 2016e 2017e 2018e 2019e 2020e 2014 2015 2016 2017 2018 2019 2020 市场规模(亿元) 市场规模(亿元) 3
6 .计算机视觉技术愿景 目标类别 人脸 人体 车辆 商品 更全 功能更加 位置检 属性识 身份识 行为识 关系识 丰富 测 别 别 别 别 理解粒度 更细 分类 检测 关键点检测 语义分割 功能更加丰富、精度更高、速度更快、成本更低、规模更大 4
7 .何为大规模视觉计算系统 视觉计算系统: 云+边+端 软硬结合 大规模: 显性因素:接入路数多、数据量大、功能丰富; 挑战 隐性因素:单路成本低、处理效率高、准确率高、 训练数据量大、模型多; 5
8 .构建大规模视觉计算系统的关键因素 核心算法 大规模自动化训练框架 智能数据挖掘和标注系统 基于硬件平台的计算优化 6
9 .算法需要极致打磨 系统流 程 系统参 Loss函 数&训练 数 参数 模型结 模型蒸 构 馏 数据&数 据处理 方式 对于每一个算法,都需要尝试多种改进方向 7
10 .人脸识别基本流程 检测 人脸检测 人脸特征点定位 关键点定位 人脸几何矫正 几何矫正 人脸特征提取 特征表示 8
11 .人脸特征提取&检索流程 在线检索 离线建库 特 特 深度神经 征 相似度 征 深度神经 网络 表 得分 表 网络 示 示 特 相似度 征 深度神经 得分 表 网络 示 核心技术点: 简短、精准的表示模型 快速的检索算法 特 相似度 征 深度神经 得分 表 网络 示 9
12 . 人脸识别算法Loss函数演进(举例) Image1-> CNN->特征1 是否是一个人 Image2-> CNN->特征2 Pair-wise Loss(Siamese network) Triplet Loss Softmax Center Loss 限制条件||f||=const、||W||=const和b=0 NormFace/CocoLoss InsightFace/ArcFace 10
13 .人脸识别系统影响因素 • 训练数据:数据量、纯度、数据分布 • 数据增强:克服分辨率、光照、模糊等因素 • 检测/Alignment精度提升 • 人脸识别Loss函数设计 • 超大规模模型训练框架 • 模型加速(Model Distilling、量化等) • 部件模型融合 • 视频人脸跟踪 • 人脸质量评估 • 视频人脸多帧融合 • 利用数据Fine-Tune来充分利用数据提升场景适应性 • …… 11
14 .图像检测方法 基于滑动窗口的方法(统治近20年) RCNN(2014) Fast-RCNN(2015) Faster-RCNN(2016) 12 R-FCN(2016)
15 .SSD检测框架(2016年) SSD主要包含以下几个部分: • 基础网络(e.g. VGG-16) • 添加多个卷积层,用于实现跨尺度目标检测 • 在每一个添加的卷积层上用一组不同aspect ratio的sliding window提 取候选区域 • 分类+回归损失函数 13
16 .影响检测效果的重要因素 网络结构 Negative Loss Hard Function Sample Mining Anchor参 NMS 数 Learning Rate 14
17 .挑战 如何在算法人员有限、数据资源有限的情况下, 打造一流的核心算法? 15
18 .传统算法开发模式 传统算法工程师工作时间分配: 算法模型 60%在处理数据 20%在调参 15%在实现算法 手工训练 5%在思考算法 缺点: 标注数据 数据标注成本高 数据依赖于算法工程师,无法持续 GPU利用率低 算法工程 数据标注 师 员 16
19 .改进算法开发模式 算法模型 新型算法工程师工作时间分配: 20%在沟通确定数据处理流程 10%在调参 训练平台 50%在实现算法 20%在思考算法 算法工程 标注数据 师 优点: GPU利用率提升 数据收集、处理 数据标注 数据费用下降 和标注平台 员 数据量持续增加 数据平台 开发 17
20 .打造高效的自动化训练管理平台 目标: 提升算法人员产出效率,节省人力 提高训练资源的利用率 训练任务管理: 训练集管理 代码/参数管理 环境管理 计算资源管理 模型评测和选择 训练方式: 自动化模式 虚拟机模式 云主机模式 18
21 .拥有大规模集群训练能力 已有开源框架:Caffe、MxNet、TensorFlow、PyTorch、PaddlePaddle等 • 完全重复造轮子并不必要的: 开源框架有行业里面最好的工程师的贡献; 对员工而言,技能更加熟练,容易上手和适应; 可以利用更多的开源社区的开源算法,更容易和业界交流; • 但要有基于开源框架构建大规模训练框架的能力: 现有框架并行度做得不好 超大规模问题需要自己解决 19
22 .打造大规模训练集群 问题:如何解决数亿类别的分类任务? 网络结构 Loss函数: 当类别数是1亿时,特征长度是128维时,参数矩阵参数数据量约为51G 20
23 .打造大规模训练集群 – 数据并行+模型并行 N计算节点 每节点M卡 Batch数据并行 数据并行特征计算 GPU_1 batch_1_1 X_1_1=CNN(batch_1_1) GPU_2 batch_1_2 X_1_2=CNN(batch_1_2) Machine_1 … … GPU_M batch_1_M X_1_M=CNN(batch_1_M) 步骤一 GPU_1 batch_2_1 X_2_1=CNN(batch_2_1) GPU_2 batch_2_2 X_2_2=CNN(batch_2_2) Machine_2 … … GPU_M batch_2_M X_2_M=CNN(batch_2_M) … … … N计算节 特征汇 模型并 模型并行FC计算 通信优化(FW+BP) 梯度汇聚 点 聚 行 W_1_1 X*W_1_1 grad_X_1_1, grad_W_1_1 W_1_2 X*W_1_2 grad_X_1_2, grad_W_1_2 Machine_1 … … … 步骤二 W_1_M X*W_1_M grad_X_1_M, grad_W_1_M X W_2_1 X*W_2_1 grad_X_2_1, grad_W_2_1 grad_X W_2_2 X*W_2_2 grad_X_2_2, grad_W_2_2 Machine_2 … … … W_2_M X*W_2_M grad_X_2_M, grad_W_2_M … … … … 21
24 .通过数据平台持续高效获取海量训练数据 • 如何便捷、低成本的获取数据 • 数据源 • 选择标注工作量小的有先验约束的数据源 • 例如: • 相册数据 • 人脸1:1人证数据 • 处理流程 • 全部人工标注吗? • 隐私问题 • 成本问题 • 人工标注的准确性 相册数据源 22
25 . 人脸自动数据标注流程 使用更优质人脸模型提取特征 02 04 06 检测、定位、获取、归一 在子集中聚类,同时去 化人脸区域,计算质量、 除非常相似人脸,降低 属性,使用人脸模型提取 裁剪后人脸 模型训练 处理数据量 簇内聚类后人脸 人脸模型 特征 质量阈值过滤误检、模 分析类间相似度,去除 糊及大角度人脸,减小 类间噪声,生成训练集 处理过程出错几率 原始采集图片 质量清洗后人脸 01 03 人脸训练集 05 23
26 .数据团队的工作模式 算法提出 困难数据 数据处理 算法同学 需求 挖掘 和标注 训练提升 传统工作模式 利用训练 困难数据 数据处理 已有任务 框架自动 挖掘 和标注 训练 数据驱动工作模式 24
27 .数据驱动模型效果提升 驾驶员面部遮挡 副驾人员面部遮挡 25
28 .视觉计算系统预测架构 APP 分布式多机架构 Processing pipeline Module SDK Inference 算法模型 Framework 算法 数据 训练平台 芯片 26
29 . 预测框架 Caffe Keras MXNet PyTorch Caffe2 CNTK Tensor 预测框架 Flow 神经网络& OpenBLAS cuDNN/ CoreML NNVM/ ONNX TensorRT Atlas cuBLAS TVM 矩阵运算 X86 ARM CUDA OpenCL Metal 系统指令集层 27