aco*_*hen 4 video machine-learning thumbnails tensorflow
我们都听说过YouTube使用深度学习为用户视频选择代表性的缩略图。但是有没有人成功地在tensorflow上尝试过呢?
我确实找到了https://github.com/yahoo/hecate,它声称可以做到这一点,但是对结果的印象却不那么明显。使用ffmpeg提取关键帧,然后计算颜色分布以选择“最佳”图像,我实际上得到了更好的结果。
但是很想知道是否有人使用更多的“智能”算法来做得更好。
我想在OP中明确指出,此答案并不代表该方法的形式描述,而是以直观的方式描述该预期方法。
假设一个视频被组成Ñ帧和它们中的每可被表示为一个三维张量(高度,宽度,信道)。它可以使用一个卷积神经网络(细胞神经网络)来产生用于每帧的潜表示。
视频可以被表示为一个帧序列(F_1,F_2,...,F_N)。用于序列建模最合适的神经网络结构是回归神经网络(RNNs)。我们可以用RNNs编码视频帧由CNN所产生的潜表示的序列。在这之后,你将有一个潜在的表示(F_1,F_2,...,F_N通过直接从以前的取决于RNN产生的每一帧)(这是RNNs的一个众所周知的属性)。
如您在最近发布的Youtube-8M数据集中看到的那样,每个视频都有高质量的缩略图,因此您可以将它们用作目标。特别是,给定由应用于帧序列的RNN生成的潜在表示,您可以生成上下文向量c,其生成如下:
alpha = softmax(FNN(f_1), FNN(f_2), ..., FNN(f_n))
c = f_1 * alpha_1 + f_2 * alpha_2 + ... + f_n * alpha_n
Run Code Online (Sandbox Code Playgroud)
其中FNN是接收潜表示的前馈神经网络f_i用于帧f_i和生成表示多少重要的是当前序列中的分数。我们可以利用上下文向量Ç为了预测视频的最合适的帧。
在我看来,有两种可能的策略定义,网络应该解决的问题,尽量减少损失函数。第一个它比第二个更容易。我简要介绍一下它们如下:
我没有在实践中尝试过它们中的任何一个,因此不能确定我的方法是否有效,但是我相信这样做可以有效地完成此任务。无论如何,我希望这个答案可能是有帮助的OP,以便更好地理解这个任务如何可以解决的。