티처블 머신과 파이썬으로 실시간 졸음 방지 프로그램을 만들어봐요! 📢공학도서관의
<실시간 졸음 방지 프로그램>
실습 영상을 추천해요!
<실시간 졸음 방지 프로그램>, 1분이면 충분해요!
티처블 머신과 파이썬을 사용해 간단하게 실습할 수 있는 아이템을 준비했어요. 티처블 머신을 통해 어떻게 AI 분류 모델을 생성하고, 생성한 모델을 Colab에서 어떻게 활용하는지 영상으로 확인하고 직접 체험해 보세요. |
|
|
선생님, 수업 시간에 꾸벅꾸벅 조는 학생 한 명씩 꼭 있지 않나요?😪 매번 일일이 살피고 깨우는 일도 쉽지 않으실 텐데요.😥 졸고 있는 모습을 인식해서 알아서 경고음으로 잠을 깨워주는 졸음 방지 프로그램이 있다면 어떨까요?⏰
오늘은 학생들이 스스로 졸음을 인식하고 경고하는 졸음 방지 프로그램을 만드는 실습을 해 볼 건데요.⚠️ 이 프로그램에는 자율주행 자동차에 사용되는 DDREM(Departed Driver Rescue and Exit Maneuver)과 같은 원리의 기술이 활용돼요.🚗 |
|
|
차량 내부에 설치된 카메라로 운전자의 시선 등을 분석해 졸음이 감지되면 경고하는 DDREM 기술
© 공학도서관 |
|
|
DDREM은 운전자가 운전 불가 상태가 됐을 때 스스로 안전한 곳을 찾아 자율주행하고 정차하는 기술인데요.🛣️ 운전자가 졸음운전을 한다고 판단되면 경고를 보내기도 해요. DDREM은 차량 내부에 설치된 카메라로 운전자의 머리 위치, 시선, 눈 깜빡이는 속도 등을 분석해 졸음 여부를 판단해요.📷 졸음이 감지되면, 소리, 시각, 진동 등 다양한 방식으로 즉시 경고해요.✋
이를 활용해 실시간으로 졸고 있는 학생을 포착해 경고를 보내는 졸음 방지 프로그램이 있다면, 학생들이 좀 더 수업에 집중하는 데 도움이 될 텐데요.👀
티처블 머신으로 AI 모델을 만들고, 이 모델을 활용해 실시간 졸음 방지 프로그램을 만들어 볼게요. 실시간 영상 처리 기능을 지원하지 않는 Colab에서 반복 자동촬영을 구현하는 것이 이번 실습의 핵심이에요!✅
|
|
|
💻 티처블 머신과 파이썬으로
실시간 졸음 방지 프로그램 만들기
|
|
|
1. 티처블 머신 링크로 접속해 이미지 학습 실습을 시작할게요.
|
|
|
2. Class 1, Class 2 같이 여러가지 범주를 만들 수 있어요. 졸음 방지 프로그램을 만들기 위해 각각 배경, 깨어있는 모습, 졸고 있는 모습으로 클래스를 만들어줄게요. 이때, 분류기 클래스 중 배경 즉, 아무것도 없는 상태를 넣어줘야 해요! 그래야 '아무도 없음'을 구별하고 개별 요소를 잘 인식해요. (클래스 추가 버튼을 누르면 클래스를 추가할 수 있어요!)
|
|
|
3. 클래스 이름 밑 웹캠 버튼을 눌러 이미지 클래스를 추가할게요. 웹캠으로 해당 클래스에 맞는 포즈와 표정을 촬영해주세요!
되도록 얼굴이 다양한 각도에서 보이게 30~40번 정도 찍어주세요. '길게 눌러서 녹화하기' 버튼을 누르고 있으면 여러 사진 클래스가 생성돼요.
|
|
|
4. 모든 클래스를 촬영했으면, '모델 학습시키기' 버튼을 클릭해 모델을 학습시켜주세요.
|
|
|
5. 학습이 완료되면 미리보기로 모델의 정확도를 확인할 수 있어요. 졸고 있는 모습을 잘 인식하네요!
|
|
|
6. 모델이 잘 학습됐다면, 모델 내보내기 → Tensorflow → Keras → 모델 다운로드 순으로 클릭해 모델 파일을 다운로드 해주세요.
|
|
|
7. 다운로드된 converted_keras.zip 파일의 압축을 해제하면 아래와 같이 두 파일이 있을 거예요.
두 파일 중 keras_model.h5는 우리가 방금 제작한 모델이고, labels.txt는 모델 내 클래스명을 담고 있는 파일이에요.
|
|
|
코랩에서 실시간 졸음 방지 프로그램 만들기
1. 링크를 클릭해 구글 Colab에 접속할게요.
* 파일 - 'Drive에 사본 저장'을 클릭해 사본에서 진행해주세요. |
|
|
2. 아래 이미지에서 빨간색으로 표시된 실행 버튼을 클릭해 실습에 필요한 파이썬 라이브러리를 설치하고 불러올게요. 다양한 라이브러리를 사용해 이미지 촬영, 오디오 녹음, 파일 업로드, 인공지능 예측을 구현해 볼 거예요.
-
- time: 코드 실행을 잠시 멈추는 역할을 해요. (예: 예측 사이에 2초 쉬기)
- numpy: 이미지 데이터를 숫자 배열로 바꿔서 모델에 넣기 쉽게 만들어요.
- PIL: 이미지를 불러오고 다룰 수 있게 해줘요.
- IPython.display: 웹캠을 켜거나, 자바스크립트를 실행하거나, 소리를 재생할 수 있게 해줘요.
- base64: 자바스크립트에서 전달된 이미지를 파이썬에서 다시 파일로 저장할 수 있게 변환해요.
- tensorflow.keras: 인공지능 모델을 불러오고, 이미지 예측에 사용돼요.
- google.colab: 사용자가 컴퓨터에서 직접 파일(모델이나 라벨)을 업로드할 수 있게 해줘요.
- h5py: 모델 파일 내부를 열어서 설정을 직접 바꿀 수 있게 해줘요.
- scipy: 녹음한 소리를 .wav 파일로 저장할 수 있게 해줘요.
|
|
|
3. 실행버튼을 클릭하면, Colab에서 JavaScript를 사용해 웹캠으로 사진을 찍고, 이를 이미지 파일로 저장하는 함수가 나와요. 2초 대기 코드를 사용해 반복 속도가 너무 빠르지 않게 조절할 수 있어요. |
|
|
4. 졸음 상태일 때 나올 경고음을 녹음하는 코드를 실행할게요. 마이크 버튼을 클릭해 본인이 원하는 경고음을 2초간 녹음해요. |
|
|
5. 앞서 만들었던 모델을 업로드해줄 차례예요. 실행버튼을 눌러 나오는 파일선택 버튼을 클릭하면, keras_model.h5 파일을 업로드할 수 있어요. |
|
|
6. 모델의 클래스 이름이 들어있는 label.txt파일을 업로드할 차례예요. 실행버튼을 눌러 나오는 파일선택 버튼을 클릭하면, label.txt 파일을 업로드할 수 있어요. |
|
|
7. 위에서 설정된 모델을 기반으로 사용자를 촬영하고, 분류하고, 녹음했던 음성파일을 사용해 음성을 출력하는 코드예요. 반복문을 사용해 2초에 한번씩 자동으로 사진을 촬영해요. 촬영 후 감지된 클래스에 따라 다음과 같이 출력돼요.
배경 : 사람이 감지되지 않았습니다..
깨어 있을 때 : 잘하고 있어요!
졸고 있을 때 : 졸음이 감지되었습니다 ! 경고음을 재생합니다. (경고음 재생) |
|
|
오늘은 이렇게 티처블 머신과 파이썬을 활용해 실시간 졸음 방지 프로그램을 만들어봤어요.😴 코랩에서 지원하지 않는 실시간 반복 촬영을 구현해 스트리밍과 유사한 방식으로 동작하도록 해보고, 자율주행 자동차에서 사용되는 DDREM 기술도 경험해봤어요.
다음에는 티처블머신 외에 수업에서 활용하실 수 있는 또 다른 유익한 실습 자료로 찾아올게요! 원하시는 실습 주제가 있다면 아래 링크를 통해 많은 신청 부탁드려요💟 |
|
|
📢원하시는 실습자료가 있나요? 실습자료 주제 추천받아요!
수업에 바로 활용할 수 있는 유용하고 흥미로운 실습자료를 제공하기 위해 선생님이 원하는 실습자료 추천받아요!
✍️채택된 주제의 실습자료는 뉴스레터로 소개
☕참여해주신 선생님 중 매회 5분을 선정해 스타벅스 커피 쿠폰 증정
🎁주제 채택된 선생님께는 스타벅스 2만원 상품권 증정 |
|
|
📢선생님! 수업자료 추천하고, 스타벅스 쿠폰 받아가세요! |
|
|
주식회사 공도 | 대표 송용남
서울시 성북구 안암로 145 고려대학교 자연계 산학관 528호
|
|
|
|