基于英特尔架构的高级视频分析技术

  • 4 课时
  • 682 学过
  • 8 分
GPU 云服务器数据分析

课程概述

本课程介绍了基于英特尔硬件和软件平台的视频分析技术。将帮助大家了解视频分析的概况和主要技术,熟悉英特尔视频分析软硬件平台,英特尔视频分析的软件和主要指令,以及如何获得后续视频分析程序开发指导和支持。

机构简介

英特尔(Intel Corporation)

英特尔是半导体行业和计算创新领域的全球领先厂商,以智能互联技术奠定全球创新基石。英特尔创始于1968年,拥有50余年推动技术创新和耕耘产业生态的成功经验。如今,英特尔正转型为一家以数据为中心的公司。英特尔的战略愿景聚焦于三个方面:一是致力于生产世界上最好的半导体芯片;二是引领人工智能与“自能”革命;三是做全球领先的端到端技术平台提供者。英特尔正与合作伙伴一起,共推人工智能、自动驾驶、 5G及物联网等领域的技术创新与应用突破,驱动智能互联世界,从而解决人类面临的重大挑战。 英特尔于1985年进入中国,是在华高科技领域最大的外国投资企业之一,协议总投入约130亿美元。中国是英特尔全球战略之重点,英特尔在中国拥有美国总部之外最为全面的业务部署,覆盖了前沿研究、产品技术开发、精尖制造、产业生态合作、市场营销、客户服务、风险投资和企业社会责任等。英特尔中国现有员工约9,500人。扎根中国三十四年,英特尔见证并深度参与了中国的改革开放,从浦东开发、西部开发到振兴东北等,英特尔一直跟随改革开放的步伐,积极带动区域经济发展,为高端制造持续注入新动力。 2014年12月,英特尔宣布在未来15年将为成都工厂投资16亿美元,首次引入英特尔最先进的高端测试技术( ATT),使成都工厂在原有的芯片封装与测试业务之外进一步升级为英特尔在美国境外唯一的ATT技术工厂;该技术已于2016年11月18日正式投产。 2015年10月,英特尔宣布投资55亿美元,将英特尔大连工厂升级为非易失性存储技术制造基地;该项目已经于2016年7月正式投产, 2017年发布了两款全新的基于3D NAND的数据中心级固态盘;其二期项目已经在2018年9月投产英特尔最先进的96层3D NAND产品。英特尔中国研究院是英特尔全球五大创新中枢之一,而英特尔亚太研发中心已发展成为英特尔在亚洲最大的综合性研发基地之一。 英特尔中国积极履行企业社会责任,涵盖了人才培养、员工关爱、多元化和包容、环境可持续、供应链建设、志愿服务等领域。英特尔连续20多年被教育部评为最佳合作伙伴。我们持续支持英特尔杯嵌入式大赛、英特尔杯软件创新大赛和人工智能人才培养等项目,开展丰富多彩的校园活动,每年都有上万名学生的直接参与,受益青少年数以十万计。英特尔中国员工在2018年参与志愿活动人数达8,636人,贡献志愿服务时间超过12万小时,参与比例为69%; 10年来累计志愿服务时间超过72 万小时。我们把公司运营与环境可持续发展协调并进,积极减少碳足迹;还和政府、产业链以及公益组织深入合作,共同推动绿色可持续发展。全球独立机构声望研究院发布的“中国最具声望的公司”( RepTrak? 100) 2018年百强排行榜中,英特尔荣登榜首。

讲义

视频分析的主要技术和框架

视频应用的主要场景和技术

包含了五种主要视频服务、四大核心技术(DECODE、INFERENCE、RENDER、ENCODE)、无限创新机会。

AI平台的视频处理软硬件概述

  • 管道和易于商业化的解决方案 包括CDN、Cloud Gaming等
  • CPU的可扩展软件 包括FFMPEG、GStreamer、OpenVINO、OpenCL、OpenGL等
  • 多种平台组合 包括CPU、GUP和FPGA、WL-Optimized Accelerators等

人工智能程序的开发周期

  • 数据收集和组织
  • 创建模型
  • 调整模型以满足性能和精度目标
  • 将经过训练的模型和应用程序代码集成

深度学习:训练VS推理

这里举一个图像分类模型的例子。

在图的上方可以看到训练的方式。逐一输入一系列的图片,每张图片进入深度学习的模型运算后会产生出结果。透过产生出的结果跟目标图片做比对,其中的误差值透过反向传播来更新模型中各结点权值,达到模型学习的目标。当训练完成后,模型能够根据图片产生出预测,称之为推论。OpenVINO并不包含训练,使用OpenVINO必须要有已训练好的模型。这些训练好的模型来自各种不同深度学习框架。OpenVINO是模型推论的加速工具,它并不能提升已训练好模型的准确度。

Intel AI布局

Intel提供了从硬件到高性能库(Intel Data、Analytics),到框架(TensorFlow、Caffe、MXnet),到工具(Intel Parallel Studio XE、Intel SDK),以及到完整的解决方案一整套大而全的AI布局来帮助大家充分的释放Intel CPU的性能。

Intel AI已经在各个领域得到了广泛的应用,比如金融领域、医药领域、工业领域、监控领域等等。

Intel® Distribution of OpenVINO™Toolkit工具介绍

Intel® Distribution of OpenVINO™Toolkit概况

