CovidCam

Authors: Popescu Dumitru-Ion, Ciurea Gabriel, Dumitrescu Andrei, Radoi Iulian, Pirvulet Mihai

1. Tema Abordata - Comunitate si vecinatate

Cat timp restrictiile curente sunt in vigoare si lumea sta in case de frica, pare ca raspandirea virusului e sub control. Dar ce se va intampla cand acestea vor disparea? Cum pot eu, ca institutie, afacere locala, sau chiar persoana fizica sa gasesc o solutie eficienta si rentabila de a tine evidenta in timp real a unor persoane potential “riscante” care patrund in incinta mea si sa imi protejez clientii si angajatii?

2. Elaborarea Proiectului

CovidCam ofera o solutie usor de implementat, folosit si configurat pentru a asigura o evidenta si un control mai bun asupra celor care nu iau pandemia in serios, sau a persoanelor aflate in categorii de risc mare. Cateva exemple unde un astfel de dispozitiv ar putea face diferenta:

  • Mijloace de transport in comun (ex. metrou, avion)
  • Institutii publice (ex. primarie, prefectura)
  • Supermarketuri, magazine, farmacii
  • Baruri, restaurante

Cum ne propunem sa facem asta? Prin determinarea, cu ajutorul inteligentei artificiale, a unui factor de risc specific fiecarei persoane care vrea sa patrunda in locatie. In acest fel, se reduce considerabil riscul contaminarii altor persoane in zonele aglomerate, oferind o siguranta suplimentara in revenirea la viata inainte de COVID-19.

Ce variabile sunt luate in considerare in determinarea factorului de risc?

  • Daca subiectul poarta masca sau nu, acest aspect find detectat prin inteligenta artificiala.
  • Temperatura aproximativa a corpului, determinata printr-o camera termica.
  • Varsta subiectului ( CovidCam poate identifica atat persoane “riscante”, cat si persoane cu risc de contaminare ridicat)

Pentru a securiza o locatie, este nevoie doar ca administratorul sa instaleze camera la intrare, acesta avand ulterior acces prin intermediul unei aplicatii web (poate fi accesata inclusiv de pe telefon) la un registru cu toate persoanele care patrund in locatie, fiind alarmat in cazul unor persoane cu risc ridicat.

Costurile Estimate sunt undeva in jurul sumei de 110 euro per device (budget) sau 189 euro per device (pro - pentru zone foarte aglomerate) , fara costuri de mentenanta. Acestea se compun din:

Total Budget (estimativ) : 109 Euro

Total Pro (estimativ) : 189 Euro

2. Further development

Un prim pas ar fi implementarea unui prototip 100% functional, cu toti cei 3 parametri implicati in determinarea factorului de risc. Din cauza resurselor limitate, alaturi de timpul scurt destinat hackathon-ului, demo-ul a fost realizat cu valori simulate pentru temperatura. De asemenea, nu am apucat sa implementam partea de detectie de varsta, dar ne-am documentat si aceasta ar fi usor de implementat in pipeline-ul nostru actual (folosind tot o metoda bazata pe inteligenta artificiala ).

Pe viitor, ne dorim sa extindem solutia prin implementarea mai multor factori in calcul, cum ar fi:

  • Gradul de aglomerare al camerei
  • Factorul de risc al locatiei ( pe baza unui istoric )

3. Descrierea Codului

3.1. Detectia mastii pe fata persoanei

Am utilizat Deep Learning pe un model de CNN, folosind ca tehnologii Keras si Python3. Modelul a fost antrenat pe un dataset de 1.700 de imagini (sursa). Modelul a avut o acuratete de 95% - 97% si a fost salvat intr-un fisier de tip h5. In scriptul de detectare a persoane care intra in incinta am facut o poza individului folosind camera si am detectat daca poarta masca sau nu. De asemenea, cu ajutorul senzorului de temperatura am verificat daca are febra si am calculat un factor de risc folosind urmatoare formula (pentru demo, inputul senzorului a fost simulat):

Risk = (model_prediction + temp) / 2

Astfel, o sa obtinem un nr intre 0 si 1. Daca riscul depaseste valoarea de 0.5, transmitem informatia prin intermediul unui request la un server si este data o alerta pe aplicatia web in legatura cu persoana care a intrat. Fiind un prototip si neavand timp foarte mult, modelul a fost antrenat pe un numar mic de imagini, iar temperatura a fost generata random intre 36 si 40 de grade.

3.2. Aplicatie web destinata administratorului, pentru log-uri

Aplicatia este impartita in 2 parti: pagina de alerta (Home - real time statistics) si pagina de History.

Partea de alerta - in momentul unei schimbari in baza de date (cand o persoana este adaugata de catre programul de detectare), pe pagina apare o alerta care ne spune detalii despre persoana respectiva (imagine, temperatura, daca poarta masca sau nu si factorul de risc).

Partea de history - fiecare persoana raportata este adaugata in history continuand toate datele afisate initial, inclusiv poza.

Pentru baza de date am folosit Firebase, iar pentru pagina web am folosit Javascript, html/css si bootstrap. La fiecare updatare a bazei de date se updateaza si aplicatia web.

Share this project:

Updates