lauantai 10. joulukuuta 2016

Prototyyppi, osa 3

Kurssi alkaa lähestyä loppuaan, sillä grand finalekin on jo takana päin. Meidän osaltamme esitys meni hyvin, ja ständillä vieraillut väki piti prototyyppiämme mielenkiintoisena ja vaikuttavana. 

Prototyypin osalta yksi tulos on vielä esittelemättä. Vaikka toteuttamamme algoritmit on tarkoitettu staattisen kuvan muodostamiseen, tulee kummastakin menetelmästä ulos sarja käsiteltyjä kuvia. Sen sijaan, että laskisimme keskiarvon näistä kuvista, on mielenkiintoista nähdä miltä käsitellyt kuvat näyttävät videomuodossa.

Testissä käytetty videopätkä ja lopputulokset on ladattavissa allaolevista linkeistä (mega.nz) (alkuperäinen lähde Youtubessa):



Jaamme videot tällä tavalla siksi, että niiden tallettaminen johonkin palveluun heikentäisi kuvanlaatua liikaa.

Staattiset lopputulokset on esitetty kuvissa 1 ja 2. Jälleen kerran kahden menetelmän tuottama jälki näyttää hyvin samanlaiselta. Huomionarvoista on myös se, että vaikka kuvan keski- ja yläosassa pohja erottuu varsin tarkasti, niin alaosa on varsin epätarkka. Tässä testissä kuvausolosuhteet ovat kuitenkin hyvät: kamera on suoraan kohteen yläpuolella, pysyy paikoillaan ja myös kuvausetäisyys on sopiva. Videon kuvanlaatu ei kenties ole tarpeeksi hyvä. Kuvanlaatua voisi kuitenkin parantaa jälkikäsittelyllä, esimerkiksi terävöittämällä kuvaa. 


Kuva 1. Oreifej'n lopputulos.


Kuva 2. HTA-algoritmin lopputulos.

Vaikka staattisissa kuvissa erot ovat pienet, niin algoritmien tuottavat videot eroavat toisistaan selvästi. Molemmat videot on esitetty alla: ensin Oreifej, sitten HTA. Videoilla esiintyvästä uimarista havaitaan, että algoritmit tuottavat epäjatkuvuuksia kuvien välille. Myös aaltoilun luonne muuttuu selvästi: Oreifej'n lopputuloksessa väreily on varsin hienojakoista, HTA:ssa karkeampaa. Näistä videoista on vaikea vetää mitään erityisiä johtopäätöksiä, mutta ne havainnollistavat algoritmien toimintaa ja tuovat esiin myös eroja, joita staattisista kuvista ei voi havaita.



Alkuperäiseen videoon verrattuna käsitellyt versiot selkeyttävät vedenpohjan kuvaa hieman, mutta kokonaisuus pystyy edelleen melko epäselvänä. 

Eroja voidaan tarkastella myö yksinkertaisemmalla esimerkillä. Alla on alkuperäinen video, jossa on keinotekoisesti väreilytetty tekstikuvaa, sekä Oreifej'n ja HTA:n käsittelemät videot:






Näistäkin esimerkeistä nähdään, ettei menetelmiä ole tarkoitettu videon tuottamiseen. 

torstai 8. joulukuuta 2016

Ansaintamallin ja BMC:n tarkennuksia

Liiketoimintapotentiaalin arviointia koskeva blogipostaus jätti monia avoimia kysymyksiä, joten tässä postauksessa tarkennamme ansaintamalliamme ja Business Model Canvasiamme.

