У меня есть изображения квитанций, и я хочу хранить текст в изображениях отдельно. Можно ли с помощью Amazon Rekognition распознать текст на изображениях?
Amazon Rekognition для обнаружения текста
Ответы (5)
Обновление от ноября 2017 г .:
Amazon Rekognition объявляет о распознавании лиц в реальном времени, распознавании текста в изображениях и улучшенном распознавании лиц
Прочтите объявление здесь: https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-rekognition-announces-real-time-face-recognition-text-in-распознаваниеизображенийиулучшение-распознаваниелиц/
Доказательство:
Нет, Amazon Rekognition не поддерживает оптическое распознавание символов (OCR).
На момент написания (март 2017 г.) он предоставляет только:
- Обнаружение объектов и сцен
- Анализ лица
- Сравнение лиц
- Распознавание лиц
Не существует предоставляемого AWS сервиса, предлагающего OCR. Вам нужно будет использовать сторонний продукт.
Amazon не предоставляет 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"
}
]
}
]
}
Вы можете получить лучшие результаты с помощью Amazon Textract, хотя в настоящее время он доступен только в ограниченной предварительной версии.
Можно обнаружить текст на изображении с помощью AWS JS SDK для Rekognition, но ваши результаты могут отличаться.
/* 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 см. В этом ответе.