Python 有没有办法只从图像中提取所需的文本?

Python 有没有办法只从图像中提取所需的文本?,python,android-studio,machine-learning,ocr,python-tesseract,Python,Android Studio,Machine Learning,Ocr,Python Tesseract,我正在做一个项目,我试图通过扫描整个药品包来提取药品名称。例如— 下面是由名为“Health OK”的平板电脑信息组成的图像 我的问题是,通过扫描或使用此图像,是否可以仅提取平板电脑的名称,即“Health OK” 我尝试过使用Pytesseract,但它并没有提供我想要的结果。以下是守则- from PIL import Image import pytesseract, re f = "ocr.jpg" t = pytesseract.image_to_string(Image.open(f

我正在做一个项目,我试图通过扫描整个药品包来提取药品名称。例如—

下面是由名为“Health OK”的平板电脑信息组成的图像

我的问题是,通过扫描或使用此图像,是否可以仅提取平板电脑的名称,即“Health OK”

我尝试过使用Pytesseract,但它并没有提供我想要的结果。以下是守则-

from PIL import Image
import pytesseract, re
f = "ocr.jpg"
t = pytesseract.image_to_string(Image.open(f))
print(t)
m = re.findall(r"[\d—-]+ TABLETS [\d—-]+", t)
if m:
    print(m[0])

使用ANN或CNN模型有什么可能的解决方案吗?

我的想法是为想要提取的文本创建一个变量。在图像上运行OCR后,将其输出也存储在列表中。 例如:

disired_text = 'Health OK'
OCR_output = ['Multivitamin', 'Multiminerals', 'Amino Acids', 'with Taurine', 'Health OK']
一旦有了这些列表,就可以使用任何字符串匹配算法(如模糊匹配)从OCT_输出列表中提取最佳匹配 例如:

score_dict = {} #initializing dictionary to store text and score
for output_text in OCR_output:
    score = fuzzy_match_function(output_text, desired_text)
    score_dict[output_text] = score
你会在一本包含文字和分数的字典里得到分数。您可以提取与所需变量具有最小距离的变量


希望这对你有用

如果您有足够的样本,可以通过标记感兴趣的文本区域来提取或识别该区域,然后将该区域提供给OCR进行提取来训练模型。 从我所看到的神经网络,如果你有足够的数据进行训练。也许你可以在已经训练过的模型上使用某种形式的迁移学习。
如果没有带标签的数据,可以使用商用注释工具标记感兴趣的培训区域

简短回答:没有。假设在这张图中,我们使用上下文“蓝色方框中的大号字母”来确定产品名称。您的其他药品标签使用相同的上下文帮助您查找产品名称的可能性有多大?@MarkNeal我以前想过,就像只提取大字体的文本,而不是其他文本,但不知道如何实现它