我在寻找用于OCR或机器学习示例(如Tensorflow.js或其他)的JavaScript API,可以从图片中识别数字。我尝试过tesseract.js和OCRAD.js,但这两个对这种类型的图像效果不好。我只需要从这张图片中提取像2.243和0048这样的数字。我还在tesseract.js设置中指定了只识别数字,但效果不佳。
这张图片是一张数字设备的照片,该设备没有API可以连接并数字获取数据。我希望使用网络摄像头和JavaScript OCR定期从这个设备获取这些数字到列表中,并稍后构建图表。
我找到了很多Tensorflow识别手写数字的例子,但它们只能识别一个数字,不能识别由多个数字组成的数字。
P.S. 我不想花费很多时间,实际上我也没有这个时间 :)。只想重用现成的例子。
回答:
我使用过AWS Rekognition和Azure认知服务。这两者在准确性方面表现良好。我发现Azure的HTTP模型更简单。
请注意,Azure和AWS对提取印刷文本(OCR)和图片中的文本有不同的服务。
Azure
配置Azure认知服务的步骤
-
您需要在Microsoft的Azure门户注册
-
点击左上角的”+创建资源”链接
-
输入”Cognitive”并按回车
-
这应该会显示”认知服务”
-
您将看到一个表格。选择名称、订阅、定价层、位置等
-
在达到上述步骤之前,您可能需要创建一个订阅。我不记得具体操作了
-
完成上述步骤后,您将获得URL和应用程序密钥
-
您现在可以使用REST API上传PNG文件并获取包含文本的JSON
-
我还找到了这个URL,提供免费试用选项。https://azure.microsoft.com/en-gb/services/cognitive-services/computer-vision/
AWS Rekognition
https://docs.aws.amazon.com/rekognition/latest/dg/text-detection.html
这是我使用您的图片从AWS Rekognition得到的结果
EAST文本检测器
您可以尝试这个。OpenCV嵌入了这个功能。您需要设置后端服务。
https://www.youtube.com/watch?v=o5asMTdhmvAhttps://www.youtube.com/watch?v=NfiCmhLLxMA