扫描视频的文字字符串?

时间:2016-03-15 17:35:32

标签: youtube

我的目标是从电影预告片中找到标题画面。我需要一个服务,我可以搜索视频中的字符串,然后返回带有该字符串的帧。相当模糊,有这样的事情吗?

e.g。对于这部电影,我要扫描"香肠派对"并检索此框架:

enter image description here

编辑:我发现cloudsight api实际上可以正常工作,除了成本高昂@ $ .04每次通话假设我需要将视频分成1s间隔并扫描每个图像(每个视频至少60个电话)。

2 个答案:

答案 0 :(得分:3)

我找不到确切的服务,但您可以自己尝试这样做......

ffmpeg -i sausage_party.mp4 -r 1 %04d.png
/usr/local/bin/parallel --no-notice -j 8 \
  /usr/local/bin/tesseract -psm 6 -l eng {} {.} \
  ::: *.png

从视频文件中每秒提取一帧,然后使用tesseract通过OCR将文本提取到与图像帧同名的文件中(例如0135.txt。但是你的结果会有所不同大大取决于使用的字体和视频文件的质量。

你可能会发现使用像Amazon Mechanical Turk 这样的东西更便宜/更容易,尤其是因为OCR会很难自动完成这项工作。

答案 1 :(得分:1)

另一个选择是使用OpenCV中的场景文本检测和识别模块(docs.opencv.org/3.0-beta/modules/text/doc/text.html)自行实现此服务。您可以查看this video以了解此类系统的运行方式。如上所述,准确性取决于电影标题中使用的字体,视频文件的质量和OCR。

OpenCV依赖于Tesseract作为底层OCR,但是,您也可以使用OpenCV中的文本检测和本地化功能(docs.opencv.org/3.0-beta/modules/text/doc/erfilter.html)来查找文本图像中的区域然后使用不同的OCR来执行识别。文本检测和本地化阶段可以完成very quickly,因此实现实时性能主要是选择快速OCR。