perjantai 5. kesäkuuta 2020

Mavic Air 2 drone, käytännön kokemuksia

DJI julkisti keväällä uuden mallin suositusta Mavic Air -dronesta. Jätin varauksen Verkkokauppa.comiin ja sain omani toukokuun puolivälissä. Laite on ilmeisen suosittu, sillä erä meni nopeasti ja nyt kuukautta myöhemmin toimitusaika näyttää olevan muutamia viikkoja.

Mavic Air 2 on nimensä mukaisesti parannettu versio alkuperäisestä nelikopterista. Kamera on aiempaa kehittyneempi, automatiikka ja ohjain samoin. Älypuhelin sijoitetaan nyt telineeseen ohjaimen päälle ja yhdistetään ohjaimeen usb-piuhalla. Paketissa on johdosta myös Apple-versio.

Mavic Air 2 -ohjain.
Tässä onkin jo ensimmäinen havainto: läpällisellä suojakuorella varustettua puhelinta ei voi käyttää, koska läppä estää puhelimen kiinnittämisen.

Dronen kuljettaminen on helppoa, koska roottorien varret taittuvat rungon suuntaisiksi. Siinä on kuitenkin oma vaivansa ja roottorit pitää asettaa pareittain oikeisiin kulmiin. Pieni harmaa rinkula kertoo, kumpaan haaraan kukin roottori kuuluu.

Roottori, jossa on harmaa merkintä, tulee harmaaseen tukivarteen.
DJI:n pitkä kokemus alalta ja markkinajohtajan asema näkyvät käytännöllisinä yksityiskohtina. Esimerkiksi roottorin lavat ovat kääntyviä, joten pieni osuma esteeseen ei vielä riko niitä. Roottoreita mainostetaan hiljaisina, ääni muistuttaa äkäistä kärpäsparvea. Laitteen noustua ylemmäksi ääni häviää täysin.

Ohjaimen molemmat vivut voidaan irrottaa ja sijoittaa kuljetuksen ajaksi ohjaimessa oleviin koteloihin.

Akku on irrotettava ja siinä on neliportainen varaustilan näyttö. Lentoaika on noin 30 minuuttia, tarkka aika näkyy lennon aikana puhelimen näytöltä kamerakuvan päällä. Kun akku alkaa loppua, laite palaa automaattisesti lähtöpaikkaansa. Sitä ennen se nousee ennalta-asetettuun estekorkeuteen, jotta matka ei pääty puuhun tai rakennuksen seinään, ja laskeutuu sieltä alas.

Dronessa on anturit pohjassa, edessä ja takana. Niiden pitäisi estää osuminen ilmassa oleviin esteisiin, mutta siihen ei voi koskaan täysin luottaa. Ilmajohdot ja puun oksat saattavat katkaista lennon lyhyeen, ellei pilotti ole tarkkana.

Niin, lentäminen on itse asiassa yllättävän vaikeaa. Ensin oppii tarkkailemaan tuulta, ilmatilaa ja laskeutumispaikkaa. Lennon aikana oppii tähystämään vähän joka suuntaan. Kamera lähettää koko ajan videokuvaa, mutta sen varaan ei voi lentoa laskea. Ohjeet sallivat lennättämisen vain jatkuvalla näköyhteydellä droneen. Sekin on vaikeaa, sillä pienikokoinen laite häviää hetkessä taivaan sineen tai lennättäjä erehtyy pitämään lintua omana laitteenaan. Lukulaseja käyttävän on vaikea seurata samanaikaisesti sekä lähellä olevaa puhelimen näyttöä että kaukana lentävää laitetta.

Kannattaa pysyä selvillä myös ilmansuunnista ja maamerkeistä, ilman niitä ei ole ihan helppoa löytää takaisin lähtöpaikalle laskeutumaan. Onneksi ohjaimessa on RTH-näppäin (return to home)!

