trail.cam

Kuinka järjestää riistakameran kuva-arkisto: kansiot, metatiedot ja lajitunnisteet

Tutkija tarkastelee suurelta näytöltä riistakameran eläinkuvien ruudukkoa merkittyjen muistikorttien vieressä

Tässä on kiusallinen totuus, josta kukaan ei varoita, kun ostat ensimmäisen tusinasi kameroita: riistakamerakuvauksen vaikein osa ei ole kuvaaminen. Se on kaikki se, mikä tapahtuu, kun SD-kortit tulevat kotiin. Yksittäinen hanke kerää rutiininomaisesti tuhansista kuvista korttia kohti satojatuhansia, jopa miljoonia tiedostoja. Ja sillä hetkellä, kun tuo pino on olemassa, kello alkaa käydä — sillä arkisto, jota et voi hakea, johon et voi luottaa etkä voi luovuttaa kenellekään muulle, on tutkimuksen kannalta tuskin arkisto lainkaan.

Ne, jotka tutkivat tätä työkseen, ilmaisevat asian suoraan. Kirjallisuudessa toistuva havainto on, että datan hallinta, ei datan keruu, on riistakameratutkimusten valmistumisen rajoittava tekijä. Kamerat halpenivat ja tulivat luotettaviksi; tallennuksen ja tunnisteiden muuri ei liikkunut. Luettelointi laahaa keruun perässä, ja ”suuri osa datasta jää käyttämättä ja lopulta menetetään tieteeltä ja luonnonsuojelun hallinnalta”. Eräs katsaus havaitsi, että eri tutkimusalueiden väliset vertailut ja meta-analyysit puuttuvat kirjallisuudesta lähes täysin — ei siksi, ettei dataa olisi, vaan siksi, että jokainen järjesti sen eri tavalla, omalla yksityisellä tavallaan, eikä kukaan pysty yhdistämään niitä.

Tämä artikkeli käsittelee vaihetta ennen analyysiä: kuinka jäsentää, nimetä, merkitä, varmuuskopioida ja lopulta jakaa riistakameran kuva-arkisto niin, että se selviää hankkeesta, selviää henkilöstön vaihtuvuudesta ja pysyy hyödyllisenä sinulle ja kaikille, joiden kanssa teet yhteistyötä. Se ei kerro siitä, mihin kamerat kannattaa sijoittaa, eikä siitä, kuinka muuntaa aikaleimat aktiivisuuskäyriksi — ne ovat omia tehtäviään. Ajattele seuraavaa putkistona. Se ei ole hohdokasta, se on paikka, jossa useimmat hankkeet vuotavat hiljaa arvoa, ja sen tekeminen oikein on lähes kokonaan kiinni päätöksistä, jotka teet ensimmäisen tunnin aikana, et viimeisen.

Miksi tämä on pullonkaula ja miksi ”lajittelen sen myöhemmin” epäonnistuu

On hyödyllistä ymmärtää, miksi tämä vaihe nielaisee hankkeita, sillä syyt kertovat, mitä vastaan on puolustauduttava.

Ensimmäinen syy on raa'an määrän törmääminen käsityöhön. Kunkin kuvan sisällön noutaminen, tallentaminen, järjestäminen ja — tuskallisimmin — tunnistaminen tehdään yhä suurelta osin käsin, ja kuvien luokittelu arvioidaan johdonmukaisesti riistakamerakuvauksen suurimmaksi yksittäiseksi haasteeksi. Työ on ”työlästä, aikaa vievää, virhealtista ja kallista”. Kun työvoima ei pysy vauhdissa, ruuhka kasvaa, ja luetteloimattomien kuvien ruuhka on käytännössä menetetyn datan ruuhka.

Toinen syy on, että käsin tapahtuva käsittely synnyttää virheitä, ja virheet arkistossa ovat syövyttäviä tavalla, jolla ne eivät ole yksittäisessä taulukkolaskennassa. Tästä on olemassa kaunis, konkreettinen luku käyttäytymistutkimuksesta Namibiassa, jossa hallittiin noin 1,2 miljoonaa valokuvaa 26 kamerasta kolmen vuoden aikana: ennen kuin tiimi automatisoi tiedostojen käsittelynsä, inhimilliset virheet — väärin nimetyt kansiot, väärään paikkaan lähetetyt kopiot — muodostivat 15,5 % datakatkoksista; kun ohjelmiston annettiin hallita siirrot, tämä laski 6,2 %:iin. Samat ihmiset, samat kamerat. Ero oli rakenne.

Kolmas syy on se, joka maksaa alalle eniten: pirstoutuminen. Koska useimmat hankkeet välittivät vain omasta kohdelajistaan ja rakensivat oman tilapäisen järjestelmänsä, tuloksena on se, mitä eräs paljon siteerattu artikkeli kutsuu nimellä ”dark data” — dataa, joka ei ole muiden tutkijoiden tai yleisön saatavilla, lukittuna ohjelmakohtaiseen muotoon ja tallennettuna jonkun paikalliselle levylle. Riistakamerat ovat erottelemattomia; ne kuvaavat kaiken, mikä laukaisee anturin. Jos luetteloit vain kauriit ja heität loput pois, olet heittänyt menemään dataa, josta toinen ryhmä — joka tutkii kettuja, tai ihmisiä, tai niiden välistä vuorovaikutusta — olisi antanut mitä tahansa. Ratkaisu on luetteloida kaikki, johdonmukaisesti, ensimmäisellä kerralla.

Niinpä ”lajittelen sen myöhemmin” epäonnistuu yksinkertaisesta syystä: myöhemmin on juuri se hetki, jolloin määrä on suurin, muistikuva siitä, mikä kamera oli missäkin, on hämärin, ja jokaisen virheen hinta moninkertaistuu koko kokoelman yli. Kurinalaisuus on painotettava alkupäähän. Hyvä uutinen on, ettei alkupäähän painotettu versio ole paljon työtä — se on enimmäkseen kourallinen käytäntöjä, sovellettuna ensimmäisestä päivästä alkaen. Kamerat halpenivat ja tulivat luotettaviksi; tallennuksen ja tunnisteiden muuri ei liikkunut, ja ainoa tapa sen yli on rakentaa tottumukset sisään ennen kuin pino on olemassa.

