百度云中视频倍速播放_在云中探索视频分析

使用诸如来自运动图像专家组(MPEG)的标准的数字视频对视频进行编码以对其进行压缩,传输,解压缩和显示,从而引发了从社交网络媒体和业余数字电影院到改进的培训和教育的计算革命。 每天都广泛使用用于解码和使用数字视频的工具,但是对于视频分析,需要使用诸如Open Computer Vision(OpenCV)之类的工具来对未压缩的视频帧进行编码和分析。 FFmpeg是一种易于使用且功能强大的用于数字视频编码和解码的工具。 对于静态图像,GNU图像处理(GIMP)非常有用(请参阅参考资料中的链接)。 有了这三个基本工具,开源开发人员就具备了充分的条件来开始探索计算机视觉(CV)和视频分析。 但是,在探索这些工具和开发方法之前,让我们首先更好地定义这些术语并考虑应用程序。

本系列的第一篇文章, 云扩展,第1部分:根据需要使用HP​​C进行构建和扩展 ,并提供了一个使用OpenCV的简单示例,该示例对来自Linux®网络摄像头的连续实时视频实施了Canny edge转换。 这是CV应用程序的示例,您可以将其用作分割图像的第一步。 通常,CV应用程序涉及采集,像素的数字图像格式(代表照明点的图像元素),图像及其序列(运动),处理和变换,分割,识别以及最终的场景描述。 理解CV包含的内容的最佳方法是查看示例。 图1显示了使用OpenCV进行的面部和面部特征检测分析。 请注意,在这个简单的示例中,使用Haar Cascade方法(一种机器学习算法)进行检测分析,该算法可以最好地检测出未被遮挡(例如,我最小的儿子的脸转向侧面)或被遮挡的面部和眼睛。当主体不眼时。 对于CV,这可能是最重要的发现之一:这不是一个小问题。 该领域的研究人员经常注意到,尽管自50年前问世以来已取得了很大进展,但大多数应用仍无法与2岁儿童的场景分割和识别性能相匹配,尤其是在具有泛化能力的情况下。并在广泛的条件下(光线,尺寸变化,方向和环境)进行识别。

图1.使用OpenCV进行面部识别

为了帮助您了解CV中使用的分析方法,我从阿拉斯加的安克雷奇(Anchorage)地区创建了一个小型图像测试集, 可以下载 。 图像已使用GIMP和OpenCV处理。 我开发了C/C++代码,以将OpenCV应用程序编程接口与Linux网络摄像头,预先捕获的图像或MPEG电影一起使用。 使用CV实时了解视频内容(图像序列)或从预先捕获的图像序列数据库中了解视频内容通常被称为视频分析 。

定义视频分析

视频分析的广义定义是对来自摄像机(通常是可见光,但也可能来自光谱的其他部分,例如红外)或存储的图像序列的数字视频内容进行分析。 视频分析涉及多个学科,但至少包括:

  • 图像采集和编码。 作为图像序列或压缩图像组。 视频分析的这一阶段可能很复杂,包括光度计(相机)技术,模拟解码,帧和序列中的光样本(像素)阵列的数字格式以及压缩和解压缩此数据的方法。
  • 简历。 与图形渲染相反,在图形渲染中,与根据描述渲染场景相比,将获取的场景转换为描述。 CV最常见的情况是,这种使用计算机“查看”的过程应该在人类操作的任何地方进行,这通常将其与机器视觉区分开。 看起来像人类的目标通常意味着CV解决方案采用机器学习。
  • 机器视觉。 同样,这与渲染相反,但通常是在过程控制良好的受控环境中进行的,例如,检查印刷电路板或制造零件以确保其几何形状在公差范围内。
  • 图像处理。 数字信号处理方法在光度计和辐射计(用于测量电磁辐射的检测器)的样本中的广泛应用可以理解观察目标的特性。
  • 机器学习。 通过训练数据对算法进行细化而开发的算法,从而提高了性能并在使用新数据进行测试时泛化了算法。
  • 实时和交互式系统。 需要在截止日期之前响应服务请求或至少满足服务的客户或用户的SLA的服务质量的系统。
  • 存储,网络,数据库和计算。 处理视频分析中使用的数字数据所需的全部条件,但一个细微但重要的区别是,这是一个固有的以数据为中心的计算问题,如本系列第2部分中讨论的那样。

因此,视频分析的范围比CV更广泛,并且是一个系统设计问题,可能包括诸如智能手机(例如Google Goggles)之类的移动元素以及用于整个系统CV方面的基于云的服务。 例如,IBM开发了一个视频分析系统,称为视频相关和分析套件(VCAS); 这是系统设计概念的一个很好的例子。 详细注重参与的视频分析解决方案,每个系统设计学科已经超出了本文的范围,但许多指针更多信息,系统设计人员可在相关主题 。 本文的其余部分重点介绍CV处理示例和应用程序。