Lähtöpaikaksi kannattaa valita päällystetty jalkakäytävä tai pysäköintialue. Siinä on tosin vaara, että pyöräilijät yllättävät lentäjän takaapäin kun eivät ymmärrä, miksi joku seisoo keskellä tietä taivaalle katsellen. Tämä on ollut vähällä pari kertaa yllättää itseni.

Järjestelmässä on siis kolme osaa: drone, ohjain ja älypuhelin. Kaikki pitää ladata erikseen, joskin DJI:n laturissa on kaapeli sekä akun että ohjaimen yhtäaikaiselle lataukselle. Lentoonlähtö vaatii laitteiden käynnistämisen, puhelimen kiinnittämisen, ohjelman käynnistämisen ja sieltä ohjausohjelman avaamisen. Näppärämpää tietysti olisi, jos ohjain ja näyttö olisivat samassa, mutta se lisäisi kustannuksia.

Mavic Air 2 on hinnoiteltu 849 euroon, mikä on käytännössä sama kuin edellisessä mallissa. Lisäakku maksaa 115,90 euroa, eli ei mitään halpaa huvia. Akkujen ym. hinta onkin noin kolmanneksen edellistä mallia kalliimpi, joten Fly more -paketti saattaa olla kannattava hankinta.

Akku kestää puoli tuntia lentoa, mutta sen lataaminen lähes 1,5 tuntia. Lisäakkuja siis tarvitaan, koska käytännön syistä lentoakkua ei halua päästää ihan nolliin, ja ilmassa aika kuluu yllättävän nopeasti. Muutaman kerran olen havainnut minuuttinäytön epätarkaksi: lennon alussa se näyttää vain runsasta 20 minuuttia, mutta myöhemmin aika kasvaa.

Gimbaalin suojakupu.
Kuljetuksen ajaksi herkkä kamerayksikkö kannattaa suojata kuvulla, jonka paikalleen asettaminen ei ole ihan yksinkertaista. Sen poistaminen ennen lentoa tuppaa unohtumaan. Onneksi hallintaohjelma antaa tästä ilmoituksen "gimbal stuck".

Ilmassa leijuva Mavic Air 2 on vaikuttava näky.
Mavic Air 2 ilmassa.
Tuulesta huolimatta se pysyy hyvin paikallaan ja ampaisee taivaalle pystysuoraan kuin raketti. Kauko-ohjaimessa on kolme nopeusvaihtoa: tripod, normal ja sport. Turvallisuussyistä kannattaa pysytellä hitaassa asetuksessa, jotta törmäysanturit ehtivät reagoida. Esteitä havaitessaan puhelimesta kuuluu varoitusääni, joten kaiutin kannattaa pitää päällä lennon aikana.

Gimbaalit ovat tehokkaita, mutta silti minuun tekee aina vaikutuksen nähdä, miten kuva pysyy aivan täydellisesti paikallaan, vaikka drone taivaan tuulessa hieman keinuisikin. Enpä haluaisi olla se insinööri, joka on laskenut Laplace-muunnoksilla tarvittavat säätöfunktiot! Mutta pääasia, että ne toimivat.

Osa hallintaohjelmasta on yhä kiinaksi. 
Älypuhelimessa toimiva hallintaohjelma on varsin selkeä ja helppokäyttöinen.

Hallintaohjelma näyttää lentokorkeuden, pysty- ja vaakanopeuden ym. tietoja.
Se sisältää myös kartan, johon on merkitty erilaisia varoitusalueita. Helsingin Munkkiniemen kieltoaluetta ei kuitenkaan ollut kartalla, joten pelkkään ohjelmaan ei voi luottaa. Tampereen Ratinan stadionin kohdalta löytyi rajoitusalue, jota ilmailukartta ei tuntenut.

Laitteen kuvausominaisuuksissa lisää seuraavassa kirjoituksessa. 

tiistai 2. kesäkuuta 2020

DosBox ajaa nostalgisia ohjelmia ja pelejä

