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!


tiistai 22. marraskuuta 2016

Prototyypin kehittäminen ja tulokset

Prototyyppi perustuu Omar Oreifej’n vuonna 2011 kuvaamaan menetelmään [1]. Olemme kehittäneet myös algoritmin kehittyneempää versiota [2], mutta sen rakentaminen on osoittautunut oletettua vaikeammaksi. Tässä kirjoituksessa kuvaamme ensimmäisen menetelmän toiminnan ja esittelemme sen avulla tehtyjä havaintoja. Prototyypin koodi löytyy Githubista.

Oreifej’n menetelmä on iteratiivinen ja kaksivaiheinen. Kuva 1 esittää algoritmin toimintaperiaatteen. Ensimmäisessä vaiheessa lasketaan videokuvien aikakeskiarvo ja siirretään jokaista videokuvaa kohti tätä aikakeskiarvoa. Tämä tapahtuu estimoimalla keskiarvon ja yksittäisen kuvan välinen optinen vuo, joka kuvaa pikselien liikettä kuvien välillä. Tämän jälkeen kuvien vääristymät (keskiarvon näkökulmasta) voidaan poistaa. Tämä vaihe toistetaan suodatetuille kuville uudestaan, kunnes kuvien aikakeskiarvo stabiloituu.

Alkuperäisessä tutkimuksessa vääristymien poistoon käytettiin kuvien elastista rekisteröintiä aikakeskiarvoa vastaan. Rekisteröinnissä ratkaistaan yhteinen koordinaatisto, jossa kumpikin kuva voidaan esittää siten että kuvat asettuvat päällekkäin. Kuva 2 havainnollistaa rekisteröinnin ideaa. Kehitysvaiheessa totesimme kuitenkin, että elastinen rekisteröinti on laskennallisesti liian raskas.

Algoritmin toisessa vaiheessa koko videosta muodostetaan matriisi, jossa pystyvektorit ovat yksittäisiä kuvia. Minimoimalla tämän matriisin astetta saadaan mahdollisimman moni kuva esittämään täysin sama informaatio. Minimointitehtävässä poistetaan siis satunnaisia virheitä, jotka esiintyvät vain harvoissa kuvissa. Tämä käsittely poistaa tehokkaasti esimerkiksi ensimmäisestä vaiheesta jääneitä haamukuvia, sekä satunnaisia heijastuksia.

Vaikka algoritmin lopputuloksena on periaatteessa sama määrä videokuvia kuin mitä sisään syötetään, eivät lopputuotteena saadut videokuvat enää välttämättä muodosta sulavaa videota. Käytännössä lopputuloksena käytetäänkin näiden kuvien aikakeskiarvoa.

oreifej.png
Kuva 1: Oreifej’n menetelmä.


Kuva 2. Esimerkki kahden kuvan rekisteröinnistä [3].

Oreifej’n tutkimuksessa [1] esitellään algoritmin tuloksia mustavalkoisilla kuvilla ja simuloidulla aaltoliikkeellä. Nämä tulokset eivät kerro meille juuri mitään, sillä todellisen maailman videokuvissa aaltoliike on monimutkaisempaa ja kuvissa esiintyy myös satunnaisia häiriöitä, kuten heijastuksia.

Prototyypin tavoitteena oli selvittää tekniikan rajoitteet. Koska tekniikka on niin uutta, oli selvitettävä, voiko menetelmää soveltaa todellisen maailman tilanteisiin. Kiinnostavia rajoitteita oli siis useita:

  • Aaltoliikkeen luonne, aallonpituus ja amplitudi
  • Materiaalin määrä (videon pituus) ja laatu
  • Veden sameuden ja heijastusten vaikutus
  • Videossa esiintyvien objektien liikkeen vaikutus
  • Kameran kuvakulma ja liike
  • Algoritmin ajoaika

Testeissä kävi nopeasti selväksi, ettei menetelmä sovellu sameaan veteen, vaan pohjan on erotuttava videolla selkeästi. Myös voimakkaat heijastukset estävät menetelmän käytön. Heijastuksia on kuitenkin mahdollista vähentää käyttämällä polarisoivaa linssiä.

Kuvissa 4 ja 5 on esitetty esimerkki prototyypin suorituskyvystä. Vasemmalla on pysäytyskuva videosta, jossa esiintyy huomattavaa veden aaltoilua, mikä estää yksityiskohtien havaitsemisen. Oikealla puolestaan on esitetty lopputulos. Nähdään selvästi, että algoritmi kykenee suodattamaan häiriöt pois ja yksittäiset kivet erottuvat selkeästi. Toisaalta vasemman kuvan yläosassa nähdään voimakasta “puuroutumista”. Tämä johtuu siitä, että videota on pakattu aggressiivisesti eikä pakkausalgoritmi kykene esittämään aaltoilua tarkasti. Oikean kuvan yläosassa nähdään, että puuroutuminen aiheuttaa informaation häviämisen, eikä vedenpohjaa pystytä palauttamaan. Vähemmällä pakkaamisella informaatio saataisiin säilytettyä, mutta tämä merkitsee videon bittinopeuden ja siten tiedostokoon kasvua.



Kuva 4. Esimerkkikuva purosta.

Kuva 5. Algoritmin lopputulos.

Kuvissa 5 ja 6 on esitetty toinen esimerkki, jossa on mukana myös liikkuvia objekteja. Vene ja uimarit ovat kuvissa selvästi eri paikoissa, koska ne liikkuvat videolla. Lopputuloksesta nähdään, että algoritmi saa asetettua veneen ja uimarin paikoilleen ilman merkittäviä haamukuvia. Myös köysi, jolla uimari vetää venettä, erottuu lopputuloksesta selkeästi. Toisaalta oikealla yläkulmassa oleva uimari näyttää häviävän lopputuloksessa.

Kuvassa 6 nähdään myös, että algoritmi onnistuu selkeyttämään kuvaa merenpohjasta huomattavasti. Yksittäiset kivet erottuvat selvästi, ja isompia objekteja voisi tunnistaa pohjasta helposti.

Kuva 5. Esimerkki merestä.

Kuva 6. Algoritmin lopputulos.


Algoritmi toimii erinomaisesti myös rantavedessä, kuten kuvista 7 ja 8 näkee. Vedenpohja saadaan palautettua hyvin tarkasti ja eri muodot erottuvat selkeästi. Objektien tunnistaminen pohjasta on mahdollista, ja suurempi resoluutio mahdollistaisi entistä pienempien esineiden tunnistamisen. Aaltojen vaahtopäät aiheuttavat kuitenkin pieniä ongelmia. Kuvissa 9 ja 10 on toinen esimerkki, josta voi tehdä samankaltaisia havaintoja.

mexico5_sample.png
Kuva 7. Esimerkki merenrannasta.

mexico53.jpg
Kuva 8. Merenrannan käsittelyn lopputulos.

mexico_sample.png
Kuva 9. Toinen esimerkki rantavedestä.

mexico2.jpg
Kuva 10. Toisen esimerkin lopputulos.

Algoritmin ajoaika on muutamia minuutteja 5-10 sekunnin videolla, jonka resoluutio on 720p. Toisaalta ajoaikaan vaikuttaa huomattavasti se, kuinka nopeasti keskiarvokuva stabiloituu. Lähelle reaaliaikaisuutta ei kuitenkaan päästä, mikä karsii pois monia mahdollisia sovelluskohteita.

Testeissä kävi myös ilmi, että algoritmi kuluttaa muistia erittäin paljon, sillä jokainen videokuva esitetään matriisimuodossa. Algoritmin ensimmäisen vaiheen osalta muistinkäyttöä on mahdollista pienentää merkittävästi, mutta toinen vaihe edellyttää, että koko video on ladattuna muistiin. Käytännössä toinen vaihe vaatii muistia niin paljon, ettei sen suorittaminen korkearesoluutioisella videolla ole mahdollista. Testeissä toisen vaiheen suorittaminen vaati myös noin tunnin ajoajan. Koska vaikutus kuvanlaatuun on melko vähäinen, ei toisen vaiheen suorittaminen ole järkevää.

Vaikka algoritmi pystyy jossain määrin käsittelemään myös liikkuvia objekteja, kamera ei saa liikkua. Jos kamera liikkuu, videon aikakeskiarvo muuttuu niin sotkuiseksi, ettei siitä ole enää mahdollista palauttaa suodatettua kuvaa. Tämä on erittäin merkittävä rajoite, mutta jos kuvausolosuhteita voidaan hallita, ei ongelmaa ole. Testiaineiston etsintä internetistä osoittautui kuitenkin tämän takia hankalaksi.

Prototyypin avulla olemme saaneet osoitettua, että menetelmää on mahdollista soveltaa tosimaailmaan. Vaikka tekniikka asettaa tiukkoja rajoitteita, voidaan vedenpohjasta hankkia tarkkoja kuvia esimerkiksi dronen avulla. Tilanteita, joissa tarvitaan staattista kuvaa vedenpohjasta ilman tarvetta reaaliaikaisuudelle ovat esimerkiksi erilaiset etsintä- ja kartoitustehtävät.


Lähteet

[1] Oreifej, O. et al. 2011. A Two-Stage Reconstruction Approach for Seeing Through Water. http://www.cs.ucf.edu/~oreifej/papers/WATER_CVPR2011.pdf Haettu 21.11.2016.

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

[3] Zöllei L., Fisher III J.W., Wells III W.M. An Introduction to Statistical Methods of Medical Image Registration. Mathematical Models in Computer Vision: The Handbook, Springer 2005.


perjantai 18. marraskuuta 2016

Liiketoimintapotentiaalin arviointi

Toimimme drone yrityksien jälleenmyyjinä. Lisäämme oman ohjelmistomme droneihin ja myymme ne eteenpäin.

Tarjoamme asiakkaille hyvälaatuisia droneja uusilla ominaisuuksilla. Uusien ominaisuuksien avulla saamme kilpailukykyä muihin valmistajiin. Esimerkiksi veden pinnan alle näkevällä algoritmillamme voimme tarjota asiakkaille uusia kokemuksia, joita muut yritykset eivät vielä tarjoa.

Asiakassegmenttimme koostuu drone-laitteiden ostoa harkitsevista kuluttajista. Kehittämämme algoritmit eivät määritä asiakkaitamme, vaan ne tuovat lisäarvoa asiakkaille. Uusien ominaisuuksien avulla asiakkaat voivat myös soveltaa laitteita uusiin käyttötarkoituksiin, jolloin myös asiakkaamme ovat mukana kehittämässä palveluitamme.

Tarjoamme asiakkaille tuotteita verkkokaupan välityksellä. Pidämme jatkuvaa yhteyttä asiakkaisiimme asiakaspalvelun välityksellä.Ydin Toimintaamme ovat ohjelmiston kehitys, jälleenmyynti suhteet ja nettikaupan ylläpito. Kehitämme ohjelmistoamme jatkuvasti paremmaksi, jotta säilytämme kilpailukykymme ja pystymme tarjoamaan uusia ominaisuuksia tulevaisuudessa. Avainkumppanit ovat meille alkuperäiset laitevalmistajat ja pilvipalveluntarjoajat. Pilvipalveluntarjoajien avulla mahdollistamme asiakkaille parhaan mahdollisen laadun.

Päätulonlähteenä liiketoiminnassamme onkin drone-laitteiden myyntitulot sekä näihin kohdistuvat palvelut. Kustannusrakenteemme koostuu jälleenmyymisestä, pilvipalvelun tarjoamisesta, logistiikasta, ohjelmiston kehityksestä ja asiakkaiden hankinnasta.



keskiviikko 9. marraskuuta 2016

Avoimen ohjelmiston Fluidy?

Vapaan lähdekoodin ohjelmistojen taloudellisesti kannattava kehittäminen on suuri haaste tämän päivän ohjelmistomarkkinoilla. Perinteisesti ohjelmistoyritykset ovat tuottaneet voittoa myymällä suljetun lähdekoodin ohjelmiston lisenssejä tai niitä hyödyntäviä tuotteita. Avoimen ohjelmiston kaupallistamisessa tulot täytyy kerätä muita väyliä, esimerkiksi tuotteeseen liittyvien palveluiden kautta.

Liiketoiminta

Huolimatta avoimen ohjelmiston kaupallistamiseen liittyvistä haasteista se nähdään suorana haastajana alan perinteisille menetelmille. Monet menestyvät ohjelmistoalan yritykset (esimerkiksi IBM ja Google) panostavat avoimen ohjelmiston kehitykseen tavoittelematta suoria voittoja. Motivaatio voi olla kriittisen järjestelmän (esimerkiksi Linux) kehittäminen, kilpailijan monopoliaseman heikentäminen, käyttäjäkunnan kerryttäminen tai teknologiseen arvoketjuun osallistuminen.

Nämä eivät kuitenkaan välttämättä ole houkuttelevia motiiveja ohjelmistoalan uusille ja pienikokoisille tulokkaille, sillä heidän kasvunsa on usein yksittäisten innovaatioiden ja niitä suojaavien immateriaalioikeuksien varassa. Avoin ohjelmisto voi kuitenkin tehdä uuden yrityksen tuotteesta houkuttelevamman, sillä sen käyttäjät voivat itse jatkokehittää ja ylläpitää ohjelmistoa, vaikka yritys itse lopettaisikin toimintansa. Tämä vähentää asiakkaan riskiä.

Suositut liiketoimintamallit

Huomattavimpia avoimen ohjelmiston liiketoimintamalleja ovat “dual licensing”, “software as a service”, “freemium”, lahjoituspohjainen rahoitus ja joukkorahoitus. Kaikki edellämainitut liiketoimintamallit pyrkivät valjastamaan suuren ja kansainvälisen avoimen ohjelmiston yhteisön kestävän liiketoiminnan rakentamiseksi.

Dual licensing -mallissa ohjelmistoa tarjotaan paitsi avoimen lähdekoodin lisenssin niin myös erillisen proprietaarisen lisenssin alla. Omistusohjelmistoa voidaan myydä avoimen ohjelmiston kehityksen rahoittamiseksi. Ilmaisen, avoimen lähdekoodin ohjelmiston avulla on helppo houkutella käyttäjiä, jotka tutustumisvaiheen jälkeen siirtyvät helpommin maksaviksi asiakkaiksi.

Avoimen lähdekoodin ohjelmistoja voidaan myydä myös palveluna tarjoamalla käyttäjille jäsenyyksiä yrityksen palvelimilla pyörivään ohjelmistoon. Sen sijaan freemium-mallissa ohjelmiston käyttäjät saavat ilmaiseksi käyttöönsä pelkistetyn avoimen lähdekoodin version ohjelmasta, mutta he joutuvat maksamaan proprietaarisista ominaisuuksista tai virtuaalihyödykkeistä. Osa kehitetystä ohjelmistosta on siis jonkinlaisen maksumuurin (paywall) takana.

Fluidy

Valinta kehittää avointa ohjelmistoa vaikuttaisi merkittävällä tavalla yrityksemme kykyyn kasvaa ja ylläpitää kilpailuetua. Olemme jo aiemmissa kilpailututkimuksissamme huomanneet, ettei pinta-aaltojen häiriöitä poistavan teknologian saralla ole tällä hetkellä juuri lainkaan toimijoita. Mielestämme tämä kaupallisen toiminnan tyhjiö tarjoaa hyvät puitteet avoimen lähdekoodin ohjelmistotalon onnistuneelle rakentamiselle.

Mikäli alalle kuitenkin ilmestyisi omistusohjelmistoa tarjoavia kilpailijoita, olisi heillä hyvät edellytykset kilpailla avoimen lähdekoodin teknologiamme kanssa. He voisivat helposti rakentaa tärkeimpien keksintöjemme päälle kehittyneempää ohjelmistoa, jonka kriittisimmät ominaisuudet he sitten suojaisivat patenteilla. Epäilemme kuitenkin, ettei kilpailevaan toimintaan ryhtyminen näin pienillä markkinoilla olisi kannattavaa. Mikäli teknologian kysyntä kuitenkin osoittautuisi odotettua suuremmaksi tai tarve kehittyneemmille algoritmeille olisi ilmeinen, voisimme aina muuttaa liiketoimintamalliamme tilanteeseen paremmin sopivaksi. Ilmainen ja avoin ohjelmisto onkin erinomainen tapa houkutella erilaisia asiakasryhmiä ja kartoittaa teknologian kysyntää.

Teknologiallemme sopivimmat liiketoimintamallit ovat erilaiset freemium-mallit  ja software as a service. Freemium-malleissa olisi mielekästä pitää tuotteemme teknologinen ydin avoimena, ja siten muiden osapuolien laajennettavissa, mutta tarjota avointa teknologiaa hyödyntäviä helppokäyttöisiä lisäosia tai kehittyneitä rajapintoja asiakkaille maksua vastaan.

Teknologiaan kohdistuva suhteellisen pieni kysyntä, vähäinen tietämyksemme markkinoista ja tämänhetkisten resurssiemme puutteellisuus kannustavat hyödyntämään avoimen ohjelmiston liiketoimintamalleja. Siten pystyisimme hyödyntämään avoimen ohjelmistokehityksen yhteisön resursseja ja kehittämään ohjelmistomme ydintä tarvittaessa hyvinkin kustannustehokkaasti. Ottaen huomioon, ettemme suunnittele jo olemassa olevan teknologian jatkokehittämistä tai kokonaan uusien innovaatioiden kaupallistamista, ei avoimiin ohjelmistoihin liittyvä yhtiösalaisuuksien käytännöllinen puute ole meille kriittinen ongelma.

Avoimen lähdekoodin teknologinen ydin yhdistettynä sitä hyödyntäviin maksullisiin applikaatioihin, lisäosiin ja palveluihin voisi olla tilanteeseemme sopivin liiketoimintamalli. Teknologisen ytimen kehitystä voisi tarvittaessa rahoittaa joukkorahoituksella tai yhteistyöllä alalla toimivien organisaatioiden, kuten tutkimusryhmien, kanssa.

Lähteet

1. Business models for open-source software https://en.wikipedia.org/wiki/Business_models_for_open-source_software#cite_note-67 [1 Nov 2016]

2. Mann R. (2006), Commercializing open source software: do property right still matter?, Harvard Journal of Law & Technology, Volume 20, Available: http://jolt.law.harvard.edu/articles/pdf/v20/20HarvJLTech001.pdf [1 Nov 2016]


3. Sommerville, I. (2016) Software Engineering, 10th edition, Edinburgh Gate: Pearson Education Limited