프로젝트 목록

SmartVision 시각장애인 보조 기기

캡스톤디자인 2위2025.03 ~ 2025.06

시각장애인이 들고 다니며 앞의 장애물을 방향과 함께 듣고, 식당 QR 메뉴판을 음성으로 들을 수 있게 만든 Raspberry Pi 5 기기입니다. 캡스톤디자인1에서 2위를 했고 과목 학점 A+를 받았습니다.

Role
대표. 객체 인식, 음성 명령, QR 모드, 라즈베리파이 최적화
Team
2명
Result
캡스톤디자인 2위, 학점 A+
Links
GitHub 저장소
라즈베리파이 시연 화면: QR 코드, 카메라 창, 인식 기록
라즈베리파이 데스크톱에 QR 코드, 카메라 창, 객체 인식 기록 터미널이 떠 있는 시연 화면

Overview

점자블록이 없거나 장애물이 많은 길, 음성 안내가 없는 키오스크 때문에 시각장애인의 보행과 정보 접근이 어렵다는 문제에서 시작했습니다. 비싼 상용 기기 대신 Raspberry Pi와 공개 모델로 들고 다닐 수 있는 보조 기기를 만드는 것이 목표였습니다.

What I Did

  • 객체 인식: 사람, 자전거, 자동차, 버스, 신호등, 정지 표지판 등 12종을 신뢰도 0.5 이상일 때만 안내
  • 음성 명령 모드: 객체, 큐알, 메뉴, 모드, 온도, 시간, 다시 안내, 종료
  • QR 모드와 모드 전환: QR 속 주소의 페이지를 받아 본문을 읽어 주는 음성 메뉴판
  • 모델 경량화와 라즈베리파이 최적화, 팀원과 함께 전체 코드 관리

Problem Solving

라즈베리파이에서 돌지 않던 인식 코드

문제
보드가 10주차에야 도착했습니다. 그전까지 데스크톱에서 만든 인식과 음성 기능이 라즈베리파이에서는 패키지 충돌과 성능 한계로 돌지 않았습니다.
해결
인식 모델을 가장 가벼운 YOLOv8n으로 바꾸고, 필요한 패키지를 다시 골라 구성했습니다. 발열은 쿨러와 방열판으로 줄이고, 온도를 음성으로 확인하는 명령을 넣었습니다.
결과
Raspberry Pi 5에서 초당 5~10프레임으로 인식하고, 인식 후 1~2초 안에 음성으로 안내합니다. (캡스톤 최종보고서 기준)

안내 음성이 음성 명령으로 잘못 인식됨

문제
스피커로 나온 안내 음성이 마이크로 다시 들어가 명령으로 인식됐습니다.
해결
안내 음성이 재생되는 동안에는 듣기를 멈추고, 재생이 끝난 뒤 다시 듣게 했습니다.
결과
안내와 음성 명령이 서로 끼어들지 않게 됐습니다.

같은 안내가 끝없이 반복됨

문제
카메라는 매 프레임 같은 물체를 다시 찾기 때문에, 그대로 두면 같은 문장이 쉬지 않고 반복됩니다.
해결
안내 사이에 3초 간격을 두고, QR도 같은 내용이면 간격을 둬서 다시 읽게 했습니다. 문장은 "왼쪽에 자전거가 있습니다"처럼 방향과 조사까지 맞췄습니다.

Looking Back

음성 합성과 음성 인식이 인터넷을 써서, 밖에서 연결이 끊기면 안내가 멈춥니다. 보고서에 오프라인 엔진(pyttsx3, Vosk)을 다음 과제로 적었습니다. 여러 물체가 한꺼번에 잡히면 프레임이 떨어지는 점도 한계로 남았고, 카메라 영상은 저장하거나 전송하지 않도록 했습니다.