Presença de Texto e Reconhecimento Óptico de Caracteres
Criado para:
- Usuário
O serviço de Presença de Texto/OCR (reconhecimento ótico de caracteres), quando recebe uma imagem, pode indicar se o texto está presente na imagem. Se houver texto, o OCR poderá retornar o texto.
A imagem a seguir foi usada no exemplo de solicitação mostrado neste documento:
Formato da API
POST /services/v2/predict
Solicitação
A solicitação a seguir verifica se o texto está presente com base na imagem de entrada fornecida na carga. Consulte a tabela abaixo do exemplo de carga para obter mais informações sobre os parâmetros de entrada mostrados.
Execução com imagem integrada:
curl -w'\n' -i -X POST https://sensei.adobe.io/services/v2/predict \
-H 'Prefer: respond-async, wait=59' \
-H "x-api-key: $API_KEY" \
-H "content-type: multipart/form-data" \
-H "authorization: Bearer $API_TOKEN" \
-F file=@sample_image.png \
-F 'contentAnalyzerRequests={
"sensei:name": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690",
"sensei:invocation_mode": "asynchronous",
"sensei:invocation_batch": false,
"sensei:engines": [
{
"sensei:execution_info": {
"sensei:engine": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690"
},
"sensei:inputs": {
"documents": [
{
"sensei:multipart_field_name": "file",
"dc:format": "image/jpg"
}
]
},
"sensei:params": {
"correct_with_dictionary": true,
"min_probability": 0.2,
"min_relevance": 0.01,
"filter_with_dictionary": true
},
"sensei:outputs":{
"result" : {
"sensei:multipart_field_name" : "result",
"dc:format": "application/json"
}
}
}
]
}'
Resposta
Uma resposta bem-sucedida retorna o texto detectado na lista tags
para cada imagem transmitida na solicitação. Se não houver texto em uma determinada imagem, is_text_present
é 0 e tags
é uma lista vazia.
[result0, result1, …]: lista de respostas para cada documento de entrada. Cada resultado é um diretório com chaves:
- request_element_id: índice correspondente ao arquivo de entrada para essa resposta, 0 para a primeira imagem na lista de documentos da solicitação, 1 para a próxima e assim por diante.
- tags: lista de dicionários, cada dicionário tem duas chaves: texto, que é uma palavra reconhecida da imagem, e relevância, que é calculada como a fração da área da caixa delimitadora do texto extraído em comparação com a imagem completa. 0,01 seria traduzido como um texto que ocupa pelo menos 1% da imagem.
- is_text_present: 0 ou 1 dependendo se o texto está presente na imagem. Se as tags forem 0, a lista estará vazia.
{
"contentAnalyzerResponse": {
"statuses": [
{
"sensei:engine": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690",
"invocations": [
{
"sensei:outputs": {
"result": {
"sensei:multipart_field_name": "result",
"dc:format": "application/json"
}
},
"message": null,
"status": "200"
}
]
}
],
"request_id": "dttklFR7DPtMtEmjlRSx5BYP5WGg3tTx"
},
"result": [
{
"is_text_present": 1,
"tags": [
{
"text": "yosemite",
"relevance": 0.06
}
],
"request_element_id": 0
}
]
}
Solicitação
A solicitação a seguir verifica se o texto está presente com base na imagem de entrada fornecida na carga. Consulte a tabela abaixo do exemplo de carga para obter mais informações sobre os parâmetros de entrada mostrados.
Execução com URL:
curl -w'\n' -i -X POST https://sensei.adobe.io/services/v2/predict \
-H 'Prefer: respond-async, wait=59' \
-H "x-api-key: $API_KEY" \
-H "content-type: multipart/form-data" \
-H "authorization: Bearer $API_TOKEN" \
-F 'contentAnalyzerRequests={
"sensei:name": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690",
"sensei:invocation_mode": "asynchronous",
"sensei:invocation_batch": false,
"sensei:engines": [
{
"sensei:execution_info": {
"sensei:engine": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690"
},
"sensei:inputs": {
"documents": [
{
"repo:path": <IMG_URL_PATH>,
"sensei:repoType": "HTTP",
"dc:format": "image/jpg"
}
]
},
"sensei:params": {
"correct_with_dictionary": true
},
"sensei:outputs":{
"result" : {
"sensei:multipart_field_name" : "result",
"dc:format": "application/json"
}
}
}
]
}'
{
"contentAnalyzerResponse": {
"statuses": [
{
"sensei:engine": "Feature:cintel-object-detection:Service-b9ace8b348b6433e9e7d82371aa16690",
"invocations": [
{
"sensei:outputs": {
"result": {
"sensei:multipart_field_name": "result",
"dc:format": "application/json"
}
},
"message": null,
"status": "200"
}
]
}
],
"request_id": "ZbdhcK0JqS4Wg1wGdlEHGR3JOm530YNn"
},
"result": [
{
"is_text_present": 0,
"tags": [],
"request_element_id": 0
}
]
}
documents
sensei:multipart_field_name
repo:path
sensei:repoType
dc:format
correct_with_dictionary
filter_with_dictionary
min_probability
min_relevance
repo:path
sensei:repoType
sensei:multipart_field_name
dc:format
"image/jpeg",
"image/png",
"image/tiff"