Alkuperäinen suunnitelmamme oli myydä veden aaltoilua suodattavaa algoritmia videon- ja kuvankäsittelyohjelmistojen valmistajille. Nykyinen suunnitelmamme on toimia drone-valmistajien jälleenmyyjänä. Kustomoimme ostamamme dronet kehittämillämme lisäominaisuuksilla ja myymme ne eteenpäin ominamme. Yksi tarjottavista lisäominaisuuksista on dronen kanssa käytettävä ohjelmisto, jolla voidaan suodattaa veden aaltoilu dronella kuvatusta videokuvasta. Lisäksi tarjoamme ohjelmointirajapinnat droneemme, jotta asiakkaat voivat itse kehittää dronea hyödyntäviä sovelluksia. Suunnanmuutoksen syy oli, että emme löytäneet riittävästi potentiaalia puhtaasta ohjelmistoliiketoiminnasta. Algoritmimme perustuu kaikkien saatavilla oleviin tutkimustuloksiin, joten on suuri riski, että teknologiasta tulee saataville avoimen lähdekoodin versio. Avoimesta lähdekoodista voisi konsultoinnilla saada aikaan kannattavaa liiketoimintaa, mutta algoritmimme markkina-ala on niin kapea, että pidimme konsultointia liian riskialttiina. Monipuolisella ja laajennettavalla dronella on laajempi markkina-ala, mikä takaa meille tukevamman pohjan tulonläheille,mutta tietysti myös maksaa enemmän markkinointi- ja kehityskustannuksissa. Oletuksenamme on, että drone-laitteiden myynti kasvaa tulevaisuudessa.


Seuraavaksi esittelemme ansaintamallimme sekä Business Model Canvaksen.

Ansaintamalli

Ostamme drone-valmistajilta lisensoimattomia droneja, jotka kustoimoimme omilla lisäominaisuuksilla ja myymme eteenpäin omille asikkaillemme omina tuotteinamme. Asiakkaidemme on mahdollista ostaa myös tukea laitteen käyttöön. Ostettuaan drone-laitteen, asiakkaamme saa käyttöön kattavan kokoelman kehittämiämme lisäominaisuuksia sekä ohjelmointirajapinnat dronen hallintaan. Lisäominaisuuksien laskentateho- ja tallennustarpeita varten sekä hyödyllisten ohjelmointirajapintojen tueksi ylläpidämme pilvipalvelua.



Business Model Canvas


Value proposition
Tavoitteemme on tarjota asiakkaille laadukkaita drone-laitteita kattavilla lisäominaisuuksilla ja ohjelmointirajapinnoilla, joita ei löydy kilpailijoiltamme. Kehittämämme lisäominaisuudet ja ohjelmointirajapinnat mahdollistavat dronen monipuolisen käytön ja niillä me erotumme muista drone-valmistajista.

Customer segments
Asiakassegmenttimme koostuu drone-laitteiden ostoa harkitsevista kuluttajista ja yrityksistä. Laajan lisäominaisuusvalikoiman ja ohjelmointirapintojen myötä asiakkaidemme on kannattavaa valita tuotteemme sillä tuotetta voi soveltaa moneen ongelmaan. Esimerkiksi kalastajat voivat käyttää dronea kalojen etsintään joesta, mutta myös perhon kuljettamiseen vastarannan kalakaverille. Uimarantojen valvojat voivat kartoittaa dronella rantaveteen päätyneitä vaarallisia esineitä sekä viedä pelastusrenkaan hätään joutuneelle. Ohjelmointirajapintojen ansiosta drone voidaan ohjelmoida suorittamaan tehtäviä automaattisesti uimarannalla.

Channels
Verkkokauppa on luonteva kanava dronejen myyntin yksityishenkilöille ja yrityksille tiettyyn rajaan saakka. Yritysasiakkaiden kanssa voimme tehdä myös sopimuksia toimituksista ja myydä tuotteitamme laskulla.

Customer relations
Pidämme yhteyttä asiakkaisiimme sekä markkinoimme tuotettamme sosiaalisen median kautta. Koska tuotteemme on hyvin tekninen, on meidän tarjottava kattava dokumentaatio laitteen, lisäominaisuuksien ja rajapintojen käytöstä. Dokumentaation lisäksi tarjoamme maksullista sähköposti+chat tukea, josta yritysasiakkaat ovat tyypillisesti kiinnostuneita, sillä heille on tärkeää saada laite nopeasti tuotantokäyttöön.

