Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Sesiunea de Comunicari Stiintifice
Programare avansata si multimedia
Sistem de Securitate : Detectarea Miscarii
Introducere - Motivatie
Piata sistemelor de securitate este in continua dezvoltare si expansiune. Tot mai multi oameni apeleaza la un sistem informatic, automatizat pentru a-si proteja casa, biroul, masina, cladirea in care locuiesc etc. .
Majoritatea sistemelor de acest gen, sunt costisitoare si necesita componente hardware complexe, interconectate. Un astfel de sistem performant, la detectarea unei intruziuni nu face decat sa inregistreze pe un computer aflat in interiorul casei, biroului, ceea ce se intampla in perimetru. Un raufacator, poate identifica locatia acestui computer si opri sistemul sau poate sterge orice urma de intruziune. Sistemele de ultima generatie, declanseaza o alerta la o firma de securitate, care se deplaseaza la adresa posesorului.
Puncte slabe:
1 Costuri ridicate
2 Componente hardware complexe
3 Sistemul este de cele mai multe ori evident
4 Proprietarul nu stie ce se intampla can nu este present
Propunerea noastra este un sistem diferit, dar performant, in comparatie cu celelalte produse comerciale, disponibile publicului larg.
Puncte tari:
1 Cost foarte redus
2 Usor de utilizat
3 Usor de configurat
4 Sigur si eficient
5 Atentionare in timp real
Descrierea sistemului
Sistemul propus monitorizeaza incaperea care a fost desemnata ca arie de supraveghere si, cand detecteaza o miscare considerabila, telefoneaza automat persoanei desemnate cu securitatea incaperii, cladirii.
Sistemul este alcatuit din 4 mari componente:
1 PC
2 telefon mobil
3 webcam
4 soft
1 Marea majoritate a familiilor din mediul urban (in special familiile in care se gaseste un membru intelectual) sunt posesoare ale unui PC. PC-ul care este folosit pentru diverse activitati specifice celui care il utilizeaza, poate fi si gazda unui sistem de securitate, neobservabil. Este solutia optima si cea mai ieftina, deoarece nu trebuie achizitionat un calculator separat sau un alt dispozitiv hardware special.
2 Telefon mobil: aprope toata lumea are astazi un telefon mobil. Este greu de crezut ca o persoana/firma care are nevoie de un sistem de securitate nu detine si un telefon mobil. Iata, inca o data, sistemul foloseste pana acum ceea ce beneficiarul, cel mai probabil, deja detine.
3 Webcam: pentru a identifica miscarea, sistemul se foloseste de un webcam, simplu, obijnuit, necostisitor. Webcam-ul face legatura intre lumea reala s icea virtuala pentru acest sistem de securitate.
4 Soft: toate componentele de mai sus sunt interconectate cu ajutorul uni soft complex ce determina in timp real daca este miscare in incapere si alerteaza in timp real o persoana autorizata. Softul, la cererea utilizatorului, foloseste webcam-ul pentru a monitoriza in permanenta incaperea in care se afla, proceseaza folosind un algoritm complex de detectare a miscarii imaginile primate de la dispozitiv si, in caz de nevoie, prin intermediul Skype, alerteaza imediat persoana autorizata.
Tehnologii folosite
Pentru realizarea aplicatiei s-au folosit o diversitate de tehnologii, fiecare specifica unei parti cheie, alese atent dupa ce specificatiile proiectului au fost stabilite si designul general creeat.
Regasim astfel:
Microsoft C# .NET - limbajul de baza in care a fost dezvoltata aplicatia
Microsoft C++ (MFC) - utilizat pentru a creea un DLL, componenta cheie, low level
XML - pentru a stoca informatii specifice utilizatorului
XML Web Services - pentru a transfera fisierele video salvate catre un Web Server
ASP.NET - pentru a facilita accesul la distanta in vederea vizionarii inregistrarilor video
Windows Media Player SDK - pentru a putea coda fisierele video in ideea micsorarii dimensiunii acestora
Macromedia Flash - Action Scripting - pentru a creea prezentarea proiectului
Skype, Skype API - comunicarea cu telefoul mobil
Algoritm de detectare a miscarii
Algoritmi de detectare a miscarii pot fi implementati reativ usor, insa fiecare are avantaje si dezavantaje. In continuare vom prezenta premizele unui algoritm rudimentar, pentru ca apoi cladind pe el, sa ajungem la un algoritm performant.
Ideea de baza folosita in a creea un algoritm de detectare a miscarii este de a compara in permanenta imaginea actual cu cea precedenta.
Incepem cu un cadru (frame) stabil (de exemplu primul cadru) si cadrele imediat urmatoare, amandoua fiind transformate in alb-negru pentru a putea compara mai usor diferentele; Primul pas este de a creea o imagine diferenta intre cele 2 cadre. Acest lucru se poate face folosind un filtru de diferenta:
Difference FiltruDiferenta = new Difference();
Initializam apoi acest filtru cu primul cadru, care va fi folosit ca baza de comparative.
FiltruDiferenta.OverlayImage = Cadru1;
Obtniem o imagine ca rezultat al diferentei dintre cadrul current si cel de inceput
Bitmap ImagineDiferenta = FiltruDiferenta.Apply(CadruCurent);
Aplicam un alt filtru, care va transforma pixelii obtinuti ca diferenta in alb; aici vom folosi un prag pentru a scoate numai acele diferente mai mari ca o valoare.
IFilter Prag = new Threshold(20);
Bitmap Diferenta = prag.Apply(ImagineDiferenta);
In acest moment am obtinut o imagine care contine numai diferentele dintre cadrul current si cel de baza; Imaginea nu este insa corecta deoarece apar pixeli care aparent sunt diferiti, dar care in realitate sunt doar "zgomot" produs de calitatea imaginii. Pentru a obtine o imagine apropiata de realitate, mai aplicam un filtru numit filtru de eroziune, al carui scop este sa anuleze micile diferente care nu sunt relevante.
IFilter Eroziune = new Erosion();
Bitmap ImagineReala = eroziune.Apply(Diferenta);
Problema fundamentala a acestui algoritm este aceea ca daca din cadru dispare un obiect, atunci vom detecta miscare pentru fiecare cadru!
Pentru a evita o astfel de problema, vom muta cu cadrul de baza catre cadrul current. Procedand astfel, algoritmul va evita detectarea falsa a miscarii. Diferenta dintre cele doua cadre poate fi foarte mica, insa folosind un prag de diferenta la fel de mic, precum este descris mai sus, exactitatea algoritmului creste considerabil; astfel, dupa procesarea fiecarei imagini, cadrul de baza va deveni cadrul curent. In procesarea imaginii vom calcula de fiecare data numarul de pixeli albi obtinuti si o vom compara cu o valoare prestabilita, considerata drept prag de detectie a miscarii.
Algoritm de comunicare Skype
Pentru a putea atentiona o persoana autorizata am ales sa folosim Skype ca mijloc de comunicare. Skype implementeaza Skype API prin care se poate controla si interactiona programatic cu clientul Skype.
Programatic, acest lucru se realizeaza prin transferul de mesaje Windows intre client (aplicatia de detectie a miscarii) si Skype.
Pasul unu este conectarea la Skype. Acest lucru se face prin transmiterea mesajului SkypeControlAPIDiscover. Daca conectarea a reusit, Skype va trimite mesajul Available. Din acest Moment, folosind mesajul SkypeControlAPIAttach putem trimite comenzi, conform Skype API. Pentru a efectua un telefon, se trimite mesajul call urmat de numarul de telefon.
Structura generala
Da
Miscare
detectata Nu s-a detectat miscare
Copyright © 2024 - Toate drepturile rezervate