SICK

Image result for sick automationToteutimme konenäköön perustuvan ohjelman, jolle on mahdollista livekuvasta opettaa ja tunnistaa erinäköisiä objekteja. Ohjelma on suunniteltu toimimaan SICK:in konenäkökameran muodostamassa sulautetussa järjestelmässä.

Projektimme tiivistetysti

Projektimme tarkoitus oli saada aikaan ohjelma, joka tunnistaa ja jolle on mahdollista opettaa tunnistettavat objektit käyttäen kameran ottamia kuvia syötteenään. Lähtökohtaisesti tunnistettavien objektien oletetaan olevan aikakauslehtien kansia, mutta loppupeleissä mitkä tahansa muukin objektit, joissa tunnistettavat muodot ovat vain oleellisesti yhdessä tasossa, käyvät tarkoitukseen.

Ohjelmointiympäristönä käytimme SICK:in tarjoamaa AppStudiota, joka on suunniteltu toimimaan yhdessä yrityksen ohjelmoitavien laitteiden, kuten Inspector63x-kameran kanssa, jota me käytimme ohjelmamme suoritukseen. Ohjelmointikielenä AppStudiossa toimii Lua.

Image result for inspectorp632
Käytössämme ollut konenäkökamera Inspector63x

Mistä lähdimme liikkeelle

Tavoitteenamme oli siis rakentaa ohjelma, jolle on mahdollista opettaa ja jonka on mahdollista tunnistaa livekuvasta eri lehtiä. Lähtökohtaisesti ajattelimme, että käyttökohteita voisivat olla esimerkiksi lehtitalon tuotantolinja tai lehtikioskit. Tuotantolinjalla ohjelma voisi tunnistaa lehtiä, jotka liikkuvat hihnaa pitkin. Tästä tunnistus ohjattaisiin johonkin mekaaniseen lajittelukoneeseen, joka lajittelisi lehdet. Lehtikioskissa työntekijä voisi “skannata” lehdet päivän päätteeksi ja palauttaa myymättömät lehdet lehtitalolle saaden rahaa takaisin.

Haasteenamme oli rakentaa kokonaisvaltaiset opetus- ja tunnistusprosessit sisältävä ohjelma, jota olisi helppo käyttää ja jonka suoritusta käyttäjä pystyisi valvomaan.

Toteutus

Algoritmisellä tasolla päädyimme hyödyntämään SICK:in omaa pointmatcher-algoritmia, jossa kuvasta etsitään tunnistukseen sopivia pisteistä erilaisin matriisioperaatioin ja joita sitten verrataan livekuvasta löydettyihin pisteisiin.

Osana tunnistusta toimii myös Ethernetin kautta TCP/IP -protokollalla lähetettävä listan indeksinumero, jota kameran alla oleva lehti vastaa, ja jonka avulla lehdet lajitellaan. Tämä voitaisiin siis lähettää esimerkiksi tuotantolinjan mekaaniseen lajittelijaan.

Käyttöliittymässä hyödynsimme AppStudion tarjoamaa graafista käyttöliittymä-rakentajaa. Käyttöliittymästä onnistuu opetus- ja tunnistusprosessien käynnistys, seuranta ja visualisointi, sekä tunnistusparametrien muuttaminen ajonaikaisesti ohjelman käyttäjän toimesta.

Opetuksen visualisointia käyttöliittymässä. Kuvassa näkyy myös opetusalueen automaattinen valinta (vaihtoehtona alueen manuaalinen valinta käyttäjän toimesta).

Yllä olevissa kuvissa konsoliin tulostuvia tietoja ensin opetuksesta, sitten tunnistuksesta (sekä tilanteesta jossa ei tunnisteta livekuvasta mitään).

Lopputulos

Sovelluksen käyttöliittymä on melko yksiselitteinen (quick-guide sen käyttöön löytyy linkeistä). Opetukseen ja tunnistukseen vaikuttavia asetuksia on kuitenkin paljon, ja ne saa näkyviin show configurations-säätimestä. Laitoimme tarkoituksella paljon erilaisia säätimiä käyttöliittymään, jotta käyttäjällä olisi mahdollisuus säätää ohjelma toimimaan juuri täydellisesti hänen tarvitsemaansa käyttökohteeseen. Asetuksista ja niiden vaikutuksista kerrotaan pikaisesti quick-guidessa ja syvemmin loppuraportin komponenttiosiossa.

Käyttöliittymässä pystyy myös tarkastelemaan tunnistuksen laatua ja nopeutta. Toteutetusta optimointimahdollisuudesta huolimatta, ohjelman tunnistusnopeutta ei pidetty lähtökohtaisesti kovinkaan tärkeänä, koska käytössä olevasta kamerasta on nopeampia malleja, joita oikeassa tuotantomallissa käytettäisiin. Kyse onkin prototyyppi-mallista, josta voi jatkaa sen laajentamista erilaisiin käyttötarkoituksiin. Tästä huolimatta, onnistuimme saamaan opetus ja tunnistusajat melko hyviksi säätämällä asetukset lähelle minimiä (nämä näkyvät edellisissä kuvissa).

Lue myös kattava loppuraporttimme kokonaisuudessaan tästä

Tekijät

(alk. vas.)      Mikko Seppi            Kerkko Karttunen            Taavi Oja              Roope Räsänen            Juuso Korhonen

Linkit

Quick-guide, nopea käyttöopas käyttöliittymään ja ohjelman käyttöön.

loppuraportti.pdf

Koodi: mvision.7z

Lisenssit:

Koodi: MIT-lisenssi

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.