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”:
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.
{
"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.