수행기록퀘스트3

골든타임: 고독사 케어 서비스
2022. 6. 18 (토) 11:32 최종수정 2022. 6. 18 (토) 12:10 칩헤드 조회 715 좋아요 1 스크랩 1 댓글 0
1. 아이디어 소개
 
1.1 서론
최근 1인 가구가 증가하고 있다. 이것은 독거 남녀 비중의 증가와 고령의 홀몸노인 가구의 증가가 큰 원인이다. 1990년 대한민국의 1인 가구는 9% 수준이었다. 그러나, 2010년에는 24%, 2020년 30%를 넘어서 2030년에는 33%에 다다를 것이라고 예상되고 있다. 그중 고령화 사회로 빠른 진입과 함께 1인 홀몸노인의 증가가 확실해지고 있다.
 
1.2 본론
2019년에 발행된 중앙일보 기사에 의하면, 보건복지부로부터 우리나라 노인 인구 변화를 받아 분석한 결과, 65세 이상 홀몸노인의 수는 2014년부터 매년 6만 명 넘게 늘어나고 있다고 한다. 이와 함께 홀몸노인 사망자 수도 2013년 458명에서 2017년 835명으로 거의 2배 늘었다. 이렇게 홀몸노인의 사망자 수가 증가하게 되면서, 사망 후 일정 기간 이상 방치되는 홀몸노인의 고독사가 심각한 사회적 문제가 되었다. 특히 아래의 두 기사를 보면, 2025년에 국민 5명중 1명이 노인으로 해당하고, 고독사는 늘어나고 있는데 정부의 돌봄 기본서비스를 받는 노인은 정작 전체 돌봄 대상자 64만 명 중에 24만 명 (34%)일 정도로 심각한 사회문제가 될 것이다.
 
2025년 국민 5명 중 1명 노인으로 채워진다…'초고령사회' 눈앞 (2019, 세종뉴스)
위의 기사들에 있듯이, 초고령화 사회와 홀몸노인의 고독사 증가는 우리의 슬픈 현실이다. 이렇게 점점 심각해지는 홀몸노인의 고독사 문제를 해결하는 데 도움을 주고자 이 작품을 생각하게 되었다.
 
 
1.3 결론
 
우리 사회는 고령화 시대의 진입과 더불어 홀몸노인의 고독사 문제들이 사회적 이슈로 떠오르고 있다. 그러나, 기존의 봉사 인력수와 수동적인 사회 돌봄 기반 구조만으로는 홀로 사는 노인분들의 고독사 해결에 한계가 있을 수밖에 없다. 이러한 한계를 극복하기 위해서 AI, IoT 기술 등을 적용한 ‘골든 타임 (Golden Time)’ 이라는 IoT 시스템 장치를 고안하였다. 
 
우선, 돌봄이 필요한 홀몸노인들이 거주하고 있는 주택에 센서와 카메라장치를 설치한다. 주택에 설치된 센서와 카메라는 홀로 사는 노인과 홀로 사는 노인을 관리하는 관리자 (가족, 봉사자, 공무원)를 상호 연결함으로써, 신속하고 효과적인 홀몸노인 돌봄 서비스를 실현할 수 있게 한다. 또한, 클라우드, IoT, 딥러닝 등의 최첨단 기술들을 활용하여 더욱 세심하고 편리한 사용 편의성을 제공함으로써 현재의 대한민국이 당면해 있는 홀몸노인 돌봄 케어 서비스의 한계를 혁신적으로 보완 및 개선할 수 있다.           
 
 

2. 전반적인 개요
"골든 타임" 이라는 제목의 과제를 제안하려고 한다. “골든 타임” 이란, 환자의 생사를 결정지을 수 있는 사고 발생 후 수술과 같은 처치를 할 수 있는 최소한의 시간을 의미한다. 또 이 작품에서는 사망한 홀몸노인이 고독사로 발견되지 않기 위한 최소한의 시간 (통상 3~4일)이기도 하다. 현대 사회는 모든 디바이스들이 IoT라는 인터넷으로 연결되는 디지털 사회를 뛰어넘어 딥러닝 기술의 사용으로 사회의 많은 부분이 인공지능화를 하고 있다. 그러나 많은 홀몸노인들이 아직도 디지털 사회의 혜택을 받지 못하고 있고홀로 사망하는 사례가 증가하고 있다. 이러한 상황을 방지하고자, 홀몸노인의 일상을 인공지능과 IoT 기술들을 활용하여 보호하고 소통하는 사회 형태를 만들어 보고자 한다. 이 작품이 우리나라에 곧 다가올 초고령화 사회의 홀몸노인 고독사 문제들을 해결하는데 큰 도움을 줄 수 있을 거라 기대한다.
 
 [기대 효과]
