爱意满满的作品展示区。
jinyu121

Video2Frame:一个视频抽帧工具包

  •  
  •   jinyu121 · Jan 31, 2019 · 6247 views
    This topic created in 2688 days ago, the information mentioned may be changed or developed.

    Video2Frame 是一个为 Video 魔药师们和 CV 魔药师们准备的一个视频抽帧工具包。

    地址: https://github.com/jinyu121/video2frame

    为啥写了这个工具

    作为一个初级魔药师,前些日子在入门炼 Video 的丹。

    很多 Paper 里面的实验部分都会将视频抽成帧,然后输入到 CNN/RNN 里面。然后,各个文章里面的要求又不尽相同:有些是做了 resize,有些是调整了输出 FPS,有些是取连续的 XXX 帧,有些是一个视频随机取 X 段…… 反正各种乱就是了。

    Life is short。

    在此之前,实验室同学写了一个视频抽帧的代码。自己用了一下,感觉「差不多够用」,但是一些概念不太清楚。于是就在这份代码的基础上增加了许多东西,做成了一个功能更加全面的工具包。

    这个工具包都能干啥?

    一句话:Video to Frames,以最清晰的方式满足大多数的要求。

    其实就是 ffmpeg 套层壳子啦~不过不用自己去学 ffmpeg 那么多奇奇怪怪的参数啦。

    具体说来:

    1. 批量将视频文件转换为帧
    2. 指定输出文件的格式(如果磁盘对小文件支持好话可以选择直接用 JPG 来存储,否则可以选择将 JPG 文件集合成一个大的 HDF5 或者 LMDB 文件)
    3. 从每段视频里面随机选 N 段长度为 M 秒的视频(下个月会加上 这 N 段视频怎么选取 的参数,敬请期待)
    4. 将输出的帧进行 resize (固定大小、按照长 /短边进行缩放)
    5. 指定输出帧率(例如,短视频的话,每秒 1 帧,每秒 2 帧……;长视频的话,每 10 秒 1 帧之类的)
    6. 重采样:从抽出来的每段视频里面采样 X 帧
    7. 最后当然是多线程啦~

    我该怎么用这个工具包?

    首先,Readme 里面带有比较详细的例子了。其他情况自己组合就好了。

    其次,工具包里面带有 PyTorch 的 Dataset 接口示例。前几周时间都已经都逐个验证过了,一般情况下可以直接使用。

    最后,工具包里面带有几个常见数据集转换标注脚本,上手十分容易。

    关于搭环境这个事儿……用 conda 基本上也能一键解决了吧。

    所以,代码在哪儿?

    https://github.com/jinyu121/video2frame

    欢迎试用,欢迎星星。欢迎吐槽,欢迎 PR。

    还有啥要说的么?

    当然有啊。

    首先感谢一下实验室小伙伴的原作啊~ https://github.com/forwchen/vid2frame

    然后是…… Readme 里面英文写得确实比较…… 嗯…… 凑合看懂就行了……

    最后是…… 求各位神仙帮忙 Debug 一下另一份代码…… P3D 的 classification。在训练集上跑得很欢腾的,但在测试集上面精度死活只有 40 几。怀疑人生好久了,但是自己找不出来 BUG 啊…… 555 …… 求好心人帮忙。 谢过~

    1 replies    2019-02-01 20:34:47 +08:00
    zackwu
        1
    zackwu  
       Feb 1, 2019
    不错的工具,已 star
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4533 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:58 · PVG 17:58 · LAX 02:58 · JFK 05:58
    ♥ Do have faith in what you're doing.