(Research) AI Blink Detection and Reminder (1) 프로젝트 소개

[오픈소스+논문+젯슨나노] 블링커(Blinker)

이번 프로젝트는 얼굴 인식에 이어 dlib 와 Open CV 을 기초로 눈의 깜박임을 감지 하는 장치를 구현하는 프로젝트를 따라해 보고자 합니다. 

공헌자의 소개(?) 대로 차안에서 졸음 운전을 하시는 분한테 경고 하는 목적 또는 학생들이 공부 하는 환경 에서의 졸음 그리고 집중 여부 분석에 응용하면 좋을 것 같습니다! 

카메라와 S/W 개발 환경만 구축되어 있다면 여러분도 쉽게 구현할 수 있는 프로젝트입니다. 

이번 프로젝트 또한 Open Source 를 최대 활용 하여 1)주요 라이브러리와 Source Code 를 이해 하고  2) 요구되는 개발자 환경을 구축 하며 3)성능을 최적화 하는 방법을 고민하고 4)그 결과를 공유하고 개선 방안을 논의 5) 나아가 단순한 코드 실행을 해 보는 것을 넘어 발전 가능한 서비스 구현을 목적으로 합니다.

우선 GitHub 에서 성능 좋은 오픈 소스를 다운 받아 각자의 환경에 맞추어 설치해 보겠습니다. 이 역시 무작정 pip install... 명령어를 사용하면 시작부터 나오는 error 메시지에 혈압이 오를수도 있으니 끝까지 내용을 잘 읽어 보시고 따라해 보시기 바랍니다.


  • 서비스 
    • AI를 활성화하여 눈의 깜박임을 감지 
    • 사용자가 깜박이는 횟수를 계산하고 충분히 깜박이지 않으면 경고합니다.
  • 환경 설정
    • 서비스 환경
      • 사용자를 향하는 카메라
      • Blinkr 장치는 NVIDIA Jetson Nano AI 컴퓨터를 사용  
      • Jetson Nano는 AI를위한 고속 단일 보드 컴퓨터  
      • 컴퓨터에서 실행. 카메라, 스피커 및 화면을 사용 
    • 개발 환경
    • 실행  결과

Blinked 1
Blinked 2
Blinked 3
Blinked 4




  • 필수 라이브러리 소개  * 주의 사항: 관리자 권한,윈도우는 sudo 빼고~)
    • [dat file]
      • "shape_predictor_68_face_landmarks.dat" 다운로드 및 path 설정
        • dlib 를 다운 받아 설치 하였더라도, 해당 파일은 포함되어 있지 않을수 있음, 구현 중인 프로그램 폴더에 해당 파일을 다운 받아 위치 시키고 path 를 올바르게 설정 해야 함
      • datFile =  "./shape_predictor_68_face_landmarks.dat"
        dlib_facelandmark = dlib.shape_predictor(datFile)
    • [opencv]
      • 설명
        • OpenCV는 공식적으로 pip 설치를 지원하진 않는데 github에서 pip 설치가 되도록 해주는 프로젝트를 하는 그룹이 있는 것 같습니다. 필요한 라이브러리를 전부 설치합니다. 
      • 다운로드 및 설치  * 반드시 관리자 권한으로 실행(이미지 참조)
        • pip install filterpy
        • pip install opencv-contrib-python
        • pip install opencv-python 
    • [dlib] (C++ Library) 
      • 설명
        • 딥러닝 기반으로 제작, 얼굴 인식 기능을 사용하여 구축 되었으며, 
        • Labeled Faces in the Wild 기준으로 99.38%의 정확도를 가짐
        • CLI 에서 이미지 폴더안에 있는 얼굴 인식 기능을 위한 간단한 face recognition 도구를 제공
      • 다운로드 : http://dlib.net/ 
        • 윈도우 환경의 경우 pip install 방식 (이 경우 아주 많은 삽질의 시작점이다.)이 아닌 최신 zip 파일을 다운 받아,
                                 
      • 아나콘다 환경 (본인의 경우 Anacoda 3 Powershell Prompt) 에서 다운 받은 폴더에 접근 하여 설치 방법에 따라 설치 하자!
      • 설치 방법 (약 10분 소요)
        • python setup.py build
      • 주의 사항
        • 제공 되는 Opensource 에서의 각 기능별 "xxx.py" 코드에서의 Path 와 실제 위치한 경로가 맞지 않아, 하나하나 맞춰주는 작업이 필요 함
          •  (예시) 원본 xxx_train("knn_examples/train")
          •  (예시) 수정본 xxx_train("./examples/knn_examples/train")
             
    • python setup.py install
      • 설치 확인
        • Python 실행 
          • >>> import dlib      #아무 오류 없으면 성공
          • >>> dlib.__version__ #버전 확인 가능

  • Source Code 
    • 구성
    • 주요 기능
  • 작업자 환경  
    • OS : Window 10
    • IDE : VS Code
    • Python Version  : Python 3.3+ or Python 2.7