Kamerat halpenivat ja tulivat luotettaviksi; tallennuksen ja tunnisteiden muuri ei liikkunut.

Kansiorakenne: järjestä toteutuksittain, kopioi kortilta sellaisenaan

Aloita kansioista, koska kaikki muu riippuu niistä.

Alalla vallitsee silmiinpistävä yksimielisyys ydinperiaatteesta, vaikka työkalut eroavatkin: järjestä media yhteen hakemistoon kutakin toteutusta kohti — toteutus on kameran yksittäinen sijoittelu yhteen paikkaan yhdeksi ajanjaksoksi — ja älä nimeä tiedostoja uudelleen niiden tullessa kortilta. GBIF:n parhaiden käytäntöjen opas ilmaisee sen lähes käskynä: ”Vältä mediatiedostojen uudelleennimeämistä. Järjestä sen sijaan mediatiedostot yhteen hakemistoon kutakin toteutusta kohti”.

Miksi niin ehdoton uudelleennimeämisen suhteen? Sen vuoksi, miten tiedostonimien ainutkertaisuus todella toimii. Useimmat kamerat nimeävät tiedostot lyhyellä juoksevalla laskurilla (`IMG_0001.JPG`, `PICT0001.JPG`), ja nuo nimet ovat taatusti ainutkertaisia vain yhden kortin sisällä. Vedä kuvat kolmesta kamerasta yhteen kansioon, ja törmäytät heti kolme `IMG_0001.JPG`-tiedostoa. Kunkin toteutuksen pitäminen omassa hakemistossaan kiertää koko ongelman, ja se tarkoittaa, että voit kopioida kortin sisällön sellaisenaan täsmälleen kuten se on — ei muunnosta, ei tilaisuutta virheen syntymiseen. Aardwolfin tekijät rakensivat koko kolmitasoisen mallinsa (projekti → kamera → latausoperaation kansio) tämän oivalluksen ympärille: ”myös tämä fyysinen rakenne varmistaa, että hakemistojen kopiointi riistakameran muistikortilta voidaan tehdä sellaisenaan”.

R-työkalupakki camtrapR muodollistaa läheisesti sukua olevan asettelun. Tutkimuksessa, jossa on yksi kamera asemaa kohti, saat `rawImages/stationA`, `rawImages/stationB` ja niin edelleen; kun asemalla on useampi kuin yksi kamera, lisäät tason: `rawImages/stationA/camera1`, `rawImages/stationA/camera2`. Ja se tulee varoituksen kera, joka kannattaa tatuoida johonkin näkyville: ”Jos sinulla on enemmän kuin yksi kamera asemaa kohti mutta et erottele eri kameroiden kuvia tässä vaiheessa, et pysty tekemään sitä myöhemmin”. Yhdistä ne nyt, ja alkuperätieto on lopullisesti mennyt. Tämä on koko aiheen toistuva teema — osa tiedosta voidaan säilyttää vain sisäänoton hetkellä, ei koskaan rakentaa uudelleen.

Kaksi tottumusta täydentää tämän. Ensinnäkin säilytä raakakuvasi koskemattomana varmuuskopiona ja tee työsi kopiolla — camtrapR:n uudelleennimeämistoiminto kopioi kuvat tarkoituksella uuteen sijaintiin, jotta alkuperäiset eivät koskaan ole vaarassa. Toiseksi älä säilytä kuvahakemistoissasi mitään muuta kuin kuvia; irralliset tiedostot voivat häiritä työkaluja, jotka skannaavat noita kansioita.

Kuinka syvälle hierarkian pitäisi ulottua? Lainaa nyrkkisääntö tutkimusdatan hallinnan maailmasta, joka on miettinyt tätä pidempään kuin riistakameroiden käyttäjät: rajoita kansiot kolmeen tai neljään tasoon syvyyssuunnassa, äläkä yritä pitää missään yksittäisessä listassa paljon yli kymmentä kohdetta, säilyttäen data ja dokumentaatio erillisissä haaroissa. Riistakamerahanke asettuu tähän luonnostaan — projekti, sitten paikka tai toteutus, sitten kortti — kenenkään joutumatta pakottamaan sitä.

Osa tiedosta voidaan säilyttää vain sisäänoton hetkellä, ei koskaan rakentaa uudelleen.

Nimeämiskäytännöt: aloita päivämäärästä, älä koskaan lajista

Käsineelliset kädet poistavat muistikortin puuhun kiinnitetystä riistakamerasta merkittyyn korttikoteloon

Jos nimeät tiedostoja uudelleen — ja siihen on legitiimejä syitä, lähinnä tehdäksesi niistä itseään kuvaavia, kun ne poistuvat kansioidensa suojista — on olemassa yksi oikea tapa ja useita vääriä tapoja.

Tärkein yksittäinen sääntö on saada aakkosjärjestys vastaamaan aikajärjestystä. Siisti niksi on aloittaa nimi päivämäärästä, `YYYYMMDD`, tai päivämäärästä ja kellonajasta, `YYYYMMDD_HHMMSS`. GBIF:n opas antaa työstetyt esimerkit suoraan: `20200709_093352.JPG` on hyvä, koska se lajittuu oikein; `09072020_093352.JPG` on huono, koska päivä-ensin-nimeäminen sekoittaa aikajärjestyksen heti, kun sinulla on enemmän kuin yhden kuukauden verran dataa. Tämä ei ole pikkutarkkuutta — puolet koskaan käyttämistäsi työkaluista olettaa, että tiedostojen järjestys heijastaa aikajärjestystä, ja kameran, joka nimeää tiedostot `1.jpg, 2.jpg … 10.jpg`, tietokoneesi lukee muodossa `1, 10, 2 …`, rikkoen hiljaa tuon oletuksen.

