이렇게 소프트웨어 수강생들의 사진들을 수집하였다. 주마다 사진 촬영을 허락받은 후 수강생들의 정면 사진을 촬영하였다.
기능 설명을 앞에서 했어야 했는데... 후후.. ㅠㅠ 지금이라도 해 보겠다..
Face Mask A-C Program의 기능은 2명의 시점으로 나누어서 설명하도록 하겠다.
(1) 수강생 시점
수강생은 강의실 입실 후, 강의실 문 앞에 있는 카메라를 정면으로 응시하여 선다. 얼굴이 인식되면, 카메라 왼쪽 상단에 학번과 이름이 붉은색 글씨로 표시되고, 수강생은 출석 인증이 완료되었다는 메시지를 확인한 후에 강의실에 착석한다. 만약, 얼굴 인식에 방해되는 요인이 있다면, "No Face"라는 문구가 카메라에 출력되므로 수강생은 해당 문구를 확인하면 눈이 보이도록 카메라를 응시해야 한다. 수강생이 얼굴 인식이 되지 않고, 수강생이 아닌 다른 외부인으로 인식이 된다면 수강생은 안내 메시지에 맞게 콘솔창에 학번을 입력하고 강의실에 착석한다. 이렇게 학번을 직접 입력한 학생은 강의 시작 전 교수에게 직접 출석 여부를 확인해 주어야 한다.
(2) 교수 시점
교수는 수강생들이 강의실에 입실하기 전에 미리 해당 프로그램을 실행시켜 놓고, 수강생들의 출석 여부를 확인할 수 있는 웹 페이지에 로그인한다. 강의 시간이 시작되면, 교수는 프로그램을 종료시킨 후 웹 페이지를 새로고침 하여 수강생들의 출석 여부를 확인한다. 만약, 수강생의 출석 여부가 "확인 요망"이라면 해당 수강생을 호명하여 출석 여부를 판단하고, 판단된 여부대로 출석 여부를 수정하여 준다.
(1) 운영체제
(1) - 1 영상 처리 프로그램
(1) - 2 출석 여부 확인 웹 페이지
프로세서 | Intel i5 |
RAM | 16GB |
(2) 개발 언어 및 라이브러리
(1) 영상 처리 프로그램
학습시킬 데이터를 티처블머신을 통해 모델링 하여 데이터 모델을 생성한다. 프로그램이 실행되면 카메라에서 검출된 수강생의 얼굴과 데이터 모델을 비교하여 수강생 얼굴이 데이터 모델 중 누구인지 구분하여 준다. 구분에 성공하고, 정확도가 70% 이상일 경우, 출석 여부가 "출석"으로 데이터베이스에 저장된다. 만약, 수강생이 외부인으로 인식되거나 정확도가 70% 미만일 경우에는 얼굴 인식 실패 메시지를 출력한다. 에러 메시지를 출력한 후 2번의 재인식을 거치는데, 2번의 재인식 후에도 인식에 실패하면 수강생의 학번을 입력받는다. 이때 입력받은 수강생의 출석 여부는 "확인 요망"으로 데이터베이스에 저장된다.
(2) 웹 페이지 (다른 팀원이 구성하였음)
교수가 Main 페이지를 실행한다. Main 페이지에는 학생들의 학번, 이름, 출결을 볼 수 있으며, 수정은 불가하다. Main 페이지에서 회원가입 버튼을 누르면 회원가입 페이지로 이동한다. 회원가입 페이지에서 이름, 아이디, 비밀번호, 코드를 받는다. 가입 버튼을 누르면 DB에 값이 저장되고, Main 페이지로 돌아온다. 로그인 버튼을 누르고 회원 가입시에 넣었던 학번, 비밀번호, 코드를 입력한다. 로그인 시에 @@교수님 어서오세요! 라는 문구가 출력되고, admin 페이지로 이동한다. admin 페이지는 Main 페이지와 동일한 값을 볼 수 있지만, 수정이 가능하며 날짜별 출석여부도 확인이 가능하다. 로그인 되어 있는 상태에서 회원탈퇴 버튼을 누르면 [탈퇴하시겠습니까?] 라는 문구가 나오고 확인 버튼을 누르면 회원 탈퇴가 이루어져 DB에서 삭제된다. admin 페이지에서 학생의 출석여부를 Select Box로 값(출석,지각,결석,확인요망)을 선택하여 저장해주면, 해당 학생의 출석여부를 수정할 수 있다. Calendar 창에서 원하는 날짜를 선택한 후 조회 버튼을 누르면, 조회 프로세스가 실행되어 해당 날짜에 있는 학번, 이름, 출결을 가져와서 View페이지에서 출력을 해준다. View 페이지는 admin 페이지와 동일하지만, 수정이 불가능하다.