Extrai texto de imagens por reconhecimento óptico de caracteres (OCR) usando a API /green/image/scan. Essa API retorna o texto detectado, sua posição na imagem e uma sugestão de revisão em uma única chamada síncrona.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma conta Alibaba Cloud com o Content Moderation ativado
Um AccessKey ID e um AccessKey Secret
Imagens acessíveis por URLs públicas HTTP ou HTTPS
Como funciona
Envie uma solicitação para
/green/image/scancomscenesdefinido como["ocr"]e uma lista de URLs de imagens.O Content Moderation baixa cada imagem, executa o OCR e retorna o texto detectado com as coordenadas da caixa delimitadora.
Verifique o campo
suggestionna resposta para determinar se o texto detectado exige revisão manual.
Os resultados geralmente retornam em até 1 segundo. O tempo máximo de resposta é de 6 segundos. Solicitações que excedem esse limite retornam um erro de tempo limite.
Observações de uso
Faturamento: A chamada desta operação gera cobranças. Para detalhes de preços, consulte a documentação de faturamento.
Tempo limite de download de imagem: Se não for possível baixar uma imagem dentro de 3 segundos, a solicitação retornará um erro de tempo limite. Armazene as imagens em um serviço estável e de baixa latência, como Object Storage Service (OSS) ou Content Delivery Network (CDN), para minimizar falhas de download.
Imagens com muito texto: O tempo de processamento do OCR aumenta conforme a quantidade de palavras na imagem. Para imagens com grande volume de texto, como documentos digitalizados, use a moderação assíncrona.
Image requirements:
Protocolo: apenas URLs HTTP ou HTTPS
Formatos: PNG, JPG, JPEG, BMP, GIF, WEBP
Tamanho máximo: 20 MB (aplica-se tanto à moderação síncrona quanto à assíncrona)
Resolução mínima recomendada: 256 × 256 pixels
Limites de QPS
Esta operação suporta até 10 solicitações por segundo (QPS) por conta. Exceder esse limite aciona o controle de fluxo.
Enviar uma solicitação
Endpoint
POST http(s)://[Endpoint]/green/image/scan
Parâmetros da solicitação
|
Nome |
Tipo |
Obrigatório |
Descrição |
|
|
StringArray |
Sim |
O cenário de detecção. Defina como |
|
|
JSONArray |
Sim |
As imagens a serem verificadas. Até 100 itens por solicitação. Para enviar 100 itens em uma única solicitação, aumente o número de tarefas simultâneas para mais de 100. Consulte Parâmetros de tarefa. |
|
|
String |
Não |
O identificador do cenário de negócios. Padrão: |
Parâmetros de tarefa
Cada elemento no array tasks descreve uma imagem a ser verificada.
|
Nome |
Tipo |
Obrigatório |
Descrição |
|
|
String |
Sim |
A URL pública HTTP ou HTTPS da imagem. Comprimento máximo: 2.048 caracteres. |
|
|
String |
Não |
O identificador personalizado para esta imagem. Deve ser único dentro da solicitação. Retornado na resposta para correlação. |
|
|
Integer |
Não |
O intervalo de captura de quadros para imagens GIF ou longas. Consulte Moderação de GIF e imagens longas. |
|
|
Integer |
Não |
O número máximo de quadros a serem capturados. Padrão: 1. Consulte Moderação de GIF e imagens longas. |
Os parâmetrosintervalemaxFramesdevem ser usados juntos.
Interpretar a resposta
Uma chamada bem-sucedida (HTTP 200) retorna um array data em que cada elemento corresponde a uma imagem enviada.
Campos da resposta
|
Nome |
Tipo |
Descrição |
|
|
Integer |
O código de resultado para esta imagem. |
|
|
String |
A mensagem de resultado. |
|
|
String |
O ID gerado pelo sistema para esta tarefa de detecção. |
|
|
String |
O valor |
|
|
String |
A URL da imagem da sua solicitação. |
|
|
Array |
Os resultados da detecção. Presente quando |
Campos de resultado
Cada elemento em results contém a saída do OCR para a imagem.
|
Nome |
Tipo |
Descrição |
|
|
String |
O cenário de detecção. Sempre |
|
|
String |
A classificação do resultado da detecção. Valores válidos: |
|
|
String |
A ação recomendada. Valores válidos: |
|
|
Array |
O texto completo detectado, combinado em uma única string geralmente armazenada no primeiro elemento do array. Não retornado se nenhum texto for detectado. |
|
|
Array |
A posição e o conteúdo de cada região de texto detectada. Não retornado se nenhum texto for detectado. Consulte Campos ocrLocation. |
|
|
Array |
Resultados de OCR por quadro para imagens GIF. Retornado apenas quando vários quadros são capturados. |
|
|
Float |
Uma pontuação de confiança. Não significativa no cenário de OCR. |
Campos ocrLocation
Cada entrada em ocrLocations descreve uma região de texto detectada. A origem das coordenadas é o canto superior esquerdo da imagem, com x aumentando para a direita e y aumentando para baixo.
|
Nome |
Tipo |
Descrição |
|
|
String |
O texto detectado nesta região. |
|
|
Float |
A distância horizontal da borda esquerda da imagem até a borda esquerda da região de texto, em pixels. |
|
|
Float |
A distância vertical da borda superior da imagem até a borda superior da região de texto, em pixels. |
|
|
Float |
A largura da região de texto, em pixels. |
|
|
Float |
A altura da região de texto, em pixels. |
ocrDatacontém o texto combinado de todas as regiões detectadas como uma única string.ocrLocationsfornece a posição de cada região de texto individual. UseocrLocationsquando precisar localizar ou destacar um texto específico na imagem.
Moderação de GIF e imagens longas
Por padrão, apenas o primeiro quadro de um GIF ou imagem longa é verificado. Use interval e maxFrames juntos para verificar vários quadros.
interval: Verifica um quadro a cadanquadros, ondené o valor deinterval.maxFrames: Limita o número total de quadros verificados.
Se interval × maxFrames for menor que o número total de quadros na imagem, o sistema ajusta automaticamente o intervalo para ceil(total_frames / maxFrames) a fim de distribuir a cobertura uniformemente.
O que conta como imagem longa:
|
Orientação |
Condição |
|
Retrato (alta) |
Altura > 400 px E proporção altura:largura > 2,5:1. Contagem de quadros = round(altura ÷ largura). |
|
Paisagem (larga) |
Largura > 400 px E proporção largura:altura > 2,5:1. Contagem de quadros = round(largura ÷ altura). |
Exemplo: Com interval: 2 e maxFrames: 100, o sistema verifica um quadro a cada dois quadros, até o máximo de 100 quadros. As cobranças são aplicadas por quadro verificado.
Exemplo
Solicitação
POST http(s)://[Endpoint]/green/image/scan
<Common request parameters>
{
"scenes": ["ocr"],
"tasks": [
{
"dataId": "test_data_xxxx",
"url": "https://aliyundoc.com/test_image_xxxx.png"
}
]
}
Resposta
{
"code": 200,
"msg": "OK",
"requestId": "C4AB08A9-AD75-4410-859B-0B9EF6DFC3C4",
"data": [
{
"code": 200,
"msg": "OK",
"dataId": "test_data_xxxx",
"taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
"url": "https://aliyundoc.com/test_image_xxxx.png",
"extras": {},
"results": [
{
"scene": "ocr",
"label": "ocr",
"suggestion": "review",
"rate": 99.91,
"ocrData": [
"hello, this is a test text."
],
"ocrLocations": [
{
"text": "hello",
"x": 41,
"y": 84,
"w": 83,
"h": 26
},
{
"text": " this is a test text.",
"x": 78,
"y": 114,
"w": 95,
"h": 25
}
]
}
]
}
]
}
Neste exemplo, suggestion: review significa que o texto detectado requer revisão humana antes de qualquer ação adicional. ocrData contém a string completa combinada "hello, this is a test text.", enquanto ocrLocations fornece a posição exata em pixels de cada fragmento de texto na imagem.
Próximos passos
Visão geral do SDK — Use um cliente pré-construído em vez de criar solicitações HTTP brutas.
Estrutura da solicitação — Aprenda a construir e assinar solicitações.
Personalizar políticas para moderação assistida por máquina — Configure políticas de moderação personalizadas usando
bizType.