Yleiset datan arkistoinnin oppaat ovat samaa mieltä ja lisäävät järjestyksenpito-yksityiskohdat: käytä päivämääriä ISO-muodossa `YYYY-MM-DD`, erota elementit väliviivoilla tai alaviivoilla, vältä välilyöntejä ja erikoismerkkejä kuten `&`, `?` tai `!`, pidä nimet merkityksellisinä mutta lyhyinä, varaa kolmikirjaiminen pääte tiedostomuodolle ja sisällytä versiotunnus, kun sillä on merkitystä. camtrapR:n oma nimeämismalli on konkreettinen esimerkki kaikesta tästä: se nimeää uudelleen muotoon `StationID__Date__Time(X).JPG`, jossa `(X)` erottaa samana minuuttina otetut kuvat, ja se varaa kaksoisalaviivat kenttäerottimiksi — joten asema- ja kameratunnuksesi eivät saa itse sisältää alaviivoja.

Tässä on yksi sääntö, jota riistakameroiden käyttäjät rikkovat jatkuvasti, ja se ansaitsee oman rivinsä: älä tallenna luokittelutietoa tiedostonimeen. On houkuttelevaa nimetä valokuva uudelleen muotoon `..._Ardea_alba_1_Anas_platyrhynchos_male_female.jpg`, jotta löytäisit sen myöhemmin. Älä tee sitä. GBIF:n opas merkitsee juuri tämän huonoksi käytännöksi. Syy on se, että tunnistus ei ole tiedostoa koskeva tosiasia; se on tulkinta, ja tulkintoja korjataan. Leipo ”kettu” tuhanteen tiedostonimeen ja huomaa sitten, että puolet olikin supikoiria, ja sinulla on nyt tuhat uudelleennimeämisoperaatiota ja rikkinäinen kirjausketju. Tunnisteet kuuluvat metadataan, jossa niitä voidaan korjata koskematta tiedoston identiteettiin — mikä on juuri se, mihin olemme seuraavaksi matkalla. (camtrapR voi liittää lajinimen tiedostonimeen selailun helpottamiseksi, mutta huomaa, että se lukee tuon lajitunnuksen ensin kansiorakenteestasi tai metadatatunnisteistasi; tunnistus asuu muualla, ja tiedostonimi on vain kopio siitä.)

Kun sinun täytyy nimetä uudelleen joukoittain, et tee sitä käsin. Erityisiä eräajonimeämistyökaluja on jokaiselle alustalle, ja metadatatyökalu ExifTool voi nimetä tiedostot niiden omasta metadatasta — poimien kuvausajankohdan suoraan kustakin kuvasta rakentaakseen uuden nimen — sekä tehdä metadatan erämuokkauksia, geopaikannusta ja päivämäärän/kellonajan korjausta.

Merkintä ja annotointi: sovi skeemasta ennen kuin kosket kuvaan

Nyt se osa, jota kaikki pitävät ”varsinaisena työnä”: kuvien läpikäynti ja sen kirjaaminen, mitä niissä on. Tätä vaihetta kutsutaan merkitsemiseksi (tagging) — kunkin kuvan tarkastelu ja sen kiinnostavien ominaisuuksien koodaaminen dataksi — ja juuri siinä tapahtuvat suurimmat, kalleimmat ja parhaiten estettävissä olevat virheet.

Syvin oppitunti tässä tulee artikkelista, joka tislaa kahdeksan vuoden kokemuksen Timelapse-kuva-analyysityökalun rakentamisesta, eikä se ole vinkki ohjelmistosta. Se koskee päätöstä, jonka teet ennen ohjelmistoa: määrittele ja ota käyttöön yhteinen dataskeema. Ennen kuin kukaan merkitsee mitään, hankkeen vetäjän tulisi päättää täsmälleen, mitä dataa kuvista kirjataan, määritellä se standardoituna, koneluettavana skeemana — kentät, niiden nimet, niiden datatyypit, niiden sallitut arvot — ja sitten antaa ohjelmiston valvoa sitä. Syy on monimerkitsijäongelma. Todellisessa hankkeessa on useita ihmisiä (usein mukaan lukien vapaaehtoisia), joista kukin käy läpi siivun kuvista, ja ”ilman datan johdonmukaisuutta — jos jokainen analyytikko määrittelisi omalla tavallaan, mitä dataa kuvista tulisi koodata, missä muodossa ja millä nimellä — olisi erittäin vaikeaa saada datasta tolkkua analyytikoiden kesken”. Sovi skeemasta ensin, tai käytä loppuhanke sovittaen yhteen saman aineiston kymmentä murretta.

Konkreettinen, siteerattava malli tuolle skeemalle on nelitaulukkoinen asettelu, johon järjestäytyneet hankkeet päätyvät ja joka on tallennettu näppärästi kanadalaisen aineiston ympärille rakennettuun opetusesimerkkiin: projektitaulukko (tavoitteet, suunnitelma, kuka vastaa), kuva-/havaintotaulukko (laji, lukumäärä, ikä/sukupuoli, käyttäytyminen, aikaleima, kuvaa kohti), toteutustaulukko (sijainti, alku ja loppu, kamera, korkeus, suuntaus) ja kameraluettelo (merkki, malli, sarjanumero). Jokainen ainutkertainen kamerasijoittelu saa oman toteutustietueensa. Tämä on sama runko, jota muodolliset standardit käyttävät — niistä lisää pian — ja vaikket koskaan julkaisisi, datan jäsentäminen tällä tavalla alusta alkaen tarkoittaa, että pidät oikeat asiat oikeissa paikoissa.

Skeeman lisäksi kahdeksan Timelapse-vuoden artikkeli on luettelo kovalla työllä ansaituista tehokkuusmalleista, ja ne kannattaa tuntea, koska ne erottavat työnkulun, joka vie yhden kauden, sellaisesta, joka vie vuoden. Sama tiimi mittasi noin 200 %:n ajansäästöt verrattuna analyytikoihin, jotka käyttivät tavallista taulukkolaskentaa. Muutama tärkeimmistä malleista:

