问题
前些天被问到这样一个问题,能不能做视频分镜头,更确切的是自动切分视频片段。拿央视的新闻联播来说,30分钟的新闻联播,可能包含十多个新闻话题,希望能够自动把这10多个话题进行切分。这个问题蛮有意思的,可能在很多视频内容上有用,比如一台春晚有主持人报幕、演员表演各种节目,几十个节目串下来。当然,春晚已经被人工切分了。
思路
当别人问到这个问题的时候,自己并没有涉足这个领域感觉可能会比较复杂。后来想想,其实也是可以尝试一下的。视频切分,把视频的一些特点考虑进来就会变得简单一些。还是新闻联播的例子,基本模式都是这样的,播音员(单人或双人)镜头播报一段文字稿,然后切换镜头到具体新闻的视频素材,然后又是播音员的镜头。。。。。。利用这个模式,就可以进行视频切分了。视频处理,可以最终归结为图片处理,先把视频的关键帧(I帧)提取出来,组成一系列图片序列,按视频时间排列。然后对每一帧图片进行处理。对帧图片进行处理,找到切分点对应的图片。那么,什么是切分点呢?就是播音员出现的地方。如何确定一张图片里面有没有播音员呢?利用人脸识别。好在新闻联播的播音员人数不多,可以人工整理一下这些播音员的照片作为一个对比库,把图片中的人脸与这些播音员的脸进行一一对比。同时考虑人脸识别的误差,可以把更多因素考虑进来,比如,播音员都是做在一张桌子后面进行播报的,那么可以把物体识别加进来,把人所在的环境物体也识别一下。总结下来,这个大体过程是这样的:1. 提取视频关键帧;2. 对每一帧图片进行人脸检测: 2.1 如果没有人脸,之间跳过; 2.2 如果检测到人脸,与播音员库进行对比 2.2.1 如果对比失败(非播音员)跳过 2.2.2 如果对比成功(是播音员)再考虑其它环境因素判定是否分割点;3. 找出分割点后对视频进行切分。利用这个思路可以对很多视频进行分镜头切割,其中关键是切分点的确定,不同内容可能有不同的判别方法。