检测图像中的文字

我正在研究Python项目。 我需要创建的功能之一是能够检测图像是否包含文本。我不需要任何类型的边界框,无论图像中包含多少文本,都只需要true或false即可。 我一直在遵循here的步骤,但是,由于我设法找到所有链接,所以最终会创建边界框。

我有两个问题:

  1. 在没有边界框过程的所有开销的情况下,是否可以使用任何文本检测机制来检测文本?
  2. OpenCV使用神经网络来检测文本,该文本是.PB文件。我需要加载它才能使用nn。有什么办法可以将此文件嵌入.py文件中?这样可以避免有两个文件。其背后的想法是能够导入.py文件并将其用作库,而无需考虑.pb文件(这是检测文本的模型)。

谢谢!

YSYQQ 回答:检测图像中的文字

  

在没有边界框过程的所有开销的情况下,是否可以使用任何文本检测机制来检测文本?

边界框是进行所有检测处理的结果,因此表示该过程的本质部分。如果您不在乎文本的位置,则可以随意忽略自己代码中的边界框。但是为了检测图像中是否有文本,算法(无论哪种类型)都必须检测文本中的文本。

如果您不关心结果,则链接文章中使用的DNN方法可能会过大。您总是可以尝试其他一些text detection algorithms并尝试对其进行概要分析,从而为您的应用程序找到计算成本更低的解决方案。永远会有权衡。

  

OpenCV使用神经网络来检测文本,该文本是.PB文件。我需要加载它才能使用nn。有什么办法可以将此文件嵌入.py文件中?这样可以避免有两个文件。其背后的想法是能够导入.py文件并将其用作库,而无需考虑.pb文件(这是检测文本的模型)。

是的,您可以将模型redux文件的内容作为buffer object直接嵌入到Python代码中,然后使用alternate model loading mechanism从缓冲区读取模型:

.pb

您可以使用Unix retval = cv.dnn.readNetFromTensorflow(bufferModel[,bufferConfig]) 命令将二进制文件转换为十六进制序列:

hexdump

产生如下输出:

hexdump -e '"    " 8/1 "0x%02x," "\n"' your_training.pb

,然后将其粘贴到您的源文件中,并用以下符号包裹:

0x0a,0x35,0x0a,0x62,0x61,0x74,0x63,0x68,0x5f,0x73,0x69,0x7a,0x65,0x12,0x0b,

然后您可以将其传递给OpenCV:

bufferModel = bytearray([
    0x0a,# ...
])
本文链接:https://www.f2er.com/2981417.html

大家都在问