---
title: "Microsoft Azure AI Services: rozpoznawanie obrazu (computer vision)"
url: https://michalasobczak.pl/pl/posts/microsoft-azure-ai-services-computer-vision.html
author: "Michał Sobczak"
description: "Użyj Microsoft Azure AI Services do analizy obrazów, głosu i dokumentów. Bez umiejętności AI/ML czy programowania. Obowiązuje Responsible AI wg unijnego AI Act. Dawniej Cognitive Services. Plan działania. Czym jest Microsoft Azure?"
published: 2024-09-08T06:37:14.000Z
updated: 2024-09-08T07:07:30.000Z
language: pl
categories: ["AI/ML"]
tags: ["AI/ML", "Cloud"]
license: CC BY-NC-ND 4.0 (https://creativecommons.org/licenses/by-nc-nd/4.0/)
---
# Microsoft Azure AI Services: rozpoznawanie obrazu (computer vision)

> Użyj Microsoft Azure AI Services do analizy obrazów, głosu i dokumentów. Nie są wymagane umiejętności z zakresu AI/ML ani programowania. Obowiązuje Responsible AI zgodnie z unijnym AI Act. Dawniej Cognitive Services.

## Plan działania

-   Utworzenie konta AI Services multi-account w Azure
-   Uruchomienie OCR (computer vision) na obrazie

## Czym jest Microsoft Azure?

To platforma chmury publicznej Microsoftu, oferująca szeroki wachlarz produktów i usług, w tym **maszyny wirtualne, zarządzane kontenery, bazy danych, platformy analityczne, a także AI Services**. Głównymi konkurentami Azure są Amazon AWS i GCP od Google.

## Czym są AI Services (dawniej Cognitive Services)?

To zestaw różnych usług dotyczących procedur rozpoznawania i analizy, **opartych na już wytrenowanych modelach ML (a nawet na tradycyjnych technikach programistycznych)**. Można ich używać do opisywania dokumentów, zadań OCR, rozpoznawania twarzy itd. W rzeczywistości usługi te są zwykle kategoryzowane w sekcji Cognitive Services, która dotyczy rozpoznawania – a to synonim słowa „kognitywny”. Zmiana nazwy, która nastąpiła w lipcu 2023 roku, była mniej więcej rebrandingiem i wprowadziła wyłącznie niełamiące zmiany w ramach marketingu. **Oczywiste jest, że AI Services sprzedadzą się lepiej niż Cognitive Services**.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/image-3.png)

## Tworzenie konta AI multi-service w portalu Azure

Aby utworzyć konto Microsoft Azure AI Services multi-service, potrzebujesz **ważnej subskrypcji Azure** – Free Trial lub zwykłego konta. Wpisz „AI” w polu wyszukiwania na portal.azure.com, a znajdziesz tę usługę w katalogu usług.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/Azure-AI-001.png)

Warto wspomnieć, że otrzymujesz **„Responsible AI Notice”**, które odnosi się do AI Act obejmującego Unię Europejską, USA i Wielką Brytanię. Określa on, co modele AI/ML mogą robić, a na co nie powinny pozwalać. Według KPMG ([źródło](https://kpmg.com/us/en/articles/2024/how-eu-ai-act-affects-us-based-companies.html)) obejmuje to m.in.: **scoring społeczny, rekrutację i ujawnianie deep-fake’ów** jako najważniejsze obszary wymagające regulacji. A co z resztą świata? Cóż, może być tak samo jak z emisją CO2 czy recyklingiem plastikowych odpadów. sytuacja.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/Azure-AI-002.png)

Proces deploymentu w Azure ma szczególne znaczenie, gdy mówimy o konfigurowalnych zasobach z danymi. Jednak w przypadku wdrażania usług sprowadza się to do powiązania ich z naszym kontem, więc proces deploymentu AI Services kończy się w ciągu kilku sekund.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/Azure-AI-003.png)

## Przegląd konta AI Services

Aby korzystać z Azure AI Services, przejdź do Resource Management, Keys and Endpoint. **Dowiesz się tam, na który Endpoint wysyłać wywołania/żądania API i jaki jest klucz dostępu**. Klucz ten jest następnie mapowany na nagłówek „Ocp-Apim-Subscription-Key”, który należy przekazać w wywołaniu HTTP.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/image-5.png)