1) 홀몸노인이 사고가 난 후에 장기간 방치되는 시간을 줄임으로써 고독사를 방지한다.
2) 주기적으로 홀몸노인의 패턴(예: 화장실에 오늘 갔는지, 등) 관찰함으로써, 위험방지.
3) 딥러닝을 통한 정확한 얼굴인식으로 정밀한 돌봄 서비스를 가능하게 한다.
4) 모션센서 기반의 음성 안내서비스 및 알림서비스는 홀몸노인에게 사회에서 소외되지 않다는 심리적 위안을 느끼게 함으로써, 사회 소속감과 일상의 행복감을 높인다.
 

3. 전체 구조를 표현하는 블록 다이어그램
 
3.1 웹앱 기반 홀몸노인 활동 관리 시스템
언제 어디서나 쉽게 홀몸노인을 보살피기 위하여 스마트폰으로 웹앱에 접속하여 홀몸노인의 중요 일정 및 특이사항을 확인한다.
 
3.2 모션센서 기반 홀몸노인 활동 감지
홀몸노인 주택에 설치된 모션센서가 홀몸노인의 활동상황이나 비정상적인 상태를 감지함으로써 골든타임 시스템은 작동한다.
 
3.3 딥러닝 기반 음성 및 얼굴 자동 인식 서비스
클라우드 기반의 딥러닝 Speech API를 이용하여 홀몸노인이 녹음하는 음성파일을 문장으로 자동 변환한다. 중요 메시지는 알림서비스로 관리자에게 실시간으로 알려준다.
 
3.4 음성 안내 및 메시지 알림 서비스
집의 내부에 설치된 모션감지 센서가 홀몸노인을 감지하여 주인이 집에 있는지를 확인 한 후 있으면 메시지 알림을 실행함으로써 담당 경찰서, 사회봉사자, 홀몸노인들과의 실시간 소통이 가능하다.
 
 
4. 하드웨어 구성 다이어그램:
 
아래의 하드웨어 구성 다이어 그램은 라즈베리 파이의 IoT 특성과 클라우드 기반의 딥러닝 기술들을 활용하여 홀몸노인의 안전 관리를 자동화한 전체 시스템의 구성도를 보여주고 있다. 관리자 (봉사자 및 담당 경찰서)는 모바일폰 기기와 온라인으로 연결된 홀몸노인 케어 시스템 장치를 통하여 홀몸노인의 일상을 케어할 수 있다.
 
우리는 위의 하드웨어 구성 다이어 그램을  개발하기 위하여  아래의 IoT 디바이스 관련 서적을 참고 하려고 한다. 
1) 아두이노를 이용한 IoT 디바이스 개발 실무
   → Part 19. 무선으로 실습하는 loT, 19.3 Event 만들기
 
2) 최신 라즈베리파이로 시작하는 사물인터넷의 모든 것
   → Chapter 9. Raspberry pi 시스템 설정, 9.8 camera 및 오디오 장치 설정
 
4.1. 사용 부품 목록
아래는 작품을 구현하기 위한 주요 임베디드 장치 및 센서들을 보여준다. 
  1. 라즈베리파이 보드, 8만원, 2개 
  2. micro SD 카드 (32GB), 4만원 1개
  3. 카메라 센서, 3만원, 2개
  4. 모션 센서, 5천원, 3개
  5. USB 스피커, 3천원 1개
 
 
4.2. 부품의 사양과 특징 기술
* DRAM 4GB, micro SD카드 32GB 이상의 시스템 자원을 가지는 임베디드 보드 구성
* 사람의 움직임을 5M까지 탐지할수 있는 모션센서 구성
 
4.3 회로도 또는 연결도
* 하드웨어의 구성 및 연결은 위의 하드웨어 구성 다이어 그램 구조로  제작 예정
 
4.4. 기구 구성품의 디자인 파일, 일러스트 등
* 하드웨어 구성의 노인들의 음성 및 봉사자의 음성 인식은 구글 클라우드의 딥러닝 기술을 이용하고자 함.
 
4.5 하드웨어 제작 일정과 과정에 대한 설명
* 제안 아이디어의 하드웨어 구성은 부품 구매후 아래의 일정으로 구현 작업을을 수행 예정
  • 1단계: 라즈베리파이 보드에 데비안 계열의 리눅스 운영체제 탑재 및 안정화
  • 2단계: 라즈베리파이 보드에서 아이디어 구현에 필요한 센서 장착
  • 3단계: 장착한 센서들이 정상적으로 동작하는지 단위테스트 수행
  • 4단계: 하드웨어 전체 구성이 올바르게 연결 및 연동되는지 검증 작업 
 
 
 
