当前位置:   article > 正文

视频字幕识别(百度AI开放平台OCR | python | opencv)

字幕识别

目标:提取位于视频下方的字幕

机缘:某些要写报告的学习视频太长了orz,弄字幕来参考一下

难点:

  1. 调参(不同视频字幕对应参数会不同,但调整不大)
  2. 图片相似度比较(哈希算法,有更好的算法但我没用心找)

基本策略:

  1. 确定字幕位置
  2. 比较截取的两帧字幕是否相同,若相同,则抛弃其中一帧
  3. 由于调用的是百度平台,有ocr次数限制(1000次/月),所以将某段时间内字幕合成一张图片后再文字识别

具体代码如下:

1. 定义调用百度开放平台OCR的函数

百度官方的ocr可以选择返回带位置和不带位置的文字识别,所以这里定义两个函数,location_ocr 返回位置,baidu_ocr返回识别出的文字

没有用过百度ocr的朋友需要去申请API Key和API Secret,然后飞桨平台上也有很多关于字幕识别的项目

  1. # --coding: utf-8 --
  2. import math
  3. import os
  4. from cv2 import cv2
  5. import requests
  6. import base64
  7. # 确定字幕位置
  8. def location_ocr(img):
  9. '''
  10. 构建请求url,获取Access Token,必须参数如下:
  11. grant_type: 必须参数,固定为client_credentials;
  12. client_id: 必须参数,应用的API Key;
  13. client_secret: 必须参数,应用的Secret Key;
  14. '''
  15. host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' \
  16. + 'API Key' + '&client_secret=' + 'Secret Key'
  17. headers = {
  18. 'Content-Type': 'application/json;charset=UTF-8'
  19. }
  20. # 获取token
  21. res = requests.get(url=host, headers=headers).json()
  22. url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate'
  23. data = {}
  24. da
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/254664
推荐阅读
相关标签
  

闽ICP备14008679号