Nämä eivät ole ylellisyyksiä. Huonot työkaluvalinnat merkitsevät ”puuduttavaa tietojen syöttöä... virhealtista (mikä vaikuttaa kerätyn datan pätevyyteen)... ja — pitkällä aikavälillä — ovat hyvin kalliita analyytikon ajassa mitattuna”. Sivumennen sanoen tämä on rehellisin tapa ajatella ohjelmistoja yleisesti tässä tehtävässä: alan oma katsaus saatavilla oleviin ohjelmiin havaitsi, ettei yksikään työkalu ole noussut selkeäksi suosikiksi, ja eräs merkittävä parhaiden käytäntöjen raportti päätyi pitkälti samaan — monet suuret hankkeet ”ovat päätyneet suunnittelemaan omat järjestelmänsä alusta alkaen”, ja saatat joutua testaamaan useita ennen kuin yksi sopii työnkulkuusi. Yleispätevää oikeaa vastausta ei ole; on skeemakurinalaisuus, ja on työkalun sovittaminen siihen, miten ihmisesi todella työskentelevät.

Sovi skeemasta ensin, tai käytä loppuhanke sovittaen yhteen saman aineiston kymmentä murretta.

Missä tunnisteet asuvat: EXIF, IPTC, XMP ja sidecar-tiedostot

Kannettava tietokone ja ulkoinen kiintolevy kenttäpöydällä näyttävät järjestellyn, päivämäärin merkityn kansiorakenteen

Olet siis merkinnyt lajin kuvaan. Minne tuo tunniste fyysisesti menee — ja onko se yhä siellä, kun kopioit kansion kollegan koneelle vuoden kuluttua?

Tässä kohtaa kannattaa ymmärtää ne kolme metadatastandardia, jotka asuvat kuvatiedoston sisällä (ja vieressä), koska ne tekevät eri työt:

Se seikka, joka tekee kaikista kolmesta arkistolle merkityksellisiä: avainsanat ja tunnisteet voidaan kirjoittaa suoraan kuvan omaan metadataan IPTC- ja XMP-kenttien kautta. Se tarkoittaa, että lajitunniste — ”kettu” tai kokonainen hierarkkinen aihe kuten Mammalia > Carnivora > Vulpes > Vulpes vulpes — voidaan tallentaa kuvan sisään, jotta se kulkee tiedoston mukana. Kuten erään metadatatyökalun dokumentaatio suoraan ilmaisee: ”Metadatan tallentaminen suoraan kuvatiedostoihin mahdollistaa tämän tiedon säilymisen, kun kuvatiedostoja siirretään tai lähetetään eri järjestelmiin”. Siitä on koko kyse. Tunniste erillisessä tietokannassa, joka jää jälkeen kopiossa, on tunniste, jonka olet menettänyt; tiedostoon upotettu tunniste on tunniste, joka selviää matkasta.

On yksi vivahde, joka kannattaa tuntea, erityisesti jos kuvaat RAW-muodossa tai videota. Metadataa ei aina voi kirjoittaa takaisin alkuperäiseen tiedostoon — RAW-muodot ovat usein vain luettavia, ja videon merkitseminen on heikosti standardoitua. Vastaus on sidecar-tiedosto: pieni seuralaistiedosto (nimeltään `filename.ext.xmp`), joka pitää metadatan kuvan rinnalla, käytettynä joko yksinään tai tiedoston sisään kirjoittamisen lisäksi. Käytännön valinta on siis konfiguroitavissa — kirjoita tunnisteet kuvaan, sidecar-tiedostoon tai molempiin — ja oikea asetus riippuu tiedostotyypeistäsi.

Käytännöllinen, paljon käytetty hybridi on tallentaa tunnisteet kahteen paikkaan yhtä aikaa: upotettuna kuvaan (tai sen sidecar-tiedostoon), jotta ne ovat siirrettäviä, ja myös ulkoiseen tietokantaan nopeaa hakua varten — kohdellen tietokantaa välimuistina ja tiedostoja ”ainoana totuuden lähteenä”. Näin saat nopeutta kyselyissä ja kestävyyttä siirroissa.

Lähes kaiken tämän alla on yksi pieni, vaatimaton, korvaamaton työkalu: ExifTool, Phil Harveyn ilmainen, alustariippumaton apuohjelma metadatan lukemiseen, kirjoittamiseen ja muokkaamiseen sadoissa muodoissa, mukaan lukien EXIF, IPTC ja XMP. Se on moottori, johon tutkimustyökalupakit nojaavat — camtrapR esimerkiksi on riippuvainen siitä jokaisessa metadataoperaatiossa eikä tee juuri mitään ilman sitä. Kutsut sitä ehkä harvoin suoraan, mutta se tekee lähes varmasti työn sen takana, mitä käytätkin.

Yksi rehellinen huomautus siitä, kuinka laji-tunniste-metadatassa-työnkulku todella kytketään yhteen käytännössä, koska työkalut jakavat työn tavalla, joka yllättää ihmiset. Yleinen valokuvien hallintasovellus on tyypillisesti se, joka kirjoittaa lajiavainsanan kuvan metadataan alun perin (avainsana-/aihekenttiensä kautta), ja R-työkalupakki sitten lukee nuo upotetut tunnisteet takaisin — camtrapR voi poimia lajitunnuksen `HierarchicalSubject`-metadatatunnisteesta, jonka merkintäsovellus kirjoitti — koostaakseen tietuetaulukkonsa. Tunnistus saa alkunsa merkintätyökalussa; metadatakenttä on se, miten se tallennetaan ja luovutetaan eteenpäin.

Tunniste tietokannassa, joka jää jälkeen kopiossa, on tunniste, jonka olet menettänyt; tiedostoon upotettu tunniste on tunniste, joka selviää matkasta.

Aikaleima ansaitsee erityistä vainoharhaisuutta

Kaikesta kuvaan liitetystä datasta yksi kenttä on ainutlaatuisen palauttamaton, ja se kannattaa nostaa metadatakeskustelusta erilleen korostettavaksi omanaan.

