I have images of receipts and I want to store the text in the images separately. Is it possible to detect text from images using Amazon Rekognition?
问问题
17897 次
5 回答
14
2017 年 11 月更新:
Amazon Rekognition 宣布实时人脸识别、图像中的文本识别和改进的人脸检测
证明:
于 2017-11-25T22:22:34.090 回答
6
不,Amazon Rekognition 不提供光学字符识别 (OCR)。
在撰写本文时(2017 年 3 月),它仅提供:
- 物体和场景检测
- 面部分析
- 人脸比较
- 面部识别
没有提供 OCR 的 AWS 提供的服务。您需要使用第 3 方产品。
于 2017-03-16T23:23:43.133 回答
3
亚马逊不提供 OCR API。您可以使用 Google Cloud Vision API 进行文档文本识别。不过,它的价格为 3.5 美元/1000 张图像。要测试 Google 打开此链接并将下面的代码粘贴到右侧的测试请求正文中。
https://cloud.google.com/vision/docs/reference/rest/v1/images/annotate
{
"requests": [
{
"image": {
"source": {
"imageUri": "JPG_PNG_GIF_or_PDF_url"
}
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
]
}
]
}
于 2017-07-28T19:10:08.140 回答
2
尽管目前仅提供有限预览版,但您可能会使用Amazon Textract获得更好的结果。
可以使用适用于Rekognition的AWS JS开发工具包检测图像中的文本,但您的结果可能会有所不同。
/* jshint esversion: 6, node:true, devel: true, undef: true, unused: true */
// Import libs.
const AWS = require('aws-sdk');
const axios = require('axios');
// Grab AWS access keys from Environmental Variables.
const { S3_ACCESS_KEY, S3_SECRET_ACCESS_KEY, S3_REGION } = process.env;
// Configure AWS with credentials.
AWS.config.update({
accessKeyId: S3_ACCESS_KEY,
secretAccessKey: S3_SECRET_ACCESS_KEY,
region: S3_REGION
});
const rekognition = new AWS.Rekognition({
apiVersion: '2016-06-27'
});
const TEXT_IMAGE_URL = 'https://loremflickr.com/g/320/240/text';
(async url => {
// Fetch the URL.
const textDetections = await axios
.get(url, {
responseType: 'arraybuffer'
})
// Convert to base64 Buffer.
.then(response => new Buffer(response.data, 'base64'))
// Pass bytes to SDK
.then(bytes =>
rekognition
.detectText({
Image: {
Bytes: bytes
}
})
.promise()
)
.catch(error => {
console.log('[ERROR]', error);
return false;
});
if (!textDetections) return console.log('Failed to find text.');
// Output the raw response.
console.log('\n', 'Text Detected:', '\n', textDetections);
// Output to Detected Text only.
console.log('\n', 'Found Text:', '\n', textDetections.TextDetections.map(t => t.DetectedText));
})(TEXT_IMAGE_URL);
在此答案中查看更多将 Rekognition 与 NodeJS 结合使用的示例。
于 2019-01-04T17:18:19.297 回答
0
public async Task<List<string>> IdentifyText(string filename)
{
// Using USWest2, not the default region
AmazonRekognitionClient rekoClient = new AmazonRekognitionClient("Access Key ID", "Secret Access Key", RegionEndpoint.USEast1);
Amazon.Rekognition.Model.Image img = new Amazon.Rekognition.Model.Image();
byte[] data = null;
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
data = new byte[fs.Length];
fs.Read(data, 0, (int)fs.Length);
}
img.Bytes = new MemoryStream(data);
DetectTextRequest dfr = new DetectTextRequest();
dfr.Image = img;
var outcome = rekoClient.DetectText(dfr);
return outcome.TextDetections.Select(x=>x.DetectedText).ToList();
}
于 2018-02-07T09:01:34.027 回答