목록으로
교육·학습을 위한 AI 활용
FocusGuard AI: 웹캠으로 내 집중 패턴을 학습하고 졸음을 예측하는 자기주도 학습 도구
👤 지혜로운사자581 📅 2026-10-24 👁 조회 103
웹캠으로 눈 감김·시선·자리 이탈을 분석하고, 쓸수록 내 패턴에 맞춰 졸음을 미리 예측해 휴식을 제안하며, 학습 기록과 AI 코치 리포트로 성장을 보여 주는 개인 맞춤형 학습 집중 도구입니다.
① 어떤 상황에서 AI를 활용했나요?

혼자 공부하거나 온라인 강의를 들을 때는 졸음이 오거나 휴대폰, 영상 사이트로 시선이 새도 알려 주는 사람이 없습니다. 기존 타이머나 사이트 차단 앱은 "지금 학습자의 상태"를 알지 못해서, 시간을 재거나 정해 둔 사이트만 막을 뿐이었습니다. 그래서 학습자의 상태를 AI가 직접 보고, 흐트러지기 전에 도와주는 도구를 만들기로 했습니다.

② 어떤 AI를 어떻게 활용했나요?

1. 개발 과정에서의 AI 활용

처음에 ChatGPT와 "단순히 눈 감으면 경보음을 울리는 프로그램"이 아니라 "학습자의 패턴을 분석해 집중을 돕는 시스템"으로 방향을 잡았습니다. 이때 "머신러닝을 구현하지 않았다면 구현했다고 쓰지 말고, 구현한 것과 계획을 구분하라"는 조언을 받아 이 글에도 그대로 적용했습니다.
눈 감김 감지만 하던 초기 코드를 Claude와 함께 시선, 자리 이탈, 사이트 차단, 경보음, 졸음 예측, 뽀모도로, 성장 기록, 리포트가 있는 앱으로 발전시켰습니다.
직접 실행해 보고 문제를 짚어 다시 고치게 했습니다. 눈을 뜬 뒤에도 경고가 한참 남는 문제, 밋밋한 화면, 경고가 다른 창에 가려지는 문제였고, 각각 즉시 해제, UI 개편, 항상 맨 위에 뜨는 경고 배너로 개선했습니다.

2. 앱이 사용하는 AI
웹캠 영상을 MediaPipe로 분석해 다음 네 가지를 실시간으로 판단합니다.

졸음·눈 감김: 눈 종횡비(EAR), 눈 깜빡임 점수, 최근 20초간 눈 감긴 비율(PERCLOS)을 함께 봅니다. 잠깐 깜빡이거나 생각하느라 눈을 감는 경우를 줄이려고, 일정 시간 이어질 때만 경고합니다.
시선 이탈: 머리 방향과 눈동자 방향을 보고 "옆을 봄", "고개 숙임", "눈동자 이탈"로 원인을 나눠 알려 줍니다.
자리 이탈·이동: 얼굴이 사라지거나 위치·크기가 크게 변하면 알립니다.
사이트 제한: 사용자가 직접 켜고 끌 수 있으며, 제한할 키워드는 설정에서 고칩니다. 강의 영상 같은 학습용 사이트는 예외로 지정할 수 있고, 휴식 시간에는 자동으로 꺼집니다.

시작할 때 5초간 평소 자세를 관찰해 내 기준값(눈 뜬 크기, 정면 각도, 앉은 위치)을 잡기 때문에 사람과 카메라가 달라도 같은 기준표 없이 동작합니다.

3. 졸음 예측 모델
눈 감김 비율, 깜빡임 패턴 변화, 눈꺼풀 처짐, 고개 처짐, 학습 경과 시간, 최근 졸음 경고 횟수를 입력으로 “45초 안에 졸음 경고가 날 확률”을 계산합니다. 사용하는 동안 실제로 졸음 경고가 났는지를 정답으로 삼아 계속 학습하고, 학습 결과는 내 PC에 저장됩니다. 가중치를 읽을 수 있는 모델이라 화면에 "주요 요인: 눈꺼풀 처짐"처럼 위험의 이유도 보여 줍니다. 여기서 정답은 사람이 붙인 라벨이 아니라 앱이 감지한 졸음 경고라는 한계가 있습니다.

③ AI 활용 결과 어떤 변화가 있었나요?

예측형 휴식: 졸음 위험이 높으면 경고음이 울리기 전에 "잠깐 스트레칭하는 건 어때요?" 하고 먼저 제안합니다. 뽀모도로 휴식 중에는 감시와 사이트 제한이 꺼집니다.
성장 기록: 집중 시간은 경험치와 레벨, 연속 학습일, 배지, 최근 7일 그래프로 쌓입니다.
AI 코치 리포트: 세션이 끝나면 집중 점수 흐름 그래프와 맞춤 조언이 담긴 리포트가 열립니다. 예를 들어 졸음이 후반에 몰리면 집중 시간을 줄이라고 권합니다. 이 조언은 규칙 기반입니다.
직접 사용한 결과: 학습 도중에는 경고 기능 뿐만 아니라, 리포트의 결과를 바탕으로 구체적인 졸음 횟수 및 집중도 분석들 덕분에 전보다 화면에 더욱 집중하게 되었습니다.

④ 나만의 방식 또는 개선 포인트는 무엇인가요?

감시가 아니라 코칭: 경고만 주는 도구가 아니라 예측으로 먼저 쉬게 하고, 기록으로 성장을 보여 주는 쪽에 무게를 뒀습니다.
내 데이터로 학습하고 이유를 설명: 개인 보정과 온라인 학습으로 사람마다 다른 기준을 맞추고, 읽을 수 있는 모델이라 "왜 위험한지" 설명할 수 있습니다.
오탐 줄이기: 한 번 감지됐다고 바로 경고하지 않고 일정 시간 이어질 때만 경고합니다. 졸음 경고는 눈을 뜨면 바로 해제되고, 민감도는 설정에서 조절할 수 있습니다.
사용자가 통제하는 구조: 일시정지, 경보음 끄기, 사이트 제한 켜기/끄기, 차단 목록 편집을 언제든 할 수 있습니다.

⑤ 다른 사람도 따라 할 수 있나요?

네. 파이썬과 일반 웹캠만 있으면 되고 별도 서버나 비용이 들지 않습니다.

pip install opencv-python mediapipe numpy pillow로 설치합니다. (사이트 제한은 pygetwindow도 설치)
python focusguard.py를 실행하고, 처음 5초간 평소 자세로 화면을 봅니다.
설정 탭에서 민감도, 뽀모도로 시간, 제한·예외 키워드를 내 환경에 맞게 고칩니다.

윤리와 개인정보
카메라 영상은 저장하거나 외부로 전송하지 않고 모두 내 PC 안에서만 분석합니다. 저장하는 것은 집중 점수·경고 횟수 같은 숫자 기록과 모델 가중치뿐입니다. 이 도구는 타인을 감시하는 용도가 아니라 본인이 직접 켜서 쓰는 자기주도 학습 도구로 설계했습니다. 집중 점수와 졸음 예측은 참고용입니다.
← 목록