视频分析应用程序的基本结构

您可以将基于云的视频分析系统的体系结构细分为两个主要部分:嵌入式智能传感器(例如智能手机,带摄像头的平板电脑或定制的智能相机)和基于云的无法直接分析的处理在嵌入式设备上进行计算。 与完全解决智能嵌入式设备相比,为什么将体系结构分为两个部分? 在运输,智能手机和产品中嵌入简历并非总是可行的。 即使嵌入式智能相机很智能,通常也可以将压缩的视频或场景描述回传到基于云的视频分析系统,以减轻资源受限的嵌入式设备的负担。 但是,也许比资源限制更为重要的是,将视频传输到云中进行分析允许与更大的数据集进行关联,并使用返回给设备的增强现实(AR)的最新全局信息进行注释。

必须嵌入用于手势和面部表情识别等应用程序的智能相机设备。 但是,更智能的推理来识别人和物体并完全解析场景可能需要可扩展的以数据为中心的系统,这些系统可以在数据中心中更有效地扩展。 此外,从Khronos OpenVX CV加速标准到最新的MPEG标准和功能识别数据库的大规模数据处理加速,都是通过改进视频分析向前迈进的关键,而两段云和智能相机解决方案可实现快速升级。

借助利用云和智能相机的足够的以数据为中心的计算能力,可以实现反向渲染的梦想,在最终的“ Turing-like”测试中可以对CV,场景解析以及重新渲染的显示和直接进行演示。对于远程观看者来说,视频是无法区分的。 现在,这实际上是在具有照片级真实感渲染的数字电影中完成的,但是这种渲染远不能接近实时或交互式。

影片分析应用程式:个别情况

对于视频分析和视频分析,杀手级应用每天都在被考虑,由于计算需求或实施成本,可能要几年才能实现。 不过,这是有趣的应用程序列表:

  • 增强现实的场景视图,以增进理解。 例如,如果您曾经看过降落飞机并想过,希望我可以通过仪表看到驾驶舱视图,这也许是可能的。 很久以前,我曾在航天飞机的任务控制部门工作,在那里,一个大型开发团队精心地为地面控制器重新创建了航空电子设备视图,该视图遮盖了宇航员可以看到的所有图形,但将视频和图形的图像融合在一起进行注释和重新成像。使用元数据创建场景。 这里在概念上提供了一个大大简化的示例,以说明如何使用姿态和高度估计数据对通过平板电脑相机观察到的飞机进行注释(请参见本文中的示例 )。
  • 骨骼变换以跟踪运动并估算可能跳到高速公路上的动物的意图和轨迹。 请参阅本文中的示例 。
  • 仅具有人为监督控制的全自动或半自动驾驶汽车。 想一想今天的巡航控制和明天的全自动驾驶汽车之间的步骤。 今天可以并行停车的汽车就是这种逐步发展的一个很好的例子。
  • 除了面部检测之外,还可以进行可靠的识别,也许更重要的是,还可以进行表情反馈。 半自动驾驶汽车的驾驶员是否会加剧,担心或惊讶?
  • 虚拟购物(AR尝试产品)。 购物者可以穿着这套新衣服看到自己。
  • 与观众互动的标牌。 这是基于个人公开表达的内容,喜欢和不喜欢的数据。
  • 两路电视和互动数字电影院。 观众可以影响其体验的娱乐性,就好像他们是内容中的演员一样。
  • 交互式远程医疗。 世界各地的专家都可以随时使用。

我在本文中未尝试提供详尽的应用程序列表,但我通过仔细查看AR(通过照相机和显示器查看带注释的世界视图,例如像战斗机飞行员那样的抬头显示器)和骨架来探索更多内容。交互式跟踪的转换。 要了解这两个案例研究以外的更多信息,以及在医学,运输安全,安全和监视,制图和遥感以及包括视频在内的不断增加的系统自动化列表中更深入地应用CV和视频分析的特定用途内容分析,咨询的许多条目相关主题 。 可用的工具可以帮助具有计算机工程技能的任何人入门。 您还可以下载更多的测试图像集以及我为本文开发的所有OpenCV代码 。

示例:增强现实

实时视频分析可以通过使用智能手机来保持消费者对产品的看法或我们对世界的看法(例如,驾驶汽车时),从而改变现实的面貌,并可以提供更多的交互体验为用户提供从电影到电视,购物,旅行到我们工作方式的一切服务。 在AR中,理想的解决方案可提供从数字视频捕获的场景到通过实时渲染为用户实时生成的场景的无缝过渡,并在用户的AR视图中混合数字视频和图形。 设计不良的AR系统会分散用户对正常视觉提示的注意力,但是设计良好的AR系统可以提高整体情况意识,将指标与视觉提示融合(认为战斗机飞行员平视显示器)。

