"창작의 설렘 - 네비게이션 미러(Navigation Mirror)"의 두 판 사이의 차이

MIE capstone
이동: 둘러보기, 검색
(동작 시나리오)
(동작 시나리오)
46번째 줄: 46번째 줄:
  
 
==동작 시나리오==
 
==동작 시나리오==
 +
 +
==='''1. 내비게이션 미러 시나리오'''===
 +
 
[[파일:2022ese1_시나리오1.PNG|800픽셀|섬네일|가운데|내비게이션 미러 시나리오]]
 
[[파일:2022ese1_시나리오1.PNG|800픽셀|섬네일|가운데|내비게이션 미러 시나리오]]
 +
 +
==='''2. 관리자용 웹페이지 시나리오'''===
 +
 
===구현 내용===
 
===구현 내용===
 
1. Speech to Text (STT)
 
1. Speech to Text (STT)

2022년 6월 12일 (일) 00:30 판

프로젝트 소개

프로젝트 명

 네비게이션 미러(Navigation Mirror)

프로젝트 기간

2022.4 ~ 2022.6

팀 소개

 서울시립대학교 기계정보공학과 20174300** 권*용 (팀장)
서울시립대학교 기계정보공학과 20174300** 문*수
서울시립대학교 기계정보공학과 20174300** 유*
서울시립대학교 기계정보공학과 20164300** 윤*승

프로젝트 개요

프로젝트 요약

백화점이나 대형 상가와 같은 건물에서는 내부에 여러 매장이 위치하는데, 이로 인해 원하는 매장까지 가는 길이 복잡한 경우에는 매장을 찾기 위해 많은 시간이 소요되기도 한다. 이를 해결하기 위해 현재 위치에서 고객이 찾는 매장의 위치까지의 경로를 스크린에 띄워주는 내비게이션 미러를 제작한다. 평소에는 거울의 역할을 하지만, 기능을 활성화하고 목적지를 입력할 경우 경로를 출력한다. 이 때 음성인식 기술을 사용하여 전자제품을 다루기 어려워하는 IT취약계층의 접근성을 높이고, 개인 스마트폰에서 경로를 확인할 수 있는 QR코드를 제공하여 편의성을 높이도록 한다.

프로젝트의 배경 및 기대효과

인간이 의사소통을 하기 위해 사용하는 일반적이고 효과적인 수단은 언어(말과 글)이고, 음성은 인간의 가장 자연스러운 의사소통 방식이다. 말의 내용과 발화자의 감정을 인식하고 의미를 이해하여, 상황에 따라 자연스러운 대화를 주고받기 위해 필요한 음성 언어 처리 기술은 인간의 자연어 발화를 컴퓨터가 자동으로 이해하고 처리하는 알고리즘을 연구하는 분야로, 대화형 개인 비서 에이전트, 인 공지능 AI 스피커, 자동 통번역, 음성 대화 질의 응답(QA) 시스템 등 다양한 응용 서비스 사례를 들 수 있다.

그림1. 음성 대화 인터페이스 시스템 구성

Speech Recognition, 인공 청각이라 불리는 STT(Speech-to-Text)는 위의 과정 중사람의 음성 인터페이스를 통해 텍스트 데이터를 추출 해내는 기술이다.
백화점이나 대형 상가와 같이 건물에 많은 매장이 입점해 있는 경우, 층마다 안내판이 있다고 하더라도 원하는 매장을 찾는 것이 힘든 경우가 많다. 핸드폰을 다루고 검색하는 것에 익숙한 고객의 경우 어플이나 인터넷을 통해 매장의 위치를 찾을 수도 있지만 많은 고객의 경우 그렇지 못하는 경우가 많다. 이러한 불편함 때문에 코엑스와 같은 대형 건물에는 각 층에 키오스크가 배치되어있어 길을 찾을 수 있는 지도를 제공해준다. 하지만 이러한 키오스크는 터치 방식을 사용하여 IT 취약계층의 경우 사용하기 힘든 경우가 많고 핸드폰으로 경로 정보를 보내주는 것과 같은 개인화된 서비스를 제공해주지 못한다. 이번 프로젝트를 통해 앞서 설명한 STT 기술을 이용하여 몸이 불편하신 분들이나 IT 취약계층에서도 쉽게 접근할 수 있고 QR코드를 이용하여 핸드폰에 원하는 경로를 저장할 수 있는 개인화된 서비스를 제공할 수 있을 것으로 생각된다.

프로젝트 개발 목표

그림2. 목적계통도

1. 편의성

  • 직관성
해당 시스템은 일반 사용자 이외에 IT취약 계층에게도 높은 접근성을 제공하는 것을 목표로 하고 있기 때문에 직관성 높은 인터페이스를 제작하는 것이 중요하다. 네비게이션에 초음파 센서를 부착하여 1m이내의 물체가 인지되면“안녕하세요, 길찾기 기능을 사용하려면 아무 버튼이나 눌러주세요.” 와 같은 문구를 입력하여 사용자의 접근성을 높인다. 음성 인식 명령부터는 화면에 “특정 버튼을 눌러주세요.”처럼 필요한 동작을 명시하고 안내 메시지 등을 통해 동작에 대한 적절한 입력을 할 수 있도록 한다.
  • 정확성
