To add cost-effective image analysis to your applications, this article will walk you through Azure API, how to obtain a subscription key to access Azure API, and how to make requests to Azure REST API using an IDE software with REST Client Feature.
O que é uma API do Azure?
Azure é uma plataforma de computação em nuvem oferecida pela Microsoft com mais de 200 serviços disponíveis. O Azure fornece várias bibliotecas de cliente e uma API REST para acessar esses serviços. Há um nível gratuito para colocá-lo em funcionamento, que permite acessar vários serviços gratuitos, muitos dos quais permanecem gratuitos, desde que você não exceda alguns limites mensais bastante generosos. Vamos usar o serviço “Pesquisa Cognitiva” para realizar a análise de imagens. O serviço de pesquisa cognitiva é um nível sempre gratuito, então você nunca deve precisar pagar por ele.
Como obtemos uma chave de assinatura para acessar a API do Azure?
To access the Azure REST API, we need a subscription key. A subscription key is a key assigned to a ‘resource’. So we need to create a resource first. To create a resource, you need an active Azure Subscription. Please visit this link to create a subscription:
https://azure.microsoft.com/free/cognitive-services/
Depois de configurar a assinatura do Azure, você deve criar um Recurso de Visão do Computador. Certifique-se de ter selecionado a região geográfica correta, porque você não pode alterar isso mais tarde. Visite este link para criar o recurso:
https://portal.azure.com/#create/Microsoft.CognitiveServicesComputerVision
Para obter a chave de assinatura do seu recurso, abra o recurso e vá para “Chaves e pontos de extremidade”. Lá você pode ver duas chaves e o local que precisa para fazer nossa chamada REST API.
Como fazer uma solicitação à API REST do Azure usando Delphi REST Client?
Chamar a API REST do Delphi Client é fácil. Você só precisa definir alguns parâmetros e pode executá-lo mesmo em tempo de design. Vamos fazer um aplicativo DEMO. Primeiro, arraste e solte esses componentes em um fórum.
TRESTClient
TRESTRequest
TRESTResponse
Além disso, coloque alguns controles de entrada para obter o URL da API, a chave de assinatura e o URL da imagem. Colocar um TButton
para iniciar o pedido. O tipo de conteúdo do Cliente REST deve ser “application / json
“. Agora defina as propriedades do cliente e da resposta do TRESTRequest
componente para o cliente e componentes de resposta que colocamos anteriormente. Defina também o método como “rmPOST
“.
O código do botão Iniciar é assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
procedure TfrmMain.btnStartClick(Sender: TObject); var lparam : Trestrequestparameter; imgProcessed: bool; jsonObj, jsonStatus: TJSONObject; começar memResponse.Lines.Claro; RESTClient.BaseURL := edAPIURL.Text; RESTRequest.Method:=rmpost; imgProcessed := false; try RESTRequest.Params.Claro; RESTResponse.RootElement := ''; lparam := RESTRequest.Params.AddItem; lparam.name := 'Ocp-Apim-Subscription-Key'; lparam.Value := edSubKey.Text; lparam.ContentType := ctNone; lparam.Kind := pkHTTPHEADER; //This one is Important otherwise the '==' will get url encoded lparam.Options := [poDoNotEncode]; lparam := RESTRequest.Params.AddItem; lparam.name := 'data'; lparam.Value := '{"url":"' + edImgURL.Text + '"}'; lparam.ContentType := ctAPPLICATION_JSON; lparam.Kind := pkGETorPOST; RESTRequest.Execute; if não RESTResponse.Status.Success then showmessage(RESTResponse.StatusText + ' ' + inttostr(RESTResponse.StatusCode)) senão começar memResponse.Lines.Add(RESTResponse.JSONText); end; finally end; end; |
Este código adicionará um novo parâmetro ao TRESTRequest e definirá a chave de assinatura. A chave de assinatura deve ser passada como um cabeçalho HTTP e o nome deve ser “Ocp-Apim-Subscription-Key
“. O parâmetro de valor é a chave de assinatura que copiamos anteriormente. Também é importante incluir a opção “poDoNotEncode
“, Caso contrário, ele irá codificar a chave. Além disso, o URL base do TRESTClient
precisa ser definido. Quando inserimos a URL base do Cliente Azure, devemos considerar a região do nosso recurso. Deve ser o subdomínio da URL. O URL base terá esta aparência.
1 |
<a href="https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description" target="_blank" rel="noreferrer noopener nofollow">https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description</a> |
Substituir "Eastus
”Com a sua região ou irá não trabalhos. Além disso, existem vários parâmetros que você pode passar por este URL. Visite este link para encontrar todos os parâmetros.
Nesta demonstração passamos “visualFeatures = Descrição
”Que irá descrever nossa imagem em uma frase. Além disso, temos que passar nosso URL de imagem no formato JSON. Para fazer isso, adicione um novo parâmetro ao TRESTRequest
e defina o tipo de conteúdo para “ctAPPLICATION_JSON
”, Defina o nome para“url
”E o valor neste formato:
1 |
{"url":"IMAGE_URL"} |
Nosso aplicativo final deve ser assim.
Você pode baixar o aplicativo DEMO no GitHub: https://github.com/checkdigits/ImageAnalysisClient_example
Bem, experimente você mesmo e veja - é a maneira mais rápida de adicionar análise de imagem aos seus aplicativos Windows, macOS e móveis?