Uusissa Windows-versioissa ei enää ole DOS-tilaa lainkaan, joten vanhat merkkipohjaiset sovellukset jäävät ajamatta. Unohduksen yöhön ne kuuluvatkin. Moni voi tosin kaivata vanhoja legendaardisia pc-pelejä tai haluta pelastaa Wordstarilla tai WordPerfectillä aikoinaan tekemänsä opinnäytetyön.

DosBox on emulaattoriohjelma, joka herättää vanhat dos-ohjelmat henkiin. Toinen vaihtoehto on asentaa aito DOS virtuaalikoneeseen (esim. VirtualBox), mutta DosBox on helpompi eikä tarvitse alkuperäisiä dos-levykkeitä.

Käynnistyksen jälkeen.
DosBox käynnistyy Z-asemalta ja ajaa AUTOEXEC.BATin, joka asettaa SoundBlaster-äänikortin keskeytyksen (I), osoitteen (A), DMA-kanavan (1) jne. Tästä jo näkee, mihin tekijät ovat ohjelman ajatelleet. CD-ROMin käyttöönotto voi vaatia pientä viilausta, mutta onnistuu sekin.

DosBox ei ole aito DOS, joten kaikki wanhat komennot eivät toimi. Emuloitu MEM näyttää muistialueiden määrät:

Muistialueet.
Vau, täysi 640 kilon perusmuisti (lähes), ylämuistialueen lohko ja peräti 15 megatavua jatko- ja EMS-muisteja. Harvalla oli tällaista arsenaalia omassa koneessaan.

Ajamani nopeustestin perusteella DosBox vastasi 10-12 MHz 286-prosessoria. Mutta mikä parasta: nopeutta voi nostaa tai laskea F11- ja F12-toimintonäppäimillä. Kuin ohjelmallinen turboruuvi, joka nosti nopeuden muutamalla painalluksella yli kolminkertaiseksi. Olisipa tällainen turbo ollut koneissa silloin DOS-aikanakin!

DOS-asema täytyy kiinnittää emulaattoriin mount-komennolla. Esimerkiksi MOUNT C C:\user\matti\dosprogs kytkee hakemiston näkymään DOSille kiintolevynä, jonka päähakemisto alkaa ko. tasolta.

Sopivasti levyltä löytyi Flight Simulator 4 dos-versio jostain 1980-luvun lopulta. Se lähti käyntiin heittämällä:
Flight Simulator FS4 valmiina nousuun.
Tietenkin emulaattorilla voi ajaa myös vanhoja hyötyohjelmia, kuten vanhaa Wordstaria.

Wordstar 3.4 jostain 80-luvulta tämäkin.
DosBox on saatavilla myös Mac-koneille. MacOS-versiosta riippuen sen asennus antaa erilaisia suojausvaroituksia, mutta kunhan lataa ohjelman suoraan sivustolta, mitään vaaraa ei pitäisi olla.

Käytännön ongelmana on tilde-merkki, jonka MOUNT-komento tarvitsee viittauksena kotihakemistoon. Sekin löytyy oikealla näppäinyhdistelmällä: KEYB SU -komennon jälkeen oikea Alt, ¨ ja lopuksi vielä välilyönti.

Ja näin saadaan käyntiin todellinen sekasikiö: WordPerfect 5.0 kaikkine ohjauskoodeineen 2020-luvun graafisessa ympäristössä!
Merkkipohjainen WordPerfect 5.0 Macissä
Jos ei muuta, niin WP:n ajaminen Macissä opettaa havainnollisesti, miten paljon tietotekniikka on kehittynyt muutamassa vuosikymmenessä. Tämän päivän sovellusten graafisuus ja käytön helppous ovat aivan eri tasolla kuin kultaisella DOS-aikakaudella 1980- ja 1990-luvuilla.

perjantai 15. toukokuuta 2020

Tekoäly arvioi kuvien laatua

