AI 파이프라인 설계
제품 내에서 AI 모델의 위치와 역할을 정의했습니다. 디바이스에서 처리할 작업과 엣지 서버로 넘길 작업을 분류하고, 두 가지 번역 경로를 어떻게 분리할지, 그리고 카메라 노이즈와 독립적으로 모델 자체의 성능을 어떻게 평가할지 고민했습니다.
박건우 · 졸업 프로젝트 · 2024–2025
엣지 AI 서버와 라즈베리 파이 기반의 스마트 글래스 프로토타입을 활용한 양방향 수어 번역 웨어러블 디바이스입니다. 수어를 텍스트로(Sign-to-Text), 음성을 수어로(Speech-to-Sign) 변환하는 두 가지 추론 경로를 지원합니다.
저는 이 프로젝트에서 AI 파이프라인 설계, 디바이스와 서버 간의 시스템 아키텍처 구축, 그리고 웨어러블 디바이스 단의 구현을 담당했습니다. 이 페이지는 제가 담당했던 파트의 기술적 요약을 담고 있습니다.
이 프로젝트의 핵심은 단순히 모델을 오프라인에서 구동하는 것에 그치지 않았습니다. 웨어러블 시스템으로 확장됨에 따라, 데이터 표현 방식, 통신 지연, 추론 연산의 분배, 출력 포맷 등 모델의 단순 정확도만큼이나 시스템 전반의 최적화가 중요했습니다.
저는 이 프로젝트를 단순한 모델링이 아닌, 하나의 통합된 시스템으로 접근했습니다. AI 모델, 서버, 디바이스, 그리고 물리적인 폼팩터가 유기적으로 맞물려 동작하도록 설계했습니다.
제품 내에서 AI 모델의 위치와 역할을 정의했습니다. 디바이스에서 처리할 작업과 엣지 서버로 넘길 작업을 분류하고, 두 가지 번역 경로를 어떻게 분리할지, 그리고 카메라 노이즈와 독립적으로 모델 자체의 성능을 어떻게 평가할지 고민했습니다.
단순한 디바이스 단일 데모를 넘어 엣지 AI 구조를 도입했습니다. 이를 위해 통신 지연 시간(Latency) 예산, 데이터 전송 비용, API 통신 규격, 그리고 웨어러블 디스플레이에 적합한 출력 형태를 정밀하게 설계했습니다.
하드웨어 스키매틱(회로도) 기획부터 프로토타입 제작, 최종 조립까지 웨어러블 파트를 전담했습니다. 라즈베리 파이 통합, 카메라/디스플레이/마이크 제어 로직 작성 및 단위 테스트를 수행했습니다.
프로젝트의 실질적인 진전은 수많은 예외 상황을 해결하는 과정에서 이루어졌습니다. 카메라 빛 반사, 중심을 벗어난 수어 동작, 주변 소음, 네트워크 패킷 지연 등 소형 기기라는 제약 속에서 AI가 직면하는 엣지 케이스(Edge cases)를 다루었습니다.
웨어러블 디바이스는 데이터 캡처와 결과 출력을 전담하고, 연산량이 많은 추론 및 데이터 처리는 엣지 서버가 담당하도록 시스템을 분리했습니다.
라즈베리 파이는 입출력(I/O)과 통신을, GPU 기반 서버는 웨어러블이 감당하기 힘든 무거운 추론 작업을 처리합니다.
이 경로는 시퀀스 분류(Sequence classification) 문제로 접근했습니다.
이 경로는 문장 기반 모션 생성(Sentence-to-motion generation) 문제로 접근했습니다.
프로젝트의 주요 의사결정은 단순히 개별 모델의 성능을 높이는 것이 아니라, 시스템 전체에서 AI가 어떻게 안정적으로 동작할 것인가에 맞춰졌습니다.
시각적으로 복잡한 원본 영상을 웨어러블에서부터 끝까지 처리하는 것은 비효율적이었습니다. 키포인트(Keypoint) 방식은 수어 데이터를 정규화하고 시퀀스를 나누기 쉽게 만들었으며, 엣지 서버 환경에 훨씬 적합했습니다.
수어를 텍스트로 바꾸는 것과 음성을 수어로 바꾸는 것은 완전히 다른 문제입니다. 전자는 제스처 시퀀스 분류이고, 후자는 문장 조건부 모션 생성입니다. 이를 분리함으로써 구조가 명확해지고 각 태스크에 맞는 데이터셋을 적용할 수 있었습니다.
라즈베리 파이 Zero 2 W는 캡처, 디스플레이, 네트워크 전송에는 충분했지만 전체 추론을 감당하기엔 무리였습니다. 모델을 엣지 서버로 옮김으로써 기기 구조를 단순화하고 파이프라인 반복 개선을 용이하게 만들었습니다.
이 시스템은 단순한 프레임이 아닌 '시간(Time)'을 다뤄야 했습니다. 시간적 추론, 더 큰 어휘집(Vocabulary), 순차적 종속성을 깔끔하게 처리하기 위해 Transformer 기반의 시퀀스 모델을 아키텍처의 중심으로 삼았습니다.
Sign-to-Text의 고립 단어 인식에는 WLASL이, Speech-to-Sign의 문장 단위 생성에는 How2Sign이 적합했습니다. 하나의 데이터셋이나 모델에 모든 것을 억지로 맞추기보다, 각 태스크의 실제 목적에 맞는 데이터를 선택했습니다.
라이브 수어 테스트는 카메라 품질, 사용자 숙련도, 프레이밍 등 통제하기 어려운 변수가 너무 많았습니다. 통제된 MP4 영상 입력을 별도로 사용하여 분류기의 순수 성능과 실제 병목 구간을 명확히 파악했습니다.
데모 시연 시 모델의 오류를 숨기기 위해 언어 처리 레이어(Language layer)를 억지로 추가하기보다는, 단어 수준의 결과물을 디스플레이에 바로 띄우는 방식을 택했습니다. 이를 통해 시스템 디버깅이 수월해졌고 추가적인 지연 시간(Latency) 발생을 막았습니다.
하드웨어는 철저히 파이프라인에 맞춰 조정되었습니다. 웨어러블 폼팩터를 깔끔하게 만들기 위해 디스플레이 크기를 줄였고, 음성 인식 품질 향상을 위해 더 나은 마이크 모듈을 도입하는 등 입력 성능 개선에 주력했습니다.
최종 시스템은 AI 추론, 네트워크 통신, 임베디드 소프트웨어, 그리고 웨어러블 하드웨어 프로토타입이 결합된 형태입니다.
하드웨어 작업과 AI 작업은 매우 밀접하게 연결되어 있었습니다. 기기 크기, 캡처 품질, 전력 소모, 디스플레이의 제약 조건들은 계속해서 모델 및 파이프라인 설계에 피드백을 주었습니다.
프로젝트는 목표 정확도를 달성했지만, 초기 목표였던 지연 시간(Latency)은 충족하지 못했습니다. 이러한 차이는 프로젝트 후반부의 주요 타협점(Trade-offs)을 결정하는 기준이 되었습니다.
| 항목 | 초기 목표 | 관측 결과 | 평가 |
|---|---|---|---|
| Sign-to-Text 정확도 | 80% 이상 | 86% | 목표 달성 |
| Speech-to-Sign 정확도 | 80% 이상 | 83% | 목표 달성 |
| Sign-to-Text 지연 시간 | 1초 이하 | 서버 측 처리 약 2580ms | 목표 미달성 |
| Speech-to-Sign 지연 시간 | 1초 이하 | 약 3212ms | 목표 미달성 |
| 어휘 집합(Vocabulary) 규모 | 실용적 데모가 가능한 수준 | 2,000개 단어 인식 환경 적용 | 목표 달성 |
AI 경로는 개념을 증명하고 데모를 시연하기에 충분히 유용했습니다. 하지만 영상 캡처 품질, 서버 왕복 시간(Round-trip), 생성 시간 등 엔드투엔드(End-to-end) 관점에서의 지연이 발생하여 완벽한 실시간(Real-time) 사용에는 미치지 못했습니다.
라이브 환경에서는 프레임 이탈, 빛 반사, 수어 동작의 일관성 부족 등으로 인해 캡처 품질이 떨어졌습니다. 오디오 역시 주변 소음에 취약했습니다. 파이프라인 자체는 안정적이었지만, 전송 및 추론 연산 비용이 여전히 전체 성능의 발목을 잡았습니다.
여러 한계점에도 불구하고, 이 프로젝트는 소형 웨어러블 기기가 AI 커뮤니케이션 시스템의 프론트엔드 역할을 훌륭히 수행할 수 있음을 증명했습니다. 단순한 모델 데모가 아닌, 실제 작동하는 '디바이스-서버 루프'를 성공적으로 구현해 냈습니다.
이 페이지를 완벽한 성공 스토리로 포장하기보다는, 시스템이 마주한 실제 제약 조건들을 있는 그대로 보여주고 싶었습니다. 이 프로젝트의 진정한 가치는 단순히 최적의 수치를 뽑아낸 것이 아니라, 복잡한 시스템의 경계에서 발생한 문제들을 해결해 나간 과정에 있기 때문입니다.
단순한 모델 구조도를 넘어, 실제 물리적 시스템으로서의 프로젝트를 보여주는 자료들입니다. (모든 이미지는 클릭 시 원본 크기로 볼 수 있습니다.)
이 프로젝트를 이어간다면, 가장 우선시해야 할 목표는 실제 환경(In-the-wild)에서도 AI 시스템이 안정적으로 동작하게 만드는 것입니다.
더 나은 성능의 카메라와 정밀한 캘리브레이션을 도입한다면, 모델의 성능 부족으로 오인되었던 인식 오류의 상당 부분을 줄일 수 있습니다.
생성된 수어가 실제 환경에서도 신뢰성을 갖추려면, 음성 경로에서 노이즈 처리와 문장 경계(Sentence-boundary) 인식을 더 정교하게 다듬어야 합니다.
전처리 과정을 최대한 디바이스 단으로 끌어내려 데이터 전송 비용을 줄이고, 태스크의 핵심 구조를 해치지 않는 선에서 추론 경로를 단순화할 계획입니다.
핵심적인 캡처 및 추론 경로가 안정화된 이후에, 더 자연스러운 문장 출력을 위한 상위 언어 계층을 추가하는 것이 바람직합니다. 로우레벨(Low-level) 파이프라인이 완벽하지 않은 상태에서, 그럴듯한 데모를 위해 언어 모델로 오류를 덮는 방식은 지양할 것입니다.