Giter Club home page Giter Club logo

videosubscanplayer's Introduction

自动翻译字幕的播放器

效果图

简单介绍

本项目作为本人的数字图像处理课程设计,是一个简陋的视频内嵌字幕识别播放器。

通过数字图像处理技术处理视频内嵌的字幕,然后通过卷积神经网络进行识别,并利用百度翻译接口进行翻译。

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中的部分代码

修改1

  • 修改VideoPlayer.py中的部分代码

修改2

翻译效果图

translated01.jpg

translated02.jpg

不足与缺陷

  • 由于图像处理算法的问题,因此对原视频字幕要求比较高,最好是字体清晰的白字黑底字幕,且字体间距不能太靠近。后续可能会改用其他算法。
  • 模型的精准度还不够高,对于一些大小写很相似的字母不能有效区分出来
  • 暂时不支持拖动,只能从头播放到尾,然后通过导出字幕的方式保留字幕信息。
  • 需要使用百度翻译接口才可以翻译

附预览图

模块分布流程图

process01.jpg

图像处理流程图

process02.jpg

多线程处理流程图

process03.jpg

videosubscanplayer's People

Contributors

jezemy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.