Everypixel Aesthetics arvioi valokuvien laatua, jotta se voisi löytää esimerkiksi parhaat koirakuvat kuvapankin tuhansien joukosta. Ohjelma ei arvioi kuvan hienoutta sinänsä vaan lähinnä teknistä laatua - eli kuten palvelu itse sanoo:

"...service doesn't measure the coolness or beauty of a person or any object in a photo. It cares only about technical parts like brightness, contrast, noise and so on."

Kokeillaanpa.

Heti aluksi tulee vastaan kuva, jota ohjelma itse pitää oikein laadukkaana:

Töölö HDR 92,3 %
Kokeillaan toisella HDR-kuvalla, mutta nyt tulos onkin jotain ihan muuta:

Öinen kaupunki vain 13,5 %
Entä koira?

Koirakuvan laatu 67 %
Huomaa, että ohjelma tunnistaa koiran rodunkin oikein. Viulistin kuva saa laaduksi 53 %:

Viulisti 52,8 %
Suurkirkko kesäillassa ei tee vaikutusta, mutta ohjelma löytää kuvasta ristin ja tunnistaa sen katedraaliksi:

Iltainen suurkirkko vain 1,4 %
Kesäinen autokuva saa surkean arvion:

Kesäautot vain 0,1 %
Pelkät jalat on kuvana hauska ja tekoäly tunnistaa, että ne kuuluvat naiselle. Ohjelma antaa tylyn arvion: nolla pistettä:

Pelkät jalat 0,0 %.
Sambaaja saa vain vähän paremman arvion:

Samba 5,7 %
Yllättäen tavanomainen rullalautailijan kuva saa huippuarvion:

Rullalautailija 96,5 %
Palataan vielä testikuvana olleeseen koiraan:

Peruskuva vain 0,2 %
Kohinan pitäisi laskea kuvan pisteitä, mutta käykin päinvastoin. Keinotekoisesti lisätty 20 % kohina ei vielä tuota muutosta, mutta 40 % saa jo paremmat pisteet ja 60 % kohina ylittää jo 10 % rajan:

Kohiseva koirakuva 10,5 %
Kun kohinaa yhä vain lisätään, 80 % tasolla kuva saa vielä paremman arvion:

Kohiseva koirakuva 28,8 %
Loppupäätelmä on selvä: Everypixel tunnistaa erinomaisesti kuvassa näkyviä asioita ja hahmoja, mutta kuvien laatumittarina se on surkea. Ilmeisesti kohina saa algoritmin niin sekaisin, että se suorastaan pitää kohinalla sotketuista kuvista. 

Ihmisellä on vielä etulyöntiasema kuvia arvioitaessa. Onneksi.

keskiviikko 13. toukokuuta 2020

Jääkaapin data Googlesta Pythonilla Exceliin

Kirjoitin työläästä muunnoksesta, jonka älyjääkaapin Google Docsiin lähettämä tiedostomuoto tarvitsi ennen kuin Excel tunnisti sen aikamerkinnät oikein. Kommenteissa nimimerkki Zarr antoi hyvän vinkin: Pythonissa on valmiina aikamerkintöjen muuntamiseen sopivat työkalut.

Totta! Siispä töihin.

Ongelma on siinä, että älyjääkaappi lähettää tiedot oven avauksista hassussa formaatissa ja tallentaa ne IFTTT-rajapinnan kautta Google Docsin laskentamalliin näin:

Google Docsin laskentamallin alkua.
Googlen omilla toiminnoilla datan saa haettua omalle levylle Excel-tiedostoon, mutta päivämäärien muokkaus Excelin ymmärtämään muotoon on työlästä.

Niinpä tallensin datan Excelistä tekstitiedostoon:

Data tekstimuodossa 12h kellonaikoina.
Sen jälkeen tein pienen Python-ohjelman. Siitä on lukuisia vuosia, kun olen viimeksi ohjelmoinut mitään, saati opetellut kokonaan uutta kieltä. Python on kuitenkin suosittu ja sillä on helppo tehdä asioita, jotka muilla olisivat erittäin työläitä. Tässä auttavat kirjastot, joita on saatavissa liki jokaiseen tarkoitukseen. Käytin itse openpyxl-nimistä kirjastoa, jonka avulla oma Python-sovellus pystyy lukemaan ja kirjoittamaan Excel-tiedostoja. Se avaa hienoja mahdollisuuksia tiedostomassojen analysointiin tai esimerkiksi lokitiedostojen esiprosessointiin, kuten tässä.

Python-ohjelma mahtuu muutamaan riviin.
Valmiiden kirjastojen ansiosta omasta ohjelmasta tulee yksinkertainen: se vain lukee tekstimuotoisen lokitiedoston, poimii riveiltä jääkaapin tuottaman aikaleiman ja palastelee sen uudelleen, sekä kirjoittaa lopputuloksen Excel-tiedostoon. Ohjelman rivejä voisi vielä vähentää tekemällä kaiken yhdessä luupissa.

Dokumentaation mukaan %d lukee päivän numeron silloin, kun alle kymmenen numeroita edeltää nolla (01, 02, 03...) ja että normipäiviin (1, 2, 3...) pitäisi käyttää muotoa %-d. Ilmeisesti dokumentaatio on vanhentunut, sillä %-d ei toiminut ja %d tuotti oikeat numerot kaikilla päivämäärillä.

Muutaman sekunnin ajo ja C:\temp-hakemistoon syntyy tiedosto ajat.xlsx. Onneksi Excel ymmärtää suoraan Pythonin käyttämää formaattia, joten aikaleimaa ei tarvitse muokata merkkijonona ennen kirjoittamista, mutta tarvittaessa sekin olisi helppo koodata.

Data Excelissä sen ymmärtämässä päiväysformaatissa 24h kellonaikoina.
Kouluissa olisi hyvä opettaa kaikille ohjelmoinnin perusteet, sillä se auttaa ymmärtämään koneiden ja tietojärjestelmien toimintaa -- ja varsinkin toimimattomuutta. Pienellä vaivalla apuohjelmista ja omatekoisista pikkuohjelmista saa itselleen tehokkaita työkaluja, kuten tässä.

tiistai 12. toukokuuta 2020

Tekoäly arvioi ministerien ikää kuvan perusteella

Edellisen kirjoituksen aiheena oli Everypixel-palvelu, jossa on monia kiinnostavia ominaisuuksia. Yksi niistä arvioi kuvassa näkyvän ihmisen ikää. Microsoftilla on vastaava palvelu osoitteessa https://www.how-old.net/.

Iän arviointi on yksinkertaista: annetaan tekoälylle valtava joukko ihmisten kasvokuvia ja niihin liittyvä ikätieto. Koneoppiminen muodostaa neuroverkon, joka tunnistaa kasvoista piirteitä ja yhdistää ne ikätietoon. Sitten vain kokeilemaan, millaisia arvioita uudet henkilöt saavat.

Kokeilua varten etsin netistä kuvia, joissa esiintyy hallituksen maailmankuulu naisviisikko. Todelliset iät ovat (syntymävuoden mukaan laskettuna suhteessa vuoteen 2020): Sanna Marin (35), Katri Kulmuni (33), Li Andersson (33), Maria Ohisalo (35) sekä Ann-Maja Henriksson (56).

Ensimmäinen testikuva:
Ensimmäinen testikuva
Tässä kuvassa Andersson 31, Kulmuni 29, Marin 30 ja Ohisalo 36.

Toinen testikuva.
Tässä Andersson 29, Kulmuni 29, Marin 35, Henriksson 44 ja Ohisalo 33.

Kolmas testikuva.
Kolmannessa kuvassa Andersson 32, Kulmuni 30, Marin 31 ja Ohisalo 32.

