跳转到主要内容

Microsoft Azure Ink Recognizer Python库

项目描述

Azure Ink Recognizer客户端库

Azure Ink Recognizer SDK是开发人员与Azure Ink Recognizer服务交互的SDK。该服务可以识别一组墨迹,并返回识别单元的树形层次结构,例如线条、单词、形状,以及单词的手写识别结果。

特性

  • 连接到Azure Ink Recognizer服务
  • 将墨迹集合转换为HTTP请求
  • 将HTTP响应解析为墨迹识别单元

源代码 | 包(PyPi) | API参考文档 | 产品文档 | 示例

入门

安装包

使用pip安装Azure Cosmos DB客户端库

pip install azure-cognitiveservices-inkrecognizer

先决条件:您必须拥有一个Azure 订阅。您必须安装Python 2.7Python 3.5.3+才能使用此包。异步功能仅支持Python 3.5.3+。

获取URL

请在Ink Recognizer Rest API 文档中查找URL。

获取凭据

请按照Ink Recognizer上的说明操作。

关键概念

实现墨迹笔划

如果您没有预定义的墨迹点或墨迹笔划类,您可以选择遵循Ink Stroke 接口来构建您的笔划,或者构建一个包含所有必需字段的自己的类。如果您已经自行定义了墨迹笔划,您应该根据接口在您的类中填充属性。

from azure.cognitiveservices.inkrecognizer import InkStrokeKind

InkPoint = namedtuple("InkPoint", "x y")

class InkStroke():
    def __init__(self,
                 ink_stroke_id,
                 ink_points,
                 stroke_kind=InkStrokeKind.UNKNOWN,
                 stroke_language=""):
        self.id = ink_stroke_id
        self.points = ink_points
        self.kind = stroke_kind
        self.language = stroke_language

然后,您可以创建一个用于识别的墨迹笔划列表(或任何可迭代的对象)。

创建客户端

一旦您获取了墨迹识别服务的URL和Azure凭据实例,您可以创建一个InkRecognizerClient。

from azure.cognitiveservices.inkrecognizer import InkRecognizerClient
client = InkRecognizerClient(url, api_key)  # api_key is your key as string

或使用异步版本(仅限Python 3.5.3+)

from azure.cognitiveservices.inkrecognizer.aio import InkRecognizerClient
client = InkRecognizerClient(url, api_key)  # api_key is your key as string

发送请求

然后,您可以发送笔划列表到墨迹识别服务,并获取所有墨迹识别结果的根。

# Sync version
recognition_root = client.recognize_ink(ink_stroke_list)
# Async version
recognition_root = await client.recognize_ink(ink_stroke_list)

从结果中获取识别单元

您可以通过InkRecognitionUnitKind或通过层次结构获取所有识别单元,然后访问单元的支持属性。API参考文档

lines = recognition_root.lines
for line in lines:
    foo_show_bounding_box(line.bounding_box)
    for word in line.words:
        print(word.recognized_text)

示例

示例提供了几个代码片段,涵盖了Ink Recognizer SDK的一些最常见任务,包括

  • 实现InkPoint和InkStroke类
  • 将笔划单位从像素转换为毫米
  • 设置语言识别区域设置
  • 从识别结果中索引关键词
  • 如果用户知道预期的墨迹内容类型,则设置应用程序类型

故障排除

通用

Ink Recognizer客户端会引发azure-core中定义的异常。例如,如果您尝试访问一个无效的URL,InkRecognizerClient会引发ResourceNotFoundError。

from azure.core.exceptions import ResourceNotFoundError
client = InkRecognizerClient("invalid_url", credential)

try:
    client.recognize_ink(ink_strokes)
except ResourceNotFoundError as e:
    print(e.message)

日志记录

默认情况下,此库禁用了网络跟踪日志记录。启用后,HTTP请求将以DEBUG级别使用日志记录库进行记录。您可以将日志记录配置为打印到stdout或写入文件。

import sys
import logging

# Create a logger for the 'azure' SDK
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

# Configure a file output
file_handler = logging.FileHandler(filename)
logger.addHandler(file_handler)

# Enable network trace logging. Each HTTP request will be logged at DEBUG level.
client = InkRecognizerClient(url=url, credential=credential, logging_enable=True)

下一步

请在tkinter示例wxpython示例中找到交互式墨迹示例。

其他文档

有关墨迹识别服务的更详细文档,请参阅墨迹识别服务文档

贡献

此项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您有权并且实际上授予我们使用您的贡献的权利。有关详细信息,请访问https://cla.microsoft.com

当您提交拉取请求时,CLA-bot将自动确定您是否需要提供CLA,并适当装饰PR(例如,标签,注释)。只需遵循bot提供的说明即可。您只需要在所有使用我们的CLA的仓库中这样做一次。

本项目采用了微软开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com提出任何额外问题或意见。

历史

版本 1.0.0b1

预览版初始版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

azure-cognitiveservices-inkrecognizer-1.0.0b1.zip (30.6 kB 查看哈希值)

上传时间 源代码

构建分发

azure_cognitiveservices_inkrecognizer-1.0.0b1-py2.py3-none-any.whl (19.5 kB 查看哈希值)

上传时间 Python 2 Python 3

由支持