Analisar uma imagem
Depois de se ligar ao endpoint de recursos Azure Vision, a sua aplicação cliente pode usar o serviço para realizar tarefas de análise de imagem.
Observe os seguintes requisitos para análise de imagem:
- A imagem deve ser apresentada em formato JPEG, PNG, GIF ou BMP.
- O tamanho do arquivo da imagem deve ser inferior a 4 megabytes (MB).
- As dimensões da imagem têm de ser superiores a 50 x 50 píxeis.
Submeter uma imagem para análise
Para analisar uma imagem, você pode usar o método Analyze Image REST ou o método equivalente no SDK para sua linguagem de programação preferida, especificando os recursos visuais que deseja incluir na análise.
from azure.ai.vision.imageanalysis import ImageAnalysisClient
from azure.ai.vision.imageanalysis.models import VisualFeatures
from azure.core.credentials import AzureKeyCredential
client = ImageAnalysisClient(
endpoint="<YOUR_RESOURCE_ENDPOINT>",
credential=AzureKeyCredential("<YOUR_AUTHORIZATION_KEY>")
)
result = client.analyze(
image_data=<IMAGE_DATA_BYTES>, # Binary data from your image file
visual_features=[VisualFeatures.CAPTION, VisualFeatures.TAGS],
gender_neutral_caption=True,
)
Observação
Neste exemplo de código, o aplicativo cliente usa autenticação baseada em chave. Para usar a autenticação de ID do Microsoft Entra, você pode usar um TokenCredential em vez de um AzureKeyCredential.
O exemplo de código envia os dados de imagem como um objeto binário (que normalmente seria lido de um arquivo de imagem). Você também pode analisar uma imagem com base em uma URL usando o método analyze_from_url .
Os recursos visuais disponíveis estão contidos na VisualFeatures enumeração:
- VisualFeatures.TAGS: identifica etiquetas sobre a imagem, incluindo objetos, paisagens, ambientes e ações
- VisualFeatures.OBJECTS: Retorna a caixa delimitadora para cada objeto detetado
- VisualFeatures.CAPTION: Gera uma legenda da imagem em linguagem natural
- VisualFeatures.DENSE_CAPTIONS: Gera legendas mais detalhadas para os objetos detetados
- VisualFeatures.PEOPLE: Retorna a caixa de delimitação para pessoas detetadas
- VisualFeatures.SMART_CROPS: Devolve a caixa delimitadora do rácio de proporção especificado para a área de interesse
- VisualFeatures.READ: Extrai texto legível
using Azure.AI.Vision.ImageAnalysis;
ImageAnalysisClient client = new ImageAnalysisClient(
"<YOUR_RESOURCE_ENDPOINT>",
new AzureKeyCredential("<YOUR_AUTHORIZATION_KEY>"));
ImageAnalysisResult result = client.Analyze(
<IMAGE_DATA_BYTES>, // Binary data from your image file
VisualFeatures.Caption | VisualFeatures.Tags,
new ImageAnalysisOptions { GenderNeutralCaption = true });
Observação
Neste exemplo de código, o aplicativo cliente usa autenticação baseada em chave. Para usar a autenticação de ID do Microsoft Entra, você pode usar um TokenCredential em vez de um AzureKeyCredential.
O exemplo de código envia os dados de imagem como um objeto binário (que normalmente seria lido de um arquivo de imagem). Você também pode analisar uma imagem com base em uma URL.
Os recursos visuais disponíveis estão contidos na VisualFeatures enumeração:
- VisualFeatures.Tags: Identifica etiquetas da imagem, incluindo objetos, paisagem, cenário e ações
- VisualFeatures.Objects: retorna a caixa delimitadora para cada objeto detetado
- VisualFeatures.Caption: gera uma legenda da imagem em linguagem natural
- VisualFeatures.DenseCaptions: gera legendas mais detalhadas para os objetos detetados
- VisualFeatures.People: retorna a caixa delimitadora para pessoas detetadas
- VisualFeatures.SmartCrops: Devolve a caixa delimitadora da proporção especificada para a área de interesse
- VisualFeatures.Read: Extrai texto legível
Especificar os recursos visuais que você deseja analisar na imagem determina quais informações a resposta conterá. A maioria das respostas conterá uma caixa delimitadora (se um local na imagem for razoável) ou um índice de confiança (para recursos como etiquetas ou legendas).
Processamento da resposta
Esse método retorna um documento JSON contendo as informações solicitadas. A resposta JSON para análise de imagem é semelhante a este exemplo, dependendo dos recursos solicitados:
{
"apim-request-id": "abcde-1234-5678-9012-f1g2h3i4j5k6",
"modelVersion": "<version>",
"denseCaptionsResult": {
"values": [
{
"text": "a house in the woods",
"confidence": 0.7055229544639587,
"boundingBox": {
"x": 0,
"y": 0,
"w": 640,
"h": 640
}
},
{
"text": "a trailer with a door and windows",
"confidence": 0.6675070524215698,
"boundingBox": {
"x": 214,
"y": 434,
"w": 154,
"h": 108
}
}
]
},
"metadata": {
"width": 640,
"height": 640
}
}