Neljäs testikuva.
Neljännessä kuvassa Andersson 24, Kulmuni 27, Marin 34, Henriksson 52 ja Ohisalo 33.

Kaikki neljä lehtikuvaa ovat ilmeisesti samasta tilaisuudesta Smolnasta. Siksi viides kuva on kiinnostava, koska siinä ministerit poseeraavat omissa passikuvissaan.

Viides testikuva.
Tässä Andersson 27, Kulmuni 20, Marin 30, Henriksson 49 ja Ohisalo 31.

Viiden testikuvan keskiarvot ovat Andersson 29, Kulmuni 27, Marin 32, Henriksson (3 kuvaa) 48 ja Ohisalo 33. Tarkimmin ohjelma arvioi Ohisalon iän, sillä keskiarvo 33 on kaksi vuotta todellista ikää nuorempi. Tekoälyn mielestä Ohisalo on siten eniten ikäisensä näköinen. Pahimmin pieleen menee Henriksson, jonka kohdalla 48,3 vuoden keskiarvo on peräti 7,7 vuotta todellista nuorempi. Marinilla ero on kolme vuotta, Anderssonilla 4,4 ja Kulmunilla 6 vuotta.

Eniten hajontaa on Henrikssonin ja Kulmunin kuvissa, vähiten Ohisalon kuvissa. Kulmunin tulosta selittää viimeinen kuva, jonka tekoäly arvioi peräti 13 vuotta todellista ikää nuoremmaksi.

Merkillepantavaa on, että vaikka neljä ensimmäistä kuvaa on otettu samassa tilanteessa, arviot kunkin ministerin iästä vaihtelevat 7, 3, 5, 8 ja 5 vuoden verran. Kuvakulma, valaistus ja ilmeisesti myös kuvatiedoston koko ja laatu vaikuttavat analyysin tulokseen.

Koiran tunnistaminen kuvasta on helppoa, iän arviointi on paljon vaikeampaa. Todennäköisesti tekoälyn ikäarvio olisi tarkempi kuin mihin suurin osa oikeista ihmisistä pystyy.

Osui silmään sopivasti Iltalehden juttu, jossa Tia Andersson valittaa muiden arvioivan hänet kymmenen vuotta todellista, pian 40 vuoden ikää nuoremmaksi. Jokainen voi tehdä oman arvionsa, mutta Microsoft arvioi iäksi 39 (täsmälleen oikein) ja Everypixel 45 vuotta.
Everypixel arvioi iäksi 45 vuotta.
Ehkä puolueeton algoritmi osaa sittenkin arvioida ihmisten ikää paremmin kuin me ihmiset itse?

Lopuksi tuttu varoituksen sana: jos olet huolissasi tietosuojasta, ei kannata lähettää omaa kuvaansa arvioitavaksi. Koskaan ei voi tietää, mihin käyttöön kuvat päätyvät.

Lisäys 13.5.2020: Joku ehti jo kritisoida iän päättelemistä kuvan perusteella. Päivän Hesari antaa esimerkin käyttökohteista: "Vastaavasti yhtiön järjestelmä voisi tunnistaa, kuinka paljon ihmisjoukossa on esimerkiksi yli 70-vuotiaita. Näin saataisiin nopeasti tietoa, että viruksen kannalta riskiryhmään kuuluvia on kerääntynyt johonkin enemmän kuin suositellaan." Käyttökohteita siis löytyy, eri asia on, miten luotettavasti yli 70-vuotiaiden tunnistus toimisi ja miten perusteltua se olisi edes ajatuksen tasolla.

maanantai 11. toukokuuta 2020

Tekoäly tunnistaa kuvia osa 3: Everypixel tunnistaa mainiosti

Microsoft, Google ja Apple tunnistavat kuvia muiden lisätoimintoina. Entä yritys, joka on erikoistunut valokuvien tunnistamiseen (ja jopa kuvan hienouden arviointiin, mutta siitä toisessa kirjoituksessa)?