W przypadku standardowego poziomu cenowego S0 w subskrypcji Free Tier szacunkowo **1 000 wywołań API (wykonanych żądań) kosztowałoby mniej niż 1 euro**. Może to być „tanio”, jednak to cena wyjściowa i podejrzewam, że w rzeczywistym scenariuszu produkcyjnym wartość może być inna, zwłaszcza w przypadku usług podejmujących decyzje (wciąż mogących opierać się wyłącznie na ML), a nie tylko tych, które można zastąpić tradycyjnymi technikami programistycznymi – a takimi są notabene procesy OCR, obecne na rynku już od kilku dekad.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/image-6.png)

## Uruchomienie przykładowego zadania rozpoznawania

Zamiast programować (czyli kodować) z użyciem różnych [SDK](https://learn.microsoft.com/en-us/azure/ai-services/reference/sdk-package-resources) dla AI Services (Python, JavaScript itd.), możesz też wywołać takie usługi żądaniem HTTP za pomocą narzędzia curl. O ile wiem, każdy Windows 10 i 11 powinien mieć curl. W dystrybucjach Linuksa najprawdopodobniej masz już curl zainstalowany.

Aby więc wywołać zadanie rozpoznawania, przekaż klucz subskrypcji (tutaj zastąpiony przez xxx), wskaż konkretny URL Endpointu i przekaż parametr url, który powinien wskazywać na jakiś publicznie dostępny obraz, na którym zostanie uruchomiona usługa rozpoznawania. Odkryłem, że **nie każda funkcja jest dostępna w każdym Endpoincie**. W takim przypadku trzeba zmodyfikować parametr „features”:

```bash
curl -H "Ocp-Apim-Subscription-Key: xxx" -H "Content-Type: application/json" "https://z92-azure-ai-services.cognitiveservices.azure.com//computervision/imageanalysis:analyze?features=read&model-version=latest&language=en&api-version=2024-02-01" -d "{'url':'https://michalasobczak.pl/wp-content/uploads/2024/08/image-6.png'}"
```

**Przekazałem do analizy ten obraz**, który zawiera kilkanaście prostokątnych pól z tekstem w środku. Uzyskanie poprawnych wyników powinno być proste, bo tekst nie jest obrócony, jest napisany czcionką maszynową, a kontrast kolorów jest odpowiedni.

![](https://michalasobczak.pl/wp-content/uploads/2024/09/image-7.png)

W odpowiedzi otrzymujemy poniższy wynik w formacie JSON. Widać, że poprawnie wykrył słowo „rkhunter”, a także „process”. Musimy jednak dodać dodatkową warstwę przetwarzania, aby połączyć sąsiadujące słowa w osobnych liniach w frazy, zamiast mieć tylko **oddzielne słowa**.

```javascript
{
   "modelVersion":"2023-10-01",
   "metadata":{
      "width":860,
      "height":532
   },
   "readResult":{
      "blocks":[
         {
            "lines":[
               {
                  "text":"rkhunter",
                  "boundingPolygon":[
                     {
                        "x":462,
                        "y":78
                     },
                     {
                        "x":519,
                        "y":79
                     },
                     {
                        "x":519,
                        "y":92
                     },
                     {
                        "x":462,
                        "y":91
                     }
                  ],

                  ...

                  "words":[
                     {
                        "text":"process",
                        "boundingPolygon":[
                           {
                              "x":539,
                              "y":447
                           },
                           {
                              "x":586,
                              "y":447
                           },
                           {
                              "x":586,
                              "y":459
                           },
                           {
                              "x":539,
                              "y":459
                           }
                        ],
                        "confidence":0.993
                     }
                  ]
               }
            ]
         }
      ]
   }
}
```

## Podsumowanie

Uważam, że cenowo ta usługa AI Service, wcześniej znana jako Cognitive Services, to **rozsądny sposób na uruchamianie zadań rozpoznawania w środowisku online**. Takie rozpoznawanie moglibyśmy włączyć do naszych aplikacji w celu dalszej automatyzacji, np. przetwarzania faktur w module FI systemu ERP.
