Можно ли использовать API Google Vision для обнаружения только отдельных символов или неанглийских строк?
Например, я хотел бы обнаружить закодированную строку типа "A5b1x", написанную от руки. Так что я бы либо разделил его вручную, чтобы у меня было изображение каждого персонажа, либо попытался бы, чтобы Vision его сразу распознал. Ни то, ни другое не работает, так как я не уверен, как указать, что это не язык (или указать, что это единичные символы). Вот что я набрал в Google Compute:
gcloud ml vision detect-document "weblink to image"
Нет результата для изображения "g": g
Нет результата для изображения "е": е
Результат для изображения "fxb3": fxb3
{
"responses": [
{
"fullTextAnnotation": {
"pages": [
{
"blocks": [
{
"blockType": "TEXT",
"boundingBox": {
"vertices": [
{
"x": 2433,
"y": 1289
},
{
"x": 1498,
"y": 1336
},
{
"x": 1468,
"y": 737
},
{
"x": 2403,
"y": 691
}
]
},
"confidence": 0.56,
"paragraphs": [
{
"boundingBox": {
"vertices": [
{
"x": 2433,
"y": 1289
},
{
"x": 1498,
"y": 1336
},
{
"x": 1468,
"y": 737
},
{
"x": 2403,
"y": 691
}
]
},
"confidence": 0.56,
"words": [
{
"boundingBox": {
"vertices": [
{
"x": 2433,
"y": 1289
},
{
"x": 1498,
"y": 1336
},
{
"x": 1468,
"y": 737
},
{
"x": 2403,
"y": 691
}
]
},
"confidence": 0.56,
"symbols": [
{
"boundingBox": {
"vertices": [
{
"x": 2433,
"y": 1289
},
{
"x": 2135,
"y": 1304
},
{
"x": 2105,
"y": 706
},
{
"x": 2403,
"y": 691
}
]
},
"confidence": 0.4,
"text": "\u0967"
},
{
"boundingBox": {
"vertices": [
{
"x": 2063,
"y": 1308
},
{
"x": 1788,
"y": 1322
},
{
"x": 1758,
"y": 723
},
{
"x": 2033,
"y": 710
}
]
},
"confidence": 0.62,
"text": "\u0967"
},
{
"boundingBox": {
"vertices": [
{
"x": 1750,
"y": 1323
},
{
"x": 1498,
"y": 1336
},
{
"x": 1468,
"y": 737
},
{
"x": 1720,
"y": 725
}
]
},
"confidence": 0.67,
"property": {
"detectedBreak": {
"type": "LINE_BREAK"
}
},
"text": "X"
}
]
}
]
}
]
}
],
"height": 2112,
"width": 4608
}
],
"text": "\u0967\u0967X\n"
},
"textAnnotations": [
{
"boundingPoly": {
"vertices": [
{
"x": 1467,
"y": 690
},
{
"x": 2432,
"y": 690
},
{
"x": 2432,
"y": 1335
},
{
"x": 1467,
"y": 1335
}
]
},
"description": "\u0967\u0967X\n",
"locale": "und"
},
{
"boundingPoly": {
"vertices": [
{
"x": 2433,
"y": 1289
},
{
"x": 1498,
"y": 1336
},
{
"x": 1468,
"y": 737
},
{
"x": 2403,
"y": 691
}
]
},
"description": "\u0967\u0967X"
}
]
}
]
}
1 ответ
На этом этапе API Google Cloud Vision не может распознавать отдельные символы. Здесь есть запрос на добавление функции распознавания символов. Пометьте его, чтобы вы могли получать обновления об этом запросе функции, и не стесняйтесь добавлять дополнительные комментарии, чтобы предоставить подробную информацию о желаемой реализации.
Что касается вашего вопроса о распознавании "закодированных" строк, Vision API может это сделать. Я успешно попытался передать изображение с fxb3 в API, и результаты были хорошими (вот image1 и image2). Ответ, который вы получаете от API, состоит из двух последовательных символов Unicode и "x". Качество написания - это то, что вызывает отклик, который будет довольно плохим. Модель для оптического распознавания текста постоянно совершенствуется, но на данный момент она не может правильно определить, что можно считать довольно неясным почерком.