GBIF:n opas on yksiselitteinen: valokuvan ottamisen päivämäärä ja kellonaika ”on sen metadatan tärkein osa... eikä sitä voi johtaa myöhemmin” — toisin kuin esimerkiksi kameran sijainti, jonka voi aina selvittää jälkikäteen. Saa aikaleima väärin, eikä ole toista lähdettä, josta se korjattaisiin. Timelapse-tiimi luetteloi kahdeksan vuoden ajan tätä katsottuaan neljä klassista vikatilaa: kamera, jonka kelloa ei yksinkertaisesti koskaan asetettu oikein (kaikki pielessä kiinteän verran); kamera, joka ei käsittele kesäajan kellonvaihdosta (osa kuvista tunnin pielessä); kello, joka ryömii hitaasti edelle tai jälkeen toteutuksen aikana; ja kamera, joka tallentaa päivämäärät moniselitteisesti, kuten `02/10/2019`, joka voi olla helmikuu tai lokakuu käytännöstä riippuen.

Kaksi alkupään tottumusta estää suurimman osan tästä, ja molemmat ovat suunnittelultaan aluekielineutraaleja. Ensinnäkin aseta kameran kello koordinoituun yleisaikaan (UTC) tai paikalliseen talviaikaan ja poista käytöstä automaattinen siirtymä kesäaikaan — kirjaa sitten toteutuksen aikavyöhyke erikseen. Syy siihen, miksi tämä voittaa ”aseta se paikalliseen aikaan” -tavan, on se, että kesäaikaan siirtyminen on hiljainen sabotööri: se työntää piilotetun yhden tunnin sauman puolen läpi tietueistasi, ja UTC:hen tai talviaikaan lukittu kello ei yksinkertaisesti kompastu mihinkään saumaan. Toiseksi, kun viet tai nimeät tiedostoja, kirjoita ajat yksiselitteisessä järjestyksessä — päivämäärä ensin, `YYYY-MM-DD` tai täysi ISO-aikaleima — jotta kenenkään ei tarvitse alavirrassa arvailla, onko `02/10` helmikuu vai lokakuu.

Jos huomaat jälkikäteen, että toteutuksen kello oli väärässä tunnetun verran, se on korjattavissa joukoittain — työkalut voivat siirtää kansion jokaisen kuvan aikaleimoja kiinteällä poikkeamalla, mikä on oikea tapa käsitellä esimerkiksi laiteohjelmistovirhe, jonka eräs suuri valmistaja toimitti ja joka sekoitti vuosiluvun sen kameroissa vuodenvaihteessa 2015/2016. Varmuuskopioi kuvat ensin, korjaa sitten. Syvempi pointti pätee: sisäänoton hetkellä havaittu kellovirhe on viiden minuutin harmi; sama virhe, jota ei koskaan havaita, on pysyvä fiktio aineistossasi.

Olkapään yli kuvattu näkymä henkilöstä, joka merkitsee riistakameran kuvaa hirvieläimestä näytöllä

Tyhjien ruutujen karsinta: tekoälyesisuodatus

Tässä on työnkulun se osa, jossa määräongelma ja moderni työkalusto vihdoin kohtaavat sinun edukseesi.

Riistakamerat laukeavat lämmöstä ja liikkeestä, mikä tarkoittaa, että ne laukeavat tuulessa heiluvista oksista, huojuvasta heinästä, sateesta, siirtyvästä auringosta ja lämpimästä ilmasta yhtä herkästi kuin eläimistä. Tuloksena on, että suuri enemmistö tyypillisen toteutuksen ruuduista ei sisällä lainkaan eläintä — ne ovat tyhjiä. (Näet alalla siteerattavan tiettyä ”70–95 % tyhjää” -lukua; kohtele sitä kansanperinteenä, ellei oma datasi kerro toisin, koska sitä ei ole kiinnitetty yhteen vankkaan lähteeseen. Se, mikä on vakiintunutta, on laadullinen todellisuus: tyhjät ruudut yleensä kääpiöittävät hyödylliset, ja niiden läpikäynti käsin on koko hankkeen suuri ajansyöppö.) Niiden läpi kahlaaminen käsin on juuri sitä ”tylsää” työtä, joka nielaisee analyytikon tunnit.

Vakiotyökalu sen läpi leikkaamiseen on tunnistinmalli — näkyvimmin MegaDetector, avoimen lähdekoodin malli Microsoftin AI for Good -laboratoriosta. Se tekee yhden työn ja tekee sen laajasti: se ”tunnistaa eläimet, ihmiset ja ajoneuvot riistakamerakuvista ja suodattaa pois tyhjät kuvat vähentäen manuaalista tarkastelua suurissa aineistoissa”. Useilla miljoonilla kuvilla monista ekosysteemeistä koulutettuna sen on ottanut käyttöön reilusti yli sata organisaatiota maailmanlaajuisesti, kansallisista riistaviranomaisista yliopistolaboratorioihin useilla mantereilla. Ratkaisevaa on, että ymmärrät sen kattavuuden: MegaDetector löytää eläimet; se ei tunnista niitä lajilleen. Se on karkea mutta armoton ensimmäinen läpikäynti — eläin / ihminen / ajoneuvo / ei mitään — joka antaa sinun siirtää tyhjät ruudut syrjään ja käyttää todellinen huomiosi ruutuihin, joissa oikeasti on jotakin. Tunnistimen koordinaatit ja luottamusarvo virtaavat sitten merkintätyökaluun, joka piirtää laatikon kunkin havainnon ympärille ja antaa sinun hyväksyä, hylätä tai merkitä sen lajilleen.

Huomautus siitä, mitä tämä tuo sinulle ja mitä ei. Tunnistin siivoaa tyhjät; se ei tee lajintunnistustasi, ja jopa lajiluokittelijaan yhdistettynä konenäön tarkkuus jää yhä ihmisasiantuntijan jälkeen — joten kestävä suositus koko alalla on tekoälyavusteinen esisuodatus plus ihmisen tekemä varmistus, ei sokea automaatio. Näin käytettynä se muuttaa hankkeen laskutoimituksen: sen sijaan, että ihminen avaisi jokaisen muutamasta sadastatuhannesta kuvasta, hän avaa sen osuuden, jonka tunnistin merkitsee ei-tyhjäksi, ja varmentaa siitä eteenpäin.

