由于现实世界中各种各样的文字出现,场景文本识别(STR)仍然是研究人员的重大挑战。例如,识别文档上的文本不同于识别T恤上的文本。在ECCV 2022上引入的场景文本识别(MGP-STR)模型的多粒性预测提供了一种开创性的方法。 MGP-STR将视觉变压器(VIT)的鲁棒性与创新的多晶格语言预测相结合,显着提高了其处理复杂的STR任务的能力。这导致了更高的准确性和在各种现实世界中挑战的各种情况,提供了一个简单而强大的解决方案。
*本文是***数据科学博客马拉松的一部分。
MGP-STR是一种基于视觉的STR模型,而无需单独的语言模型。它使用多粒性预测(MGP)策略将语言信息直接集成到其体系结构中。这种隐式方法允许MGP-STR胜过纯粹的视觉模型和语言增强方法,从而实现最新的STR结果。
该体系结构由两个关键组成部分组成:
通过简单而有效的策略,在字符,子词和单词级别上进行预测的融合可确保MGP-STR捕获视觉和语言细节。
MGP-STR主要用于文本图像上的OCR任务。它隐式结合语言知识的独特能力使其在不同文本和扭曲文本的现实情况中特别有用。示例包括:
本节将在示例图像上使用MGP-STR进行场景文本识别。您需要Pytorch,Transformers库和依赖项(PIL,请求)。
导入所需的库:用于模型处理的变压器,用于图像操纵的PIL以及获取在线图像的请求。
<code>from transformers import MgpstrProcessor, MgpstrForSceneTextRecognition import requests import base64 from io import BytesIO from PIL import Image from IPython.display import display, Image as IPImage</code>
通过拥抱面部变压器来加载MGP-STR基本型号及其处理器。
<code>processor = MgpstrProcessor.from_pretrained('alibaba-damo/mgp-str-base') model = MgpstrForSceneTextRecognition.from_pretrained('alibaba-damo/mgp-str-base')</code>
创建一个函数来输入图像URL,使用MGP-STR处理它们,然后返回文本预测。此处理图像转换,base64编码和文本解码。
<code>def predict(url): image = Image.open(requests.get(url, stream=True).raw).convert("RGB") pixel_values = processor(images=image, return_tensors="pt").pixel_values outputs = model(pixel_values) generated_text = processor.batch_decode(outputs.logits)['generated_text'] buffered = BytesIO() image.save(buffered, format="PNG") image_base64 = base64.b64encode(buffered.getvalue()).decode("utf-8") display(IPImage(data=base64.b64decode(image_base64))) print("\n\n") return generated_text</code>
这里省略了带有图像URL和预测的示例以节省空间,但是它们将遵循与原始文本相同的结构,以不同的图像URL调用predict
功能。
从图像示例可以明显看出该模型的准确性。它的效率值得注意,在使用低RAM使用情况的CPU上运行。这使其很容易适应针对特定领域的任务的微调。
MGP-STR有效地结合了愿景和语言理解。其创新的多晶型预测为不带外部语言模型的情况提供了一种全面的方法,提高准确性和适应性。它简单而准确的体系结构使其成为OCR和STR中研究人员和开发人员的宝贵工具。它的开源性质促进了该领域的进一步进步。
Q1:什么是MGP-STR,它与传统STR模型有何不同? A1: MGP-STR使用MGP将语言预测直接整合到基于视觉的框架中,从而消除了对传统方法中单独的语言模型的需求。
Q2:用于培训MGP-STR的哪些数据集? A2:基本模型在MJSynth和Synthtext上进行了培训。
Q3:MGP-STR可以将变形或低质量的文本图像处理吗? A3:是的,它的多粒性预测机制使其可以应对此类挑战。
问题4:MGP-STR适合英语以外的其他语言? A4:虽然对英语进行了优化,但可以通过适当的培训数据适应其他语言。
Q5:A³模块如何促进MGP-STR的性能? A5: A³模块可以完善VIT输出,实现子词级预测并嵌入语言信息。
注意:图像占位符与原始输入相同。切记用实际链接替换包围的链接。
以上是使用基于视觉的文本识别的场景文本识别的详细内容。更多信息请关注PHP中文网其他相关文章!