扫描视频文本字符串?

问题描述:

我的目标是从电影预告片中找到标题屏幕。我需要一个服务,可以在视频中搜索字符串,然后使用该字符串返回帧。很晦涩难懂,有这样的事情吗?扫描视频文本字符串?

例如对于这部电影,我会扫描“香肠党”,并检索该框架:

enter image description here

编辑:我发现cloudsight api这实际上除了成本的工作令人望而却步@假设我需要$ .04每次通话将视频分成1秒的间隔并扫描每个图像(每个视频至少60个电话)。

没有确切的服务,我能找到,但你可以尝试自己做...

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 

这提取一帧第二从视频文件,然后使用正方体通过提取文本OCR到与图像帧名称相同的文件中(例如,0135.txt。但是,根据所使用的字体和视频文件的质量,您的结果将会发生很大的变化)

您可能会发现它更便宜/更简单使用类似Amazon Mechanical Turk的东西,尤其是因为OCR将很难做到这一点omatically。

另一个选项可能是您自己使用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的问题。