Microsoft Azure AI Services: rozpoznawanie obrazu (computer vision)

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

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.

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.

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) 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.

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.

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.

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.

Uruchomienie przykładowego zadania rozpoznawania #

Zamiast programować (czyli kodować) z użyciem różnych SDK 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.

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.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Microsoft Azure AI Services: rozpoznawanie obrazu (computer vision)”, 8 września 2024, https://michalasobczak.pl/pl/posts/microsoft-azure-ai-services-computer-vision.html