视频彩色视频搜索技术

关于搜索的一些知识



当我们谈论搜索时,我们会立即想到一个Google搜索引擎,它具有一个用于输入文本字符串的表单以及成百上千个指向所找到页面的链接的结果。但是,让我们考虑一下搜索的主题。



我们在找什么?



  • 文本
  • 文件资料
  • HTML页面
  • 图片
  • 音讯
  • 视频
  • 二进制文件


对于某些类型的数据,有专门的搜索引擎。例如,有些站点专门查找DLL文件。



搜寻影片







让我们看一下查找视频信息。你该怎么做?纯粹是理论上的?



  • 根据该文本
  • 按图像
  • 在短片上
  • 通过简短的音频片段


现状



搜索引擎



  • 谷歌
  • 微软
  • Yandex


我命名了三个最大的搜索引擎,它们都使您可以按文本和图像搜索视频。



图片



现代搜索引擎的缺点



不幸的是,他们都遭受以下问题:



  • 找到的视频的确切名称并不总是可用。相反,可以正确指定演员并显示他的其他图像。
  • 视频中没有精确的位置指示。这是非常有用的信息。


图片



是的。自己尝试,您会发现我是对的。搜索引擎容易出现不确定性。查看上面的屏幕截图,其中显示了汤姆·汉克斯。没有电影的名称,也没有电影的摄制位置。



图片



问题的提法



在开始解决问题之前,让我们尝试对其进行描述。那我们想要什么?



所需的请求执行速度



如今,没有人会等待几分钟来完成搜索查询。但是,数据量和计算量可能需要花费一些时间来处理请求。你必须妥协。我们将有条件地将搜索查询的执行时间限制为10秒(±几秒钟)。一方面,这将允许浏览器不中断连接,但另一方面,将为脚本提供时间来处理信息。



有多少数据?



让我们想一想。



影片数量



根据IMDb摄影数据库,总共拍摄了260万部电影,包括电视节目,卡通和短裤的个别片段。(截至2018年11月13日的信息)。



首先,让我们限制在100万个视频中。显然,我们甚至没有尝试接触视频量大很多倍的YouTube和其他类似服务。最重要的是,这个雪球只会增长。



帧数



一些电影或电视剧集很短。有15-20分钟。另一方面,有很多电影的时长不超过2小时。事不宜迟,让我们将平均视频时长设为1小时。



大量胶片以每秒24帧的速度拍摄,但也有更快的胶片。如今,每个人都可以拍摄自己的电影,并且其中的帧频可以达到60、100和200 FPS甚至更高。这一切都取决于便携式摄像机,摄像机,运动摄像机,智能手机,视频监控摄像机等(以下划线为必填项)。掌握在我们手中。但是,让我们以平均视频帧速率等于30 FPS作为第一近似值。



在这种情况下,平均视频为:



30 FPS * 3600秒= 108,000帧



四舍五入,我们得到平均视频约为100,000帧。



数据量



一帧的存储容量是多少?显然,此值取决于将数据库中的帧与给定样本进行比较的算法。我们使用两种算法来比较数据。其中一个大约每帧需要30个字节,另一个大约需要10个字节。让我们取平均值-20个字节。



这意味着要存储有关1百万个视频的信息,则需要



1,000,000个视频* 100,000帧* 20字节= 2,000,000,000,000字节



简而言之,我们需要大约2 TB的存储空间以某种方式描述我们的所有帧。一般来说,这还不错,因为这些信息量可以容纳在现代HDD或SSD磁盘上。另一方面,应该以某种方式简化此信息,否则,即使是2 TB的简单读取也将花费大量时间,并且我们同意用户等待的时间不会超过10秒。



即使我们以500 MB / s的速度从磁盘读取信息,我们也将需要2000秒,即半个多小时!



在指定时间搜索多少台服务器?



如果假设我们将信息均匀地存储在多个服务器上,则在这种情况下,为完成一个搜索查询而处理的信息量将减少。例如,如果我们有10台服务器,则每台服务器将不需要处理2 TB的信息,而仅需要处理200 GB的信息。或者,如果我们有100台服务器,那么我们需要处理的不是2 TB,而是20 GB的信息。原则上,指定的数量对于这种搜索引擎的功能应该足够。



这样的系统每秒可以消化多少个请求?



确切地回答是很困难的,但是很可能每秒最多几十个请求。



做了什么



首先,我们通过视频片段进行搜索。但是,图像搜索很快就实现了。



历史



2019年7月1日



在这一天,发布了VideoColor软件包的第一个版本。它包括三个部分:



  • 经理(源视频索引)
  • 服务器(接受请求并在索引数据库中查找匹配项的后端)
  • 客户端(允许您播放AVI文件并将搜索查询发送到服务器的客户端应用程序)。


2020年3月



创建了一个网站,可以通过上传的视频片段识别视频。



2020年4月14日



通过捕获监视器屏幕的一部分内容,发布了用于视频识别和定位正在播放的视频的应用程序的第一版



2020年6月23日



已发布用于将有关视频的索引和描述性信息添加到站点数据库的应用程序的第一版。



按视频片段搜索



大意







我们将视频视为图像序列。对于每个图像,找到红色,绿色和蓝色的平均值。我们得到三个与时间的关系图。让我们为要索引的每个视频构建并保存这些图形。







收到用于识别的视频片段后,我们将为其构建这些图形。让我们将获得的图形与已经可用的图形进行比较。当然,必须在每个原始电影的整个长度上进行比较。如果在特定点的图之间的差异小于某个值,则我们认为问题已解决。



应当注意,这是简化图。工作流与此处描述的几点有所不同。但是,总的来说,想法就是这样。



优点



  • . 1 . , 1000 , 2 , 2 .
  • . , , .
  • 5-10 .
  • ( ).
  • . . , . , , .




  • . .. . , . , . , . , 2- DDR3 1600 12 0,5 . 48 2- .
  • ( ) . . , , , .
  • . , , . — .
  • .






将原始图像划分为表格单元格M xN。在每个区域中找到红色,绿色和蓝色分量的平均值。实际上,这些值的集合将是此图像的特征,借助它们我们可以将它们彼此区分开。我们将此特征连同指向视频描述的指针(视频ID)和视频中帧的序列号一起输入数据库。唯一剩下的问题是,M和N取什么值?我们采用了5 x 5,但您可以尝试其他值。这些参数的值较小时,有可能会有很多重复项,而值较大时,则将花费大量内存。







但是,这还不是全部。如果您进一步搜索所有这些特征,那么将花费大量时间来处理每个请求!怎样成为?您可以为此图像计算R,G,B分量的平均值,然后根据这些值将它们分组在数据数组中。例如:R = 200,G = 188,B = 212。在这种情况下,我们在适当的部分中输入有关框架的信息,或在表中添加一个字段。搜索时,我们以相同的方式定义这些组件,并在考虑这些参数的情况下进行搜索。因此,我们极大地减少了比较数据量并加快了搜索速度。







老实说,这只是理论上的,实际上一切都有些不同。但这是另一篇文章的主题。



优点



  • 数据量相对较小。
  • 可以将所有数据分为几组,然后按组进行搜索,这可以大大加快搜索速度。
  • 与以前的方法不同,它不需要在RAM中永久存储大量数据。
  • 错误可能性低。




缺点



  • 由于在进行代码转换后,视频可能与原始视频略有不同,并且JPEG编码(按图像搜索时)会更改原始视频,因此可能会错误地确定组。这需要扩大组的范围(导致搜索速度降低)或其他搜索查询(也降低搜索速度)。


工具类



迄今为止,已经编写了一些应用程序,其中一些已经过时并且不再受支持。



视频搜索(客户端)



  • 通过网站上的网络表单
  • 通过“视频色彩捕获”应用程序


影片搜寻(后端)



  • Video Color Server. : Windows ( ) Linux ( , crontab).




  • «Video Color Creator»








  • .
  • .
  • ().
  • () .
  • - , .




假设您的文件名称很笨拙。最初的启动屏幕可能丢失(作者的意图)或被切断。这是什么电影?我想阅读那些查看它的描述和评论。



查找和切断广告单元



示例:您拥有自己的自行编写的视频播放器,并且希望用户在观看流式视频时看到自己的广告,而不是中央频道。

检查视频部分是否从其他电影中借用(抄袭)

示例:如果怀疑有人在视频中使用您的视频(取自四轴飞行器)。



如果重新发布中缺少此信息,请确定确切的发布日期和节目名称(节目)



示例:您正在观看在未知站点上托管的视频节目。您甚至可能知道该节目叫什么,但不知道何时显示。一两年前?



如果正在播放先前索引的视频,则确定正在播放的流视频的位置或多或少准确



示例:如果要将应用程序附加到其他人的显示标题或其他上下文信息(地图,链接,新闻等)的流式视频中,则可能需要这样做。首先,进行视频捕获,索引计算,视频标识和服务器上的位置,然后应用程序在与正在播放的视频同步的单独窗口中显示上下文信息。



如何使用服务



通过网站上的网络表单搜索视频



为此,您需要将视频片段或图像上载到表单的相应字段中。







请注意,如果加载了视频片段,则服务器将首先处理上载视频的情节提要及其处理,这将需要额外的时间。



结果页面包含电影的标题,导演的姓名,原籍国的信息,发行年份,类型,演员的姓名,简短说明,视频的持续时间以及在视频中的位置,链接到其他信息以及视频帧的表格图像。







使用该应用搜索视频



由于所有预处理都是在客户端进行的,因此只有一小部分原始数据发送到服务器,因此使用该应用程序搜索视频的速度要快得多。这样可以减少通道的负载,并提高搜索查询的速度。



















我可以单手用一百万个视频的索引信息填充数据库的内容吗?



很可能没有。我在哪里可以得到这些视频?如何通过网络泵送它们?从何处获得用于处理它们的计算资源?



但是您可以使用户自己可以使用该基础。并且这已经实施。我们已经在数据库中填充了一百个视频,您可以确保我们的服务正常运行。您还可以下载并安装免费的应用程序,以将视频编入索引并添加说明,然后将数据上传到服务器。该应用程序将来允许对加载的数据执行一些操作:删除,编辑描述,查看和搜索。







如果您决定添加视频或其他任何视频,请确保该视频尚未在数据库中。您可以按名称,主管,创建年份和其他参数在应用程序中搜索。







创建索引信息的速度取决于计算机的功能以及视频本身的特征(分辨率,编解码器,帧速率)。平均而言,处理需要几分钟。此时,用户可以填写视频描述文本字段。







对未来的计划



  • 搜索加速。
  • 提高搜索准确性。
  • 按音频片段搜索。


通过短音频片段搜索视频将补充现有的两种搜索方法(通过视频片段和图像)。



结果



  • 在这篇文章中,我们通过视频搜索回顾了最新技术。
  • 我们通过短视频片段和图像熟悉了视频搜索方法。
  • 我们讨论了Video Color Capture视频搜索应用程序
  • 提到了Video Color Creator应用程序,该应用程序将添加到AAP软件共享的视频数据库中


链接



网站



http://www.videocolor.aapsoftware.ru/

该站点提供了一个简短的视频片段以及视频图像的搜索。



应用领域





视频





刊物






All Articles