Tunnistin siivoaa tyhjät; se ei tee lajintunnistustasi — yhdistä se ihmiseen, ei sokeaan uskoon.

Varmuuskopiointi ja tallennus: oleta, että jokin levy hajoaa, koska niin käy

Arkisto on vain niin kestävä kuin sen pahin yksittäinen vikaantumiskohta, ja riistakamerakuvauksessa tuo kohta on yleensä yhdellä pöydällä lepäävä kiintolevy.

Määrä, joka tekee kaikesta muusta vaikeaa, tekee myös varmuuskopioinnista ei-triviaalia: tässä mittakaavassa ”mediatiedostojen turvallinen tallentaminen, varmuuskopiointi ja hallinta ei ole triviaalia”. Vakio-ohje on käyttää pilvipalveluja tai hyvin hallittua institutionaalista tallennusta, hyväksyen, että tämä tulee todellisin kustannuksin, ja — missä voit — käyttää tallennusjärjestelmää, joka voi tarjoilla tiedostoja vakaiden verkko-osoitteiden yli, jotta julkaistu aineisto voi viitata kuviin suoraan sen sijaan, että lähettäisi kopiot kaikesta. Yleiset datanhallinnan oppaat vahvistavat sen ilmeisen kurinalaisuuden, jonka riistakameroiden käyttäjät ohittavat omalla riskillään: harkittu varmuuskopiointi, ei vain ”se on kannettavallani”.

Kaksi työkaluista lainattua suunnitteluvalintaa kannattaa varastaa, vaikket koskaan koskisi itse työkaluihin. Ensimmäinen on jo mainittu tiedostot totuuden lähteenä -malli: pidä auktoritatiivinen data kuvatiedostoissa (ja niiden sidecar-tiedostoissa) ja kohtele mitä tahansa tietokantaa uudelleenrakennettavana välimuistina. Jos tietokanta korruptoituu, luot sen uudelleen tiedostoista; et koskaan menetä varsinaisia havaintoja. Toinen on loogisen järjestyksen erottaminen fyysisestä sijainnista — antaen yhden projektin datan levittäytyä usealle levylle tai verkkojaolle, samalla kun se yhä esittäytyy yhtenä siistinä hierarkiana — mikä on juuri se tapa, jolla minimalistinen järjestelmä skaalautui yli miljoonaan valokuvaan tavanomaisella laitteistolla.

Läpikulkeva ajatus on lakata luottamasta mihinkään yksittäiseen laitteeseen. Levyt hajoavat, kortit korruptoituvat, ja Namibia-tutkimuksen suorasukainen luettelo fyysisistä vioista — sadevauriot, tyhjentyneet paristot, korttiviat, eläinten aiheuttama tuho — on muistutus siitä, että maasto on vihamielinen datallesi kauan ennen kuin se päätyy tietokoneelle. Redundanssi ei ole valinnaista; se on hinta monivuotisen arkiston elossa pitämisestä.

Kaksi ulkoista kiintolevyä pöydällä kytkettynä varmuuskopiointiin, tilamerkkivalot palavat

Datastandardit: puhutaan kieltä, jota muut osaavat lukea

Kaikki tähänastinen tekee arkistostasi käyttökelpoisen sinulle. Standardit ovat se, mikä tekee siitä käyttökelpoisen kaikille muille — ja yhä useammin omalle tulevalle itsellesi ja koneoppimismalleille, joita saatat myöhemmin kouluttaa.

Kaksi standardia hallitsee, ja ne pesiytyvät siististi sisäkkäin.

Camtrap DP (Camera Trap Data Package) on tarkoitukseen rakennettu. Se on yhteisön kehittämä vaihtomuoto, jota hallinnoidaan Biodiversity Information Standards -järjestön (TDWG) alaisuudessa ja joka jäsentää koko projektin kolmeen linkitettyyn taulukkoon — Deployments, Media ja Observations — sekä pakettia kuvaavaan metadatatiedostoon. Se suunniteltiin juuri siksi, että vaikka riistakameroiden ”Big Datan” käsittelystä oli tullut hallittavaa, ”datan harmonisointi ja vaihto pysyvät rajallisina, mikä estää sen täyden potentiaalin”. Se tukee koko kirjoa siitä, miten ihmiset todella työskentelevät — ihmisen ja tekoälyn tekemä luokittelu, kuvapohjainen ja tapahtumapohjainen — ja se rakentuu olemassa olevan avoimen datapaketointispesifikaation päälle, jotta standardiohjelmistot voivat validoida sen automaattisesti. Se on käytännössä modernin ajan seuraaja aiemmalle riistakameroiden metadatastandardille, joka ensimmäisenä määritteli nykyään kaikkialla läsnä olevan nelitasoisen hierarkian Project → Deployment → Image Sequence → Image sekä käytännön ryhmitellä 60 sekunnin sisällä otetut kuvat yhdeksi sekvenssiksi.

Darwin Core on laajempi biodiversiteettistandardi, johon riistakameradata voi myös virrata. Se on ”joukko termejä, joilla on selkeästi määritelty semantiikka ja jotka ihmiset voivat ymmärtää tai koneet tulkita”, ratifioitu standardiksi vuonna 2009 ja käytetty satojen miljoonien biodiversiteettitietueiden jakamiseen sadoissa organisaatioissa ja kymmenissä maissa. Sen termit on järjestetty luokkiin, jotka kattavat esimerkiksi tapahtuman (event), sijainnin (location), esiintymän (occurrence) ja taksonin (taxon); riistakamerahavainto kuvautuu Occurrence-luokkaan. Koska se on tarkoituksella yksinkertainen ja teknologiariippumaton, sama data voidaan ilmaista muodoissa CSV, XML, JSON tai muina koodauksina.

