OpenCV 实例解读:深度学习的计算与加速

点击上方关注,All in AI中国

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,有进行物体识别、图像分割、人脸识别、动作识别等多种功能,可以在Linux、Windows、Android、Mac OS等操作系统上运行,以轻量级、高效著称,且提供多种语言接口。今年加入了深度学习DNN模块,那么如何理解,它的加入又带来了什么样的价值?

OpenCV 实例解读:深度学习的计算与加速

嘉宾简介

赵娟,Intel亚太研发有限公司资深软件工程师、项目经理,她来自Intel 开源技术中心(Opensource Technology Center OTC)。Intel OTC帮助Intel打造开源社区促进企业数字化转型,并利用开源新技术激发全产业创新活力。在OTC, 她主要带领Media Processing和Media Framework团队,主要关注开源项目中视频处理和编解码的算法与加速。

今年2018年10月17日~19日,由IT168旗下ITPUB企业社区平台主办的第十届中国系统架构师大会(SACC2018)上赵娟老师将会针对如何便利的使用OpenCV深度学习模块更快的搭建出用户的程序、深度学习的瓶颈和应用、OpenCV 的架构、深度学习库的介绍和应用、如何理解OpenCV的深度学习模块等问题展开深度讨论,今天小编先带大家一块儿探探路。以下为采访实录。

AI在各业务范围内开枝散叶

ITPUB:您认为人工智能现在处在一个什么样的阶段?

赵娟:我认为人工智能已经经历这么多年的发展,在framework领域已经逐渐成熟。而在各业务范围的开枝散叶,是目前大的趋势。举一个例子,人工智能和AR,VR都有结合。在车载360度环视环境中,可以进行行人和障碍物检测。

ITPUB: 未来的发展方向如何?

赵娟:目前我们看到的人工智能的应用,相对而言还比较窄,在未来,针对同一场景,做各种不同的智能检测,反馈会是一个趋势。目前在车载的智能应用,在机器人的系统开发中已经有了一些前沿的讨论和研发。比如今年CVPR的最佳论文,taskonomy研究迁移学习,提供含室内环境20几个的任务的bank。虽然文章讨论的亮点是在于节约样本,但是这也是为同时做多任务处理提供了非常好的样例。

还是以车载为例,在同一时间,它需要分析周边环境,需要同时进行多方面的分析,包括路线、行人、障碍物。目前,我们大部分是使用高分率雷达和激光雷达结合深度完成,现在已经有一些纯粹基于视频的方案了。

至于如何在各业务领域落地,一时间也不会有一个统一的方法,看各巨头和新兴企业之间的对客户的博弈。比如在边缘计算领域会提供一些低成本低功耗快速精减服务,而云计算也会在提高准确性、处理速度和低延时方面向边缘计算提供补充。最终的目的,是改善各层次消费者的生活,降低社会成本。

ITPUB:您认为视频行业会在哪些关键部分和阶段与AI技术产生“火花”?

赵娟:如果说火花,其实现在就已经非常火了。我认为目前最大的火花,还在于车载和机器人两个领域,结合边缘和云计算,会更多的深度应用。同时对视频处理的效率、性能、延时提出了高要求。

ITPUB: 当初AI技术是如何与现有的系统进行融合的?

赵娟:我们接触AI源于四年前Michael Fu (Intel,我们base在JF的老板,带Audio/Videol团队 )的OpenCL的策略的一部分,到今年的Vulkan为DNN加速一切很自然。和Pisarevsky Vadim的合作非常顺畅。

ITPUB :这之间遇到什么挑战您能谈谈么?

赵娟:说起挑战,是Google平台(特别是Android)的加速引发,随着Google也在推进Vulkan,所以我们迎接这个趋势,也开始了一些path finding,目前也有1万6千多行代码和Vadim的团队review。

OpenCV 的深度学习魅力

ITPUB:今年OpenCV增加了深度学习模块,您能否简单介绍下最新的进展情况和应用实践?

赵娟:OpenCV是一个非常有历史的开源项目,受益群众特别广。它在3.3时开始将深度学习模块从opencv_contrib移到OpenCV repo。它主要关注于inference。在framework层面,有caffe, caffe2, tensorflow,那为什么还会有OpenCV DNN呢?设计初衷是在inference时,方便不同框架通过同一个interface来做inference。同时OpenCV在图像预处理和后处理中已经提供了非常丰富的方法。

目前它的DNN的模块加入了Intel的OpenVino的加速,来满足Intel不同平台的需要。 OpenVINO的全称是Open Visual Inference & Neural Network Optimization。除此之外,OpenCV DNN也包含其他的backend, 比如Halide backend,经过优化的CPU和OpenCL backend以及目前正在进行中的Vulkan backend。OpenCV DNN中有提供非常多的sample,比如人脸检测、图像风格转换,等等。 这里面有很多的工作来自于俄罗斯团队。我们团队前赴后继的在OpenCV DNN 的Framework以及Backend方面提供优化和加速算法。

ITPUB: 在具体的应用过程中,您比较关注哪些性能方面的优化?

赵娟:谈到应用,以前,我们团队和Pisarevsky Vadim(OpenCV Maintainer,来自Intel俄罗斯)一起,帮助OpenCV DNN提供了OCL的硬件加速。目前我们更关注于使用新的技术对NN进行加速。比如Vulkan。

ITPUB:处于当前的阶段下,您认为深度学习DNN模块的导入将带来怎样的价值?比如开发人员的准入门槛、视频处理的性能优化等方面。

赵娟:在我今年和应届生、学校的老师以及一些论坛中的人有过讨论后,惊喜的发现已经有人在使用OpenCV DNN。OpenCV DNN使用起来非常简单,也有和Java, python结合。这降低了研发人员的准入门槛。结合OpenCV的本身的图像预处理、后处理,让整个pipeline更简洁。

ITPUB:您目前带开源技术中心media framework和media processing,专注于Intel的开源生态,服务于Intel各产品部门的需求,据您经验,在视频处理方面有哪些坑?

赵娟:谈起视频处理里的坑,有一个诉求是经久不变的,0-Copy。这个需要深入理解整个pipeline中对buffer的管理和传递。另一个坑是忘记打开硬件加速。用户有时并不是直接使用FFmpeg/gstreamer,OpenCV,而是通过上层如HandBrake,JavaCV。这时需要检查所依赖的FFmpeg/gstreamer,OpenCV是否已经打开了硬件加速。

有关SACC

ITPUB:今年是SACC大会的第十年,作为《机器学习与深度学习》专场的演讲专家,在您看来,本次专场,能帮助听众解决企业哪些方面的问题?能为听会者带来哪些收益?

赵娟:其实,这是我第一年参加SACC。令我特别高兴的是,我在来参会嘉宾中看到了很多熟人。如果大家有对各种视频处理,360图像拼接,与深度学习相结合方面,或者硬件加速的问题,我乐意答疑解惑。

ITPUB:对于本届大会,您有什么想对参会者说的吗?

赵娟:我还是套用一句话吧,撸起袖子加油干。目前我们团队打算写一本OpenCV深度学习有关的书,来帮助大家。

旧时王谢堂前燕,飞入寻常百姓家。深度学习在近两年的发展中,走出学术圈,逐步应用在各行各业,更多关于深度学习的技术干货尽在IT168 旗下 ITPUB 企业社区平台主办的第十届中国系统架构师大会(SACC2018)。

OpenCV 实例解读:深度学习的计算与加速

相关推荐