Everypixel on kehittänyt kuvantunnistusta esimerkiksi kuvapankkien käyttöön. Koneellinen arviointi säästää aikaa ja auttaa ohittamaan huonoimmat kuvat.

Sivulla https://www.everypixel.com/aesthetics on palvelu, johon voi lähettää omia kuvia sen analysoitavaksi. Peruskuva ei tuota palvelulle ongelmia:

Everypixel tunnistaa jopa koiran rodun.
Toisella sivulla nähdään kunkin luokituksen varmuustaso:

Luokitusten varmuustaso: 98 % varmuudella tämä on koira.
Luokitukset ovat lähes kaikki oikeita, tosin koira ei varsinaisesti ole pentu (22 %) eikä istu (23 %). Everypixel tunnistaa koiran jopa pelkästä kirsusta (varmuus 92 %):

Kirsu paljastaa koiran.
Silmä riittää jopa rodun tunnistamiseen:

Silmä paljastaa koiran ja jopa noutajan.
Toinen käännettyjen palojen testikuva on ohjelmalle liikaa, mutta toinen samantapainen riitti tunnistukseen. Tässä se epäonnistunut versio:

Mikä tässä on kirjekuorta ja bisnestä?
16 ruudun palapeli ei hämää tunnistusta:

Koira 16 palassa.
36 palasta tunnistetaan vielä koira, mutta 49 palaa on jo tekoälyllekin liikaa:

Eläin ja lemmikki se on, mutta muusta ei ole tietoa.
Silmien ja kirsun peittäminen tuottaa yllättäviä tuloksia:

Nyt menee liian vaikeaksi!
Tekoälyn mielestä kuvassa on kyllä koira, mutta se taitaa olla pelkkä arvaus, sillä muut luokitukset ovat internet (!), länsimainen valkoihoinen ihminen, ihmiskäsi, miehet sekä terveydenhuolto ja lääkitys.

Rodun tunnistus on yllättävän hyvä:

German Shepherd - yes!
Hieman yllättäviä luokituksia ovat kodittomuus ja koditon eläin. Tätä koiraa ei liioin voi sanoa enää pennuksi.

Tunnistus yllättää pomeraanin kohdalla:

Pomeranian - indeed!
Osumatarkkuus ei kuitenkaan ole ihan niin hyvä kuin aluksi vaikuttaa, sillä myös toinen koira tuottaa saman tuloksen:

Tämä ei kylläkään ole pomeraani.
Everypixel osoittaa, että parhaimmillaan tekoälyn tunnistuskyky yllättää -- mutta silti taustalta paistaa tekoälyn matematiikka, eikä virheiltä voida välttyä. 

keskiviikko 6. toukokuuta 2020

Tekoäly tunnistaa kuvia osa 2: Google Photos ja Apple

Google Photos ja Applen Kuvat -palvelu tunnistavat kuvien sisältöä, joten kuvien haku onnistuu vaikka ei olisi nimennyt kuviaan eikä kirjoittanut niihin metatietoja. Kuvantunnistus on tullut palveluihin kuin varkain, eivätkä kaikki ole edes huomanneet koko hienoa ominaisuutta.

Googlen palvelussa on vain hakukenttä, johon haettava termi kirjoitetaan. Olin ladannut Googlen ja Applen palveluihin kasan vanhoja valokuvia ja ihmettelin, kun Google löysi kuvia ällistyttävän tehokkaasti. Vasta sitten huomasin, että haku kohdistuu automaattisesti myös avainsanoihin, tiedostonimiin ja jpeg-tiedostojen sisään kirjoitettuihin otsikoihin, joten testin koirakuvat piti tyhjentää ensin metadatasta ja lähettää sen jälkeen uudelleen.