Kuinka valitset? Käytännön ohje on selvä: nimenomaan riistakameradatalle Camtrap DP on suositeltavampi, koska ”se on suunniteltu erityisesti tämäntyyppiselle datalle ja voi säilyttää enemmän tietoa kuin Darwin Core Archive”, kun taas Darwin Core Archive on reitti silloin, kun haluat liittyä laajempaan biodiversiteettidatan maailmaan. Eivätkä nuo kaksi ole kilpailijoita — on olemassa R-paketti, jonka koko tehtävä on lukea Camtrap DP ja muuntaa se Darwin Coreksi (ja EML:ksi), mikä on juuri se silta, jota julkinen tietovaranto käyttää riistakamerapakettien sisäänottoon. Voit työskennellä riistakameroille natiivissa muodossa ja silti julkaista yleiseen muotoon.

Yksi kehystys, jonka tämä koko standardikeskustelu tekee aluekielineutraaliksi ja jonka kannattaa sisäistää: tallenna tieteellinen nimi, vaikka näyttäisit ihmisille vain kansankielisen. Kansankieliset nimet vaihtelevat alueiden ja kielten välillä ja osoittavat toisinaan täysin eri eläimiin — sama kansankielinen nimi voi tarkoittaa yhdellä mantereella yhtä lajia ja toisella aivan toista — kun taas tieteellinen nimi on maailmanlaajuisesti yhtenäinen ja yksiselitteinen. Pidä yhtä ainoaa viitetaulukkoa odottamistasi lajeista, hankittuna auktoritatiivisesta taksonomiasta, ja tallenna tieteellinen nimi ankkurina. Se on pieni tottumus, joka säästää kansainvälisen yhteistyön sellaiselta hämmennyksen lajilta, jota on aidosti vaikea selvittää jälkikäteen.

Jakaminen ja arkistointi: yksityisen kansion muuttaminen julkiseksi voimavaraksi

Viimeinen askel — ja se, joka erottaa tutkimusarkiston henkilökohtaisesta kenkälaatikosta — on datan julkaiseminen jonnekin, mistä muut voivat löytää ja käyttää sitä uudelleen.

Määränpää on tutkimusmaailmassa tyypillisesti julkinen biodiversiteettitietovaranto, johon päästään vakiojulkaisuputken kautta; Global Biodiversity Information Facility (GBIF) on merkittävin, ja siihen julkaistaan standardoimalla datasi ensin Camtrap DP:ksi tai Darwin Coreksi. Ohjaavalla tavoitteella on nimi — FAIR-data: löydettävä (findable), saavutettava (accessible), yhteentoimiva (interoperable), uudelleenkäytettävä (reusable) — ja resepti on konkreettinen: talleta data tietovarantoon, joka antaa sille vakaan yksilöivän tunnisteen, liitä rikas metadata, jotta muut voivat arvioida, sopiiko se heidän tarpeisiinsa, lisää avoin lisenssi, jotta heillä on lupa käyttää sitä, ja standardoi muoto, jotta se todella yhdistyy muiden aineistojen kanssa. Vahva suositus on julkaista yksi aineisto projektia kohti, mikä pitää laajuuden, menetelmät ja tekijät kuvattavissa yhdessä johdonmukaisessa paikassa.

Ennen kuin mikään menee julkiseksi, kaksi valmisteluvaihetta on tärkeää. Ensinnäkin vakaat, yksilöivät tunnisteet tietueillesi — mieluiten ne, jotka hallintajärjestelmäsi jo antoi, käytettyinä sellaisinaan sen sijaan, että niitä näperreltäisiin, sillä bittien liittäminen tunnisteeseen tekee siitä vain hauraan. Toiseksi käsittele arkaluontoista tietoa yleistämällä, ei poistamalla. Riistakameradata kantaa kolmenlaista arkaluontoisuutta: harvinaisten tai uhanalaisten lajien sijainnit (jotka voivat houkutella salametsästäjiä), omien kameroidesi sijainnit (varkaus ja ilkivalta) ja henkilötiedot — osallistujien nimet ja mahdolliset tunnistettavien ihmisten kuvat, jotka kuuluvat tietosuojasäädösten kuten GDPR:n piiriin. Suositeltu lähestymistapa on sumentaa arkaluontoisen lajin koordinaatit sen sijaan, että tietue pidätettäisiin kokonaan, pitää ihmisten kuvat yksityisinä ja dokumentoida mikä tahansa soveltamasi yleistys, jotta käyttäjät tietävät, mitä katsovat. Kansalaistieteen maailma on kauan tehnyt tästä versioita: uhanalaisten ja vaarantuneiden lajien sijainnin peittäminen niin, että julkiset datapisteet tarkentuvat vain projektin keskipisteeseen, ja data-embargojen tarjoaminen, jotta tiimi saa ensimmäisen mahdollisuuden julkaista ennen kuin data avautuu.

Kannattaa sanoa suoraan, miksi jakaminen ylipäätään kannattaisi, koska julkaisemista on helppo pitää byrokraattisena lisärasitteena. Koko syy siihen, miksi ”dark data” -ongelmalla on merkitystä, on se, että yhtenäisessä muodossa jaettu riistakameradata on uudelleenkäytettävissä kauas alkuperäisen tarkoituksensa yli — lajien levinneisyysmallinnukseen, biodiversiteetin seurantaan, jopa harjoitusdataksi seuraavan sukupolven tunnistinmalleille. Data, jonka keräsit vastataksesi yhteen kysymykseen, voi asianmukaisesti arkistoituna ja jaettuna auttaa vastaamaan tusinaan kysymykseen, joita et koskaan ajatellut kysyä. Siinä on koko argumentti sille, että tekee mitään tästä huolellisesti: järjestetty, standardoitu, avoimesti julkaistu arkisto ei vain selviä hankkeestasi — se kasvaa sitä suuremmaksi.

Data, jonka keräsit vastataksesi yhteen kysymykseen, voi asianmukaisesti arkistoituna auttaa vastaamaan tusinaan, joita et koskaan ajatellut kysyä.

Minimaalinen työnkulku alusta loppuun

Näyttö, jolla tyhjät metsäkuvat on eroteltu ketun ja hirvieläimen sisältävistä kuvista

