러닝머신 하는 K-공대생
톺다(TOBDA), 시각장애인의 진정한 독립보행을 돕다 본문
1. 프로젝트 소개 및 진행 의도
프로젝트 내용:
톺다(TOBDA)는 지팡이로는 부족한 공간적 정보를 시각장애인들에게 제공함에 목표를 둔다. 촉각 지도로 나타내어 손으로 길을 톺아보면서 공간을 이해하는 Bird-Eye View 모드, 계단의 개수를 알려주는 Stair Counting 모드와 현재 공간을 설명하는 Image Captioning 모드로 다양한 상황에서 종합적으로 공간을 이해한다.
해결하고 싶은 문제:
인간에게 있어서 시각은 어떤 감각기관보다도 발달해 있어 정상적인 상태에서 사물을 인지하는 작용 중 가장 큰 역할을 하고 있다. 시각장애인의 경우 수차례 반복에 의한 경험에 익숙해진 경우에는 독립 보행을 할 수 있으나, 처음 접하는 환경에서는 환경인지, 거리 측정 등 여러 가지 문제로 인해 독립적인 보행이 어렵다. 이에 시각장애인의 보행을 돕는 다양한 연구와 앱이 나오게 되었지만 음성 기반 안내라는 가진 기존의 접근방식들은 실내공간 내에 적용하기 힘들며 시각장애인이 직접 경로를 계획하 고 공간을 파악할 수 없다는 한계를 가진다.
발견하게 된 과정:
시각장애인의 독립 보행을 위해서는 충분한 정보가 필요하다. 방향 정위(Orientation)라는 과정을 통해 시각장애인들은 자신의 위치를 파악한다. 방향 정위는 시각장애인이 주위 환경을 이해하여 자신의 현재 위치를 파악하는 정신적인 과정이다. 방향 정위에 필요한 정보를 얻기 위해서는 청각, 촉각 등 의 잔존 감각으로 전달되는 정보가 필요하다. 관련 연구들에선 보행로에 설치한 비콘 센서와 반응하거나, GPS 기반 경로탐색 후 음성 서비스로 주변 시설 정보 및 이동 경로를 제공했다. 이에 직접 눈을 가리고 음성 정보에만 의존하여 이동해보았다. 많이 다녔던 학교 복도였지만 이동하는데 상당히 불안감을 느꼈고. 음성으로는 방향 정위에 필요한 정보를 충분히 제공하질 못했다. 뿐만 아니라 기존의 접근법은 실내공간에 적용하기 어려우며 추가적인 설치를 필요로 하였다. 이에 음성 서비스에서 벗어난 효과적인 방법으로 공간정보를 제공하는 것의 필요성을 느끼게 되었다.
시사점:
시각장애인들을 위한 보조장치, 앱 등이 개발되고 있지만 보편화되지 않은 것은 비용이나 편리성의 문제가 클 것이다. 또 기능에 비해 실용성이 떨어진다는 점이다. 특정한 상황에서 불필요한 정보와 필 요한 정보가 구분되는데 선행된 개발들은 이를 고려하지 않았다. 이에 초점을 두어 우리는 특정 상황에서 반드시 필요한 정보를 선택적으로 얻을 수 있도록 3가지 모드로 구분되는 음성 기반 접근법에만 갇히지 않은 앱을 개발을 우리가 이뤄내겠다고 결심하였다.
소프트웨어가 가져올 긍정적인 변화:
‘톺다’ 앱은 기존 시각장애인들을 위한 보조장치들에 비해 들고 다니기 편리하고 누구나 장비에 대한 비용 부담 없이 사용할 수 있다. 또한 시각장애인의 불편을 해결하기 위한 ‘톺다’의 기술들은 Lidar, Depth Camera 등을 사용하지 않고 스마트폰 내장 카메라를 사용해 모바일 기기 내에서 이뤄진다는 장점이 있다. 이는 모든 시각장애인들이 적은 제약으로 보행에 대한 도움을 받을 수 있는 세상이 도래하는데 큰 기여를 할 것이다. 기존 앱처럼 주변 공간정보를 음성정보로 제공하지만 bird eye view 모드로 지도 데이터를 통해 능동적인 판단이 가능하도록 하여 시각장애인들의 보행의 주체성을 보장해 준다.
2. 개발 계획 및 역할
목표: 기존의 음성 기반 접근 방식에서 벗어나 시각장애인들에게 공간지각 정보 제공을 위해 교내 실시간 촉각 지도를 생성하여 제공하는 것이다.
멤버별 역할:
- prgmti1 (팀장) : 머신러닝 총괄 및 전체 일정 및 프로젝트 관리, AWS 개발 환경 구축, YOLOv4, Weakly Supervised Se mantic Segmentation 및 Semantic Segmentation, Mono Camera 기반 Depth Estimation 모델을 활 용해 Depth Map으로부터 Homography Matrix 얻기
- ksh1325 (팀원): 하드웨어 총괄, 앱인벤터나 플러터 사용해서 앱 제작 및 디자인, serial 통신 확인 및 보완, SLAM 원리 이 해 및 적용 예시로 구현하기
- paull04 (팀원): OpenCV를 활용한 컴퓨터 비전, SLAM 구현 및 알고리즘 총괄, LSTM CNN 학습, image captioning 공부하기, image captioning 개발, 3d 변환 구현
월별계획:.
- 8월. 시각장애인 복지센터에 연락하여 시각장애인 대상 설문 및 인터뷰를 요청하여 필요한 기능 및 디테일한 구현 사항을 추가 및 선별한다. 이전 프로토타입 제작을 위해 Unet으로 학습시켰었는데 학습모델 변경, 데이터수 증가, 모델 경량화를 진행한다. Monocular Depth Estimation 관련 논문을 분석한다. 앱 구현을 위해 앱인벤터 및 플러터를 학습한다. Bird-Eye View 제공 방식(절대 좌표/상 대 좌표) 등을 고려한 변환 방식을 고민한다.
- 9월. 온라인 멘토링을 통해 구현상 어려움 및 프로젝트 진행 관련 조언(ML 시스템 통 합 및 경량화, 구현 관련 질문 다수)을 얻는다. Attention기반 Image Captioning 모델 & YOLOv4 모델 적용. 서버 방식 딥러닝/Tensorflow Lite를 이용한 딥러닝 방안을 비교하고 적용한다. 앱인벤터나 플러터를 이용해 ‘톺다’ 앱의 베 타버전(카메라, 진동, 소리, 출력, 머신러닝 호환 등)을 제작하는 것을 목표로 한다.
- 10월. 최종 점검(앱 구동 확인+기능 검토)을 진행하여 최종 결과물을 제출한다. 시연 영상을 제작하고 앱 배포에 앞서 베타테스터를 모집하여 기능에 대한 평가 및 고 충 앞으로 발전시킬 점들을 조언받는다.
3. 소프트웨어 솔루션
프로토타입:
Bird-Eye View는 사진을 찍으면 스마트폰 화면에 촉각 지도를 띄워주는 방식이다. 위에서 내려다 본 것처럼 지도를 만 들어주고 지도의 각 부분을 손으로 갖다대면서 복도인지 벽인지 장애물인지를 음성 혹은 진동으로 나타내주는 방식으로 안내한다. Stair Counting은 남은 계단의 개수를 알려주는 모드이며, Image Captioning은 주변 상황의 정보를 음성 으로 제공해준다.
주요 기능 소개:
1. Bird-Eye View 촉각지도 생성
찍은 사진을 이미지 영역 분할로 이동가능 영역을 추출하고 Depth Estimation으로 얻은 Depth Map으로 호모그래피 행렬을 얻고 장애물을 매핑시켜 Bird-Eye View로 지면투영한다. 최근접 장애물 정보를 안내 하며 이동 불가능 영역에 손을 대면 진동하고 장애물에 가져다대면 장애물 종류를 알려줌.
2. Stair Counting
사진을 찍고 영역분할로 마스킹된 계단 사진을 얻음. 가우시안 필터를 거친 후 canny edge로 계단에 대한 edge를 검출하고 edge의 기울기들을 구함. 평균 기울기만큼 이미지 회전시켜 계단 가로합의 변화량 그래프를 그려 피크점 개수(계 단 개수)를 알려준다.
3. Image Captioning
촬영한 사진을 InceptionV3로 전처리 후 CNN encoder, RNN decoder를 거쳐 Attention 기반으로 얻은 Caption을 음성으로 알려준다.
시나리오 순서도:
이미지 캡셔닝 모드를 클릭하면 이미지 캡셔닝 모델로 카메라로 가져온 이미지에 대한 설명을 음성으로 출력한다. bird-eye view 모드를 선택하면 카메라로 이미지를 가져오고 장애물, 벽, 길로 영역 분할한다. 이미지에 계단 영역이 있다면 stair counting을 선택할지 음성으로 물어본다. 선택하면 남은 계단 개수를 음성으로 출력해준다. 그리고 현재 위치에서 가장 가까운 장애물의 위치를 음성으로 알려준다. 그리고 휴대폰 화면을 누를 때는 길이 아닌 지점을 누르면 휴대폰을 진동하고 장애물이면 종류와 위치를 음성으로 알려준다.
4. 개발 현황 및 진행상황
아래 Github와 유튜브에 진행사항을 업로드하고 있으며 이 블로그에 관련 공부 내용정리 및 구현과정을 담을 예정이다. 또한 본 프로젝트를 주제로 멘토링, 기술적 지원등을 요청해 성공적으로 이 프로젝트를 진행하여 시각장애인 분들에게 많이 도움이 될 수 있도록 노력해야겠다.
https://github.com/taegukang35/device_for_blind
https://youtube.com/playlist?list=PLCIotXpWRBuaCyokIwuAOsqV7Dc2pX2yx
'Project' 카테고리의 다른 글
Graph-Cut 을 이용한 영상 분할 구현 (1) | 2023.02.12 |
---|---|
내가 과학고에서 뭐했더라 (0) | 2022.07.21 |
TOBDA App 개발 근황 (2) | 2021.09.23 |
두 과고생의 뜨거운 도전, 2020 캔위성 경연대회 (2) | 2021.04.03 |