代码中的 n02123045 是虎斑猫的类别。你可以在 caffe/data/ilsvrc12/synset_words.txt 查找这些类别的代码。你也可以使用一个来自 model zoo 的预训练的模型:https://github.com/BVLC/caffe/wiki/Model-Zoo 注:这个例子只是展示了其中的句法。但不知怎的,在我的经历中它的表现很差,很可能是因为分类有 1000 个。这个程序也能完美适合带有一个「other」类别的分类数量更小的模型。 模型 该模型是一个用 pynetbuilder 创建的带有残差连接(residual connections)的卷积神经网络(CNN)。这些模型都是 ImageNet 上预训练的。然后其最终层经过调整以适应新的分类数量和微调(fine-tuned)。 正如 Karpathy et al 的论文《Large-scale Video Classification with Convolutional Neural Networks》建议的那样,我训练了最上面 3 层的权重而不只是最顶层的,这稍微提升了一些准确度:
下面使用不同的模型微调最上面 3 层所得到的结果,该结果是在 2500 张训练图像上测试得到的,这些图像来自与训练集不同的视频。
训练损失和测试精度:
在所有测试的模型中,resnet50_1by2 在运行时间、内存和准确度上表现出了最佳的平衡。我认为全 resnet50 的低精度是因为过拟合(overfitting)的关系,因为它有更多的参数,也许其训练可以按不同的方式完成。 上面的结果是通过 mirroring 而非 cropping 得到的。使用 cropping 能够将在 resnet50_1by2 上的结果稍微提升至 95.2%,因此它被用作了最终的模型。 使用 TensorFlow 微调(fine-tuning)Inception V3 也能实现 80% 的准确度。但是,这是使用 299x299 的图像大小,而不是 224x224 的大小,j2直播,也没有 mirroring 或 cropping,所以它们的结果不能直接进行比较。这个模型可能也会有过拟合的问题。 编辑电影 给定对于每一秒的帧的预测,它会获取这些预测的 argmax(最大值参数)并创建这段影片的截断块(cut blocks),其中的 argmax 等于目标(target),而其分数(score)也比一些阈值要大。其中的差距大小、匹配每个模块中目标的帧的最小比例(minimum fraction)和分数阈值(score threshold)都是可以调整的。FFmpeg 支持很多编解码器(codecs),包括 mp4、avi、flv、mkv、wmv 等等。 单帧 vs 多帧 这个模型并不使用任何时间信息,因为它分别处理每一张图像。Karpathy et al 的论文表明其它使用多帧(multiple frames)的模型的表现并不会好很多。它们难以应对相机的移动。将它们的慢融合模型(slow fusion model)与这里的结果进行比较仍然是很有趣的。 数据 其训练数据库包含了 36,000(和 2500 测试图像)张图像,分成了 6 个类别: blowjob_handjob cunnilingus other sex_back sex_front titfuck 这些图像的大小都调整为了 256x256,并且带有水平镜像(horizontal mirroring),并且为了数据增强(data augmentation)还随机剪切(cropping)成了 224×224 的大小。有很多实验没有剪切,但这能稍微提升 resnet50_1by2 的结果。 目前来说,这个数据集还受限于两个异性恋表演者。但鉴于这种方法的成功,我计划扩大分类的数量。因为这些训练很敏感,我个人并不会放出这些数据库;而只会提供训练出来的模型。 前向和后向性爱 (责任编辑:本港台直播) |