Jos haluat koko asian yhtenä jaksona, tässä on selkäranka, jonka lähteet yhdessä kuvaavat — mukauta työkalut, säilytä järjestys:

  1. Ota sisään toteutuksittain. Kopioi kukin kortti omaan toteutuskohtaiseen kansioonsa uudelleennimeämättä; pidä raakakopio koskemattomana varmuuskopiona.
  2. Korjaa kello ensin. Varmenna aikaleimat; jos toteutuksen kello oli pielessä tunnetun verran, siirrä ne joukoittain nyt, ennen kuin mikään muu lukee noita aikoja.
  3. Päätä skeema. Määrittele datakenttäsi ja sallitut arvot etukäteen ja anna ohjelmistosi valvoa niitä jokaisen merkitsijän kohdalla.
  4. Esisuodata tyhjät. Aja tunnistin siirtääksesi tyhjät ruudut syrjään, jotta ihmisen huomio menee vain kuviin, joissa on jotakin.
  5. Merkitse tehokkaasti, metadataan. Tunnista ja annotoi käyttäen valintaa kirjoittamisen sijaan ja jaksoryhmittelyä ruutu-ruudulta-käsittelyn sijaan, ja tallenna tunnisteet kuvan omaan EXIF/IPTC/XMP:hen (tai sidecar-tiedostoon), jotta ne kulkevat mukana.
  6. Varmuuskopioi redundantisti. Pilvi- tai institutionaalinen tallennus sekä kurinalaisuus siitä, että tiedostot — ei mikään yksittäinen tietokanta — ovat totuuden lähde.
  7. Standardoi ja jaa. Vie Camtrap DP:hen (tai Darwin Coreen), yleistä kaikki arkaluontoinen ja julkaise yksi aineisto projektia kohti julkiseen tietovarantoon.

Yksikään näistä askeleista ei ole vaikea. Useita niistä on mahdotonta tehdä myöhemmin. Tuo epäsymmetria on koko syy ottaa tylsä askel vakavasti: arkisto, jonka voit luovuttaa tuntemattomalle viiden vuoden kuluttua, rakennetaan tai menetetään ensimmäisen tunnin aikana korttien tultua kotiin.

Usein kysytyt kysymykset

Kuinka minun tulisi järjestää riistakameran kuvat kansioihin?

Tee yksi kansio kutakin toteutusta kohti — kameran yksittäinen sijoittelu yhdeksi ajanjaksoksi — ja kopioi kunkin muistikortin sisältö siihen nimeämättä tiedostoja uudelleen. Tämä estää tiedostonimiä törmäämästä kameroiden välillä, säilyttää yhteyden valokuvan ja sen alkuperäpaikan välillä ja antaa sinun kopioida kortit sellaisinaan täsmälleen kuten ne ovat. Pidä kansiohierarkia kolmessa tai neljässä tasossa syvyyssuunnassa, äläkä koskaan yhdistä kahden kameran kuvia asemalla, ellet ole varma, ettet koskaan tarvitse niitä eroteltuina.

Pitäisikö minun laittaa lajinimi tiedostonimeen?

Ei. Tunnistus on tulkinta, jota voidaan korjata, joten se kuuluu metadataan, ei tiedostonimeen — GBIF:n parhaiden käytäntöjen opas listaa nimenomaisesti lajin-tiedostonimessä huonoksi käytännöksi. Aloita sen sijaan tiedostonimet päivämäärästä (`YYYYMMDD_HHMMSS`), jotta ne lajittuvat aikajärjestykseen, ja kirjoita lajitunnisteet kuvan IPTC/XMP-avainsanakenttiin, joissa niitä voidaan korjata mitään uudelleennimeämättä.

Mikä on paras tiedostomuoto tai standardi riistakameradatan jakamiseen?

Nimenomaan riistakameradatalle Camtrap DP on suositeltavin julkaisustandardi, koska se on tarkoitukseen rakennettu ja säilyttää enemmän tietoa kuin vaihtoehto; Darwin Core on laajempi biodiversiteettistandardi käytettäväksi silloin, kun syötät laajempaa dataekosysteemiä. Ne ovat yhteensopivia — työkaluja on olemassa Camtrap DP -paketin muuntamiseksi Darwin Coreksi julkaistavaksi GBIF:n kaltaiseen tietovarantoon.

Pysyvätkö lajitunnisteet kuvan mukana, jos siirrän tiedoston?

Vain jos upotat ne kuvan omaan metadataan (tai pariksi liitettyyn sidecar-tiedostoon). IPTC- tai XMP-kenttiin kirjoitetut tunnisteet säilyvät, kun tiedosto kopioidaan tai lähetetään toiseen järjestelmään; vain erilliseen tietokantaan pidetyt tunnisteet jäävät jälkeen, kun siirrät kuvan. Vankka kokoonpano tallentaa ne molempiin paikkoihin — tiedostoon siirrettävyyttä varten, tietokantaan nopeaa hakua varten.

Kuinka käsittelen valtavaa määrää tyhjiä valokuvia?

Käytä tekoälytunnistinta niiden esisuodattamiseen. MegaDetectorin kaltainen malli merkitsee, sisältääkö kukin ruutu eläimen, ihmisen vai ajoneuvon, ja siirtää tyhjät syrjään, jotta tarkastelet vain kuvia, joissa on jotakin — joskaan se ei tunnista lajeja, joten yhdistä se ihmisen tekemään varmistukseen sen sijaan, että luottaisit siihen sokeasti. Suuri enemmistö tyypillisen toteutuksen ruuduista on yleensä tyhjiä, minkä vuoksi tämä yksi askel säästää eniten aikaa.

Mitä kellonasetusta minun tulisi käyttää kameroissani?

Aseta kello koordinoituun yleisaikaan (UTC) tai paikalliseen talviaikaan, poista käytöstä automaattinen siirtymä kesäaikaan ja kirjaa toteutuksen aikavyöhyke erikseen. Aikaleima on se yksi metadatan osa, jota et voi rakentaa uudelleen myöhemmin, ja kesäaikaan siirtyminen työntää hiljaa yhden tunnin virheen osaan datastasi — UTC:hen tai talviaikaan lukittu kello välttää tuon sauman kokonaan.