ProggBlogg Posts

Przyjrzymy się dziś metodzie, która widnieje na tytułowym obrazku. Szybki rzut oka: przecież nic skomplikowanego - zaledwie parę linijek kodu. Na pewno jest generyczna, bo wszędzie tylko typy: TInput, TResult... Mimo wszystko trochę mi zajęło, żeby ją zrozumieć i efektywnie z niej korzystać. Ponieważ bardzo rzadko sam tworzę takie metody, postanowiłem rozbić ją na czynniki pierwsze.

Flover Project

Od jakiegoś czasu programiści platformy .NET, a właściwie jej wersji nr 4.0 mają możliwość zastosowania biblioteki Task Parallel Library. Jej najpopularniejszym elementem jest współbieżna pętla For, którą bardzo intuicyjnie się obsługuje. Taką równoległą pętlę otrzymujemy dzięki metodzie Parallel.For().

Flover Project

W rozpoznawaniu obrazów często mamy do czynienia segmentacją. Przeprowadzamy ją gdy chcemy zmienić reprezentację obrazu na łatwiejszą do analizy - zamiast obrazu w postaci pikseli otrzymujemy regiony, które są w jakiś sposób jednorodne, np. pod względem koloru, odcieni szarości czy tekstury. Te wydzielone obszary nazywamy również superpikselami. Jest ich zazwyczaj o wiele mniej od normalnych pikseli, dlatego algorytmy przetwarzające dalej dany obraz mają bardziej ogólne informacje o obrazie i są szybsze. Jednym z lepszych a zarazem łatwych algorytmów segmentacji jest metoda SLIC.

Flover Project

Tak, tak, to nie prima aprilis! Xamarin od wczoraj jest zupełnie za darmo dla użytkowników Visual Studio! Zatem, jeśli programujesz w C#, czy może w F#, możesz bez dodatkowych kosztów robić aplikacje mobilne na Androida, iOSa czy platformy oparte na Windowsie. Z wczorajszego przemówienia Scotta Guthrie na konferencji Build 2016 utkwiło mi w pamięci: "There's never been a better time to be a developer"                                     …

Flover Project

Dzisiaj postaram się określić jak będzie wyglądała procedura rozpoznawania obrazów moim projekcie Flover. Będzie składać się z paru głównych etapów, które są bardzo powszechne w tej dziedzinie i cały czas udoskonalane. Nie ukrywam, że będę mocno posiłkował się pracą M. Nilsback, która raportuje jedne z najlepszych wyników rozpoznawania rodzajów kwiatów spośród wymienionych w moim opisie projektu. Wynajdywanie nowych algorytmów w tej tematyce nie jest głównym założeniem projektu, więc czemu miałbym wyważać otwarte drzwi. W miarę zgłębiania konkretnych metod być może…

Flover Project

W drugim tygodniu moich zmagań z projektem Flover zabrałem się za realne tworzenie kodu. Wreszcie GitHub przestał świecić pustkami! Przede wszystkim zaprzyjaźniałem się z biblioteką Accord.net pod kątem przetwarzania obrazów. Powstała w tym celu mała aplikacja okienkowa, w której szybko mogę sobie zaimplementować jakieś operacje. Jak na razie testowałem wykrywanie rogów obiektów na zdjęciach, co może się później przydać w celu stworzenia wektora cech obrazu i jego późniejszej klasyfikacji. Więcej o całej procedurze rozpoznawania obrazu w następnym wpisie. Jednak głównym…

Flover Project

Dzisiaj ujawniam drugą, dla wielu pewnie ważniejszą część opisu mojego projektu Flover. Tym razem przedstawię wybrane platformy i biblioteki, wyznaczę zadania i postaram się je umieścić w czasie.

Sporo błądziłem po sieci i sondowałem jakie technologie najlepiej by się nadawały do problemu rozpoznawania i klasyfikacji obrazów, który docelowo chciałbym zrealizować na urządzeniach mobilnych. Z tego zamętu na szczęście powoli rodzi się wybór, który według mnie jest kompromisem pomiędzy:

Flover Project

Nadszedł wreszcie czas na podzielenie się z Wami moimi planami odnośnie projektu konkursowego. Przed decyzją o przystąpieniu do rywalizacji wiele myślałem co by ciekawego stworzyć. Bardzo chciałem, aby temat był powiązany z Machine Learning, który jest już mi znajomy, ale wiele rzeczy pozostaje wciąż do zbadania. Poszperałem między innymi w projektach realizowanych na koniec kursu CS229 na uczelni Stanford prowadzonego przez guru sztucznej inteligencji Andrew Ng. Ileż tam jest ciekawych pomysłów! Poniżej niektóre z nich, które poważnie rozważałem

Flover Project

Cześć. Głównym bodźcem do założenia tego bloga jest konkurs programistyczny Macieja  Aniserowicza "Daj się Poznać". To świetna idea mająca na celu zrzeszenie społeczności developerów różnej maści. Konkurs ma motywować do pracy nad projektami open-source, które nas kręcą, a nie zawsze jest na nie czas w pracy zawodowej. Każdy uczestnik mógł wybrać dowolny temat oraz dowolną technologię. Poza tym, o danym projekcie trzeba regularnie blogować, co dla mnie i pewnie wielu innych będzie nowością i równie ciekawym wyzwaniem. Zgadzam się z teorią, że…

Daj się poznać