工具包里主要分为三个部分,右上方可以看到传统的电脑视觉库,包含Intel优化过的OpenCV、OpenVX、Samples,可以在推论过程中前处理以及后处理时加速运算。右下方的其它工具集和库。左半边是OpenVINO深度学习推论的核心,即Intel® Deep Learning Deployment Toolkit。OpenVICO除了针对各个深度学习训练好的公开模型之外,针对各种不同的应用,Intel也提供了自行训练的模型,比如行为、表情,及物件侦测等等。

模型优化和推理引擎

Model Optimizer可以把它想象为翻译机。它能够接收时下最热门的深度学习框架所训练好的模型作为输入,将它做初步的模型优化,并翻译为Inference Engine所能认得的格式,称作Intermediate Representation ,简称IR。Inference Engine利用IR档案获取模型的拓扑及权值,进而将资料送进开发者指定的硬件进行运算。开发者能够利用IE所提供的Common API选择使用C++ / Python进行开发,并且仅需要要简单的程序修改就能将所要执行的运算传送到不同的硬件做处理,轻松的达到程序代码重复应用,以及避免维护多套不同的程序。

训练好的优化模型

OpenVINO支持的模型就是一边是Intel自己的软件团队在开发,另外有很多的社区、开发者、客户的反馈。现在在市场上,大多数的视频分析相关应用场景,比如车辆识别、人脸识别、检测性别年龄、检测状态动作。

高性能的算法和样例程序

如果你就是想做一些图片分类的工作,那你完全可以从Samples库里找到。这样子不用你自己从第一行代码开始敲级或做一些很前期的工作,直接示例代码库上就可以找到很多这样的应用,帮助你加速部署自己开发和部署自己的产品。同时还有一些典型的算法,比如怎么识别人脸等都已经有固定算法,我们也在样例程序里面进行的优化和发布,帮助大家可以更快的开发自己程序。

使用Intel®Distribution of OpenVino™工具包开发应用程序

  • Train训练
  • Prepare Optimize优化处理
  • Inference高效优化转化达到满足上线的需求
  • Optimize/Heterogeneous支持多种设备
  • Extend

使用OpenVINO™ toolkit提高性能

如图所示是性能的对比。灰色部分是Std.Caffe、黑色部分是OpenCV、浅蓝色部分是OpenVINO在CPU上、深蓝色部分是OpenVINO用了Intel的GPU。可以看到,大多数情况下,有了Intel GPU的加速下,能够达到数倍的加速提升。

如果现在的应用算法可以在FPGA上实现,会发现使用FPGA进行深度优化的产品的性能会达到更高。但是前提是要对FPGA进行深度优化或者特殊定制。

Intel Intel® DL Boost (VNNI) 指令集

以V开头的都是已经是向量化的指令了。在AI还有分析相关的应用当中,这三个指定会出现的频率最高或者这三个指令会结伴出现的概率更大。我们在新的平台上,在一个硬件指令级别上用一条指令来把三条指令需要做的事情全部给实现到,如图所示。理论上就可以有三倍的相关性能提升。

我们知道并不是所有的客户都会有这个能力和精力改写汇编代码,所以为了把VNNI指令集做的足够的友好和可用,我们已经把这个指令集成到了Intel的库中,即MKL-DNN。Caffe、TensorFlow等等相应的框架可以通过调用Intel MKL-DNN然后调用到VNNI指令集。

矢量神经网络指令提高推理性能

具体步骤如图所示。

集成了VNNI指令的软件工具

  • MKL-DNN
  • OpenVINO

视频分析的异构开发平台

异构编码的注意事项

  • 数据vs任务并行 数据并行,顾名思义就是数据量特别大,需要把数据拆分在各个计算设备上,进行分布式的分配和并行。任务并行,即任务非常多时,想要把它进行一个并行的开发和并行的执行
  • 动态vs静态 需要考虑异构的时候,粒度有多大

选择异构硬件平台

  • 保存可以在设备上执行的所有层(FPGA)
  • 仔细考虑拓扑和其它限制
  • 搜索时遵循优先级(例如CPU)

FPGA

示例如图所示。

Inference Engine Common API中可以指定是FPGA Plugin或MKLDNN Plugin。其中MKLDNN Plugin是需要跑在CPU上的。如果是FPGA Plugin下有DLA,是跑在Intel ARRIA上。不管是哪一种,都提供了相应的SDK和库给大家调用。

Intel® Movidius™ Neural Computer Stick Redefining the AI Deceloper Kit

它看起来像USB大小的,进行计算和视频处理的加速卡加速器。它已经实现了TensorFlow、Caffe等等流行框架的算法,我们把它叫做VPU。它可以用来跑TensorFlow、Caffe等相关的程序,加速相关的程序的性能。

Intel® Vision Accelerator based on Movidius™ VPUs

相关性能比较如图所示。

其中使用Movidius与其它GPU进行对比。考虑到性价比的时候,该设备不仅仅是节能省电,同时,它的成本会很低。成本/性价比,它应该是数十倍优于目前的其它外设设备。

总结

资源下载和开发支持

Download:

  • https://software.intel.com/en-us/openvino-toolkit/choose-download

Get started quickly with:

  • https://software.intel.com/en-us/openvino-toolkit/documentation/get-started
  • https://techdecoded.intel.io/
  • https://software.intel.com/en-us/events

Support:

  • Connect with Intel engineers & computer vision experts at the public: https://software.intel.com/en-us/forums/computer-vision

这里列出几个有用的链接能够帮助各位更有效率的利用不同硬件达到深度学习推论最佳化的效果。

课程评价(0)

感谢你参加本课程,请你作出评价:
0/300

以下选自学员评价

暂无精选评价