首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?

用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?

简介当我开始接触深度学习时,学到的第一件事就是图像分类。这个话题非常有趣,包括我在内的很多人都沉浸在它的魅力之中。但是在我处理图像分类时总会思考,如果我能将学到的东西迁移到视频上就好了。是否有一种模型能在特定时间内自动识别视频中的某个人物呢?结果证明的确可以做到,下面就将我的方法分享给你们!影视明星的出镜时间是非常重要的,直接影响他们的片酬。

如上面的动图所示,,每一页纸上都有不同的画面,随着我们翻动书页,可以看到一只跳舞的鲨鱼,而且翻动的速度越快,效果越好。这也可以看作一种视频,换句话说,这种视觉效果是不同图像以特定顺序排列在一起产生的。同样的,视频也是由一系列图片组成的,这些图片称为“帧”,可以通过组合得到原始视频。所以与视频数据有关的问题和图像分类或者目标检测问题并没有什么不同。只是从视频中提取帧需要多一个步骤。

这个过程完成后,屏幕上会出现“Done!”的字样。下面我们试着对图像(帧)进行可视化,首先用matplotlib中的imread()函数读取图像,然后用imshow()函数显示图像。

这就是视频中的第一帧。我们从每秒中提取一帧,由于视频时长为4:58(共298秒),我们现在一共有298张照片。我们的任务时确定哪张照片上有汤姆,哪张有杰瑞。如果我们提取出的图像能和常见的ImageNet数据集中的图片有很大的相似性,那么这个问题就能轻而易举地解决了。但是这样的乐趣在哪里?我们的是动画片,所以要让任何预训练模型在给定的视频中定位汤姆和杰瑞还是有难度的。

用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?

现在我们就有了图片,记住,我们要用两部分训练模型:训练图片对应的种类由于这里有三种不同情况,我们将用keras.utils中的to_cateforical()函数对他们进行独热编码。

尺寸调整好后,我们还要对每个模型的需求进行预处理,否则模型就不会表现得很好。利用keras.applications.vgg16中的preprocess_input()函数来完成这一步骤。

第三步:搭建模型下一步就是搭建自己的模型。我们会用VGG16预训练模型来完成这一任务。首先导入所需的库:下载VGG16与训练模型,并将其保存为base_model:

X_train和X_valid的尺寸分别为(208,7,7,512)和(90,7,7,512)。为了输入到神经网络,我们必须把它重新修改成1—D尺寸。

用summary()函数检查模型的汇总信息:

最后一步,我们要训练模型,并且用验证集检测它在陌生图像上的表现:

用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?

从新视频中提取帧之后,我们就要下载test.csv文件,它包含每个提取出的帧的名字:

用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?

第五步:计算汤姆和杰瑞的出镜时间刚刚我们规定了1代表杰瑞,2代表汤姆,这样就可以用上述的预测来计算两个角色的出镜时长了:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180924A0JVON00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券