栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python软件设计基础 第八节-Tesseract-Ocr视频字幕提取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python软件设计基础 第八节-Tesseract-Ocr视频字幕提取

目录

一、Tesseract-Ocr概述与环境配置

(一)Tesseract-Ocr介绍

(二)Tesseract-Ocr安装

1、程序下载及安装

2、配置环境变量

3、语言配置与程序测试

二、视频字幕提取实现

(一)实现原理

(二)代码实现

三、总结


一、Tesseract-Ocr概述与环境配置

(一)Tesseract-Ocr介绍

Tesseract是一款由HP实验室开发、由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引   擎。Tesseract可以处理很多自然语言,如英语、葡萄牙语等。截止到2015年为止,它可以支持超过100种书面语言,并且可以通过训练学习轻松掌握其他语言。

(二)Tesseract-Ocr安装

1、程序下载及安装

官方网站:https://github.com/tesseract-ocr/tesseract
官方文档:https://github.com/tesseract-ocr/tessdoc
语言包地址:https://github.com/tesseract-ocr/tessdata
下载地址:https://digi.bib.uni-mannheim.de/tesseract/

进入下载页面后,下载正式稳定版本,文件名为“tesseract-ocr-w64-setup-v5.0.0.20190623.exe”。

下载完成后,在PC上进行安装。安装时要注意路径中不要有中文,避免出现问题。

安装过程可以选择要安装的语言包,如简体中文。但速度较慢,建议通过其他途径下载语言包,并在本地进行安装。

2、配置环境变量

在电脑上按“Win+R”打开命令行,输入“sysdm.cpl”打开设置Path的窗口。

 依次选择“高级”-“环境变量”。

 在path变量中添加tesseract-ocr的安装路径。

3、语言配置与程序测试

把语言文件“chi_sim.traineddata”拷贝tesseract-ocr安装目录下的tessdata文件夹中,使程序语言显示为中文。并在tesseract-ocr安装目录下打开命令窗口,输入“tesseract -v”命令,对tesseract-ocr的安装进行检测。

出现下图提示,安装配置完成。

二、视频字幕提取实现

(一)实现原理

1、读取视频,并获取视频尺寸,便于查找字幕位置

2、截取字幕所在的区域,存为变量

3、将字幕区域转化为灰度图

4、利用cv2对字幕区域沿X轴方向边缘特征矩阵二值化

5、利用tesseract-ocr中的文字识别模块对处理后的字幕区域进行识别

6、输出识别后的字幕文字

(二)代码实现

选取《让子弹飞》的片段进行识别,并输出字幕信息。

以下为视频画面:

实现代码如下:

import pytesseract
import cv2
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
#导入第三方库

if __name__ == '__main__':
    path = "让子弹飞.mp4"
    #定义读取的视频路径

    cap = cv2.VideoCapture(path)
    frame_count = int(cap.get(cv2.CAP_PROP_frame_COUNT))
    print(frame_count)
    #计算视频的帧数
    
    i=0
    #定义初始的帧数
    while i 

输出结果如下:

 文字识别的效果和准确度还是不错的。

三、总结

在使用上述代码进行字幕识别时,需要不断调整截取字幕的位置。由于不同视频的字幕位置不同、画面比例不同,因此识别不同的视频需要使用不同的参数。

经过多次比较,发现当字幕位于截图中心时,识别效果最好。且字幕与画面不重叠的情况下,识别效果最好。

 

其次就是要根据不同的字幕类型,采取不同的画面处理方法。例如,有的字幕本身比较淡,不是纯白色的,这时再进行边缘二值化就容易导致字幕不完全,最终识别的效果欠佳。

解决思路:在进行最终识别前,先将灰度化、二值化的字幕截图输出,看看两者的效果,再去选择合适的处理方法。例如,下方二图,上面为灰度化处理的图片,下面为二值化处理的图片。经过二值化处理的图片明显存在缺失,不容易识别,因此可以不选二值化,仅选择灰度化即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618762.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号