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.7或Python 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
预览版初始版本
项目详情
哈希值 for azure-cognitiveservices-inkrecognizer-1.0.0b1.zip
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bf3d7f9e0326dc59971e9aa06247f0fec0d43e099f67521c5663200d0bcb9a27 |
|
MD5 | f984c1320ae9cf7cd7b7e849e84cd96b |
|
BLAKE2b-256 | 17275a87a11cb7055ba916591ea2e28a662746bea7d8468031abd4a26c8e3a44 |
哈希值 for azure_cognitiveservices_inkrecognizer-1.0.0b1-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3db7993a89549276fa0dd3f6e2f2655803a8459b8b4ee4696d540d0e91d8f577 |
|
MD5 | 8482909832fbbdee6c86cc763f9c8dde |
|
BLAKE2b-256 | ac048ca85624cfd2a1680bd78073038e0877f03110f456da9baf7f2bfb34aa33 |