What is Mask RCNN
Setup and Installation
- Step1: Python3.6
Step2: Clone the Mask_RCNN repo
1
git clone https://github.com/matterport/Mask_RCNN.git
Step3: Install the dependencies
下载下来的 Mask RCNN 中有一个 requirements.txt 文件。1
pip install -r requirements
Step4: Install cocoapi
1
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
Step5: Dowload the Pre-trained Weights
https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5
把下载的 h5 文件放入 Mask-RCNN 的文件夹里面
Run
首先打开 Mask_RCNN/samples notebook,运行。
出现两个错误:
No module named ‘imgaug’
1
2pip install imgaug
pip install opencv-python
- TypeError: softmax() got an unexpected keyword argument ‘axis’
keras 2.1.6 的 softmax 没有 axis 这个参数了,回退 keras 版本:pip install keras==2.1
结果
BiliBili 蒙版弹幕
原版视频地址:新垣结衣日清鸡肉拉面广告
视频弹幕压缩
给视频加硬字幕是把字幕加到视频流中,不是单独的字幕流。
1 | ffmpeg -i demo.mp4 -vf ass=subtitle.ass output.mp4 |
参考链接:https://blog.csdn.net/fallfollowernolisten/article/details/68489499
准备工作
- 准备带弹幕的视频文件和不带弹幕的视频文件。
- 配置视频文件路径。
- 在 coco 文件下的
__init__.py
中加入代码:from .coco import *
。 - 执行代码,等待完成。
执行程序
内存占用情况:
显卡使用情况:
可以看到还是很耗费显存的,我的电脑差一点就不够了,而且实际训练起来速度也很慢。
视频音频压缩
生成的蒙版弹幕视频文件没有声音,所以需要手动添加声音,还是用 ffmpeg。
- 首先在把视频上传到 123app,使用 Audio Convert 来转换为 MP3 格式,就是音频文件了,文件大小大概有几 M。
下一步是合并音视频。假设现有视频文件 video.avi (包含声音) 和音频文件 audio.mp3,要把 video.avi 中的视频和 audio.mp3 合并,步骤如下:
1
2
3
4
5//将video.avi 中的视频提取到临时文件video2.avi中
ffmpeg -i video.avi -vcodec copy -an video2.avi
//合并 video2.avi 和 audio.mp3 到output.avi
ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi
//video2是临时文件,最后可以删除。完成效果
Reference
- Mask-RCNN-series
- cocoapi
- Mask RCNN with Keras and Tensorflow
- Mask_Danmu