Haptic Hear 개발 후기

마이·2024년 9월 7일
1

포트폴리오

목록 보기
1/3
post-thumbnail

시작하게 된 계기

처음 서비스를 구상한건 8월 5일이였습니다. 해커톤 예선에 지원하기 위해 팀원들과 회의를 하였고 시각장애인용 보조기기는 많이 나온것을 확인하여, 보다 수가 적은 청각장애인 보조기기로 주제를 선정하였고, 다양한 아이디어 스케치를 하다 엔지니어와 개발자로 구성된 팀이기에 맨 처음 아이디어로 아두이노를 통해 Audio Classifiycation을 진행하고 모바일 어플리케이션과 통신하여 설정을 사용자에게 최적화하는 기기를 구상하였습니다.

개발기간, 협업 방식, 사용한 스택

저희 서비스의 총 개발기간은 08.17~09.02일로 약 3주입니다.

노션과 디스코드를 사용하여 회의 및 일정 관리를 하였고, 소프트웨어는 깃, 깃허브를 통해 버전관리를 하였습니다.

사용한 스택은 다음과 같습니다.

  • Tensorflow
  • Arduino
  • Flutter

Tensorflow

1차 인공지능 학습

저희는 Edge-Impulse 라는 사이트에서 인공지능을 학습시켰습니다.
1차적으로 총 10가지의 소리 데이터 50분 가량을 학습시켰고 경적과 사이렌, 노이즈가 잘 구분이 안되는 문제를 직면했습니다.

2차 인공지능 학습

저희는 이러한 문제를 해결하기 위해 3시간 가량 추가적인 데이터를 수집하여 사이렌, 경적, 노이즈를 95%의 정확도로 구분하게 되었습니다.

3차 인공지능 학습

저희는 Noise, Knock, Fire, Idle, Horn, Siren에 대한 1400개 가량의 데이터를 추가 학습 시킨 다음 피처를 전달하는 방식으로 yamnet과 합성하여 핸드폰 소리 및 알람,대화,사이렌,화재경보음,사이렌소리를 구분하는 모델을 최종적으로 제작하였습니다.

Arduino

아두이노 제작

저희는 Inventor, Fusion360, Keyshot, Fritzing등을 사용하여 저희의 기기를 구상 & 개발하였습니다. 하지만 2차 피드백 단계에서 더이상 개발을 진행하지 않기로 하였습니다.

Flutter

초안

저희 서비스의 초안 디자인입니다. 블루투스 모듈이 탑재된 RP2040 Connect보드를 사용하였고 Edge-Impulse를 통해 학습된 인공지능 모델로 Audio Classification을 진행하였고 flutter_reactive_ble 패키지를 사용해 블루투스 통신을 하여 provider와 shared_preferences로 관리되는 설정값을 아두이노로 보내고 감지된 소리를 전달 받아 flutter_local_notifications 패키지를 활용해 푸시 알림으로 전달받고 백그라운드 실행시에도 알림을 받을 수 있도록 하였습니다.

수요자 멘토링

저희는 완성된 초안으로 수요자 멘토링을 받았습니다. 멘토분께서는 이미 IOT가 많이 발달하여 전자기기나 가전같은 경우는 기존에 있는 서비스에서 이미 연결되어 알림이 온다는 피드백과 애플워치, 갤럭시워치같은 웨어러블 디바이스를 이미 많이 사용해서 또 시계형태의 기기는 쓰지 않을 것 같다는 피드백을 주셨습니다. 그래서 저희는 웨어러블 디바이스를 가지고 있지 않으신분들을 위한 기기 와 모바일 어플, 웨어러블 디바이스를 가지신분들을 위한 WearOS 어플리케이션을 만들기로 하였습니다.

2주차 개발


저희는 멘토링 이후 피봇팅을 진행하여 디바이스의 모델링을 좀 더 구체화하고 인공지능 모델의 학습을 전자기기나 가전이 아닌 사물인터넷으로 연결 할 수 없는 자동차의 경적소리와 화재경보음, 사이렌소리 등등에 집중하였습니다. 또한 WearOS에서도 실제로 동작하는 어플리케이션을 제작하였습니다. tflite_flutter, tflite_flutter_helper, flutter_sound를 사용해 실시간으로 들어오는 음성 데이터를 녹음 해 학습 한 모델의 가중치 데이터를 가진 모델에 보내서 반환값을 받는 형식으로 서버리스로 구현하여 인터넷이 없는 환경에서도 사용 할 수 있도록 하였습니다.