Key activities
Tärkeimmät toimintomme ovat lisäominaisuuksien kehitys, jälleenmyyntisuhteiden ylläpito, asiakassuhteiden ylläpito ja myynti. Meidän täytyy jatkuvasti kehittää uusia ja hyödyllisempiä lisäominaisuuksia ja rajapintoja, jotta säilytämme kilpailukykymme. Hyvien suhteiden säilyttäminen laitevalmistajiin on myös tärkeää, sillä tarvitsemme drone-laitteet alan parhailta valmistajilta. Hyvät suhteet säilyvät huolehtimalla maksukyvystä ja pitämällä kiinni tarkasti sopimuksista. Asiakassuhteiden ylläpito heijastuu suoraan imagoomme markkinoilla, joten on tärkeää tarjota ensiluokkainen dokumentaatio ja tuki. Nettikaupan ylläpito ja toimituksista huolehtiminen ovat tärkeitä toimia kassavirran ylläpidossa.

Key resources
Tärkeimmät resurssimme ovat tuotanto, ohjelmistokehittäjämme, myynnin ja markkinoinnin henkilöstö sekä asiakaspalvelu. Tuotannossa teemme tarvittavat modifikaatiot laitetoimittajalta saamiimme laitteisiin ja pakkaamme ne jatkotoimitusta varten. Ohjelmistokehittäjät pitävät meidät kilpailukykyisinä kehittämällä ominaisuuksia, jotka erottavat meidät kilpailijoista eduksemme. Myynti- ja markkinointi markkinoi potentiaalisille asiakkaille tuotteitamme. Asiakaspalvelu on yhteydessä asiakkaisiimme, kun he tarvitsevat tukea.

Key partners
Avainkumppaneita ovat meille alkuperäiset laitevalmistajat ja pilvipalveluntarjoajat. Laitevalmistajat toimittavat meille laadukkaat drone-laitteet, jotka kustomoimme kehittämillämme lisäominaisuuksilla. Pilvipalvelun avulla pystymme tarjoamaan lisäominaisuuksia, jotka ovat laskennallisesti liian raskaita toteutettavaksi asiakkaan päätelaitteilla, tai tarvitsevat ulkoista tallennuskapasiteettia.

Revenue streams
Päätulonlähteenä liiketoiminnassamme on drone-laitteiden myyntitulot. Lisäksi tarjoamme maksullista tukea tuotteidemme käyttöön.

Cost structure
Toimintamme kulut muodostuvat drone-laitehankinnoista, pilvialustan käyttökuluista, drone-laitteiden toimituskuluista, drone-laitteiden kustomoinnista, lisäominaisuuksien kehityksestä sekä markkinoinnista.
Jatkuvia kuluja muodostuu henkilöstöstä, joten on tärkeää pitää myynti kokoajan käynnissä.



perjantai 2. joulukuuta 2016

Prototyypin kehittäminen, osa 2



Kuluva viikko on sujunut prototyypin kehittämisen kannalta erittäin hyvin, sillä työn alla ollut toinen algoritmi saatiin viimeinkin toimimaan. Algoritmi perustuu edellisessä postauksessa mainittuun tutkimukseen, jonka ovat kirjoittaneet Halder, Tahtali ja Anavatti vuonna 2014 [1]. Kirjoittajien nimien pohjalta olemme ristineet menetelmän HTA-algoritmiksi. 

HTA-algoritmi on iteratiivinen kuten Oreifej'n menetelmä. Siinä missä Oreifej'n menetelmä perustuu kuvan rekisteröimiseen aikakeskiarvoa vastaan, HTA:ssa referenssikuvana käytetään videon ensimmäistä kuvaa. Kun muut kuvat on rekisteröity ensimmäistä vastaan, lasketaan pikseleiden keskimääräinen siirtymä ja siirretään jokaisen kuvan pikseleitä tämän perusteella. Alkuperäisessä tutkimuksessa menetelmän todettiin tuottavan parempilaatuista kuvaa ja olevan laskennallisesti Oreifej'n menetelmää kevyempi.

Tutkimuksen väitteet kuvanlaadusta on helppo todentaa yksinkertaisilla esimerkeillä. Kuvissa 1, 2 ja 3 on esitetty vertailu Oreifej'n ja HTA-algoritmin välillä. Kuvien 1 ja 2 lähdemateriaalina käytetty video löytyy Githubista.

 


Kuva 1. Vertailu tiiliseinävideolla. Vasemmalla pysäytyskuva, oikealla Oreifej'n menetelmän lopputulos ja alla HTA-algoritmin lopputulos.



 

Kuva 2. Vertailu shakkilautavideolla. Alla HTA-algoritmin lopputulos.


Kuva 3. Vertailu tekstivideolla. Alla HTA-algoritmin lopputulos.

Kaikista kolmesta kuvasta voidaan todeta, että HTA-algoritmin kuvanlaatu on selvästi parempi. Erityisesti kuvassa 3 teksti saadaan rekonstruoitua lähes täydellisesti, ja teksti on täysin luettavaa. Tämä on vaikuttava tulos erityisesti siksi, että luettavuuden kannalta yksityiskohdilla on suuri merkitys. Kuvassa 2 HTA-algoritmin tuottama ruudukko on paljon vähemmän vääristynyt kuin Oreifej'n vastaava. Kuvassa tosin esiintyy pieniä artefakteja, joita Oreifej'n lopputuloksessa ei ole.

Vaativammissa testeissä algoritmien välillä ei kuitenkaan havaittu kuvanlaatueroja. Kuvissa 4 ja 5 on vertailtu Oreifej'n ja HTA:n lopputuloksia kahdessa testissä, jotka esiteltiin jo edellisessä postauksessa.




 Kuva 4. Oreifej'n algoritmin lopputulos yllä, HTA:n alla.



Kuva 5. Oreifej'n menetelmän tulos yllä, HTA:n alla.

Kuvissa 4 ja 5 kahden menetelmän väliset erot ovat hyvin pienet, ja samat yksityiskohdat erottuvat molemmista kuvista. Oreifej'n lopputulokset näyttävät hieman pehmeämmiltä, kun HTA:ssa aaltoilua pystyy vielä havaitsemaan. Suurimmat erot syntyvät videolla liikkuvien elementtien kohdalla. Koska HTA:ssa kuvat rekisteröidään ensimmäistä ruutua vastaan, voi ongelmia syntyä jos ensimmäinen kuva eroaa muista huomattavasti. Tämä on havaittavissa kuvassa 4 veneen osalta.

Olemattomat erot algoritmien välillä saattavat johtua videoiden epätarkkuudesta. Selvästikin HTA-algoritmilla on paljon suurempi potentiaali tuottaa erinomaista jälkeä, mutta testimateriaalilla näitä eroja ei saada esiin. Kameran tulisi ehkä olla lähempänä kuvattavaa vedenpintaa.

 Ajoaika HTA-algoritmilla on Oreifej'n algoritmia suurempi, mikä johtuu käytännössä prototyypin toteutuksesta. Alkuperäisessä tutkimuksessa HTA havaittiin nopeammaksi, mihin on epäilemättä laskettu mukaan myös Oreifej'n algoritmin toinen vaihe, videomatriisin minimointi. Tätä vaihetta ei kuitenkaan voida suuriresoluutioisella videolla suorittaa, joten olemme käyttäneet sitä vain kuvissa 1, 2 ja 3. Videomatriisin minimoinnin kanssa Oreifej olisi varmasti hitaampi, jos HTA:n toteutus olisi paremmin optimoitu.

Tekniikan asettamia rajoitteita HTA ei muuta, vaan ne pysyvät samoina. Algoritmi suoriutuu liikkuvien elementtien käsittelystä ehkä jopa huonommin. Joka tapauksessa HTA-algoritmi on toimiva menetelmä staattisen vedenpohjan kuvaamiseen pinnan yläpuolelta.

Kuvissa 4 ja 5 on käytetty lähdemateriaalina seuraavia videoita:

Lähteet

[1] Halder, K. et al. 2014. High accuracy image restoration method for seeing through

tiistai 29. marraskuuta 2016

Reflektio prototyypin esittelystä

Pidimme 18.11 esityksen prototyyppimme toiminnasta ja sen kehitystyöstä. Esityksen tavoitepituus oli 3min, jonka ylitimme merkittävästi 6min esityksellä. Taivoitepituudessa pysyminen olisi vaatinut huolellisempaa esityksen suunnittelua ja harjoittelua.

Esityksen rakenne oli hyvä. Alun ryhmäesittelyn jälkeen esiteltiin napakasti prototyypin teoreettinen pohja, jonka jälkeen siirryttiin esityksen pääaiheeseen, eli prototyypin tavoitteiden ja tulosten esittelyyn. Prototyypin tavoitteet ilmaistiin selkeästi. Prototyyppi oli rakennettu, jotta moniin tekniikka koskeviin kysymyksiin saataisiin vastaus. Vastaukset annettiin näyttämällä esimerkkejä prototyypin suorituskyvystä. Useisiin kysymyksiin annettiin kuvaileva vastaus, kuten “kameran erottelukyvyllä on suuri merkitys” . Tarkat numeeriset arvot vastauksina kysymyksiin olisivat nostaneet esityksen uskottavuutta. Esityksessä tuotiin hyvin esille myös asioita, jotka tulivat ilmi prototyyppiä käyttämällä, mutta joita ei alun perin lähdetty tutkimaan. Tiheän aallon “puuroutuminen” pakatussa videossa tuli yllätyksenä prototyypin rakentajille. Prototyyppiä käsittelevä osio olisi vaatinut eniten tiivistämistä.

Prototyypin rakentaminen olisi näyttäytynyt mielekkäämpänä, jos prototyypin käyttämälle teknologialle olisi esityksessä annettu selkeä sovelluskohde. Nyt prototyypin suorituskykyä jouduttiin arvioimaan hyvin yleisesti, eikä pystytty sanomaan, onko prototyypin suorituskyky riittävä johonkin sovellukseen. Tämä asia tuli esille myös palautteessa.

Lopuksi kerrottiin lyhyesti, mutta riittävän tarkasti, mitä seuraavaksi olemme tekemässä prototyypin osalta. Tarkoitus on tutkia mahdollisuuksia kehittää prototyypin algoritmia paremmaksi. Prototyypin jatkokehitys olisi perustellumpaa, jos nykyiselle prototyypille voisi asettaa sovelluksen kautta vähimmäisvaatimuksia, joita se ei vielä nyt täyttäisi.

Koko esitys on nähtävissä täällä.

perjantai 25. marraskuuta 2016

Kutsu Grande Finaleen!

Oletko kyllästynyt, ettet näe kunnolla veden pinnan alle? Tervetuloa matkalle pinnan alle yhdessä Fluidyn kanssa.

Fluidy esittelee uuden veden pintahäiriötä poistavan menetelmän perjantaina 9.12 Grande Finalessa. Menetelmä on jo tarjonnnut huikeita tuloksia ja kehitämme algoritmiamme jatkuvasti. Menetelmämme tarjoaa vaivattoman tavan kartoittaa vedenalaista maailmaa, esimerkiksi vedenalaisten ekosysteemien tutkiminen.

Tule kuulemaan lisää 9.12 Grande Finale tapahtumaan!