Klasyfikacja obrazów w bazach danych z wykorzystaniem sztucznej inteligencji, przy użyciu narzędzia Altova MapForce
Jednym z najpopularniejszych przykładów zastosowania sztucznej inteligencji w naszym codziennym życiu jest rozpoznawanie twarzy. Rozpoznawanie twarzy to proces identyfikacji lub weryfikacji tożsamości osoby na podstawie jej rysów twarzy. Technologia ta jest wykorzystywana w wielu aplikacjach, takich jak odblokowywanie telefonów za pomocą funkcji FaceID, oznaczanie znajomych na platformach mediów społecznościowych, takich jak Facebook, oraz rejestracja na lotniskach lub w hotelach za pomocą skanerów biometrycznych. Rozpoznawanie twarzy może uczynić nasze życie wygodniejszym i bezpieczniejszym, ale może również budzić obawy dotyczące prywatności i etyki. Na przykład, jak możemy mieć pewność, że nasze dane dotyczące twarzy nie zostaną wykorzystane w sposób niezgodny z prawem lub skradzione przez hakerów lub osoby działające w złej wierze? Jak możemy zapobiec wykorzystywaniu rozpoznawania twarzy do celów inwigilacji lub dyskryminacji? Jak możemy zapewnić, że rozpoznawanie twarzy jest dokładne i sprawiedliwe, i że nie zawiera żadnych uprzedzeń ani błędów?
Powyższy fragment został wygenerowany przez ChatGPT w odpowiedzi na moje prośbę o opisanie zalet i zagrożeń związanych ze sztuczną inteligencją, a także o podanie konkretnego przykładu. Jest interesujące, że ChatGPT wybrał FaceID jako przykład, ponieważ FaceID to tylko jedna z form analizy obrazu, a wykorzystanie sztucznej inteligencji do klasyfikacji obrazów oferuje potencjał do automatyzacji wielu zadań w realnym świecie.
Jednym z typowych zastosowań jest katalog produktów, w którym firma zarządza informacjami o produktach dostarczanymi przez wielu różnych producentów. Produkt umieszczony w tej bazie danych może mieć nazwę, która niekoniecznie zawiera dokładny opis produktu. Na przykład, "wellington" to buty, "fedora" to kapelusz, "mongoose" to rower, a "żółta, błyszcząca ryba iglica" to przynęta wędkarska. Możemy wykorzystać klasyfikację obrazów opartą na sztucznej inteligencji, korzystając z API Computer Vision firmy Microsoft Azure Cognitive Services, aby rozwiązać ten problem. Usługa Computer Vision przyjmuje jako dane wejściowe dane obrazu lub adres URL i zwraca informacje o jego zawartości. Jedna z usług generuje tagi klasyfikujące obrazy na podstawie zestawu danych treningowych zawierającego rozpoznawalne obiekty, organizmy żywe, krajobrazy i czynności, na których został wytrenowany system sztucznej inteligencji Azure. Te tagi pozwalają nam odpowiednio kategoryzować produkty w bazie danych i mogą nawet odpowiadać słowom kluczowym, których użytkownik może użyć do wyszukiwania produktów w katalogu.

Możemy stworzyć mapowanie danych oparte na sztucznej inteligencji, wykorzystując narzędzie Altova MapForce, aby przesyłać obrazy produktów do systemu sztucznej inteligencji Computer Vision za pomocą jego interfejsu API. Altova MapForce to nagradzane, graficzne narzędzie do mapowania danych, przeznaczone do konwersji i integracji danych w dowolnym formacie. Interfejs API Computer Vision wykorzystuje sztuczną inteligencję do analizy każdego obrazu i zwraca listę tagów. MapForce obsługuje usługi internetowe bezpośrednio w ramach mapowania, a następnie można wstawić te tagi z powrotem do dedykowanego pola w bazie danych dla każdego produktu, wykorzystując funkcję przetwarzania wyników pośrednich lub łańcuchowego mapowania danych.
To mapowanie danych oparte na sztucznej inteligencji umożliwia automatyczne generowanie i dodawanie tagów generowanych przez AI do katalogów produktów, w sposób w pełni skalowalny. Tagi zwracane przez system AI są opatrywane w wskaźnik pewności, co ułatwia ustawienie progu w procesie mapowania, aby wykorzystywać tylko te tagi, które charakteryzują się wystarczająco wysokim poziomem pewności.
Zaczęliśmy od niewielkiej bazy danych zawierającej przykładowe produkty związane z rekreacją na świeżym powietrzu i wykorzystaliśmy program Altova DatabaseSpy do dodania pola do tabeli produktów, przeznaczonego do przechowywania tagów AI. DatabaseSpy łączy się z większością popularnych baz danych, ułatwiając edycję zapytań SQL, projektowanie struktury bazy danych, edycję zawartości oraz konwersję baz danych, przy znacznie niższych kosztach niż rozwiązania dedykowane do pojedynczych baz danych. Poniżej znajduje się okno z wynikami zapytania DatabaseSpy, pokazujące zawartość bazy danych oraz nowe, puste pole.

Oto, w losowej kolejności, miniaturki przykładowych zdjęć produktów:

Użyliśmy również narzędzia DatabaseSpy, aby zweryfikować proste zapytanie SQL, które miało na celu pobranie jedynie identyfikatorów (które są kluczami głównymi tabeli) oraz odpowiadających im nazw plików obrazów.

Zapytanie SQL stanowi pierwszy element wejściowy dla mapowania danych przy użyciu technologii sztucznej inteligencji MapForce. Składa się ono z trzech głównych komponentów: wyniku zapytania, żądania do API analizy obrazów Azure oraz skryptu SQL, który służy do zapisywania odpowiedzi z API z powrotem do bazy danych.

Przyjrzyjmy się teraz dokładniej zapytaniu wysyłanemu do interfejsu API sztucznej inteligencji:
Wynik zapytania SQL jako źródło danych do mapowania

Zapytanie Select generuje tabelę danych, która zasadniczo jest listą kluczowych numerów i odpowiadających im nazw plików obrazów. Jednak interfejs API akceptuje tylko żądania dotyczące jednego obrazu na raz. Mapując identyfikator (id) z zapytania do sekcji "envelope" na górze komponentu API, generujemy nowe wywołanie API dla każdego zwróconego identyfikatora, przechodząc iteracyjnie przez każdy obraz na liście. Inna linia połączenia, wychodząca z identyfikatora i znajdująca się w prawym górnym rogu, zostanie później wykorzystana do utworzenia skryptu aktualizacji SQL.
Projektant tabeli bazy danych zdecydował się odwoływać się do obrazów produktów za pomocą nazw plików, zamiast przechowywać obrazy jako obiekty binarne (BLOB) w bazie danych. Interfejs API do analizy obrazów wykorzystujący sztuczną inteligencję może przyjmować zarówno surowe dane obrazu, jak i adres URL do obrazu dostępnego publicznie. Dlatego możemy po prostu przekazać adres URL obrazu do API w naszym zapytaniu. Funkcja "concat" znajdująca się powyżej łączy ścieżkę, tworząc kompletny adres URL.
Wykonanie żądania do usługi internetowej opartej na sztucznej inteligencji
Centralna część schematu, wykorzystującego sztuczną inteligencję, przedstawia funkcję usługi internetowej, która wywołuje interfejs API analizy obrazów oparty na sztucznej inteligencji, a następnie przetwarza wyniki, które są zwracane

Zwróć uwagę na ikonę koperty oznaczoną jako "Treść" po obu stronach (żądanie i odpowiedź) funkcji usługi internetowej. Interfejs API wymaga przekazania obiektu JSON jako treść żądania i określa, że odpowiedź będzie dokumentem JSON. Niebieskie i czerwone przyciski znajdujące się obok ikon "Treść" otwierają okno dialogowe, w którym można zdefiniować strukturę danych dla żądania i odpowiedzi.

Odpowiedź z interfejsu API sztucznej inteligencji wymaga dalszej obróbki. Etykiety są zwracane jako listy obiektów JSON, a każda etykieta jest opatrzona liczbą, która reprezentuje poziom pewności trafności w procentach. Poniżej znajduje się przykład. Poniżej znajduje się odpowiedź sztucznej inteligencji w oryginalnym formacie JSON dla obrazu parasola:

Funkcja filtrująca o większym priorytecie wybiera te tagi, których poziom pewności wynosi 88% lub więcej. Następnie funkcja łączenia łączy te tagi w jeden ciąg znaków oddzielonych przecinkami. Należy zauważyć, że tag "deszcz" ma poziom pewności wynoszący 42%.
Oto ciąg znaków, który chcemy zastosować do głównego produktu w bazie danych, po wyodrębnieniu tylko tych tagów, które nas interesują:

Generowanie polecenia SQL UPDATE na podstawie odpowiedzi generowanych przez sztuczną inteligencję
Prawa część systemu mapowania danych, opartego na sztucznej inteligencji, otrzymuje każdy przetworzony wynik, porównuje go z odpowiednim identyfikatorem bazy danych i przypisuje ciąg tagów do pola "ai-tags" w tabeli bazy danych "cat-products".

Analiza wyników mapowania danych opartych na sztucznej inteligencji
Przycisk "Podgląd wyniku" znajdujący się poniżej głównego panelu mapowania w MapForce pozwala nam zobaczyć przykładowy rezultat: uruchamia cały proces mapowania danych, rozpoczynając od oryginalnego zapytania SELECT, wykonuje żądania API, przetwarza wyniki analizy opartej na sztucznej inteligencji i, w końcu, generuje instrukcje aktualizacji SQL, tworząc kompletny skrypt aktualizacji SQL

Możemy użyć opcji "Uruchom skrypt SQL" z głównego menu MapForce, aby uruchomić skrypt i interaktywnie wprowadzać aktualizacje bazy danych. Alternatywnie, możemy teraz wdrożyć tę transformację na instancji serwera MapForce Server w naszej sieci, gdzie może być ona uruchamiana automatycznie jako część procesu importu nowych produktów do katalogu. Korzystając z FlowForce Server, możemy zdefiniować pewne wyzwalacze, które automatycznie przetwarzają dane, weryfikują je, a następnie wykonują oznaczanie obrazów przy użyciu sztucznej inteligencji, a na końcu przekazują je do bazy danych produkcyjnej.
W naszych zapytaniach do API Computer Vision platformy Microsoft Azure Cognitive Services, użyto domyślnego, wstępnie wytrenowanego modelu wizyjnego, który jest standardem dla tego przykładu. Model wizyjny dostosowany do konkretnych potrzeb mógłby precyzyjniej określać tagi dla specjalistycznych zastosowań, ale to wykracza poza zakres tego wpisu na blogu.
Kliknij tutaj, aby uzyskać więcej informacji na temat funkcji mapowania i konwersji danych dostępnych w programie MapForce, lub kliknij tutaj, aby pobrać bezpłatną, w pełni funkcjonalną wersję próbną na 30 dni, zawierającą pliki pomocy, samouczki oraz wiele przykładów mapowania danych.