관리 메뉴

Only One Kang

[캐나다 유학] SAIT 보안학과 ISS 캡스톤 프로젝트 (SAIT 캡스톤 프로젝트) - 머신러닝을 활용한 Facial Recognition System 개발. 본문

해외생활/CANADA LIFE

[캐나다 유학] SAIT 보안학과 ISS 캡스톤 프로젝트 (SAIT 캡스톤 프로젝트) - 머신러닝을 활용한 Facial Recognition System 개발.

Domain93 2021. 3. 8. 08:00
반응형

오늘 소개해드릴 내용은 "SAIT 보안학과 ISS 캡스톤 프로젝트(SAIT 캡스톤 프로젝트)" 입니다.

저는 2020년도 5월에 이 학과를 졸업 후 현재는 Jr. IT Analyst로서 일을 하고 있습니다.

 

SAIT 보안학과 ISS(Information System Security)

 

SAIT 보안학과 ISS(Information Systems Security) 학과에 대한 간단한 소개는 이전에 작성한 포스팅 글을 참고해주세요

 

SAIT 보안학과 ISS 소개글


 

 

 

ITSC-310 System Security Capstone (시스템 보안 캡스톤 프로젝트)


한국도 마찬가지지만, 캐나다 대학교에서도 마지막 학기에는 항상 파이널 프로젝트, 즉 캡스톤 프로젝트가 있습니다.이 프로젝트를 완료해야만 졸업이 가능한 경우가 있으며, 학과에 따라 이 프로젝트는 1~2학기 기간동안 진행이 됩니다.

제가 졸업한 SAIT ISS(보안) 학과 기준, 캡스톤 프로젝트는 마지막 학기(1학기) 동안 진행이 되었고, '보안'과 관련된 주제를 가지고 프로젝트를 진행해야 했습니다.

저희 팀은 시스템 보안 캡스톤 프로젝트로 머신러닝 기술을 활용한 Faical Recognition System을 제작하였습니다.

간단하게 프로젝트에 대한 내용을 정리해보겠습니다.

 

 

 

머신러닝을 활용한 Facial Recognition System 프로젝트 요약


프로젝트명:
Facial Recognition System.

프로젝트 기간: 06. Jan. 2020 - 10. Apr. 2020
* 3월 중순부터는 문서 작성 및 발표자료 준비를 해야하기 때문에, 실질적인 개발 기간은 약 2개월정도 입니다. 

 

프로젝트 주요 내용

- 머신러닝 기술을 활용한 얼굴 인식 시스템 개발
Developed Facial Recognition system using machine learning techniques

- 얼굴 인식을 통한 로그인 시스템, 로그 체크 시스템 그리고 알람 시스템 개발- Developed a logging system, a log-in system with authentication and an alert system.

 

- OpenCV, Dlib 그리고  MTCNN과 같은 머신러닝 모듈 분석.
Analyzed machine learning modules such as Haar Cascade Face Detector in OpenCV, HoG Face Detector in Dlib and MTCNN

 

프로젝트 목표

- 이 프로젝트의 주된 목표는 제한된 구역에 놓을 수 잇는 안면 인식 시스템 개발
The main goal of the project was to make a facial recognition system that you can put in an access restricted room or area.

- 멀리서도 인식이 가능하도록 보다 정확성 높은 시스템 개발
We wanted it to be accurate, be able to identify someone from a far.

- 비밀번호 및 얼굴 인증을 통한 인증 가입 및 로그인 기능 개발.
Develop a 2 way authentication signup and login function using password based authentication and face based authentication.

 

머신러닝을 활용한 Facial Recognition System 프로젝트 개요

 

 

 

 

머신러닝을 활용한 Facial Recognition System 프로젝트 개발 환경


- OS:
 Ubuntu 19.10

- 카메라: 노트북 내장 WebCam 

- 개발언어: Python (Pyhon 3.7)

- DB: MySQL 8.0

- 머신러닝 모듈: OpenCV + Dlib

 

 

 

 

머신러닝을 활용한 Facial Recognition System 주요 기능


1. 얼굴 인식 기능

3개의 항목( 안전-Friend | 위험-Foe | 알수없음-Unknown)으로 나누어 얼굴인식을 진행.

 얼굴 인식 기능 관련 코드


2. 로그 분류 및 보관 기능 (일반 / 경고 / 위험)

DB와 관련된 로그와 카메라 탐지 관련 로그를 따로 보관하여 필요한 데이터의 접근성을 높임.

DB 리스트
DB 로그
카메라 로그

 

3. 이중보안(비밀번호 및 얼굴인식)을 이용한 로그인 시스템

이중보안(비밀번호 + 얼굴인식)을 통해 로그인 할 수 있는 웹페이지를 제작.
가입 후 로그인 시, 카메라로 얼굴인식을 해야하며, DB에 저장된 사용자만 얼굴인식을 통해 접속이 가능.

웹 페이지 회원가입 및 로그인 얼굴인증 과정

 

- 적 발견 시 알람 제공

적으로 선별된 사람의 얼굴이 탐지될 경우 담당자 이메일로 알람을 전송

 

 

 

 

머신러닝을 활용한 Facial Recognition System 프로젝트를 진행하면서 발생한 문제점들


1. 머신러닝 모듈 OpenCV가 특정한 환경에서만 작동

이 프로젝트의 핵심이라고 볼 수 있는 머신러닝 모듈 중 OpenCV 모듈의 경우 Qt로 작성된 KDE plasma와 같은 환경에서는 작동이 되지 않기 때문에 GTK 환경을 사용하는 Ubuntu gnome 환경에서 사용이 가능했습니다.

* 특히 OpenCV 활용 시 2개으 패키지 (opencvpython & opencv-contrib-python)이 존재합니다. 저희는 Script를 실행해야 했기에 opencv-contrib-python 모듈을 활용습니다.

 

2. 정확성과 속도를 동시에 잡기 위해 2가지 모듈을 활용

정확성과 속도를 동시에 잡기 위해 우리는 OpenCV에서 hear_cascade 기능과 Dlib의 face_recognition 기능을 활용했습니다. 이로 인해 코드가 더 복잡해지고, 수 많은 에러를 고쳐야 했습니다.

 

3. 경고 메시지를 보낼 때 얼굴 인식 프로세스가 일시 중단되는 현상

적이 발견되었을때, 경고 메시지를 보내기위한 thread가 생성되면서 갑작스레 얼굴 인식 기능이 중단되는 현상이 발생했습니다. 이 문제는 파이썬 multithreading 모듈을 구현함으로써 해결되었습니다.

 

 


 

이상으로 "SAIT 보안학과 ISS 캡스톤 프로젝트(SAIT 캡스톤 프로젝트)" 에 대한 포스팅을 마치겠습니다.

 

반응형
Comments