2차 멘토링

저희는 이렇게 핵심기능이 구현된 저희의 서비스로 2차 멘토링을 진행하였습니다.
2차 멘토링에서는 IOT가 연동되지 않는 소리를 분류해준다는 아이디어에서는 호평을 받았으나 기기가 너무 눈에 띄고 무겁고 불편하여 실제로 사용하지 않을 것 같다는 피드백을 받았습니다. 저희는 그래서 과감히 아두이노 디바이스를 포기하고, 스마트폰이 없는 사람은 거의 없다는 생각을 하여 기기 없이 스마트폰 하나로 독자적으로 작동하는 어플리케이션을 기획하였습니다.

3주차 개발

사실 기능은 2주차와 거의 똑같습니다. 인식률을 높혔고 독자적인 모바일 어플리케이션용 UI를 제작하였습니다. 크게 달라진점은 Audio Clssification의 모드를 구분하였습니다. 일반, 운전, 수면 총 3개의 모드로 구분하였고 각 상황에 맞는 소리만 인식하게 하였습니다. 또한 추가적으로 네이티브 코드를 건드려서 모바일 어플리케이션에서는 우상단에 이메일 아이콘을 누르면 개발자 창구 구글폼으로 이동하도록 구현하였습니다. 개발자 창구로 이동하는 부분을 제외한 모든 핵심기능은 인터넷 연결 없이도 작동 가능하도록 구현하였습니다.

마무리

이렇게 저희는 3등과의 점수차 0.62점이라는 점수로 최종 4등으로 마무리 되었습니다.
비록 아쉬움이 남을 수도 있는 결과였지만, 실험적인 아이디어와 처음 도전해본 분야의 기술을 사용한 만큼, 결과보다 과정에서 얻은 동기부여가 더욱 큰 성과로 느껴집니다.

심사위원분들의 평가 점수를 분석해본 결과 1, 2차 평가에서 기술적인 부분에 있어 지나치게 현실적인 타협을 했던 점이 비교적 낮은 점수의 원인이었을 것이라 생각됩니다.
저희 팀이 볼 때 ‘과연 저게 가능할까?’ 싶거나, ‘저렇게 하면 개발 비용이 상당히 들 텐데’ 하는 생각이 들 정도로 다소 몽상적인 아이디어를 제시한 팀들이 1, 2차 평가에서 높은 점수를 받은 것을 보면서, 심사위원분들이 그런 혁신적이고 대담한 시도를 더 높이 평가하신 것 같았습니다. 이 부분이 저희에게는 아쉬움으로 남습니다.

그럼에도 수고해주신 팀원분들께 감사의 말씀을 전합니다.
다음에 더 좋은 기획과 결과로 찾아오도록 하겠습니다.
더자세한 사항은 깃허브에서 확인해주세요!

Haptic Hear Mobile Github
Haptic Hear Watch Github

profile
Multi-Platform Enginner

2개의 댓글

comment-user-thumbnail
2025년 3월 13일

3주라는 짧은 시간동안 정말 대단하네요. 실행력이랑 구현력 아이디어가 정말 좋은거 같아요.
저도 항상 노캔을 킨 채 이어폰을 끼고 다니느라 청력을 포기한 상태로 길거리를 돌아다니거든요. 그럴때면 시각적으로 상황을 보고 소리를 유추합니다.
만약 웨어러블 워치나 핸드폰으로 실행한다면
1. 시각적으로 상황 인식
2. 기기를 확인해서 소리 인식
3. 다시 시각적으로 상황 인식 후 행동
이라는 3가지 행동이 필요하다고 생각해요.
그래서 이 소프트웨어가 구글 글래스같이 시각과 직접적인 연관이 있는 기기와 결합하면 더 좋을 것 같다는 생각을 해봤습니다.

1개의 답글