是否可以在google vision api中提供文本格式提示?

时间:2018-04-05 14:55:50

标签: ocr google-cloud-vision icr

我正在尝试检测图像中隔离的手写日期。

enter image description here

在云视觉api中,有没有办法给出关于类型的提示?

示例:唯一存在的文字为dd / mm / yy,d,m和y为数字

我唯一发现的是文档中的语言提示。

有时我会得到包含O等字母的结果,而不是0

1 个答案:

答案 0 :(得分:1)

没有办法提供有关类型的提示,但您可以使用client libraries过滤输出。我从here下载了detect.pyrequirements.txt并修改了detect.py(在 def detect_text 中,在第283行之后):

    response = client.text_detection(image=image)
    texts = response.text_annotations

    #Import regular expressions
    import re

    print('Date:')

    dateStr=texts[0].description
    # Test case for letters replacement
    #dateStr="Z3 OZ/l7"
    #print(dateStr)

    dateStr=dateStr.replace("O","0")    
    dateStr=dateStr.replace("Z","2")    
    dateStr=dateStr.replace("l","1")    

    dateList=re.split(' |;|,|/|\n',dateStr)

    dd=dateList[0]
    mm=dateList[1]
    yy=dateList[2]
    date=dd+'/'+mm+'/'+yy 
    print(date)
    #for text in texts:
        #print('\n"{}"'.format(text.description))
    #print('Hello you!')
        #vertices = (['({},{})'.format(vertex.x, vertex.y)
        #            for vertex in text.bounding_poly.vertices])

        #print('bounds: {}'.format(','.join(vertices)))
    # [END migration_text_detection]
# [END def_detect_text]

然后我使用以下命令行在虚拟环境中启动detect.py

python detect_dates.py text qAkiq.png

我得到了这个:

23/02/17

很少有字母可以被误认为是数字,因此使用 str.replace(“letter”,“number”)应该可以解决错误的识别问题。我为这个例子添加了最常见的案例。