Skip to content

Files

Latest commit

 

History

History
71 lines (44 loc) · 3.1 KB

README.md

File metadata and controls

71 lines (44 loc) · 3.1 KB

OpenCV를 이용한 온라인시험 부정행위 감지 시스템


📅프로젝트 기간(Project)

2021-05-18(Tue) ~ 2021-06-07(MON)

👨‍👩‍👧‍👧만든 사람(Collaborator)

👩‍💻동국대학교 컴퓨터공학과 2019111980 길유정(Gil yujung)
   -고개 움직임 감지부분 구현
   -kuj9628@naver.com
   -https://github.com/fairyroad
   
🎅🏻동국대학교 컴퓨터공학과 2019112004 김민정
   -시선처리부분 구현
   -kimmin9624@dgu.ac.kr
   -https://github.com/kimminje0ng
  
👰동국대학교 컴퓨터공학과 2019112017 강혜원
   -2명이상 감지부분 구현
   -부정행위감지되었을 때 알림창 및 시험 시작 및 종료 알림창 부분 구현
   -gpffps369@gmail.com
   -https://github.com/HyewonKkang
   
👩‍🚀동국대학교 컴퓨터공학과 2019112010 장수아
   -입모양움직임으로 대화감지 부분 구현
   -sooa9918@dgu.ac.kr
   -https://github.com/sua1223

🖥️개발환경(Tech)

✔️pycharm community edition 2020.2.3사용

✔️opencv 4.5.2
   :웹캠을 이용해서 영상을 입력받고 여러가지 영상처리를 구현하기 위해 opencv를 사용하였고, 부정행위의 기준은 고개는 코에서 각 양쪽 눈으로 향하는 2개의 벡터의 크기의 차이가 15이상일때
    사람이 2명이상 존재할 때, 눈동자가 정면이 아닐때, 입모양의 비율이 0.8이상일때는 부정행위로 보았다.

✔️dlib
   :C ++로 작성된 범용 크로스 플랫폼 소프트웨어 라이브러리인 dlib을 이용하여 얼굴의 점을 68개로 분류하여 각각 눈썹, 코, 입, 눈동자등으로 구분을 하여 점들의 index를 구분하였고
    shape_predictor_68_face_landmarks.dat라는 데이터셋을 이용하여 학습을 시켜서 얼굴을 인식할 수 있게 하였다.
 
✔️tkinter
   :처음에 시험시작과 시험종료에 대한 alert창을 띄운뒤에 시작을 누르면 그때부터 부정행위를 감지할 수 있게 하였고, 여러가지 부정행위에 대한 알림창은 alert()를 이용하여 case로 구분하여 알림창 및
    로그가 남을수 있게 구현을 하였다.

📖고려해야 할 사항(Considerations)

🥕고개움직임

🥕입모양(ratio)

🥕사람 2명이상존재

🥕시선처리 감지

🌝고개움직임 구현(Head Movement)

1.얼굴 점을 68개로 나눈 곳에서 왼쪽눈은 38, 41 점의 중심으로 x,y좌표를 받아왔고 오른쪽눈은 45,48점의 중심으로 x,y좌표를 받아옴
2.코에서 각 양쪽 눈으로 향하는 2개의 벡터의 크기가 항상 같다는 것을 이용
3.코에서 왼쪽눈 벡터를 norm_left, 코에서 오른쪽눈 벡터를 norm_right로 두고 크기를 비교함
4.일정크기(여기서는 15)이상으로 차이가 존재한다면 고개돌림으로 감지함
5.부정행위가 감지되었다면 case는 2번으로 alert 함수를 호출하게 함