Automatic attendance Using Face Detection
캠에 얼굴을 갖다대면 자동으로 사람 얼굴을 구분하고, 출결을 관리해주는 프로그램.
1) 얼굴 인식을 위한 학습 모델 구현하기.
- RecordForTrainingData() : training data를 위해 얼굴을 촬영 이때 촬영된 사람의 이름을 한 폴더를 만들어 dataset 폴더에 저장한다.
- face_recog_train() : Dataset을 이용해 학습 모델 만들기.
- haarcascade를 통해서 사진속 얼굴의 bounding box 추출 ⇒ samples 배열 저장
- Dataset 폴더별로 각 얼굴 데이터를 labeling ⇒ ids 배열 저장
- samples 배열 & ids 배열을 이용해 Training ⇒ trainder.yml에 저장.
2) haarcascade와 학습 모델을 이용하여 얼굴 탐지 및 구별
- face_detect() : 만들어진 학습 모델을 이용해 얼굴 인식 및 구분
- 예측된 값의 Loss값이 40 이하 & 15번 이상 확인 될 경우 출석 처리
- attend_chk() : 출석처리가 완료되면 "PASS"를 화면에 출력 이미 출석되어있는 경우 "already attend" 를 화면에 출력
- flag_switch() : 얼굴인식이 되어 출석 완료된 경우를 사용자에게 2초가량 표시할 수 있도록 해주는 thread 함수 생성.
- upload() : Oracle Database에 접근하여 ATTEND 테이블에 얼굴이 인식된 학생의 이름과 오늘 날짜를 추가하는 함수.
- 예측된 값의 Loss값이 40 이하 & 15번 이상 확인 될 경우 출석 처리