AI-For-Beginners/translations/fi/lessons/4-ComputerVision/12-Segmentation/README.md

5.0 KiB

Segmentointi

Olemme aiemmin oppineet objektien tunnistamisesta, joka mahdollistaa objektien paikantamisen kuvassa ennustamalla niiden rajauslaatikot. Joissakin tehtävissä emme kuitenkaan tarvitse pelkästään rajauslaatikoita, vaan myös tarkempaa objektien paikantamista. Tätä tehtävää kutsutaan segmentoinniksi.

Esiluentavisa

Segmentointi voidaan nähdä pikseliluokitteluna, jossa jokaiselle kuvan pikselille on ennustettava sen luokka (tausta on yksi luokista). Segmentointialgoritmit voidaan jakaa kahteen päätyyppiin:

  • Semanttinen segmentointi kertoo vain pikselin luokan, mutta ei erottele saman luokan eri objekteja.
  • Instanssisegmentointi jakaa luokat eri instansseihin.

Esimerkiksi instanssisegmentoinnissa nämä lampaat ovat eri objekteja, mutta semanttisessa segmentoinnissa kaikki lampaat kuuluvat yhteen luokkaan.

Kuva tästä blogikirjoituksesta

Segmentointiin on olemassa erilaisia neuroverkkoarkkitehtuureja, mutta niillä kaikilla on sama rakenne. Tietyllä tavalla se muistuttaa aiemmin oppimaasi autoenkooderia, mutta alkuperäisen kuvan purkamisen sijaan tavoitteena on purkaa maski. Segmentointiverkolla on seuraavat osat:

  • Kooderi (Encoder) poimii piirteitä syötekuvasta.
  • Dekooderi (Decoder) muuntaa nämä piirteet maskikuvaksi, jonka koko ja kanavien määrä vastaavat luokkien määrää.

Kuva tästä julkaisusta

Erityisesti on mainittava segmentoinnissa käytettävä häviöfunktio. Klassisia autoenkoodereita käytettäessä meidän on mitattava kahden kuvan samankaltaisuutta, ja tähän voidaan käyttää keskineliövirhettä (MSE). Segmentoinnissa kohdemaskikuvan jokainen pikseli edustaa luokkanumeroa (yksi-kuuma-koodattuna kolmannessa ulottuvuudessa), joten meidän on käytettävä luokitteluun tarkoitettuja häviöfunktioita - ristientropiahäviötä, joka on keskiarvoistettu kaikkien pikselien yli. Jos maski on binäärinen, käytetään binääristä ristientropiahäviötä (BCE).

Yksi-kuuma-koodaus on tapa koodata luokkamerkki vektoriksi, jonka pituus vastaa luokkien määrää. Tutustu tähän artikkeliin saadaksesi lisätietoa tästä tekniikasta.

Segmentointi lääketieteellisessä kuvantamisessa

Tässä oppitunnissa näemme segmentoinnin käytännössä kouluttamalla verkkoa tunnistamaan ihmisen luomia (tunnetaan myös nimellä "moolit") lääketieteellisistä kuvista. Käytämme PH2-tietokantaa, joka sisältää dermoskopiakuvia. Tämä tietokanta sisältää 200 kuvaa kolmesta luokasta: tyypillinen luomi, epätyypillinen luomi ja melanooma. Kaikilla kuvilla on myös vastaava maski, joka rajaa luomen.

Tämä tekniikka sopii erityisen hyvin tämän tyyppiseen lääketieteelliseen kuvantamiseen, mutta mitä muita tosielämän sovelluksia voisit kuvitella?

luomet

Kuva PH2-tietokannasta

Koulutamme mallin segmentoimaan minkä tahansa luomen sen taustasta.

✍️ Harjoitukset: Semanttinen segmentointi

Avaa alla olevat muistikirjat oppiaksesi lisää erilaisista semanttisen segmentoinnin arkkitehtuureista, harjoittele niiden käyttöä ja näe ne toiminnassa.

Jälkiluentavisa

Yhteenveto

Segmentointi on erittäin tehokas tekniikka kuvien luokittelussa, sillä se menee rajauslaatikoita pidemmälle ja mahdollistaa pikselitason luokittelun. Sitä käytetään lääketieteellisessä kuvantamisessa ja monissa muissa sovelluksissa.

🚀 Haaste

Kehon segmentointi on vain yksi yleisistä tehtävistä, joita voimme tehdä ihmisten kuvilla. Muita tärkeitä tehtäviä ovat luurangon tunnistus ja asennon tunnistus. Kokeile OpenPose-kirjastoa nähdäksesi, miten asennon tunnistusta voidaan käyttää.

Kertaus ja itseopiskelu

Tämä Wikipedia-artikkeli tarjoaa hyvän yleiskatsauksen tämän tekniikan eri sovelluksista. Opi lisää itsenäisesti instanssisegmentoinnin ja panoptisen segmentoinnin alalajeista tässä tutkimuskentässä.

Tehtävä

Tässä laboratoriossa kokeile ihmiskehon segmentointia käyttäen Segmentation Full Body MADS Dataset -aineistoa Kagglesta.