Neurokuvatreenit -kirjastoja

KESKENERÄINEN

Tässä esitellään lyhyesti koodissa käyttämiämme kirjasto-ohjelmia.

Moni on sanonut, ettei oikein ole perehtynyt tuohon pythoniin. Itse asiassa useinkaan kyse ei ole pythonin vaikeudesta, vaan käytettyjen kirjasto-ohjelmien piirteistä, jotka taas juontuvat siitä että niitä käytetään mutkikkaiden asioiden tekemiseen.

PYTORCH

Pythonissa itsessään ei ole tukea moniulotteisen datan käsittelylle eikä GPU-laskennalle. Moniulotteinen data tarkoittaa tässä esimerkiksi RGB-kuvaa, johon tarvitaan 3-ulotteinen taulukko: 3 värikanavaa x korkeus x leveys pikseleinä. Pytorch käsittelee dataa tensoreina, jotka ovat käytännössä moniulotteisia taulukoiden joiden käsittelyyn on erittäin tehokkaat välineet.

Tensorien lisäksi pytorchista löytyy myös mm. torch.nn, välineet neuroverkkojen rakentamiseksi ja torch.optim koulutuksen vaatimaa optimointia tukemaan.

TORCHVISION

Pytorchin laajennus kuvienkäsittelyä varten, josta löytyy paitsi työkalut kuvien lukemiseen ja esikäsittelyyn, myös valmiita verkkoja kuvakäyttöön.

NUMPY

Peruspythonin laajennus moniulotteisten taulukkojen käsittelyyn. Ei tukea GPU:lle, mutta erittäin tehokkaita monipuolisia välineitä taulukkojen käsittelyyn käytettäväksi esim. kun joudutaan muokkaamaan kuvia pikselitasolla. Toimii saumattomasti yhteen opencv:n kanssa.

PIL

Pythonin laajennus kuvankäsittelyyn. Torchvision toimii hyvin yhteen PIL:n kanssa. PIL tarjoaa paljon valmiita kuvankäsittelyominaisuuksia, mutta jos haluaa käydä itse käsiksi pikselidataan, opencv + numpy on kätevämpi. Omassa työskentelyssäni joudun liikkumaan kaikkien näiden välillä, jotten joutuisi keksimään pyörää uudestaan. Teen kunkin homman sillä millä se onnistuu, ja niiden välillä tarvittavat muutokset (mistä myöhemmin).

OPENCV

Pythonin laajennus kuvankäsittelyyn, käsittelee kuvaa suoraan numpy-taulukkona jolloin pikselit ovat suoraan käytettävissä. Voidaan myös lukea webbikameraa ja näyttää kuvaa näytöllä omana ikkunanaan,

KORNIA

Toisin kuin PIL ja OpenCV, uudehko Kornia pystyy käsittelemään kuvia suoraan tensoreina, eli on kätevä silloin kun esimerkiksi kuvan kokoa pitää muuttaa ja kuva on jo tensorina.


MOVIEPY

Videotiedostojen käsittelyyn (lukuun, leikkaukseen ja kirjoitukseen).


SSIM

Ensimmäisissä harjoituksissa vertaamme kuvaa tavoitteeseen laskemalla eroa pikseleittäin. Kuva voi siis näyttää käytännössä samalta (esim. olla muutaman pikselin verran sivussa) mutta arvion mukaan erilainen.

PYSSIM käyttää matemaattinen menetelmää (SSIM) arvioimaan kuvien rakenteellista samankaltaisuutta.

LPIPS

Toinen tapa arvioida kuvien samankaltaisuutta katsojan kannalta (perceptual similarity) perustuu kuvan piirteiden arviointiin kuvaa tulkitsevan neuroverkon avulla. Kokeilemme tehdä sellaista itsekin varsinkin harjoituksessa 11, mutta käytämme myös valmista lpips-kirjastoa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *