Tulipallo tunnistusta

Aloittaja Zalama, 16.03.2020, 14:25:38

« edellinen - seuraava »

Zalama

Hei

Yksi harrastukseni on neuroverkkojen kehittäminen.

Projekti jota olen ajatellut vihdoin toteuttamaan olisi neuroverkolla tulipallojen tunnistus kuvista / videosta. Tarkka arkkitehtuuri neuroverkolle ei ole vielä tiedossa vaan varmasti tulisin tekemään useampia iteraatioita. Suurin ongelma on opetusdata tai sen puute.

Olisikohan ihmisillä halukkuutta auttaa minua? Tarvitsisin kuvadataa tulipalloista (sekä myös tilanteista kun ei näy tulipalloja). Mahdollisesti myös revontulista. Lupaan suojella tekijänoikeuksianne enkä jaa enkä levitä kuvia millään tavalla. En käytä niitä tai niillä opetettua neuroverkkoa mitenkään kaupallisiin tarkoituksiin. Jos sellaiselle joskus edes teoreettisesti tulisi ajatusta niin sellaisiin kysyisin luvat erikseen.



Lyhyt oppimäärä miten neuroverkot toimii. Neuroverkoille syötetään X määrä opetusaineiston lähtödataa ja verrataan mitä tulee ulos. Ensimmäisillä kerroilla tulee lähinnä hevonkukkua, mutta muutamalla painokertoimia nähdään alkaako tulokset paranemaan vai heikkenemään. Tätä toistetaan luokkaa miljoonia kertoja niin neuroverkot oppivat tunnistamaan muotoja. Opetusdataa ei sinänsä tallenneta neuroverkkoon sisälle mitenkään, mutta niiden sisältämä informaatio (esim muodot jne) tulevat osaksi isoa mustaa laatikkoa.

Tässä yksi esimerkki projektini. Esimerkiksi piirtämällä silmä neuroverkko osaa jo ymmärtää, että vieressä pitäisi olla toinen silmä ja silmien alapuolella suu.
https://www.youtube.com/watch?v=t-tvLzGFN2k

Tässä toinen enemmän kuvantunnistukseen liittynyt enemmänkin testi:
https://www.youtube.com/watch?v=8HZOkJ_v7Yo
Kuvassa tulee hieman virheellistä tunnistusta (kojelautaa luulee välillä lentokoneeksi). Videokuva on omasta Sveitsin visiitistä.

ptk

Hei,

Montako teraa haluat?  Itselläni on lähes koko taivaan kuvaavasta kamerasta monta sataa tuntia videota.  Tunnistettuja tulipalloja löytyy ja varsinkin sitä missä niitä ei näy.
Veikkaisin että mustalle laatikolle pitäisi jotenkin pystyä ilmaisemaan millä kulmanopeudella kirkas piste liikkuu, koska se erottaa kirkkaan satelliitin himmeästä tulipallosta.  Joku skaalausparametri?  Ehkä viirun leveys auttaa jonkin verran.  Jos kamera ei kuvaa jatkuvasti ts. valotusten välissä on katko, katkeaa myös viiru.

Raakadata on n. 14 bittistä pakkamatonta ja debayeroimatonta videota SER-formaatissa.   AVIksi purkaminen itse asiassa vain kasvattaa kokoa.  Ehkä jollakin AV1-koodekilla niitä saisi pienemmiksi.

Tässä joitakin Taivaanvahtiin raportoituja havaintoja
https://www.taivaanvahti.fi/observations/browse/pics/3541685/observation_id/desc/0/20

Onnea yritykselle!
Tv. Pekka

Zalama

Lainaus käyttäjältä: ptk - 16.03.2020, 20:31:56
Hei,

Montako teraa haluat?  Itselläni on lähes koko taivaan kuvaavasta kamerasta monta sataa tuntia videota.  Tunnistettuja tulipalloja löytyy ja varsinkin sitä missä niitä ei näy.
Veikkaisin että mustalle laatikolle pitäisi jotenkin pystyä ilmaisemaan millä kulmanopeudella kirkas piste liikkuu, koska se erottaa kirkkaan satelliitin himmeästä tulipallosta.  Joku skaalausparametri?  Ehkä viirun leveys auttaa jonkin verran.  Jos kamera ei kuvaa jatkuvasti ts. valotusten välissä on katko, katkeaa myös viiru.

Raakadata on n. 14 bittistä pakkamatonta ja debayeroimatonta videota SER-formaatissa.   AVIksi purkaminen itse asiassa vain kasvattaa kokoa.  Ehkä jollakin AV1-koodekilla niitä saisi pienemmiksi.

Tässä joitakin Taivaanvahtiin raportoituja havaintoja
https://www.taivaanvahti.fi/observations/browse/pics/3541685/observation_id/desc/0/20

Onnea yritykselle!
Tv. Pekka

Se neuroverkoissa on hauskaa, että niille ei erikseen tarvitse keksiä parametria vaan nimenomaan neuroverkko keksii ne parametrit aivan itse. Tosin arkkitehtuurissa pitää ottaa huomioon eli jos haluaa jonkinlaista aikaan (ja sen derivaattoihin) perustuvaa tunnistusta niin toki pitää olla siihen informaatio saatavilla. Osittain kuvissa informaatiota on kuitenkin valotusajan kautta. Vaihtoehtoisia tapoja on monenlaisia ratkaista tätä arkkitehtuurin avulla. Opettelin vähän aikaa sitten hyödyntämään myös pilvessä käytössä olevia tensor processing unit (TPU) laskentayksiköitä oman koneen näyttönohjaimen sijaan. Tällä saa aikalailla lisäpotkua vielä laskentaan.

Kuitenkin erittäin hyvä huomio eli se pitää kuitenkin ottaa huomioon.  Tämä pitää myös ottaa opetusaineistossa huomioon.

Neuroverkoille syötettävä aineisto yleensä aina skaalataan resoluutioltaan hyvin pieneksi (luokkaa 224x224 - 299x299 pikseliä). Tyypillisesti hyvä nyrkkisääntö on että noin 1000 kuvaa olisi hyvä eri luokista. Eli tyyliin 1000 kuvaa tulipalloista, 1000 kuvaa ilman tulipalloja (ei sateliitteja) ja 1000 kuvaa sateliittien kanssa. Vähemmälläkin kyllä pärjää hyvin alkuun mutta saisi varmaan olla minimissään 100. Neuroverkko palauttaa jokaiselle taulukkomuotoisen todennäköisyyden. Jokainen todennäköisyys on itsenäinen todennäköisyys eli summa ei ole 1. Se voisi olla esimerkiksi [ei havaittavaa, tulipallo, sateliitti]


Esimerkiksi tilanne jossa ei olisi tulipalloa tai sateliittia vastaus olisi tyyliin:
[0.985, 0.01, 0.02]

Sateliitilla ja tulipallolla todennäköisesti säilyy jonkinlainen korrelaatio, koska niissä on paljon samaa. Tilanne jossa tulipallo olisi vastaus tähän tyyliin:
[0.22, 0.75, 0,42]

Mikään kiire hoppu minulla ei ole sillä projekti ollut mielessä jo pitkään, mutta miten pääsisin käsiksi mahdolliseen aineistoon? :)

naavis

Ideaalitapauksessa materiaalia olisi varmaan myös useasta eri kamerasta, koska eri kameroissa näkyy eri tavalla esim. ympäröivää maisemaa tai kuva on muuten vain erilainen. Tietty joka tapauksessa puut ja muu maisema kannattaa maskata koulutusmateriaalista varmaan pois.

Zalama

Tosiaan mielellään eri kameroista, mutta puita ei kannata erikseen maskata pois. Nimenomaan hyvä opettaa neuroverkko jättämään ne huomiotta. Yksi perinteinen luokittelu "harjoitus" on opettaa neuroverkko tunnistamaan kissa ja koira. Tällöin nimenomaan otetaan kuvia kissoista ja koirista mahdollisimman eri tilanteista.

Itse ihan työssäkin ohjelmistokehityksessä mukana olevana ajattelen ensimmäisen version olevan jonkinlainen POC (proof of concept).  Mitään liian hienoa ei kannata rakentaa kerralla.

Jarmo Moilanen

Aineistoahan kyllä löytyisi. Minullakin muistaakseni vuodesta 2006 lähtien. Reilut 150 gigaa per talvi (n. elokuu-toukokuun alku) videoita joissa on pelkästään meteori tai tulipallo (min. 2 sekunnin videoita).

Toki neuroverkot ovat mielenkiintoisia. Silti ihmettelen mitä lisähyötyä se toisi? On jo olemassa erittäin hyviä ohjelmia jotka osaavat tunnistaa meteorit ja tulipallot. Osaavat jopa ehdottaa mihin meteoriparveen ne todennäköisesti kuuluvat. Eikä niiden tunnistamiseen neuroverkkoja ole tähän mennessä tarvittu.

Tulipallon tunnistus on aika yksioikoista reaaliaikaista videokuvan tutkimista. Kun tapahtuu riittävän isoja muutoksia niin otetaan video talteen ja vieläpä niin että videopuskurista tallennetaan haluttu määrä ruutuja ennen tunnistusta. Ja tämä kaikki tapahtuu lennosta. Toki virhetunnistuksia myös tulee (satelliitti väläykset yleisimpiä), mutta jotkin ohjelmat osaa suurimman osan niistäkin karsia automaattisesti pois ja loput on käyttäjän asettamista parametreistä kiinni.
Jarmo

Zalama

Lainaus käyttäjältä: Jarmo Moilanen - 17.03.2020, 23:14:47
Aineistoahan kyllä löytyisi. Minullakin muistaakseni vuodesta 2006 lähtien. Reilut 150 gigaa per talvi (n. elokuu-toukokuun alku) videoita joissa on pelkästään meteori tai tulipallo (min. 2 sekunnin videoita).

Toki neuroverkot ovat mielenkiintoisia. Silti ihmettelen mitä lisähyötyä se toisi? On jo olemassa erittäin hyviä ohjelmia jotka osaavat tunnistaa meteorit ja tulipallot. Osaavat jopa ehdottaa mihin meteoriparveen ne todennäköisesti kuuluvat. Eikä niiden tunnistamiseen neuroverkkoja ole tähän mennessä tarvittu.

Tulipallon tunnistus on aika yksioikoista reaaliaikaista videokuvan tutkimista. Kun tapahtuu riittävän isoja muutoksia niin otetaan video talteen ja vieläpä niin että videopuskurista tallennetaan haluttu määrä ruutuja ennen tunnistusta. Ja tämä kaikki tapahtuu lennosta. Toki virhetunnistuksia myös tulee (satelliitti väläykset yleisimpiä), mutta jotkin ohjelmat osaa suurimman osan niistäkin karsia automaattisesti pois ja loput on käyttäjän asettamista parametreistä kiinni.

Miksi kuvata vaikka tähtisumuja kun joku on jo niitä kuvannut ja kuvatkin ovat hienoja?  :azn: Syy on aikalailla sama.

Syy on ihan siinä missä muutkin harrastukset. Saada jotain aikaiseksi, mutta kuitenkin ehkä jotain hieman erilaista. Neuroverkkoja voidaan ajaa skriptellä alustariippumattomasti hyvinkin keveillä alustoilla.

ptk

Mistä tahansa toimivasta menetelmästä jo kuvatun videomateriaalin läpikäyntiin olisi kyllä hyötyä.
Itselläni kamera on "taivaskanava", josta suoraan näkee onko selkeää, revontulia, haloja, hienoja pilviä,
naapurissa tulipalo (sekin on nähty!), suihkuhävittäjiä taivaalla jne, ja joskus myös meteorin live-esityksenä. 
Jos pilvipeite ei ole paksu, kamera tallentaa taivaan selkeydestä riippuen 0.75-2 sekunnin valotuksilla. 
Kymmenen tunnin yön aikana kuvia tulee siis 18000-36000, sydäntalvella jopa 80000.
Videomuodossa niitä on vähän helpompi käsitellä ja käydä läpi. Revontulien ym. yllätysten takia otan koko yön talteen.

Petri ja Jarmo varmaan osaavat sanoa saako VideoAnalyzer ohjelman
http://petk.suntuubi.com/fi/VideoAnalyzer%20meteorikuvauksessa/
valjastettua "sattumien" etsimiseen jo levyllä olevasta videosta. 

UFOCaptureHD2 http://sonotaco.com/soft/e_index.html n. €230
on toinen saman tyyppinen vain "osumat" tallentava ohjelmisto.
Sen tukee nykyään myös USB-kameroita, mutta resoluutiot on määritelty kiinteiksi. 
En saanut sitä toimimaan tyydyttävästi kamerani kanssa, varsinkin jos kennon jäähdytystä haluaa käyttää kohinan pienentämiseksi.

Muita ehdokkaita ovat AllSkEye (toistaiseksi ilmainen, mutta vaatii rekisteröitymisen) https://www.allskeye.com/
joka pääsee jo aika lähelle, oikeastaan vain kameran jäähdytys puuttuu. Jotain samantyyppistä
on tekijällä vireillä https://www.allskeye.com/machine-learning-is-coming-to-allskeye/

Oikeastaan ainoa "motion detect" tyyppinen videotiedostoja käsittelevä ohjelma johon olen törmännyt on
HandyAvi https://www.azcendant.com/MeteorCapture.html vuosimallia 2013 $40-60
joka kyllä toimii joten kuten, mutta vaatii videon konvertoinnin.
Hyviä ehdotuksia otetaan vastaan.

Jarmo Moilanen

Toki. Kaikki mikä itseä kiinnostaa ja innostaa on aina kannatettavaa toimintaa. :smiley:

Olisi tietysti hienoa jos saisimme kunnollisen kotimaisen ohjelmiston tulipallohavainnointiin. Oli se sitten neuroverkkoihin perustuva tai ei. VA on toki kotimainen, mutta itse en ole saanut sitä oikein toimimaan. Mutta se on tulipallotyöryhmässä monella käytössä.

Minulla on vanhempi versio UFOCapturesta (UFOCapture ja UFOAnalyzer paketti) käytössä kun kamerat ovat PAL-formaattia eli 768x576px. En nyt jaksa ulkoa muistamaan pystyikö sillä analysoimaan mitä videopätkiä. Muistaakseni siinä on toiminto jolla voi videon uudelleenkäsitellä. Tiedä sitten mitä se vaatii esim. videoformaatilta. UFOCapturen etuja on se että se tallentaa videon vain kun jotain tapahtuu, ei koko yötä.
Jarmo

ptk

Käytännön hankaluudet varmaan liittyvät kuvien tai videon esikäsittelyyn, jotta niitä voi tarjoilla koneelle
tunnistettaviksi. Valotuksen tasoa on pakko säätää, kun keinovalo heijastuu jo ohuistakin pilvistä ja kontrasti muutenkin
käy vähiin.  Sitä pitäisi jollain automaatilla korjata.  Veikkaisin että video sellaisenaan on aluksi liian vaikea pala,
jo siksi että raa'an videotiedoston koko on luokkaa 10-20 gigatavua tunnissa.  Videosta pitäisi siis pinota esim. 10 sekunnin
pätkiä.  Sen jälkeen satelliitin erottaminen meteorista on jo vaikeaa, varsinkin jos kuvan resoluutiota vielä pitää pienentää.
Ei se välttämättä kuitenkaan haittaa, kirkkaita satelliitteja näkyy muutamia yössä. Kelvollisia meteoreja löytyy keskimäärin
välillä 0-5 kpl / yö, vain meteoriparvien aikana enemmän - jos on hyvin selkeää ja lumeton maa.

Opetusaineiston valmistelu onkin sitten oma urakkansa.  1000 meteoria ei ihan hetkessä löydykään, 1000 satelliittia ehkä parissa kuukaudessa,
1000 tyhjää taivasta alle tunnissa.

Jos mallin opetus onnistuu, voiko sitä käyttää muualla kuin alkuperäisellä laitteisto- ja ohjelmistokokoonpanolla
jolla malli on muodostettu?

Terv. Pekka

Zalama

Neuroverkoille olen monenlaisia muitakin ajatuksia kyllä tässä ajanmittaan pohdiskellut. Yksi olisi esimerkiksi automaattinen tähtienpoisto jne. Niissä aineiston saaminen vaan on vielä hieman haastavampaa eli moni ei parhaita otoksia välttämättä halua toisten käyttöön antaa.

Jos haluatte minulle jotain materiaalia antaa tätä varten niin olisin kiitollinen. Jos saan jotain aikaiseksi lupaan täällä siitä kertoa. Tätä kun teen harrastuksena perheen ja työn lomassa ei välttämättä aivan heti tule tuloksia.

Mitään rikastumista ja kaupallista tuotetta ei ole näköpiirissä. Mahdollisesti jos jotain saan olisi open sourcena tai muuten jakaminen mahdollisuus. Neuroverkoissa on myös se hyvä puoli eli kun teknisesti sen saisi toimimaan voi myöhemmin kyllä aloittaa koulutuksen ihan uudestaan uudella materiaalilla. Uudelleen koulutettava neuroverkko kun lähtee ihan satunnaisluvuista liikkeelle.

Jos materiaalia on niin voitteko vaikka priva viestillä laittaa. Esimerkiksi pilvipalveluistahan (onedrive, googledrive) voi hyvin jakaa suojatusti tai ladata esim https://easyupload.io/ tai johonkin muualle.


Zalama

Lainaus käyttäjältä: ptk - 18.03.2020, 15:18:08
Käytännön hankaluudet varmaan liittyvät kuvien tai videon esikäsittelyyn, jotta niitä voi tarjoilla koneelle
tunnistettaviksi. Valotuksen tasoa on pakko säätää, kun keinovalo heijastuu jo ohuistakin pilvistä ja kontrasti muutenkin
käy vähiin.  Sitä pitäisi jollain automaatilla korjata.  Veikkaisin että video sellaisenaan on aluksi liian vaikea pala,
jo siksi että raa'an videotiedoston koko on luokkaa 10-20 gigatavua tunnissa.  Videosta pitäisi siis pinota esim. 10 sekunnin
pätkiä.  Sen jälkeen satelliitin erottaminen meteorista on jo vaikeaa, varsinkin jos kuvan resoluutiota vielä pitää pienentää.
Ei se välttämättä kuitenkaan haittaa, kirkkaita satelliitteja näkyy muutamia yössä. Kelvollisia meteoreja löytyy keskimäärin
välillä 0-5 kpl / yö, vain meteoriparvien aikana enemmän - jos on hyvin selkeää ja lumeton maa.

Opetusaineiston valmistelu onkin sitten oma urakkansa.  1000 meteoria ei ihan hetkessä löydykään, 1000 satelliittia ehkä parissa kuukaudessa,
1000 tyhjää taivasta alle tunnissa.

Jos mallin opetus onnistuu, voiko sitä käyttää muualla kuin alkuperäisellä laitteisto- ja ohjelmistokokoonpanolla
jolla malli on muodostettu?

Terv. Pekka

Kyllä voi käyttää. Toki mahdollisuus on aina hienosäätää uudella opetusmateriaalilla vielä paremmaksi ja herkemmäksi.

1000 alkaa olla siis jo paras mahdollinen tilanne. Olen päässyt aikanaan IBM:n Munchenin IOT Watson pääkallopaikalla keskustelmassa heidän koneoppimis experttien kanssa ja tuo nyrkkisääntö 1000 kuvalle tuli heiltä. Mikään absoluuttinen raja tuo ei ole.

Neuroverkollehan voi antaa myös vaikka 10 kuvaa kerralla pureskeltavaksi. Normaali RGB kuva on 3 kanavaa, mutta sille voisi siis hyvin antaa vaikka 10x3 "kanavaa". Mukaan pystyy laittamaan vaikka gradientitkin jne.

Yksiä muita sovelluksia mitä olen miettinytkin on kuvien pinoaminen ja esimerkiksi tähtien poisto kuvista.


einari

Tähtien poistohan on neuroverkoilla jo tehty - Starnet.
___
Tapio

Jarmo Moilanen

Tähtiä tarvitaan että tulipallon lentorata voidaan määrittää. UFOCapturessa on skintillaatiomaski joka maskaa tähdet ettei ne aiheuta tunnistuksia. Käytännössä jos kuvassa on kirkas kohde joka pysyy paikallaan niin se maskataan. Se maskaa myös muitakin kontrastieroja. Näitä tähtimaskeja käytetään sitten kameran linssiparametrien määritykseen. Lisäksi UFOCapturessa on myös slow object mask joka maskaa liian hitaasti liikkuvia kohteita jolla voi hyvin karsia lentokoneet ja satelliitit pois tunnistuksista.

Toki jos neuroverkko oppii kunnolla niin sehän osaa erotella sitten liian hitaat kohteet tulipalloista ja meteoreista.

Meteorientunnistus ohjelmista (muillekin kiinnostuneille):
https://www.imo.net/resources/software/

Aiheesta on kirjoitettu myös papereita. Tässä pari MetReciin liittyvää.
https://www.researchgate.net/publication/234515174_Computer-Based_Meteor_Search_a_New_Dimension_in_Video_Meteor_Observation
https://www.researchgate.net/publication/234293002_The_meteor_detection_software_MetRec

Vielä yksi.
https://www.researchgate.net/publication/306323370_Open-source_meteor_detection_software_for_low-cost_single-board_computers
Jarmo

Esko Lyytinen

Olen jokseenkin samaa mieltä muiden vastaajien kanssa, että ei ole ainakaan varsinaisille tulipallokameroille suurta tarvetta kyseiseen kehittämiseen. Mutta jos/kun kiinnostaa niin mikäpä siinä. Eikä etukäteen osaa sanoa kuinka paljon sitten tulisi mahdollista hyötyäkin.

Jos ei rajoituta tulipalloihin vaan yleensä meteoreihin siis himmeämpiinkin, niin täällä valosaasteisella paikalla, missä myöslentää runsaasti lentokoneita, tulee runsaasti virhetunnisteita joiden tarkistamisessa menee aikaa. Toisaalta "tavallisissa" meteoreissa ei juuri ole haitallista jos joku jää huomaamattakin.

Toiseksi, minulla pääkamera toimii infrapunalla, millä selkeä sininen taivas on hyvin tumma ja on tavallsta kameraa suurempi mahdollisuus saada päivänvalotulipalloja. Siinä kamerassa otollisella säällä tulee paljon lintuja näkyviin, ehkä keskimäärin lintu per 2 m summakuva (peakhold-). (Yleensä samassa useampia ja sitten kuvia joissa ei). Ja niitä yleensä vain ylimalkaisesti selaan läpi. Harvinaisia siinäkin on päivänvalotulipallot ja mahdollista neuroverkkosovellusta varten ei löydy toistaiseksi yhtäkääb pivänvalotulipalloa, pari hämärätulipalloa mitkä kait olisivat myös päivänvalossa näkyneet. Oli aiemmin vielä kapeakastainen infrapunasuodin, jolla saisi paremmin päivänvalotulipalloja ja niitä sainkin pari kappaletta. Siirryin laajempaan kaistaan koska sillä kapealla ei saanut pimeällä paljoa paremmin ja vähän enemmän sentään niitä haluan.
En kerro näitä niinkään että juuri toivoisin projektlltasi ratkaisuja, mutta jonkkinlaisiksi taustatiedoiksi kuitenkin.

Olen itsen pikkuisen kehittänyt jotain neuroverkkosovellusta poikani avustamana tai alullepanemana.
Niillä nopeuksilla ei reaaliaikaista videodataa pystyisi tutkimaan, ehkä "summakuvia" suoraan liki reaaliajassa tai  sitten jälkikäteen.
Ja jos/kun jälkikäteen löytää, niin jos ei anna suoraan mittaustietoa niin "tavallisia" metoreja ei juuri enää manuaalisesti rupeaisi mittailemaan.
Esimerkiksi minun poikani kanssa kehittämä VideoAnalyzer ohjelma ei tuota videota, mutta antaa tunnistamistaan ( joista osa ei oikeita) tekstitunistetidoston ja sitten summakuvan lisäksi antaa harvennnetu, missä näkyy esimerkiksi joka viides frame, jolloin pääsee mitaamaan ajallisesti (lähinnä tarpeen jos ei ole tunnistusta).
Eli näitä mahdollisesti hyödyntääkseen olisi paikallaan, että se neuroverkkosovellus osaisi käyttää samalla kertaa useampia tiedostoja yhdessä. Mutta mennee jo liian pitkälle toiveissa.
Periaatteessa minullakin olisi kuvia satojatuhansia. Mutta yleensä on merkattu vastaavan tekstitiedostoon vain merkintä meteorista, joten meteoriitillisten kuvien selaaminen laajemmalti olisi työlästä.

On nyt vielä muutakin mieless',mutta ehkä tässä jo vähintään tarpeeksi tällä kertaa.