Kuva: Pixabay
Artikkeli on toteutettu osana Muutoskyvykkyyttä avoimen lähdekoodin osaamisen avulla (Open MemoryLab) -hanketta. Lue lisää hankkeen sivuilta: www.xamk.fi/tutkimus-ja-kehitys/openmemorylab/
Hankkeen toteutus: 01.10.2022 – 31.12.2023
Rahoittaja ja päärahoituslähde: Etelä-Savon elinkeino-, liikenne- ja ympäristökeskus, Euroopan sosiaalirahasto (ESR) REACT-EU
Konenäköön (computer vision) pohjautuvat teknologiaratkaisut ovat kehittyneet nopeasti viime vuosina. Konenäköä hyödynnetäänkin nykyään jo useilla eri aloilla kuten esimerkiksi turvallisuus- ja terveydenhuoltoaloilla, maataloudessa, älykkäissä kaupungeissa (smart city) sekä teollisuudessa.
Ohessa on listattuna seitsemän suosituinta avoimen lähdekoodin (ml. tekoälypohjaisia) valmis- tai osatoteutusratkaisuja hyödynnettäväksi kuvantunnistuksessa. Parhaiten soveltuvimman ratkaisun löytäminen juuri tiettyyn konenäkötehtävään saattaa olla haastavaa lukuisten eri saatavilla olevien työkalujen, alustojen ja ohjelmistokirjastojen joukosta. Jokaisen ratkaisun kohdalla on pyritty tuomaan lyhyesti esille tärkeimpiä toiminnallisuuksia ja hyödyntämisesimerkkejä.
OpenCV
OpenCV tarjoaa laajimman ja suosituimman konenäön (computer vision) kirjaston. OpenCV:n algoritmit soveltuvat moniin erilaisiin käyttötapauksiin kuten kasvojen ja liikkuvien esineiden tunnistamiseen sekä seurantaan. OpenCV tukee eri ohjelmointikieliä kuten C++, Pythonia sekä Javaa. OpenCV:tä hyödyntävät jo lukuisat suuret kansainväliset yritykset esimerkiksi Google, Facebook, IBM, Toyota, Sony, Honda sekä Microsoft.
Vahvuudet:
+ Käyttö on ilmaista
+ Laaja yhteisön tuki
+ Tarjoaa yli 2500 algoritmiä
+ Antaa vapauden muokata koodia tarpeisiin sopivaksi
Heikkoudet:
– Ei aloittelijaystävällinen, käyttö vaatii harjoittelua
Lisenssi:
OpenCV 4.5.0 tai uudempi versio: Apache License 2.0
OpenCV 4.4.0 tai vanhempi versio: 3-clause BSD License
Koodi: github.com/opencv/opencv
Lisätietoja: opencv.org
TensorFlow
TensorFlow on yksi suosituimpia ja kattavimpia koneoppimisen alustoja. TensorFlow on varsin hyödyllinen koneoppimiseen perustuvien kuvantunnistussovellusten kehittämisessä. TensorFlow:n kirjastosta löytyykin näihin valmiita malleja tai vaihtoehtoisesti se sallii käyttäjien kehittää konenäköön liittyviä koneoppimismalleja omien tarpeidensa pohjalta esimerkiksi kasvojen tunnistamiseen ja esineiden luokitteluun. TensorFlow tukee useita eri ohjelmointikieliä kuten Pythonia, C:tä, C++, Javaa sekä JavaScriptiä. TensorFlow tarjoaa myös laajan kokoelman erilaisia oppimateriaaleja yleisesti koneoppimiseen liittyen.
Heikkoudet:
– Vaatii laitteelta paljon, raskas prosessoida
Heikkoudet:
– Ei aloittelijaystävällinen, käyttö vaatii harjoittelua
Lisenssi: Apache License 2.0
Koodi: github.com/tensorflow/tensorflow
Lisätietoja: www.tensorflow.org
Keras
Keras tarjoaa Python-pohjaisen, syväoppimiseen (deep learning) keskittyvän ohjelmistokirjaston ja rajapinnan. Keras toimii käyttöliittymänä edellä esiteltyyn koneoppimisalusta TensorFlowiin. Se sopii erityisesti aloittelijoille, koska se mahdollistaa nopeasti ja helposti neuroverkkomallin luomisen. Kerasia hyödyntää jo moni tieteellinen organisaatio ympäri maailman kuten CERN sekä NASA.
Vahvuudet:
+ Nopea, helppokäyttöinen ja käyttäjäystävällinen
+ Laaja yhteisön tuki
+ Tarjoaa backend-tukea
Heikkoudet:
– Ominaisuudet voisivat olla parempia
– Vikojen löytäminen ja niiden korjaaminen saattaa olla haastavaa
Lisenssi: Apache License 2.0
Koodi: github.com/keras-team/keras
Lisätietoja: keras.io
SimpleCV
SimpleCV on Python-pohjainen eri avoimen lähdekoodin kirjastojen ja ohjelmistojen kokoelma, jonka avulla voit helposti kehittää konenäkösovelluksia. SimpleCV:n avulla saat pääsyn useisiin eri konenäkökirjastoihin kuten aiemmin esiteltyyn OpenCV:hin ilman, että tarvitset syvällistä tietoa monimutkaisista käsitteistä kuten bittisyvyyksistä, väriavaruuksista, puskurinhallinnasta tai eri tiedostomuodoista.
Vahvuudet:
+ Ilmainen käyttää
+ Monet algoritmeista ovat pitkälle optimoituja
+ Hyvä dokumentaatio
Heikkoudet:
– Ei tue muita ohjelmointikieliä kuin Pythonia
Lisenssi: BSD 3-Clause tai “Revised” License
Koodi: github.com/sightmachine/SimpleCV
Lisätietoja: simplecv.org
BoofCV
BoofCV on Java-pohjainen konenäköohjelmisto, joka on kehitetty hyödynnettäväksi erityisesti reaaliaikaisiin konenäköratkaisuihin. BoofCV sisältää kaikkien perusominaisuuksien lisäksi myös edistyneitä ominaisuuksia.
Vahvuudet:
+ Käyttäjäystävällinen käyttöliittymä
+ Tarjoaa tukea usealla eri kielellä
Heikkoudet:
– Hidas low-level kuvien prosessoinnissa
Lisenssi: Apache License 2.0
Koodi: github.com/lessthanoptimal/BoofCV
Lisätietoja: boofcv.org
CAFFE
CAFFE (eli Convolutional Architecture for Fast Feature Embedding) tarjoaa syväoppimisen ja konenäön ohjelmistokehyksen, joka on kehitetty Kalifornian yliopistossa, Berkeleyssä. CAFFE kehitetty C++-ohjelmointikielellä ja se tukee useita erilaisia syväoppimisarkkitehtuureja, jotka liittyvät muun muassa kuvien luokitteluun ja jaotteluun. Erityisesti CAFFE soveltuu hyödynnettäväksi teollisissa sekä tieteellisissä tarkoituksissa sen nopeuden ja tehokkaan kuvien prosessointikyvyn vuoksi.
Vahvuudet:
+ Nopea ja helppokäyttöinen
+ Tukee useita kieliä
Heikkoudet:
– Dokumentointi voisi olla parempaa
Lisenssi:
Caffe uses a shared copyright model: each contributor holds copyright over
their contributions to Caffe: github.com/BVLC/caffe/blob/master/LICENSE
Koodi: github.com/BVLC/caffe
Lisätietoja: caffe.berkeleyvision.org
DeepFace
DeepFace on alunperin Facebookin tutkimusryhmän kehittämä, suosittu ja helppokäyttöinen Python-pohjainen konenäkökirjasto kasvojentunnistukseen syväoppimisen avulla. Mikäli etsit kuvanprosessointityökaluja erityisesti reaaliaikaiseen kasvojentunnistukseen ja analysointiin, DeepFace on hyvä keino hyödyntää parhaita syväoppimisen tunnistusmalleja kuten Google FaceNetiä, VGG-Facea, OpenFacea tai Facebookin DeepFacea.
Vahvuudet:
+ Ilmainen käyttää
+ Kevyt ja helppo asentaa
+ Tukee suosittuja tunnistusmalleja
Heikkoudet:
– Cloud APIa ei ole saatavilla
Lisenssi: MIT License
Koodi: github.com/serengil/deepface
Lisätietoja: en.wikipedia.org/wiki/DeepFace