带有手写复选框的 AWS textract
AWS textract with hand-written checkboxes
我有 1000 份调查表需要扫描,然后上传到我的 C# 系统以提取数据并将其输入数据库。这些调查混合了手写的 1) 文本框和 2) 复选框。我目前正在使用 Azure Read Api 来提取应该可以正常工作的手写文本,例如下面的问题 #4 returns 'Python' 和 'coding'.
所以我的问题;任何 AWS Textract 都会给我提取标记了复选框的数据的能力吗?例如请参阅下面的问题 #1 - 我需要一个字符串返回 'disagree',这对任何 AWS Textract API 都可行吗?
不幸的是,Azure Read API 和 Google Vision OCR 不提供此功能,因此如果 AWS Textract 不能帮助我,我将不得不做一些手动操作,例如检查像素颜色的变化检测勾选的复选框。
调查类型:
是的,Amazon Textract 支持检测各种字段输入,例如复选框和单选按钮。您可以阅读有关详细信息的更多信息in the docs here and here。
我编写了一个快速脚本来使用以下代码为您的图像调用 Textract,除了识别给定字段是否为 selected/unselected 之外,它还正确识别了不同表单字段的键和值。 =15=]
# python 3
import boto3
# instantiate client
textract = boto3.client('textract')
# read image bytes
with open("textract-test.png", "rb") as image:
f = image.read()
image_data = bytearray(f)
print(image_data[0])
# call textract endpoint
textract.analyze_document(Document={'Bytes': image_data}, FeatureTypes=['FORMS'])
结果输出将是一系列 "blocks",它们代表单独的文本块或表单输入。解析此 JSON,我们可以找到与选定的复选框对应的块,类似于以下内容:
"Id": "0abb6f4e-4512-4581-b261-a45f2426973f",
"SelectionStatus": "SELECTED" // value of interest. Alternatively, "NOT_SELECTED"
},
{
"BlockType": "SELECTION_ELEMENT",
"Confidence": 54.00064468383789,
"Geometry": {
"BoundingBox": {
"Width": 0.030619779601693153,
"Height": 0.024501724168658257,
"Left": 0.4210366904735565,
"Top": 0.439885675907135
},
"Polygon": [
{
"X": 0.4210366904735565,
"Y": 0.439885675907135
},
{
"X": 0.4516564607620239,
"Y": 0.439885675907135
},
{
"X": 0.4516564607620239,
"Y": 0.4643873870372772
},
{
"X": 0.4210366904735565,
"Y": 0.4643873870372772
}
]
},
很抱歉没有在 C# 中创建示例,但您可以通过 CLI or the AWS .NET SDK 利用 Textract 获得类似的效果。
注意:如果您只是想了解一下 Amazon Textract 会对您的数据做出何种响应,return,您可以导航至 Amazon Textract 页面在 AWS 管理控制台中并使用其中的图像测试应用程序。您可以使用 GUI 可视化一些结果,或下载完整的 API 响应。
我有 1000 份调查表需要扫描,然后上传到我的 C# 系统以提取数据并将其输入数据库。这些调查混合了手写的 1) 文本框和 2) 复选框。我目前正在使用 Azure Read Api 来提取应该可以正常工作的手写文本,例如下面的问题 #4 returns 'Python' 和 'coding'.
所以我的问题;任何 AWS Textract 都会给我提取标记了复选框的数据的能力吗?例如请参阅下面的问题 #1 - 我需要一个字符串返回 'disagree',这对任何 AWS Textract API 都可行吗?
不幸的是,Azure Read API 和 Google Vision OCR 不提供此功能,因此如果 AWS Textract 不能帮助我,我将不得不做一些手动操作,例如检查像素颜色的变化检测勾选的复选框。
调查类型:
是的,Amazon Textract 支持检测各种字段输入,例如复选框和单选按钮。您可以阅读有关详细信息的更多信息in the docs here and here。
我编写了一个快速脚本来使用以下代码为您的图像调用 Textract,除了识别给定字段是否为 selected/unselected 之外,它还正确识别了不同表单字段的键和值。 =15=]
# python 3
import boto3
# instantiate client
textract = boto3.client('textract')
# read image bytes
with open("textract-test.png", "rb") as image:
f = image.read()
image_data = bytearray(f)
print(image_data[0])
# call textract endpoint
textract.analyze_document(Document={'Bytes': image_data}, FeatureTypes=['FORMS'])
结果输出将是一系列 "blocks",它们代表单独的文本块或表单输入。解析此 JSON,我们可以找到与选定的复选框对应的块,类似于以下内容:
"Id": "0abb6f4e-4512-4581-b261-a45f2426973f",
"SelectionStatus": "SELECTED" // value of interest. Alternatively, "NOT_SELECTED"
},
{
"BlockType": "SELECTION_ELEMENT",
"Confidence": 54.00064468383789,
"Geometry": {
"BoundingBox": {
"Width": 0.030619779601693153,
"Height": 0.024501724168658257,
"Left": 0.4210366904735565,
"Top": 0.439885675907135
},
"Polygon": [
{
"X": 0.4210366904735565,
"Y": 0.439885675907135
},
{
"X": 0.4516564607620239,
"Y": 0.439885675907135
},
{
"X": 0.4516564607620239,
"Y": 0.4643873870372772
},
{
"X": 0.4210366904735565,
"Y": 0.4643873870372772
}
]
},
很抱歉没有在 C# 中创建示例,但您可以通过 CLI or the AWS .NET SDK 利用 Textract 获得类似的效果。
注意:如果您只是想了解一下 Amazon Textract 会对您的数据做出何种响应,return,您可以导航至 Amazon Textract 页面在 AWS 管理控制台中并使用其中的图像测试应用程序。您可以使用 GUI 可视化一些结果,或下载完整的 API 响应。