Svet oko nas najvećim delom doživljavamo putem vida. Ljudi su sposobni da prepoznaju objekte, procene udaljenost, pa čak i da osete teksturu samo gledajući slike.
Međutim, bez obzira na to koliko je to uobičajeno i lako vidljivo, ostaje pomalo nedostižno kada pokušavamo programirati računare da urade isto. Ipak, razvijeni su algoritmi tokom godina kako bi pomogli računarima da izvrše ovaj naizgled komplikovan zadatak obrade slike.
Ovi algoritmi su implementirani u kod i distribuirani kao softverske biblioteke, o kojima ćemo govoriti u ovom članku.
Šta je obrada slike?
Obrada slike je deo kompjuterskog vida. Ona uključuje zadatke koji se izvršavaju nad slikama kako bi se pripremile za njihovu upotrebu u mašinskom učenju, kao i šire, u veštačkoj inteligenciji.
Ova obrada je korisna za otkrivanje i identifikaciju objekata na slikama. Ovo je primenljivo u proizvodnji samovozećih automobila i robota, kao i za klasifikaciju slika kako bi se identifikovale stvari poput sadržaja govora mržnje.
Primena obrade slika
Obrada slika ima široku primenu u mnogim oblastima. Neke od njenih najčešćih i najkorisnijih primena uključuju:
- Medicinsko snimanje i dijagnostika, gde veštačka inteligencija može dijagnostikovati pacijente na osnovu skeniranja.
- Bezbednost, kroz implementaciju biometrijskih sistema bezbednosti i sistema za nadzor objekata.
- Robotika, pri razvoju robota koji su sposobni da vide svoju okolinu. Ovo uključuje i samovozeće automobile.
- Proširena stvarnost, na primer, filtri. Obrada slika se koristi za identifikaciju objekata i primenu filtera na njih.
- Analiza saobraćaja, za očitavanje registarskih tablica. Ovo se može koristiti u policijskim istragama za identifikaciju vozača koji prolaze kroz crveno svetlo, ili u kontroli brzine.
Postoje razni algoritmi koji se koriste u obradi slike. To uključuje morfološko širenje i eroziju, Gausovu transformaciju, Furijeovu transformaciju, detekciju ivica i obradu slike talasima.
Bez postojanja softverskih biblioteka, morali bismo implementirati ove algoritme od početka. Srećom, postoje unapred napisane biblioteke koje implementiraju potrebne funkcionalnosti. Evo liste nekih od najčešćih.
OpenCV
OpenCV je jedna od najpopularnijih biblioteka za obradu slika. Koristi se za implementaciju algoritama kompjuterskog vida i za izvršavanje mašinskog učenja i obrade slike.
Pored toga, dostupna je besplatno i kao softver otvorenog koda. Štaviše, OpenCV je svestran jer se može koristiti sa raznim programskim jezicima. To uključuje Python, C++ i Java.
Biblioteka implementira mnoge funkcije i algoritme koji su vam potrebni za obradu slika. To uključuje detekciju ivica, izdvajanje karakteristika, transformacije, rotacije, promene veličine i poboljšanja kvaliteta.
Scikit-image
Scikit-image pruža jednostavan i efikasan način za obradu slika. Omogućava unos/izlaz slika, transformacije, filtriranje, segmentaciju, izdvajanje karakteristika, restauraciju slika i geometrijske transformacije.
Biblioteka se integriše sa drugim naučnim računarskim bibliotekama i omogućava korisnicima da lako manipulišu i poboljšavaju slike za različite primene, od osnovnih operacija kao što je promena veličine do naprednih zadataka kao što su prepoznavanje objekata ili restauracija slike.
SimpleITK
SimpleITK je pojednostavljena verzija ITK-a. ITK (Insight Toolkit) je multi-platformska biblioteka otvorenog koda za analizu slika. SimpleITK podržava čitanje i pisanje slika iz više od 20 različitih formata slikovnih datoteka.
Pored Pythona, radi sa drugim programskim jezicima kao što su R, Java, Rui, Lua, C++ i C#. Pruža širok spektar funkcija koje se mogu koristiti za rad sa slikama.
SimpleITK je takođe moćan jer podržava rad sa 2D, 3D, 4D i 5D slikama. Takođe podržava paralelnu obradu kako bi se ubrzale operacije.
SciPy
SciPy je srodna popularnoj biblioteci za numeričku analizu, NumPy. SciPy se koristi za naučno računanje, dok se NumPy koristi za numeričko izračunavanje. S obzirom da SciPy koristi NumPy ispod površine, veoma je brz i efikasan.
Takođe podržava rad sa višedimenzionalnim slikama. Biblioteka implementira funkcije za obavljanje filtriranja, morfologije, merenja objekata i B-spline interpolacije.
Pillow
Pillow je nastavak Python Imaging Library (PIL). PIL je bila biblioteka za rad sa slikama u Pythonu. Međutim, radio je samo sa Python2 i prekinut je 2011.
Pillow je nadogradnja tog projekta. Podržava čitanje slika iz različitih formata datoteka u sopstveni interni prikaz. Interna reprezentacija jastuka efikasno manipuliše slikama i pruža prilično moćne funkcije za obradu slika. Takođe podržava brz pristup podacima i izvršavanje operacija kao što su rotacije i promene veličine.
pgmagick
pgmagick je Python biblioteka otvorenog koda koju je napisao Hideo Huttori. Deluje kao omotač za GraphicsMagick, koji je zbirka alata i biblioteka koje se koriste za čitanje, pisanje i manipulisanje slikama.
Biblioteka podržava više od 88 različitih formata slika i može da obavlja nekoliko funkcija, kao što su dobijanje veličine slika, izoštravanje ili zamagljivanje slika, otkrivanje ivica, njihovo okretanje, solarizovanje, upoređivanje slika i pisanje na disk.
pgmagick se može koristiti za kreiranje GIF-ova, crtanje teksta i prebacivanje slika iz različitih formata datoteka.
Završne reči
Iako ova lista nije konačna, navedene biblioteke su neke od najpopularnijih koje se koriste u obradi slika. Koristili su ih mnogi ljudi i organizacije za implementaciju sistema koji su sposobni da otkrivaju, segmentiraju i analiziraju objekte.
Ovo je bilo izuzetno korisno u oblastima veštačke inteligencije i robotike. Kao alternativu bibliotekama, možete koristiti API-je za analizu slika.