Jak nauczyć Hello World’a myśleć? Cz. 1 – Computer Vision API

Jak nauczyć Hello World’a myśleć? Cz. 1 – Computer Vision API

Intro

Tworzenie aplikacji jest czynnością, w której przywiązujemy się do pewnego rodzaju schematu. Jednakże będąc schematyczni stajemy się typowi -nie wyróżniamy się NICZYM od konkurencji. Temu tematowi chciałnym poświęcić pierwszy post z serii “Jak nauczyć HelloWorld’a myśleć?”.

Hello world, Hello World – znów to samo…

Dzisiaj wcielimy się w rolę twojego wymyślonego przyjaciela Janka – studenta-startup’owca, który stworzył super aplikację do udostępniania zdjęć. Janek promuje swój projekt, opowiada swoim znajomym, a ilość nowych userów rośnie w mgnieniu oka. Jednakże w pewnym momencie na rynku pojawia się on – Zbyszek, którego aplikacja dodatkowo udostępnia opcję tagowania. Janek się boi. Co doradzisz swojemu przyjacielowi?

auto, automobile, automotive

Zaoferuj coś nowego!

A może by tak skorzystać z… sztucznej inteligencji? Co to w ogóle jest?

ask, blackboard, chalk board

Żyjemy w XXI wieku, erze komputerów. Sporo się słyszy o sztucznej inteligencji, jednak jak z niej możemy skorzystać? Mamy dwie drogi – albo zatrudniamy stado programistów, którzy będą chcieli opracować nam matematyczny model takiej usługi, albo skorzystamy z gotowych usług, jakimi są między innymi Azure Cognitive Services.

Czym jest Azure Cognitive Services?

Według definicji, sztuczną inteligencją nazywamy “systemy mogące wykonywać zadania wymagające ludzkiej inteligencji, takiej jak zmysły wzroku, słuchu bądź rozumienia”.  Chmura Microsoft Azure oferuje nam usługi, korzystające WŁAŚNIE Z TYCH zmysłów. Dzielą się one między innymi na usługi “korzystające” ze zmysłu wzroku, słuchu bądź języka.

Co oferują?

W dzisiejszym poście, skorzystamy z usługi Computer Vision API. Paletę funkcjonalności Galerii naszego kolegi Janka powiększymy o coś nowego – automatyczne tagowanie i opisywanie zdjęć. Jak? Korzystając właśnie z Computer Vision API!

Woman With Black Textile

Jest to gotowa usługa, która na podstawie zadanego zdjęcia potrafi je otagować bądź opisać. Dodatkowo jest również w stanie wykryć, czy aby nasze zdjęcie nie zawiera czegoś 18+ 😉 . Co więcej, należy jeszcze wspomnieć, że pierwsze 5.000 wywołań mamy kompletnie za free, co powinno wystarczyć dla testów oraz niedużych środowisk produkcyjnych.

bank, blur, business

Jak zakodować?

Krok nr 1 – wchodzimy na portal.azure.com, a następnie zakładamy na naszej subskrypcji usługę Computer Vision API, po czym kopiujemy jej klucz. Chcąc z niej skorzystać w C# musimy zainstalować paczkę Microsoft.ProjectOxford.Vision. Przykładowe wykorzystanie:

VisionServiceClient vision = new VisionServiceClient(
   CloudConfigurationManager.GetSetting("vision:key"),
   CloudConfigurationManager.GetSetting("vision:rootUrl")
;
VisualFeature[] features = new VisualFeature[]
{
   VisualFeature.Description,
   VisualFeature.Tags
};
var result = await vision
   .AnalyzeImageAsync(photo.Uri.ToString(), features);

Zarówno Azure Cognitive Services jak i inne usługi kognitywne pracują w oparciu o nauczony maszynowo model, dlatego korzystając z usług kognitywnych musimy liczyć się z niedokładnością zwracanych wyników. Stąd też API usługi zwraca nam dodatkowo współczynnik pewności danej predykcji, który oscyluje w przedziale od zera do jedynki, oznaczając od braku pewności do 100% pewności.

Nie musimy się jednak ograniczać z wykorzystaniem Cognitive Services tylko do naszego kodu, gdyż możemy również użyć REST API, bądź zintegrować z naszym Logic App:

Demo

Gotowe demo możecie zobaczyć pod linkiem https://smartgallerydemo.azurewebsites.net/ .  Zasada działania aplikacji jest prosta – wrzucasz zdjęcie, appka puka do Computer Vision API pytając o tagi i opis zdjęcia, a następnie uzyskane wyniki zapisuje w formie metadanych w zdjęciu. Aplikacja wykorzystuje Azure Blob Storage jako magazyn zdjęć, Active Directory B2C jako mechanizm uwierzytelniania, Cosmos DB jako magazyn komentarzy oraz App Service jako host. Całość kodu dostępna jest na moim GitHubie. Zapraszam do klikania TUTAJ.

2 thoughts on “Jak nauczyć Hello World’a myśleć? Cz. 1 – Computer Vision API

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *