如何利用人脸识别自动切分视频

Python技术杂谈 2019-09-23 12:04:48 阅读(11997) 评论(0)

前些天被问到这样一个问题,能不能做视频分镜头,更确切的是自动切分视频片段。拿央视的新闻联播来说,30分钟的新闻联播,可能包含十多个新闻话题,希望能够自动把这10多个话题进行切分。
这个问题蛮有意思的,可能在很多视频内容上有用,比如一台春晚有主持人报幕、演员表演各种节目,几十个节目串下来。当然,春晚已经被人工切分了。

如何利用人脸识别自动切分视频

思路

当别人问到这个问题的时候,自己并没有涉足这个领域感觉可能会比较复杂。后来想想,其实也是可以尝试一下的。
视频切分,把视频的一些特点考虑进来就会变得简单一些。还是新闻联播的例子,基本模式都是这样的,播音员(单人或双人)镜头播报一段文字稿,然后切换镜头到具体新闻的视频素材,然后又是播音员的镜头。。。。。。利用这个模式,就可以进行视频切分了。
视频处理,可以最终归结为图片处理,先把视频的关键帧(I帧)提取出来,组成一系列图片序列,按视频时间排列。然后对每一帧图片进行处理。

对帧图片进行处理,找到切分点对应的图片。那么,什么是切分点呢?就是播音员出现的地方。
如何确定一张图片里面有没有播音员呢?利用人脸识别。好在新闻联播的播音员人数不多,可以人工整理一下这些播音员的照片作为一个对比库,把图片中的人脸与这些播音员的脸进行一一对比。

同时考虑人脸识别的误差,可以把更多因素考虑进来,比如,播音员都是做在一张桌子后面进行播报的,那么可以把物体识别加进来,把人所在的环境物体也识别一下。

总结下来,这个大体过程是这样的:

1. 提取视频关键帧;

2. 对每一帧图片进行人脸检测:

2.1 如果没有人脸,之间跳过;

2.2 如果检测到人脸,与播音员库进行对比

2.2.1 如果对比失败(非播音员)跳过

2.2.2 如果对比成功(是播音员)再考虑其它环境因素判定是否分割点;

3. 找出分割点后对视频进行切分。

利用这个思路可以对很多视频进行分镜头切割,其中关键是切分点的确定,不同内容可能有不同的判别方法。
这篇没有具体的程序实现,记录一下我的想法,哈哈。

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...