Face mask wearing detection with neural network
Solin, Lauri (2021)
Solin, Lauri
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021060113100
https://urn.fi/URN:NBN:fi:amk-2021060113100
Tiivistelmä
Insinöörityön tavoitteena oli kehittää kasvomaskien käytön havainnointiin tarkoitettu ohjelma, jota voitaisiin käyttää COVID-19-pandemian etenemisen monitorointiin. Muita käyttötarkoituksia voisi olla kulunvalvonta esimerkiksi sisätiloissa, joissa on kasvomaskipakko.
Erilaisia toteutustapoja ja valmiita kasvojen havainnointiratkaisuja tutkittiin. Ratkaisuna päädyttiin kouluttamaan uudelleen objektien havaitsemismalli tunnistamaan kasvomaskeja ja maskittomia kasvoja valokuvista. Käytettyjä työkaluja olivat pääasiassa TensorFlow object detection API -rajapinta objektien havaitsemista varten. Muita työkaluja olivat TensorFlow-kirjasto, Jupyter Notebook ja Python-ohjelmointikieli tietoaineiston esikäsittelyyn. Projekti toteutettiin Windows-käyttöjärjestelmällä Anaconda Python -ympäristössä. Käytetty näytönohjain oli Nvidia RTX 2070 Super (8 GB).
Valittu tietoaineisto oli muiden tutkijoiden keräämä FMLD (face mask label dataset) -tietoaineisto, joka sisälsi noin 41 900 valokuvaa. Tietoaineistossa olevat luokat olivat: väärin käytetty kasvomaski, maskiton ja kasvomaski. Koko tietoaineistoa ei pystytty hyödyntämään. Käytetty otos oli noin 93% alkuperäisestä aineistosta. Maskin käytön tunnistusmalli koulutettiin TensorFlow object detection API -rajapintaa käyttäen ja minimitavoitteet saavutettiin. Ensimmäisellä koulutusyrityksellä objektien havaitsemismallin saavuttama keskitarkkuuksien keskiarvo (mean average precision) oli 70.5% mAP käyttäen IoU-kynnysarvoa 0.5. Parannus oli +3.3 prosenttiyksikköä mAP erästä MTCNN-neuroverkkomallia parempi. MTCNN verrokki oli valmiiksi koulutettu kasvojen havaitsemiseen. Ensimmäisellä koulutusyrityksellä yritettiin havaita maskittomat, kasvomaskilliset ja väärin maskia käyttäneet henkilöt. Toisella koulutusyrityksellä, uusia hyperparametreja käyttäen sekä pudottamalla väärin käytetyt kasvomaskit tietoaineistosta, saavutettiin vieläkin parempi tulos. Tällä toisella yrityksellä yritettiin havainnoida ainoastaan maskittomia ja kasvomaskillisia kasvoja. Näin saavutettu keskitarkkuuksien keskiarvo oli 86.4% mAP@IoU=0.5. Näin mitattuna parannus verrattuna MTCNN-verrokkiin oli +19.29 prosenttiyksikköä mAP.
Erilaisia toteutustapoja ja valmiita kasvojen havainnointiratkaisuja tutkittiin. Ratkaisuna päädyttiin kouluttamaan uudelleen objektien havaitsemismalli tunnistamaan kasvomaskeja ja maskittomia kasvoja valokuvista. Käytettyjä työkaluja olivat pääasiassa TensorFlow object detection API -rajapinta objektien havaitsemista varten. Muita työkaluja olivat TensorFlow-kirjasto, Jupyter Notebook ja Python-ohjelmointikieli tietoaineiston esikäsittelyyn. Projekti toteutettiin Windows-käyttöjärjestelmällä Anaconda Python -ympäristössä. Käytetty näytönohjain oli Nvidia RTX 2070 Super (8 GB).
Valittu tietoaineisto oli muiden tutkijoiden keräämä FMLD (face mask label dataset) -tietoaineisto, joka sisälsi noin 41 900 valokuvaa. Tietoaineistossa olevat luokat olivat: väärin käytetty kasvomaski, maskiton ja kasvomaski. Koko tietoaineistoa ei pystytty hyödyntämään. Käytetty otos oli noin 93% alkuperäisestä aineistosta. Maskin käytön tunnistusmalli koulutettiin TensorFlow object detection API -rajapintaa käyttäen ja minimitavoitteet saavutettiin. Ensimmäisellä koulutusyrityksellä objektien havaitsemismallin saavuttama keskitarkkuuksien keskiarvo (mean average precision) oli 70.5% mAP käyttäen IoU-kynnysarvoa 0.5. Parannus oli +3.3 prosenttiyksikköä mAP erästä MTCNN-neuroverkkomallia parempi. MTCNN verrokki oli valmiiksi koulutettu kasvojen havaitsemiseen. Ensimmäisellä koulutusyrityksellä yritettiin havaita maskittomat, kasvomaskilliset ja väärin maskia käyttäneet henkilöt. Toisella koulutusyrityksellä, uusia hyperparametreja käyttäen sekä pudottamalla väärin käytetyt kasvomaskit tietoaineistosta, saavutettiin vieläkin parempi tulos. Tällä toisella yrityksellä yritettiin havainnoida ainoastaan maskittomia ja kasvomaskillisia kasvoja. Näin saavutettu keskitarkkuuksien keskiarvo oli 86.4% mAP@IoU=0.5. Näin mitattuna parannus verrattuna MTCNN-verrokkiin oli +19.29 prosenttiyksikköä mAP.