사용자가 편리하게 시스템을 이용하기 위해서는 사용자의 음성 명령을 인식하여 텍스트로 변환하는 STT기술이 정확해야 하고 STT기술을 통해 변환된 텍스트와 유사성이 높은 목적지 후보군들을 올바르게 추출해야 한다. 이를 위해서는 google web API를 사용하고 문자열 비교 알고리즘에 임계값을 주어 서버에 저장된 장소들의 명칭 텍스트 유사도가 높은 장소 후보군들이 추출되도록 한다. 외부에 소음이 발생하는 상황에서도 음성 인식 변환의 정확성이 유지되도록 해야 하는데 이는 주변 소음을 제거해주는 함수를 사용한다. 또한 목적지가 결정되었을 때 Database에서 목적지까지 정확한 경로 정보와 QR코드를 받아와 전달해 주어야 한다.

2. 사양 및 성능

  • 경제성
해당 시스템은 건물 내 모든 층의 엘리베이터 앞에 위치하는 것을 목적으로 하므로 경제성을 고려하여 설계해야 한다. 하지만 사용자의 편의성을 저하시키지 않는 범위에서 경제성이 확보되도록 설계해야 한다.
  • 처리속도
해당 시스템에서 사용자의 입력시간을 제외한 처리속도는 google web API에서 음성 인식에 소요되는 시간, 인식된 텍스트가 Database의 어떤 목적지인지를 비교하는 알고리즘에 소요되는 시간, 사용자가 목적지를 선택하였을 때 화면에 띄워줄 때까지 소요되는 시간으로 총 3가지가 있다. 이때, 사용자가 불편함을 느끼지 않도록 음성 명령을 텍스트로 변환하고 Database와 비교하는 과정과 서버에서 가져온 데이터를 출력하는 과정에서 지연을 최소화하여야 한다.

3. 유지 보수성

  • 수정 용이성
학교 건물과 같이 건물 내부 구성이 자주 바뀌지 않는 경우 데이터 수정이 큰 문제가 되지 않는다. 하지만 대형 상가의 경우 매장이 입점하거나 폐점하는 상황이 발생할 수 있으므로 이를 편리하게 수정할 수 있어야 하고, 수정된 데이터가 시스템에 반영되어야 한다. 이를 위해 관리자용 웹페이지를 만들어 관리자는 간편하게 Database를 수정할 수 있게 하고 시스템은 Database에 실시간으로 접근하여 바로 반영할 수 있도록 한다.
  • 보수성
해당 내비게이션 미러는 입력장치가 고장나거나 서버와 연결이 끊길 경우 기능의 사용이 불가하므로 이를 쉽게 교체하거나 수리할 수 있어야 한다.

동작 시나리오

1. 내비게이션 미러 시나리오

내비게이션 미러 시나리오

2. 관리자용 웹페이지 시나리오

구현 내용

1. Speech to Text (STT)

그림3. 음성인식 실행예시
음성을 인식하여 텍스트를 출력해주는 STT는 Python패키지인 SpeechRecognition의 구글 웹 음성인식 API를 사용하여 구현하였다. 음성 입력의 경우, 동일한 패키지의 listen 함수를 통해 구현하였고 원하는 시간 동안 음성 정보를 받아올 수 있다. 소리의 잡음의 경우 잡음 제거 기능이 있는 마이크를 사용하여 줄여주었지만, 음성인식의 경우 잡음으로 인한 인식률 저하 문제가 큰 문제라고 판단되었고 라즈베리파이 기준 실행시간이 0.2초밖에 걸리지 않아 adjust_for_ambient_noise 함수를 통해 추가 잡음 제거를 진행해주었다.
구글 웹 음성인식 API를 통해 받아온 값은 문자열로 해당 문자열이 어떤 호실에 해당하는지 <깃허브 링크>과 같이 데이터베이스와 비교가 필요하였다. 음성 입력과 호실 이름이 항상 정확히 일치하는 것은 불가능하기에 difflib의 SequenceMatcher 함수를 통해 문자열 사이의 비슷한 정도를 score로 계산하고 이 score가 threshold(Document의 추천 값인 0.6을 사용)보다 큰 경우 해당 호실의 정보를 list에 추가하도록 하였다. 이때 사용자가 입력을 전체 이름으로 주지 않고 하나의 단어로 주었을 때 score값이 떨어져 값을 가져오지 못하는 문제가 발생하였다. 이를 개선하기 위해 입력값이 데이터베이스의 이름 안에 포함되면 list에 추가하도록 구현하였다. 또한 데이터베이스에 저장된 정보 중 호실 번호와 담당자 이름의 경우는 입력 문자열에 포함되어있는지를 판단하여 있으면 list에 추가하도록 하였다. list는 마지막에 반환되어 UI 구현에서 사용할 수 있도록 한다. list는 [[호실 번호, 담당자 이름, 호실 이름, 담당자 번호, 추가사항], ...]로 구성되었다.

시스템 구성

기구부 설계 및 구현

제어부 및 회로 구현

소프트웨어 설계 및 구현

프로젝트 결과

최종 결과물

결과물 사진 혹은 시연 영상 등

미구현 내용

프로젝트 평가

평가항목

평가결과

느낀점