5. 소프트웨어 구성 다이어그램
이 섹션은  제안하고자 하는 골든타임 작품의 소프트웨어 대한 전반적인 내용들을 설명한다. 
구체적으로 개발 툴 목록, 소프트웨어 구성도, 오픈소스 활용 정보, 소스코드, 사용 클라우드 및 모바일 앱 정보 등을 기술한다. 
 
5.1 개발 툴 목록
소프트웨어를 개발하기 위하여 다음과 같은 개발툴들을 이용한다. 
  1. VIM
  2. TMUX
  3. VisualStudio Code (VS Code) IDE
  4. Pycharm IDE
  5. Git/GitHub
  6. Ctag/Cscope
  7. SSH
 
5.2 소프트웨어 구성도
아래는 작품의  소프트웨어 구성도를 보여주고 있다.  
 
5.2.1 소프트웨어 구성 및 동작 구조
 
활동 감지 및 음성 공지: 홀몸노인 집에 설치된 모션 감지 센서가 집주인을 감지하면 라즈베리파이 보드가 음성으로 알림 정보를 안내한다. 

[라즈베리파이 보드의 기능 구성 모습]
 
얼굴 인식 및 식별: 홀몸노인 집 입구에 설치되어 있는 카메라가 출입하는 사람의 무단 출입 여부를 감지한다. 이때 기기는 출입하는 홀몸노인의 얼굴을 구별한다. 그리고 홀몸노인 별 맞춤식 음성 안내와 홀몸노인의 집 출입 현황을 정밀하게 관리한다. 
 
[ 딥러닝 기반 얼굴 식별 장치의 동작 구조도]  
 

5.2.2 작품 설치 주의사항
. 개발 작품을 설치하기 위해서 인터넷 공유기를 준비해야 한다. 즉 인터넷이 실행 가능한 동작 환경을 갖추고 있어야 한다.
. 센서 디바이스들의 동작 정확도를 높이기 위해서 모션센서의 각도 및 위치를 잘 맞게 조절해야 한다. 그리고 카메라의 경우 위치 조절 장치를 적절히 조절하여 카메라 인식률을 높일 필요가 있다.
 
5.2.3 작품 보안 주의사항
. 실제로 운영을 할 때 개발한 작품의 사생활 및 보안 적용 범위를 고려해볼 필요가 있다. 예를 들어, 개인 사생활 보호 문제, 관리자의 윤리성 검증 필요, 그리고 시스템의 기능을 어디까지 허용할 것인지에 대해 상세히 설명 및 동의를 구하는 주의가 필요하다.
 
 
5.3 오픈소스 활용 정보
제안하는 아이디어를 구현하기 위하여 다음과 같은 오픈소스들을 이용하여 개발 속도를 가속화 하려고 한다. 
 
5.3.1 Apache (웹서버): https://httpd.apache.org/
→ 웹 애플리케이션을 실행하기 위하여 공개프로그램 Apache 웹서버를 활용.
 
5.3.2 Dlib (딥러닝 파이썬 라이브러리) : http://dlib.net/
→ 얼굴인식 알고리즘이 구현된 파이썬 딥러닝 라이브러리 Dlib를 활용.
 
5.3.3 GOTIFY (메세지 푸쉬 서비스): https://github.com/gotify
→ 홀몸노인 실시간 메시지 푸시 서비스를 구현시 Gotify 코어 엔진을 활용.
 
