如何将视觉处理、AI和边缘计算有机整合?这一思路值得借鉴
2018-08-01
随着itle="物联网" target="_blank">物联网和人工智能的发展,边缘计算逐步走入了人们的视野,且其应用正在普及当中。当下,在IT和物联网行业里,都在讨论边缘计算的概念。在中国,边缘计算这个概念是在两年半之前正式推出来的。
边缘计算是发展趋势。具体原因,第一是数据量的增长,因为数据量的增长不可能把所有数据都通过网络传到后端,代表带宽增长的速度小于、慢于数据增长的速度。另外一方面,对于一些实时性要求比较高的应用场景,他们需要在边缘对数据进行处理和判断,尤其像工业类,或者自动驾驶、无人驾驶这样一些领域。
第三,使用场景是在一些对于隐私保护要求比较高的场景,比如人的医疗信息,也是不允许、或者用户不愿意把这些数据进行云端的分享,需要在本地进行存储,所以,这些因素造成在物联网应用里,边缘计算是发展趋势。
边缘计算面临挑战
不管是消费端数据,还是行业数字化产生的数据,有越来越多的数据在边缘产生,这直接挤压到了存储和带宽的要求,随之而来的边缘大数据概念在过去两年也提出来了。
传统的物联网,更多的是线性思维,即物体产生数据,通过互联网传到云端,分析产生价值,而今天的物联网完全是三维立体的概念。而关于边缘计算,业界已经有共识。首先是实时的运用,二是成本,三是分析和预测,过去的能力只能是分析已经发生的事件,怎么样通过对发生事件的了解预测将来;四是精准性问题,甚至是信息安全、信息保密的问题。
要把人工智能真正推向边缘并不是一个很简单的事情,在今天来看也没有一个一劳永逸的方案。对此,英特尔副总裁兼物联网事业部中国区总经理陈伟博士表示:“我过去总是讲,一个是量大,一个是碎片化,碎片化叫Fragmentization,很难解决,英特尔作为一个平台化的公司,在这些方面,我们过去几年确实做了持之以恒的努力。关于视频技术方面,今天很简单,就是从英特尔产的带有显核的GPU,加上我们最近的几个加速器,像Movidius,还有Novana这些技术,还有FPGA,至少从硬件的角度来讲,我们是可以根据应用去勾勒出一个功耗、成本最大化的优化解决方案的,这些应用是和合作伙伴一起去优化、研发的。”
陈伟博士,英特尔副总裁兼物联网事业部中国区总经理
边缘计算对IC设计的要求
边缘计算有一些关键的技术点,这些关键的技术点对于芯片的发展路线图设计至关重要。一个技术点是计算,尤其是AI的计算,在整个边缘会越来越突出,而边缘的设备和云端的设备是不一样的,因为边缘设备能够承载的功耗,能够支持的操作系统,能够提供的内存容量都是不一样的,所以在边缘这一侧,算法要做一些特定的优化,对工具也有特定要求。
对此,英特尔中国区物联网事业部首席技术官兼首席工程师张宇博士表示:“像我们的Movidius、FPGA设计,引入到这里面,也有这样的考量,因为他们的性能功耗比比通用处理器会有一个更好的体现。”
此外,边缘计算还有一些其他关键的技术要素,比如在工业领域,要在确定的时间里得到一个确定的响应,我不可能给它很长的延时,所以需要一个TCC支持,这在我们的芯片设计时也会考虑进去。
张宇博士,英特尔中国区物联网事业部首席技术官兼首席工程师
还有一些关键技术点,比如公共安全的使用场景,在工业机器人的使用环境里面,怎么保证机械手、机械臂不会对人身安全造成伤害,这些在我们的芯片设计里,也会把这些因素考虑进去。
总之,我们在做芯片设计,尤其是在边缘芯片类设计的时候,会考虑它的计算要求,也会考虑它的数据连接的要求,也会考虑它的功能安全和信息安全等方面的要求。
陈伟表示,从宏观的产品目标规划来讲,有几位业界标杆人物加入了英特尔,我相信在视觉芯片方面,一定会加速我们的进展。
英特尔有几个对外的事业部,有数据中心、物联网,还有存储,他们不见得有自己的单独产品目标,我们有些技术是分享的。就物联网事业部来讲,早期是一个嵌入式的事业部,当时的出发点是PC的芯片可以用到很多非PC的应用当中,比如取款机,我们有一个非常成熟的生态链,就是板卡上硬件的生态链。物联网事业部将来的发展方向,会更加强调视觉,强调负载整合,但是这两点都需要芯片技术的支撑。所以,第一,在CPU和GPU方面,一定是研发更适合于这两个应用场景的芯片。
第二,我们会整合一些加速器,Movidius就被整合到英特尔IoT事业部里面来了,当然,不仅仅用于IoT应用场景,别的应用场景也可以用,但是主流,从产品的规划是在IoT里面走的。根据这个战略,我们会更自主地研发一些更适合于物联网应用场景的芯片。
计算机视觉和
深度学习开发工具OpenVINO
灵活、多元、高质量的硬件是必要条件,今天,要用这些硬件直接应用到人工智能上,还有很多的壁垒,主要是怎样能深度挖掘并充分利用硬件的能力,如计算、图像分析和加速能力。
对于各种应用和挑战,英特尔推出了软件SDK平台——OpenVINO,OpenVINO于今年5月16号在全球发布,7月27号,推出了OpenVINO的视觉推理和神经网络优化工具套件。它包括模型的完善、模型的充实和插件的优化,其目的是提供从边缘到云的计算,基于视觉和深度学习,提升整体开发能力。
据张宇博士介绍,OpenVINO是英特尔给进行计算机视觉和深度学习应用开发的开发者提供的工具。人工智能、深度学习是当下的一个风口,AlphaGO的出现使大家感觉到人工智能新一轮的春天已经到来了,其实不仅仅是AlphaGO,如果我们看一下周围会发现,现在有很多基于机器学习、人工智能的应用正在服务于我们的生活。比如说大家比较熟悉的安防领域,通过对一些经过标注的视频数据的训练,我们已经可以从视频里面分析出人、车、物等特征,我们能够知道这个车的车型是什么,是哪款,它的颜色以及车标。
对于人,我们已经可以用刷脸的方式进行支付,准确度已经很高,除了对于视频的分析,其实在自然语言处理等领域,人工智能已经得到很好的应用,现在市场上有非常多的智能音箱产品,比如谷歌推出了Google Home、亚马逊推出了Alexa,百度推出了小度,小米也推出了小爱,这些都是人工智能的典型应用。
但是,从人工智能演进过程可以看到,从最早的人工智能的计算,不管是训练还是推理,实际上都是发生在数据中心,这是因为深度学习需要大量的运算量,只有在数据中心运用一些通用处理器,才能提供如此巨大的计算并提供这些计算所需要的电力消耗。但是,近年来随着人工智能技术的发展,无论算法还是芯片,人工智能都达到了一个很高的水平。
在算法方面,很多网络压缩的算法已经在被广泛使用,从而使得人工智能的计算量在降低。同时还有很多用于人工智能的专用芯片以及FPGA使用,使得一些深度学习的运算可以从云端推送到边缘,所以,像智能摄像机、智能网络视频存储器、NVR等产品在市面上都涌现出来了。
同时可以看到,在整个系统端到端的网元里面,不同的网元所能提供的计算量是不一样的,它能够支撑的操作系统也各不相同,因此,有各自不同适用的芯片架构。比如在摄像机里,一个摄像机的功耗大概15瓦,从15瓦里能够提供给做智能运算的能量有2~3瓦,对于这样的使用场景,ASIC架构是最适宜的。
数据中心需要一定的灵活度,对于一些通用的处理器可能又是最适宜的,因此不同的网元有不同适宜的架构,不同的芯片往往有各自不同的开发方法,这样对开发者而言就带来一定的困扰,也就是说如果我为某一种芯片所开发的软件换了一个架构以后,它可能是不适用的,这样无形中就增加了开发的门槛。
张宇表示:“我跟很多从事人工智能应用开发的开发者交流,我们发现,目前在进行人工智能开发的时候,还有很多的问题没有解决,比如,我作为一个开发者,已经有了一个经过训练完以后的网络模型,但是由于我的推理平台相对来说能力有限,我需要把现在网络模型的一部分,而不是全部能够下载到我的推理平台之上,这是我的一个困扰。另外一个困扰是我现在一个训练的模型,如果把它推送到一个推理平台之上,我发现它的性能不高,我如何来提升这个性能?再或者,我在做深度学习、人工智能应用开发的时候,我所用到的框架并不被现在英特尔的一些架构所支持,比如Movidius或者是FPGA,我现在不能把它用起来,那么如何进行使用?这是我们发现开发者的一些困扰。”
我们推出的OpenVINO,实际上就是解决以上这些问题的,OpenVINO是一个可以加快高性能计算机视觉和深度学习视觉应用开发的一个工具套件,它能够支持英特尔平台的各种加速器,包括CPU、GPU、FPGA以及Movidius的VPU,来进行深度学习,同时它能够直接支持异构的执行。它使用的对象是软件开发人员以及开发、监控、零售、医疗、办公自动化以及自动驾驶等领域的数据科学家。
OpenVINO工具套件的优势主要体现在:
首先,性能方面的提升,通过OpenVINO,可以很方便地使用英特尔的各种硬件加速资源,包括CPU、GPU、VPU、FPGA,这些资源能够帮助大家提升你的深度学习算法在做推理时的性能,而且执行的过程中是支持异构处理和异步执行的,这样能够减少由于系统资源等待所占用的时间。
另外,OpenVINO使用了经过优化的OpenCV和OpenVX,同时提供了很多应用示例,可以缩短开发时间。这些库都支持异构执行,如果编程的话,编写一次,以后我可以通过异构接口支撑跑在其他的硬件平台之上。
在深度学习方面,OpenVINO带有模型优化器、推理引擎以及超过20个预先训练的模型,大家可以利用这些工具,快速实现自己基于深度学习的应用,而且OpenVINO使用了OpenCV、OpeenVX的基础库,大家可以利用这些基础库去开发自己特定的算法,实现自己的定制和创新。
用户体验
图像处理的算法是非常多样化的,除了人脸识别以外,还有车辆分析、结构化分析、行为分析等等。
宇视研发副总裁AI产品线总监汤立波表示:“我看到这个领域里已经很难有一个场景只需要一种算法,绝大部分都是要多种算法融合。OpenVINO可用于不同的硬件平台,可以加载不同的神经网络,实际上就是可以加载不同的算法。”
据汤立波介绍,在与英特尔合作的过程中,在整个开发过程中,相互之间可以共享经验、一同解决问题。在整个产品开发过程中,其实大量的过程并不是开发本身,而是解决问题的本身,所以,只有非常有经验的企业才能够做出一款稳定、能够快速解决问题的、用于产品化的芯片。