在智能交通系统中使用CV和视频分析对于提高安全性具有重要价值,也许最终CV可能成为自动驾驶汽车的关键技术。 这似乎是基于美国国防高级研究计划局的挑战和Google的汽车,尽管除了CV外还使用了全光谱和前视红外和仪器使自动驾驶汽车成为可能。 另一个潜在的重要应用是空中交通安全,特别是对于机场而言,可以检测并防止跑道入侵。 想象中的飞机在安克雷奇泰德·史蒂文斯机场最终进场时的飞机AR视图显示了霍夫线性变换,该变换可用于可视化地分割和估计飞机的姿态和高度,如图2所示。美国联邦航空管理局(FAA),以及这些事件的统计数据中可以找到相关主题 。

图2. AR显示示例
百度云中视频倍速播放_在云中探索视频分析_第1张图片

对于智能交通,即使系统变得更加智能,驾驶员也很可能希望参与其中,因此应牢记自动化与人工参与和干预之间的平衡(对于自动驾驶或半自动驾驶汽车)。

骨架转换示例:交互式系统的跟踪运动

骨骼变换可用于手势识别或人或动物的门分析之类的应用程序-任何必须跟踪人体骨骼(刚性成员)运动的应用程序都可以从骨骼变换中受益。 大多数情况下,此变换将应用于运动中的身体或四肢,这进一步可以将背景消除用于前景跟踪。 但是,它仍然可以应用于单个快照, 如图3所示,在该快照中,驼鹿的图片首先转换为灰度图,然后转换为阈值二值图像,最后找到每个连续区域的中间距离,细化为单个像素,仅保留每个对象的骨骼结构。 请注意,驼鹿的耳朵向后倾斜-表明动物的意图(更高分辨率的骨骼变形可能能够检测到它以及动物的步态)。

图3.驼鹿的骨骼转化
百度云中视频倍速播放_在云中探索视频分析_第2张图片

骨骼变换无疑可用于跟踪可能越过高速公路或向徒步旅行者收费的动物,但是对于娱乐中的手势识别(例如,Microsoft®Kinect®软件开发工具包(SDK))来说,骨骼变换也已引起人们的极大兴趣。 手势识别可以用于娱乐,但也有许多实际用途,例如自动手语识别-目前尚不能作为产品使用,而只是一种研究概念。 当然,骨骼转换CV可以在医学中用于诊断或治疗目的分析人的步态,或在数字电影中捕获人的运动以进行动画制作。

骨骼变换广泛用于娱乐的手势识别系统。 Creative和Intel联手为Windows®创建了一个SDK,称为Creative *交互式手势相机开发者套件(请参阅参考资料 ,以获取链接),该套件使用飞行时间光检测和测距传感器,相机和立体声麦克风。 该SDK与Kinect SDK相似,但旨在供开发人员早期使用,以为该设备构建手势识别应用程序。 该SDK的价格出奇的惊人,并且由于已经获得了广泛的开发社区的青睐,因此可以成为一些突破性消费类设备的基础。 首先,您可以从Intel购买设备,然后下载Intel®Perceptual Computing SDK。 演示图像作为示例,还包含许多其他SDK示例,以帮助开发人员了解设备可以做什么。 您只需安装适用于Microsoft VisualStudio®的SDK并运行Gesture Viewer示例,就可以立即使用图4中所示的手指跟踪示例。

图4.使用英特尔感知计算SDK和Creative Interactive Gesture Camera Developer Kit进行骨架转换

视频分析的未来

本文对使用视频分析主要是为了改善公共安全提出了论据。 用于娱乐目的,社交网络,远程医疗和医学增强诊断; 并将产品和服务设想为消费者。 多年来,机器视觉已悄悄地帮助实现了工业和过程控制的自动化,但是云计算和视频分析现在显示出在环境不易控制的日常世界中提供基于视觉的自动化的希望。 在图像处理和机器学习算法以及本系列中讨论的以数据为中心的计算机体系结构方面,这都是一个挑战。 不应低估高性能视频分析的挑战(就接收器的工作特性和吞吐量而言),但是经过精心的开发,这项快速增长的技术有望为有信号障碍的人提供广泛的新产品,甚至是人类视觉系统假肢或视力丧失。 基于视觉对人类的价值,毫无疑问,这也是智能计算系统的基础。


翻译自: https://www.ibm.com/developerworks/cloud/library/cl-cloudscaling3-videoanalytics/index.html

你可能感兴趣的:(编程语言,python,计算机视觉,机器学习,人工智能)