5.3.4 phpMyAdmin (MySQL DB 웹관리 소프트웨어: https://www.phpmyadmin.net/
→ 데이터베이스의 데이터를 디버깅하기 위하여 phpMyAdmin을 활용.
 
 
5.4 소스코드
골든타임의 디자인을 구현하기 위해 구성되는  소스 코드들은 다음과 같다. 
5.4.1. 프로그램 기능들을 통합적으로 관리하기 위한 Launcher 소스:
  디바이스를 부팅할때마다 PIR 움직임 인식 센서 프로그램과 홀몸노인 주인이 사용하는 웹애플리케이션을 자동으로 실행하는 관리 프로그램이다. 
 
5.4.2. 모션센서를 이용한 움직임 및 음성 알림 기능 소스: 
  사용자가 3M 이내에 접근시 자동으로 사람의 움직임을 인식 (적외선 감지)한다. 사용자들이 접근하는 시간대에 따라 해당 공지사항들을 음성으로 알려준다.
  
5.4.3. 딥러닝 Speech API로 음성파일 자동 번역 구현 소스: 
  홀몸노인이 녹음한 음성파일을 업로드하면 구글의 딥러닝 Speech 번역 엔진 API를 이용하여 자동으로 음성파일의 내용을 문자로 변환해주는 기능이다. 
5.4.4. 음성 파일 관리 및 패턴 분석 기능 소스: 
  집주인을 위한 웹 애플리케이션을 개발한다. 모바일폰으로 녹음한 음성파일을 등록 시 음성 메시지 내용을 인공지능 Speech API를 이용하여 자동으로 번역한다. 나이드신 분들이 문자를 입력할 필요가 없도록 편리성을 제공한다.
          
5.4.5. 실시간 푸시형 공지 알림 기능 소스: 
  홀몸노인과 봉사자들이 모바일 폰으로 최근의 알림 정보들을 실시간 조회가 가능하다.
5.4.6. 딥러닝기반의 카메라 얼굴 인식 기능 구현 소스:
  모션센서가 사람의 움직임을 감지 후에 그 사람이 집주인인지 아닌지 구별하기 위해 딥러닝 파이선 라이브러리를 (예: dlib) 이용하여 집주인 여부를 인공지능으로 식별한다. 
5.4.7. 홀몸노인 케어의 MySQL 데이타베이스 구조도:
  홀몸노인 케어 데이터를 저장하기 위하여 3개 테이블로 (사용자 테이블, 오디오 테이블, 이벤트 테이블) 구조를 생성한다. 오픈소스 phpMyAdmin을 이용하여 데이터베이스의 테이블들을 쉽게 관리한다.
 
 
5.5 사용 클라우드 및 모바일 앱 정보
- Google Cloud Platform (GCP)
- 웹브라우져 지원되는 모바일 디바이스
 
골든타임의 클라우드기반  음성 인식 자동 인식 기능은 구글의 GCP Speech API를 이용하여 구현하도록 한다. 
아래는 이러한 구현을 위한 슈도 코드를 보여준다. 
  ## 클라우드: 딥러닝 Speech API로 음성파일 자동변환 슈도코드
이 슈도 코드는 사용자가 녹음한 음성파일을 업로드하면 구글의 딥러닝 Speech 번역 엔진 API를 이용하여
자동으로 음성파일의 내용을 문자로 변환해주는 기능이다.
 
* Pseudo Code: 
# Step1 Google의 딥러닝 Speech 엔진을 사용하기 위해서 우리는 환경변수를 반드시 설정해야 합니다.
# "message": The request is missing a valid API key.
google_speech=/work/google-speech-api/php-docs-samples/speech/speech.php

# Step2 이제 Speech엔진의 Key를 가져옵니다.
export GOOGLE_APPLICATION_CREDENTIALS=/work/myproject-79c7917331aa.json
# 만약에 요청받는 미디어 포맷이 flace이라면 . 우리는 ***.flac 오디오 포맷의 파일을 사용해야 합니다.
# 순차적으로 실행되는 동작 순서입니다: .m4a --> .flac --> korean text
if [[ $1 == "flac" ]]; then
lang_locale=ko-KR
sample_rate=44100
audio_type=FLAC
if [[ -e $file_name.flac ]];then
rm -f $file_name.flac
fi
echo -e "Running ffmpeg command to convert audio from .m4a to .flac"


ffmpeg -i $file_name.m4a -ac 1 -af aformat=s16:$sample_rate $file_name.flac
echo -e "---------------------------------------------"
echo -e "Transcribing .flac audio file."

php $google_speech transcribe --encoding $audio_type --language-code \
$lang_locale --sample-rate 
$sample_rate $file_name.flac > ./$file_name.m4a.log
cat ./$file_name.log
rm -f $file_name.flac
fi


# Step3 만약에 우리 요청받는 미디어 포맷이 raw 이라면 . 우리는 ***.raw 오디오 포맷의 파일을 사용해야 합니다.
# 순차적으로 실행되는 동작순서입니다: .m4a --> .raw --> korean text
if [[ $1 == "raw" ]]; then
lang_locale=ko-KR
sample_rate=16000
audio_type=LINEAR16
if [[ -e $file_name.raw ]];then
rm -f $file_name.raw
fi

echo -e "Running ffmpeg command to convert audio from .m4a to .raw"
ffmpeg -y -i $file_name.m4a -acodec pcm_s16le -f s16le -ac 1 -ar $sample_rate $file_name.raw
echo -e "---------------------------------------------"
echo -e "Transcribing .raw audio file."
php $google_speech transcribe --encoding $audio_type --language-code \
$lang_locale --sample-rate $sample_rate $file_name.raw > ./$file_name.m4a.txt
cat ./$file_name.txt
rm -f $file_name.raw
fi
 
 
 
이상. 

 

로그인 후
참가 상태를 확인할 수 있습니다.