팀명: 과로사
In the project directory, you can run:
(Eyeblink+Audio emotion+Position check+Facial emotion check)
https://github.com/Guarosa/Guarosa_AI-IoT.git
https://github.com/zzerii/guarosa_react.git
https://github.com/baejinsoo/grs_django_channels
Youtube: https://youtu.be/k7WqyyGu_lI
사무직 종사자들이 적절한 시간에 자신의 몸을 돌보며, 건강하게 업무를 수행할 수 있는 업무 지원 시스템
VDT 증후군 관련 질병 | |
---|---|
1 | 근막통증 증후군 |
2 | 안구건조증 |
3 | 일자목증후군 |
4 | 손목터널증후군 |
VDT 증후군은 영상 단말기에 의한 증후군으로, 사무직에 종사하는 사람들에게 흔하게 발생하는 증후군이며, 최근 10년간 지속적으로 증가해오고 있다.
VDT 증후군은 장시간 같은 자세로 근무를 하는 사무직종에게 많이 발생하는 질병이라는 점에서, 많은 현대인이 겪고 있을 것으로 예측된다.
실제 사무직 직업병을 키워드로 네이버 블로그와 뉴스 기사를 크롤링한 결과, VDT 증후군 관련 질병이 다수 등장한다.
이와 함께 종일, 하루, 책상 등의 키워드가 함께 등장하는 것으로 보아 장시간 앉아서 근무하는 직장인이 VDT 증후군의 고충을 겪고 있다는 것을 뒷받침한다.
또한, 이렇게 찾아낸 키워드들 간의 연관관계를 분석해 보았더니 건강증진과 질병예방 등 키워드의 연관성이 높은 것을 보아,
VDT 증후군의 방지책이 필요하다는 것 역시 찾아낼 수 있었다.
사무직 종사자의 업무 스트레스는 신체적 질병에만 국한되지 않는다.
콜센터 등 고객응대 근로자들 뿐 아니라 사무직 직장인들 역시 5명 중 4명이 본인을 감정노동자라고 생각한다.
감정노동으로 인한 스트레스가 우울증으로 이어지는 사례가 빈번하게 발생하기 때문에 감정노동 문제를 해결하여 직원들의 업무 환경을 보장할 필요가 있다.
건강보험심사평가원은 VDT 증후군을 예방하기 위해서는 일정한 간격의 휴식과 간단한 스트레칭이 필요하며, 근무환경에 대한 점검이 필요하다고 한다.
하지만 사무직 종사자들은 자신의 건강에 대한 의식적인 돌봄이 부족한데,
Wellness & Guarosa는 사무직 종사자들이 근무 중 경각심을 가지고 신체를 움직여 줄 수 있도록 지원하는 업무 지원 시스템을 구축하였다.
• 향후 10년간 15세 이상 취업자
128만명 증가할 것으로 추정
• 우리 서비스의 타겟 고객인 관리자, 전문가 및 관련 종사자, 사무 종사자의 지속적인 증가가 예상됨
국정모니터링지표의 인력수급 전망을 살펴보면 우리의 타겟 고객 종사자의 인력수요 역시 향후 10년 동안 지속적으로 증가할 것으로 예측된다.
그리고 건강을 중시하는 밀레니얼 세대의 영향으로 직원들의 업무환경을 보장하려는 노력이 이어질 것으로 전망되어,
우리 서비스의 이용 고객 역시 증가하리라 생각된다.
사무직 종사자들 뿐 아니라 온라인 수업을 수강하는 학생들 역시 우리 서비스의 고객군이 될 전망이다.
코로나 이후 온라인 수업 서비스인 zoom 의 네이버 검색 빈도가 100배 가까이 증가했다.
언택트 기조가 확산되는 환경 아래서 컴퓨터 등 영상 기기는 일상생활의 필수품이 되었고,
VDT 증후군으로부터 사용자를 보호하는 우리 서비스의 타겟 고객은 확장 가능성이 충분하다.
사무직 근로자들의 업무 컴퓨터에서 백그라운드로 실행되게 하여 모델 결과값이 DB로 저장된다.
일정 수치를 넘어서면 IoTCore를 통한 MQTT 통신으로 라즈베리파이로 전달하게 되고,
그 값으로 아두이노 기기들을 제어 및 웹 소켓 통신을 통해 LCD에 해당 경고화면을 띄워준다.
Db에 저장된 데이터는 AWS Lambda와 AWS API-Gateway를 통한 RESTful-API를 구현하였다.
Django의 웹소켓 통신을 위해 Channels 라이브러리를 활용했고 채널 Layer 백그라운드로 Redis를 사용했다.
장고 서버는 EC2를 통해 배포를 했고, 근로자들에게 띄워주게 된다.
사번을 받아 회원가입시 사진은 Local에 저장하지 않고 AMAZON S3버킷에 저장하고 해당 URL 정보를 DB에 저장한다.
Websocket in Django(Channels)
Django에서 Channels 라이브러리를 사용해 WebSocket을 구현했다.
싱글 서버 뿐만 아니라 샤딩 모드에서 뛰어난 성능을 내는 Redis를 채널 레이어 백엔드로 실행시켰다.
Django 자체는 동기식이지만 Channels를 사용하면 연결과 소켓을 비동기 처리한다.
RESTful API
AWS의 Lambd와 API-Gateway를 통해 구축했다. 상단의 이미지는 Postman을 통해 user테이블에서 12368의 user_id를 가진 정보를 json형태로 수신하는 예시이다.
React WebPage
•직원들의 상태를 실시간으로 확인 가능
•감정과 눈 건강을 통해 직원들의 피로를 확인하여 해당 직원에게 메시지를 보내 휴식 권장
•직원들 평균 스트레스 지수 확인 가능
관리자 페이지이다. 직원들의 상태를 실시간으로 확인 가능하며 감정과 눈 건강을 통해 직원들의 피로를 확인하여, 해당 직원에게 메시지를 보내 휴식을 권장 할 수 있다.
AWS IoT Core(MQTT)
AWS IoT Core를 사용해 MQTT통신과 WebSoket 통신을 통합한 모습이다. Publisher부분은 실행파일 내부 코드이다. 먼저 왼쪽부분은 코드를 통해 IoT Core에 연결한 모습이다.
오른쪽 코드는 눈 깜박인 시간이 20초가 넘게 되면 MQTT 통신을 통해 라즈베리파이로 ‘2’ 값을 보내고, 해당 값을 DB에 넣는 코드이다. 아래의 Subscriber부분은 라즈베리 파이에서 동작하는 코드로 MQTT 통신값으로 전달받은 값을 다시 웹소켓 통신을 통해 웹서버로 보내는 모습이다.
AI과정에서는 눈 깜빡임, 자세 교정, 감정 분석 모델 등 세가지 모델을 제작했다.
1. 눈 깜빡임 모델(Eye Blink Detector)
실시간으로 눈깜빡임을 파악해 눈운동을 유도하고자 하였다.
데이터 셋으로는 눈 부분만 crop 처리한2,800여장의 이미지를 사용하였고,
회전과 좌우이동 등의 이미지보간을 하여 얼굴이 기울어진 경우에도 인식률을 제고했다.
학습모델은 총 3계층의 Convolution layer와 FC layer를 사용한 Simple한 구성으로,
테스트 셋과 실 사용 환경 시험 시 100%에 가까운 정확도를 보였다.
Dlib API를 이용해 68개의 얼굴 랜드마크를 추출하였고,
왼쪽 눈과 오른쪽 눈의 좌표를 중심으로 학습된 모델을 적용하여 눈깜빡임 여부를 판정한다.
2. 자세 교정 모델(Posture Tracker)
비뚤어진 자세를 포착하고자 했다.
이를 위해 여러 pose tracking API중에서 가볍고 높은 정확도를 보여준 Google 사의 Mediapipe pose API를 사용하였다.
이 API는 전신의 33개의 2D landmark를 정확히 예측한다.
여러 실험 결과 앉은 자세에서 양 어깨의 landmark가 가장 정확히 포착되어, 이를 통해 정자세와 잘못된 자세의 구분 기준을 수립했다.
양 어깨의 x좌표 길이 대비 y좌표 길이 비율을 기울어짐 수치로 잡아 0.2를 기준으로, 그 미만이면 정자세, 그 이상이면 비뚤어진 자세로 판정한다.
또한, LCD 정보창과 별도로 유저 작업 모니터에도 경고메시지를 띄워 경고의 가시성을 높였다.
3. 감정 분석 모델(Emotion Recognition)
다음은 감정 분석 모델이다.
사무직 근로자나 콜센터 상담원 은 환경상 업무 중 업무 특성 상 감정을 솔직히 드러내지 않는 경우가 많다.
이에 우리는 표정과 음성 두가지 모델을 결합해 정확도를 높였다.
먼저 음성 모델이다.
Happy, Sad, Fearful 등8가지 카테고리로 감정을 구분하고자 하였고, 이에 맞춰 전문 연기자가 녹음한 고품질 음성 데이터 셋 5개를 사용하였다.
우리는 음성데이터에서 5가지 음성 특징을 추출하여 사용하였다.
첫째로, 반음들의 에너지 정보를 12차원의 벡터값으로 표현한 크로마 벡터를 사용하였다.
둘째로, Zero Crossing Rate을 통해 음성 에너지의 차이를 특징으로 추출하였다.
셋째로, RMS로 정상시계열의 통계적 특성을 담아냈다.
Mel Spectrogram과 MFCC를 특징으로 추출하였다.
사람의 청각기관은 고주파수보다 저주파수대역에서 더 민감하게 반응한다.
이러한 정보를 담고있는Mel Spectrum을 푸리에 변환을 통해 추출하였고 여기에 역 고속 푸리에 변환 등을 더해 MFCC도 추출하여 학습하였다.
학습 모델링은 4계층의 1D Convolution layer와 2계층의 FC layer층을 사용하여 음성 특성데이터 8가지 감정으로 분류해 냈다.
해당 모델 또한 RAVDESS의 데이터셋을 활용했다.
사용 데이터셋은 남녀 각 12명 , 총 24명의 배우가 8개의 감정을 연기한 동영상 파일이다.
동영상은 초당 30장으로 변환한 후 Face detector의 좌표보다 넓게 구간을 잡아 224x224 크기로 크롭하여 약 10만장의 이미지를 추출했다.
이미지는 TFrecord로 변환하여 데이터 로드하는 시간을 단축했다.
우리는 여러모델이 사용되는 프로그램인 만큼 최대한 모델을 경량화할 필요가 있다고 판단했다.
때문에, 채널 수와 메모리의 크기가 가벼운 MobileNetV2를 사용했고,
활성화함수로는 PReLU를 써 각 레이어마다 알맞은 알파값으로 학습시킬 수 있도록 했다.
모델 정확도는 액큐러시 약 89%, 밸리드 액큐러시 87%로 측정 되었지만,
실제 테스트 시 분석의 딜레이가 있지만 특징이 분명한 감정은 분류를 잘하는 반면,
표정의 차이가 적은 감정은 분류 정확도가 낮았다.
IoT 흐름도
라즈베리파이와 LCD를 이용하여 유저 전용 화면을 제공할 수 있게 하였고, 초음파센서와 LED를 이용하여 거북목 방지 시스템을 구현하였다. 또한, 릴레이센서를 이용하여 감정이 좋지 않을 시 가습기가 동작하도록 구현하였다.
영상 스트리밍 및 음성 파일 제공
눈깜빡임 및 자세 정보를 얻을 수 있게 영상스트리밍 서비스를 구현하였고, 목소리를 분석할 수 있도록 실시간으로 녹음파일을 제공하는 기능을 구현하였다.
하드웨어::모니터 받침대 제작
우리 조가 제작한 모니터 받침대 입니다. LCD를 통해 유저가 필요한 정보를 받을 수 있고, 초음파센서로 거리를 측정하여 경고등을 출력한다.
또한, 사용자 감정상태가 나쁠 경우 아로마향 가습기를 동작시킨다.
아로마향은 감정진정효과가 있다는 논문을 보게 되어 사용하였다.
1. 프로젝트 아키텍처 설계
2. 프론트 엔드 react 구축
3. 데이터베이스 설계 및 생성
4. 백엔드 기능 restful API 개발
5. django 서버 구축 및 배포
6. 서비스 융합 실행 파일 제작
김채린(팀장)
Github: https://github.com/zzerii
Contact: [email protected]
배진수
Github: https://github.com/baejinsoo
1. 카메라 센서를 이용한 이미지데이터 송수신
2. 마이크센서를 이용한 음성 데이터 송수신
3. 가습기 센서를 이용해 향기 분사
4. 초음파센서를 이용한 모니터 거리조절
5. LCD를 통한 유저 상태 출력
문현수
Github: https://github.com/hyunsooDii
1. 목소리 음성데이터에 기반하여
감정 및 스트레스 정도 분석
2. 목소리 음성데이터에 기반하여
감정 및 스트레스 정도 분석
3. 얼굴 이미지 데이터에 기반하여,
눈 깜빡임 인식 및 안구 피로도 분석
4. 신체 동작 및 자세 데이터에 기반하여
활동량 및 정자세 여부 분석
임규철
Github: https://github.com/kychlim/
장한솔
Github: https://github.com/SOL-2
1. 직장인의 건강을 키워드로 한 관련 단어 수집
2. 루테인, 블루 라이트 차단 안경 등
건강 관련 품목의 판매 증가 현황 시각화
3. 데이터 전 처리
4. 실시간 데이터 정보 시각화
이지혜
Github: https://github.com/Lia-97i