本项目作为本人的数字图像处理课程设计,是一个简陋的视频内嵌字幕识别播放器。
通过数字图像处理技术处理视频内嵌的字幕,然后通过卷积神经网络进行识别,并利用百度翻译接口进行翻译。
UI界面使用的是PYQT,深度学习框架是TensorFlow
图形处理主要使用OpenCV,多线程库使用的是vthread
- 支持导入mp4,mov,avi,mkv格式的视频
- 支持处理视频下方的白色字幕
- 支持翻译字幕
- 支持将字幕导出
- python3.6以上
- TensorFlow 2.0 以上(原版本是1.4版本,已将主要代码改成兼容1的代码,tf.compat.v1.xxx模式)
- OpenCV
- Pyqt
- Numpy
- VThread
- PIL
- Retrying
- image_process_tool 提供了分割视频字幕的工具
- model 训练好的模型
- icon 程序图标
- font 数据集字体
- video Test 用于测试的视频文件
- baidu_translator.py 百度翻译API调用
- CNN_new.py 训练CNN模型
- font_data.py 根据字体font生成数据集
- expand_dataset.py 在生成的数据集基础上进行泛化
- VideoPlayer.py 视频播放器主程序
下载这个模型,提取码是elm4, 解压后放入VideoSubScanPlayer/model/ 下
安装好依赖库后,在VideoSubScanPlayer文件夹下运行代码
python VideoPlayer.py
- 首先要有一个百度翻译接口,没有的话先注册
- 在开发者信息中得到App ID和密钥
- 修改baidu_translator.py中的部分代码
- 修改VideoPlayer.py中的部分代码
- 由于图像处理算法的问题,因此对原视频字幕要求比较高,最好是字体清晰的白字黑底字幕,且字体间距不能太靠近。后续可能会改用其他算法。
- 模型的精准度还不够高,对于一些大小写很相似的字母不能有效区分出来
- 暂时不支持拖动,只能从头播放到尾,然后通过导出字幕的方式保留字幕信息。
- 需要使用百度翻译接口才可以翻译