As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Detectar texto em uma imagem
Você pode fornecer uma imagem de entrada como uma matriz de bytes de imagem (bytes de imagem codificados em base64) ou como um objeto do Amazon S3. Neste procedimento, você carrega uma imagem JPEG ou PNG no bucket do S3 e especifica o nome do arquivo.
Para detectar texto em uma imagem (API)
-
Se você ainda não o fez, preencha os seguintes pré-requisitos.
-
Crie ou atualize um usuário com permissões
AmazonRekognitionFullAccess
eAmazonS3ReadOnlyAccess
. Para ter mais informações, consulte Etapa 1: configurar uma AWS conta e criar um usuário. -
Instale e configure o AWS Command Line Interface e os AWS SDKs. Para ter mais informações, consulte Etapa 2: configurar o AWS CLI e AWS SDKs.
-
-
Faça upload da imagem que contém texto para seu bucket do S3.
Para obter instruções, consulte Como fazer upload de objetos no Amazon S3 no Guia do usuário do Amazon Simple Storage Service.
-
Use os exemplos a seguir para chamar a operação
DetectText
.
DetectText solicitação de operação
Na operação DetectText
, você fornece uma imagem de entrada como uma matriz de bytes codificada em base64 ou como uma imagem armazenada em um bucket do Amazon S3. O exemplo de solicitação JSON a seguir mostra a imagem carregada de um bucket do Amazon S3.
{ "Image": { "S3Object": { "Bucket": "bucket", "Name": "inputtext.jpg" } } }
Filtros
A filtragem do texto por região, tamanho e pontuação de confiança oferece flexibilidade adicional para controlar a saída de detecção de seu texto. Usando regiões de interesse, é possível limitar facilmente a detecção de texto para as regiões relevantes para você, por exemplo, a parte superior direita da foto de perfil ou um local fixo em relação a um ponto de referência ao ler números de peças da imagem de uma máquina. O filtro de tamanho da caixa delimitadora de palavras pode ser usado para evitar texto pequeno em segundo plano que pode ser ruído ou irrelevante. O filtro de confiança de palavra permite que você remova resultados que podem não ser confiáveis devido a estarem embaçados ou borrados.
Para obter informações sobre valores de filtro, consulte DetectTextFilters
.
É possível usar os seguintes filtros:
-
MinConfidence—Define o nível de confiança da detecção de palavras. Palavras com confiança de detecção abaixo desse nível são excluídas do resultado. Os valores devem estar entre 0 e 100.
-
MinBoundingBoxWidth— Define a largura mínima da caixa delimitadora da palavra. Palavras com caixas delimitadoras menores que esse valor são excluídas do resultado. O valor é relativo à largura do quadro da imagem.
-
MinBoundingBoxHeight— Define a altura mínima da caixa delimitadora da palavra. Palavras com alturas de caixa delimitadora menores que este valor são excluídas do resultado. O valor é relativo à altura do quadro da imagem.
-
RegionsOfInterest— Limita a detecção a uma região específica do quadro da imagem. Os valores são relativos às dimensões do quadro. Para texto apenas parcialmente dentro de uma região, a resposta é indefinida.
DetectText resposta da operação
A DetectText
operação analisa a imagem e retorna uma matriz TextDetections, em que cada elemento (TextDetection
) representa uma linha ou palavra detectada na imagem. Para cada elemento, o DetectText
retorna as seguintes informações:
-
O texto detectado (
DetectedText
) -
As relações entre palavras e linhas (
Id
eParentId
) -
A localização do texto na imagem (
Geometry
) -
A confiança que o Amazon Rekognition tem na precisão do texto detectado e da caixa delimitadora (
Confidence
) -
O tipo do texto detectado (
Type
)
Texto detectado
Cada elemento de TextDetection
contém texto reconhecido (palavras ou linhas) no campo DetectedText
. Uma palavra é um ou mais caracteres de script não separados por espaços. DetectText
pode detectar até 100 palavras em uma imagem. O texto retornado pode incluir caracteres que tornam uma palavra irreconhecível. Por exemplo, G@to em vez de Gato. Para determinar se um elemento do TextDetection
representa uma linha de texto ou uma palavra, use o campo Type
.
Cada elemento TextDetection
inclui um valor percentual que representa o grau de confiança que o Amazon Rekognition tem na precisão do texto detectado e da caixa delimitadora que envolve o texto.
Relações entre palavras e linhas
Cada elemento de TextDetection
tem um identificador campo, Id
. O Id
mostra a posição da palavra em uma linha. Se o elemento for uma palavra, o campo do identificador pai, ParentId
, identificará a linha onde a palavra foi detectada. O ParentId
de uma linha é nulo. Por exemplo, a linha "mas continue" na imagem anterior tem os seguintes valores de Id
e ParentId
:
Texto |
ID |
ID do pai |
---|---|---|
but keep |
3 |
|
but |
8 |
3 |
keep |
9 |
3 |
Localização do texto em uma imagem
Para determinar onde o texto reconhecido está em uma imagem, use as informações da caixa delimitadora (Geometria) que são retornadas por DetectText
. O objeto Geometry
contém dois tipos de informações de caixa delimitadora para linhas e palavras detectadas:
-
Um contorno retangular grosso alinhado ao eixo em um objeto BoundingBox
-
Um polígono mais refinado que é composto de várias coordenadas X e Y em uma matriz de pontos
As coordenadas da caixa delimitadora e do polígono mostram onde o texto está localizado na imagem de origem. Os valores das coordenadas são uma proporção do tamanho geral da imagem. Para obter mais informações, consulte BoundingBox.
A seguinte resposta do JSON da operação DetectText
mostra as palavras e linhas detectadas na imagem a seguir.
{ 'TextDetections': [{'Confidence': 99.35693359375, 'DetectedText': "IT'S", 'Geometry': {'BoundingBox': {'Height': 0.09988046437501907, 'Left': 0.6684935688972473, 'Top': 0.18226495385169983, 'Width': 0.1461552083492279}, 'Polygon': [{'X': 0.6684935688972473, 'Y': 0.1838926374912262}, {'X': 0.8141663074493408, 'Y': 0.18226495385169983}, {'X': 0.8146487474441528, 'Y': 0.28051772713661194}, {'X': 0.6689760088920593, 'Y': 0.2821454107761383}]}, 'Id': 0, 'Type': 'LINE'}, {'Confidence': 99.6207275390625, 'DetectedText': 'MONDAY', 'Geometry': {'BoundingBox': {'Height': 0.11442459374666214, 'Left': 0.5566731691360474, 'Top': 0.3525116443634033, 'Width': 0.39574965834617615}, 'Polygon': [{'X': 0.5566731691360474, 'Y': 0.353712260723114}, {'X': 0.9522717595100403, 'Y': 0.3525116443634033}, {'X': 0.9524227976799011, 'Y': 0.4657355844974518}, {'X': 0.5568241477012634, 'Y': 0.46693623065948486}]}, 'Id': 1, 'Type': 'LINE'}, {'Confidence': 99.6160888671875, 'DetectedText': 'but keep', 'Geometry': {'BoundingBox': {'Height': 0.08314694464206696, 'Left': 0.6398131847381592, 'Top': 0.5267938375473022, 'Width': 0.2021435648202896}, 'Polygon': [{'X': 0.640289306640625, 'Y': 0.5267938375473022}, {'X': 0.8419567942619324, 'Y': 0.5295097827911377}, {'X': 0.8414806723594666, 'Y': 0.609940767288208}, {'X': 0.6398131847381592, 'Y': 0.6072247624397278}]}, 'Id': 2, 'Type': 'LINE'}, {'Confidence': 88.95134735107422, 'DetectedText': 'Smiling', 'Geometry': {'BoundingBox': {'Height': 0.4326171875, 'Left': 0.46289217472076416, 'Top': 0.5634765625, 'Width': 0.5371078252792358}, 'Polygon': [{'X': 0.46289217472076416, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.99609375}, {'X': 0.46289217472076416, 'Y': 0.99609375}]}, 'Id': 3, 'Type': 'LINE'}, {'Confidence': 99.35693359375, 'DetectedText': "IT'S", 'Geometry': {'BoundingBox': {'Height': 0.09988046437501907, 'Left': 0.6684935688972473, 'Top': 0.18226495385169983, 'Width': 0.1461552083492279}, 'Polygon': [{'X': 0.6684935688972473, 'Y': 0.1838926374912262}, {'X': 0.8141663074493408, 'Y': 0.18226495385169983}, {'X': 0.8146487474441528, 'Y': 0.28051772713661194}, {'X': 0.6689760088920593, 'Y': 0.2821454107761383}]}, 'Id': 4, 'ParentId': 0, 'Type': 'WORD'}, {'Confidence': 99.6207275390625, 'DetectedText': 'MONDAY', 'Geometry': {'BoundingBox': {'Height': 0.11442466825246811, 'Left': 0.5566731691360474, 'Top': 0.35251158475875854, 'Width': 0.39574965834617615}, 'Polygon': [{'X': 0.5566731691360474, 'Y': 0.3537122905254364}, {'X': 0.9522718787193298, 'Y': 0.35251158475875854}, {'X': 0.9524227976799011, 'Y': 0.4657355546951294}, {'X': 0.5568241477012634, 'Y': 0.46693626046180725}]}, 'Id': 5, 'ParentId': 1, 'Type': 'WORD'}, {'Confidence': 99.96778869628906, 'DetectedText': 'but', 'Geometry': {'BoundingBox': {'Height': 0.0625, 'Left': 0.6402802467346191, 'Top': 0.5283203125, 'Width': 0.08027780801057816}, 'Polygon': [{'X': 0.6402802467346191, 'Y': 0.5283203125}, {'X': 0.7205580472946167, 'Y': 0.5283203125}, {'X': 0.7205580472946167, 'Y': 0.5908203125}, {'X': 0.6402802467346191, 'Y': 0.5908203125}]}, 'Id': 6, 'ParentId': 2, 'Type': 'WORD'}, {'Confidence': 99.26438903808594, 'DetectedText': 'keep', 'Geometry': {'BoundingBox': {'Height': 0.0818721204996109, 'Left': 0.7344760298728943, 'Top': 0.5280686020851135, 'Width': 0.10748066753149033}, 'Polygon': [{'X': 0.7349520921707153, 'Y': 0.5280686020851135}, {'X': 0.8419566750526428, 'Y': 0.5295097827911377}, {'X': 0.8414806127548218, 'Y': 0.6099407076835632}, {'X': 0.7344760298728943, 'Y': 0.6084995269775391}]}, 'Id': 7, 'ParentId': 2, 'Type': 'WORD'}, {'Confidence': 88.95134735107422, 'DetectedText': 'Smiling', 'Geometry': {'BoundingBox': {'Height': 0.4326171875, 'Left': 0.46289217472076416, 'Top': 0.5634765625, 'Width': 0.5371078252792358}, 'Polygon': [{'X': 0.46289217472076416, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.5634765625}, {'X': 1.0, 'Y': 0.99609375}, {'X': 0.46289217472076416, 'Y': 0.99609375}]}, 'Id': 8, 'ParentId': 3, 'Type': 'WORD'}], 'TextModelVersion': '3.0'}