我想从视频中获取角色图像 ======================== 安装额外依赖 ------------ waifuc同样提供了从视频中获取图像的方法 在开始运行之前首先需要安装额外的依赖,其中包含\ ``pyav``\ 库,以便对视频进行处理: .. code:: shell pip install git+https://github.com/deepghs/waifuc.git@main#egg=waifuc[video] 从视频文件中获取图像 -------------------- 在waifuc中,可以使用\ ``VideoSource``\ 对视频文件进行抽帧处理,并以图像的形式保存到给定的路径中,如下所示: .. literalinclude:: video_simple.py :language: python :linenos: 保存的图像如下所示: .. image:: video_simple.png :align: center 从包含视频的文件夹中获取图像 ---------------------------- 在此基础上,很多情况下,我们需要对下载好的一整部动漫系列视频进行处理,而他们常常被放在同一个文件夹中 为此我们可以直接从包含视频的文件夹中进行抽帧,如下所示: .. literalinclude:: video_dir.py :language: python :linenos: 该代码将对\ ``/data/videos``\ 路径下的全部视频文件进行逐一抽帧,并保存至\ ``/data/dstdataset``\ 文件夹 从包含视频的文件夹中获取角色图像 -------------------------------- 在上述代码的基础上,我们只需要为其添加\ ``PersonSplitAction``\ 即可从视频文件夹中截取人像图像,如下所示: .. literalinclude:: video_split.py :language: python :linenos: 上述代码从视频中抽帧,并从抽取的图像中截取人像保存下来,如下所示: .. image:: video_split.png :align: center 不过看起来似乎有一些图像并不适合用于训练。因此在实际的动漫视频中,可以通过添加更多的\ ``Action``\来获得更高质量的训练数据集。例如下面的代码: .. literalinclude:: video_split_better.py :language: python :linenos: 最终将得到如下的数据集 .. image:: video_split_better.png :align: center