Google tunnisti ongelmitta kaikki helpot koirakuvat.
Näyttävät koirilta ja ovatkin.
Testisarjan muokatut kuvat tuottivat tällaisen tuloksen:
Nämä kaikki näyttävät koirilta.
Googlen tekoäly tunnisti neliömäiset palapelit, mutta ei käännettyjä paloja, pelkkää kirsua tai silmää eikä kuvaa, missä silmät oli peitetty kirsun lisäksi. Myös kohinalla ja tahallisella epäterävyydellä muokatut koirakuvat tunnistuivat oikein.

Googlen sanavarastossa on myös termi koiranpentu, joka tuotti välillä yllättäviä tuloksia. Koira tulkittiin pennuksi koosta riippumatta, kunhan sen asento oli leikkisä (vrt. viimeinen kuva):

Koiranpentu on oma hakusanansa.
Ilmeisesti kuvantunnistus toimii pilvessä taustalla, koska tunnistus alkoi toimia jopa vuorokausien viiveellä ja edellytti myös selaimen ikkunan sulkemista. Tuloksena oli paljon muitakin havaintoja, mutta niistä ehkä toisessa kirjoituksessa.

Applen vastaava toiminto on testaamisen kannalta helpompi, koska iPhonen Kuvat-sovellus erottelee tulokset kriteerin mukaan: sijaintitiedot, tiedostonimet, kuviin itse lisätyt avainsanat sekä tekoälyn antama luokitus (kategorita) erottuvat tuloksista helposti. Kuvat antaa myös listan tunnistamistaan samantyyppisistä kategorioista, mistä voi olla hyötyä haun määrittelyssä.

Yllättäen haku antoi erilaisia tuloksia Mac Air -läppärillä ja iPhone 11 Pro -puhelimella. Windowsin selaimella iCloudin Kuvat antaa selata kuvia, mutta siinä ei ole hakutoimintoa lainkaan. Erillinen Windows iCloud-sovellus saattaisi näin tehdä, sitä en kokeillut.

Macissä hakukenttään kirjoitettu kissa näyttää joukon automaattisen luokittelun kategorioita:

Kissa-aiheisia kategorioita.
Jostain syystä monet kategoriat ovat suomen taivutusmuodoissa ("Kissaeläimen"), mikä kertoo jonkinlaisesta konekäännöksestä.

Kuvassa alkaa varmaan kiinnostaa, mikä on se yksi kissa, joka ei kuulu Kissaeläimen kategoriaan. Se paljastuu vertailemalla hakutuloksia keskenään. Ensin Kissa:
Kissa-haun tulokset.
Ja sitten Kissaeläimen:
Yksi kuva enemmän.
Kahdesta lähes identtisestä kissakuvasta vain toinen on luokiteltu kissaksi, molemmat kissaeläimiksi. Tutkimattomia ovat tekoälyn tiet.

Koira-haku antaa tällaisen tuloksen:
Macin koira-hakusana.
Tuloksia on vähemmän kuin Googlen listassa. Ensimmäinen kuva näyttää koiralta, mutta on itse asiassa vuohi. Palapelikuvia algoritmi ei tunnista lainkaan.

iPhonessa haku antaa erilaisia tuloksia. Teksti "indeksoidaan" näkyi sinnikäästi kuvien alareunassa, joten ilmeisesti hakutoiminto analysoi kuvat paikallisesti eikä pilvessä. Sellainen ratkaisu tuntuu oudolta.

Kissaeläin-haku antaa tällaisia tuloksia:

Kissaeläimet iPhonessa.
Myös koira-haun tulokset ovat erilaiset kuin Mac Air -koneessa.

Koiratulosten alku.
Listan lopusta löytyvät tutut testikuvat, myös 4x4 ruudukko (mutta ei isompia).

Koiratulosten loppu.
Tekoälyhaku toimii niin hyvin, että siitä on aidosti hyötyä. Joskus tulokset suorastaan yllättävät. Kannattaa kokeilla, millaisia tuloksia omasta kuva-arkistosta löytyy!

Seuraavassa kirjoituksessa kokeilussa parempi analysoija.