VR视频识别率测试方案

作者:tangonian

团队:腾讯移动品质中心TMQ

导语

VR眼镜层出不穷,VR 应用如雨后春笋,它们消费的内容主要有图片,视频和游戏3种。当前优酷,搜狐,乐视,爱奇艺,Youtube等比较大的视频网站,都推出了VR视频专区,各种比较小的专注VR视频的网站多不胜数,其中比较有名的有Utovr,591vr等。用户在使用QQ手机浏览器(Android)过程中视频的播放量很大,其中不可避免的会有VR视频。

VR视频一般是mp4格式,与普通视频无异。mp4视频里面并没有标记这是一个普通视频,还是一个VR视频。一般网站或者应用里面区分VR视频的做法是,在后台的数据库里面有个字段标记。但是QQ浏览器里面的播放器只能拿到一个视频的URL,无法知道这是一个普通视频还是VR视频,所以播放的时候只能按照普通视频去渲染。

VR视频眼镜播放模式(可以转动手机查看周围)

VR视频普通播放模式

如何判断视频是不是VR视频

前面已经说了,QQ浏览器的视频播放器只能拿到一个视频的播放地址,所以判断是否VR视频,只能从视频本身出发。观察以下VR视频和普通视频的截图两端红框区域,发现VR视频的两端边缘相似度较高,而普通视频的边缘相似度很差。VR视频识别的算法就是基于这个现象,获取一个视频多个帧的图片,然后给出视频是VR视频的概率。

VR视频截图

普通视频截图

算法存在的问题

通过上面的介绍,知道这个算法是根据图片边缘相似性得到结果,出于效率的考虑检查的图片数量和检查的粒度不能设置太高,那么它得到的结果会有两个不可避免的问题:将VR视频识别为普通视频;将普通视频识别为VR视频。如以下示例:

VR视频被识别为普通视频(画面昏暗的视频很容易误判)

普通视频被识别为VR视频(边缘相似度较高的普通视频)

对于这样一个计算概率性的算法,需要找到尽量多的失败用例,然后根据失败的特点来改进算法。为了发现失败用例,需要一个很大的测试集,这个测试集合里面包含了一个VR视频集合,以及一个普通视频的集合。这个集合的作用是尽量使VR视频正确识别,又要保证普通视频不会被识别为VR视频。这个集合最好还要易于增加测试源,用来验证算法的有效性。

测试集的建立

最开始测试集合是到网络上下载VR视频,保存到本地,然后用来测试验证。这种方式的优点是测试的速度很快,因为都是本地视频。但是缺点也很明显,VR视频的size太大(5 分钟的视频经常会上 G)本地保存比较麻烦;每次去网上找下载太耗时,不容易增加,而且容易重复。

现在的测试集合保存的是视频网页的网址,网址有爬虫爬取。当前做了12个网站的爬虫,基本包含了国内主流的视频网站和VR 视频网站。

支持的主流网站(source表)

在爬虫里记录了网站经常更新的页面(一般是网站的分类网址:如优酷的电视剧,电影分类的 URL),爬虫运行时将爬去到的页面地址保存到Video表。保存前会自动分析页面的特征,判断该页面的视频是不是 VR 视频,并将结果一起保存到video表,从而建立VR视频集合以及普通视频集合。

测试过程中如果发现有的视频源已经失效,需要在video表中标记无效,不用删除视频源,避免下次再次加入。如果是自动化能识别的失效可以自动化标记(如:视频已经下线跳转到404页面),否则需要人工根据测试结果标记。

测试集合内的视频(video 表)

当前测试集合的VR视频数量有2500个,普通视频数量有7000 个,由于现在的测试工具尚不支持https的测试源,所以有些视频还没有测试过。

测试准备

有了爬虫就可以建立测试集,有了测试集还需要测试工具。测试工具是开发提供的一个exe程序,程序的调用方式:VideoDetector.exe -c 30 -u http://www.xxx.mp4 ,调用后的返回结果是视频为VR视频的概率,如果出错返回 -1。

测试集和测试结果都保存在数据库中,数据库中有 4 张表。上面已经介绍了source和video表,分别支持的网站和爬虫爬取的视频网页。还有一个task表,用来记录每次测试的结果,另外还有一个result表,用来记录每个视频的测试结果。

测试结果(task 表)

具体视频的结果(result 表)

测试流程

测试成效

以上是最近的一次测试结果,更新算法后,验证 VR 视频的成功率提升了 20%,验证非 VR视频的成功率下降了 3%。 使用该方案后,能快速了解算法对视频识别率的影响,并能方便获取失败用例,用来改进算法。

对于 VR 视频的检测,你是否有更好的方法呢?

欢迎留言探讨。

获取更多测试干货,关注腾讯移动品质中心TMQ公众号。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

使用Python以及C++简单绕过反爬虫机制

0x00 某些网站有反爬虫的机制 对于刚学习了几天python的我,对爬虫颇有兴趣,但是某些“想要的”网站上具有反爬虫机制,如果说使用延迟或者代理,这样的效率并...

22410
来自专栏分子生物和分子模拟计算

构象搜索案例(Hyperchem)

2364
来自专栏木东居士的专栏

DataTalk:是一个宽表好还是多个维表好?

4003
来自专栏Astropeak

软件设计---高层设计(一):共性可变性分析和分析矩阵

941
来自专栏前端笔记

【新手指南】浅谈几种WordPress固定链接的优劣势

新手建站须知: 所谓“固定链接”,其实就是指访问某个网页的特定链接。也是我们站长将网站提交给各大站长平台的重要参数之一!建站初期我们必须确定好“固定链接”(准确...

2877
来自专栏从零开始学 Web 前端

从零开始学 Web 之 HTML5(一)HTML5概述,语义化标签

html5 不是一门新的语言,而是我们之前学习的 html 的第五次重大修改版本。

942
来自专栏菩提树下的杨过

利用majicAjax实现webParts无刷新拖动

webParts与UpdatePanel都是ms的产品,直接将webparts放在updatePanel里,原以为就可以搞定webparts无刷新拖动了,试验了...

1887
来自专栏CDA数据分析师

盘点2015年度10大最流行的Python库

Python编程语言的一大优势,就在于其丰富的第三方库。经过过去一年的时间,Python的世界中又涌现出了哪些优秀的第三方库呢?在本文中,我将给大家介绍2015...

1848
来自专栏Albert陈凯

Hadoop数据分析平台实战——280新增用户和总用户分析Hadoop离线数据分析平台实战——280新增用户和总用户分析

Hadoop离线数据分析平台实战——280新增用户和总用户分析 项目进度 模块名称 完成情况 用户基本信息分析(MR)� 未完成 浏览器信息分...

3558
来自专栏SEO

「技巧」如何在图片搜索中排名更高

33011

扫码关注云+社区