한국어
AI 버전
회사 소개 AI 시대의 시스템 개발 블로그 문의 AI 페이지

BLOG

WiFi로 벽 너머가 보인다 — 카메라 없는 인물 감지 OSS 『RuView』를 ESP32로 시험하다

WiFi 반사(CSI)로 카메라 없이 사람의 존재·호흡·자세를 추정하는 Rust 제 OSS 『RuView』. 9달러 ESP32-S3로 만드는 구조, Docker로 시험하는 방법, esp-csi와의 차이를 정리합니다.

#WiFi#ESP32#CSI#Rust#OSS#센싱

WiFi 신호의 반사로 벽 너머 사람의 자세를 감지하는 RuView 이미지

카메라를 전혀 쓰지 않고, 방 안을 날아다니는 WiFi 전파만으로 사람의 존재·호흡수·심박수, 나아가 몸의 자세까지 추정한다. SF 같은 이야기지만, 이것을 9달러짜리 마이컨과 OSS로 재현할 수 있는 데까지 와 있습니다.

그 중심에 있는 것이 ruvnet/RuView — 6만을 넘는 스타를 모은 Rust 제 WiFi 센싱 플랫폼입니다. ESP32-S3를 센서 노드로 삼아 WiFi 전파의 「반사 패턴」을 해석하고, 영상을 전혀 갖지 않은 채 공간의 상태를 읽어냅니다.

이 글에서는 RuView의 구조와 아키텍처, 실제 시험 방법, 그리고 유사 OSS(espressif/esp-csi, WirelessEye)와의 차이를 정리합니다. 「내 프로젝트에 채택해야 할까」를 판단할 재료를 제공하는 것이 목적입니다.

왜 카메라 없이 사람이 「보이는가」

열쇠는 CSI(Channel State Information / 채널 상태 정보) 입니다.

WiFi 전파는 송신기에서 수신기까지 일직선으로 도달하는 것이 아닙니다. 벽·가구·그리고 인체에 부딪혀 반사되어, 여러 경로를 거쳐 수신기에 도달합니다. 이 「어느 주파수의 전파가, 얼마나 감쇠하고, 얼마나 위상이 어긋나 도달했는가」를 세밀하게 기록한 것이 CSI입니다.

  • 사람이 움직인다 → 반사 경로가 바뀐다 → CSI의 파형이 변화한다
  • 사람이 호흡한다 → 흉곽이 밀리 단위로 오르내린다 → CSI에 주기적인 미소 변동이 실린다
  • 사람이 특정 자세를 취한다 → 반사 패턴에 고유한 「지문」이 나타난다

즉 WiFi 라우터는 전파를 내보내고 있는 것만으로 이미 방을 「비추고」 있습니다. RuView는 그 반사광(전파)을 읽어내는 수신 센서라는 위치에 있습니다. 카메라처럼 영상을 갖지 않기 때문에, 프라이버시 측면에서의 거부감이 압도적으로 작다는 것이 최대의 이점입니다.

RuView의 아키텍처

RuView는 크게 3개 층으로 나뉩니다.

1. 센서 노드(ESP32-S3)

9달러짜리 ESP32-S3가 CSI의 원시 데이터를 뱉어내는 역할을 담당합니다. ESP32 계열은 칩 레벨에서 CSI 취득 API를 가지고 있기 때문에, 전용 SDR(소프트웨어 정의 무선) 장비를 사지 않아도 시판되는 저렴한 마이컨으로 WiFi 센싱의 입구에 설 수 있습니다. 바로 이 점이 이 분야의 민주화를 단숨에 진전시켰습니다.

2. 처리 엔진(Rust)

원시 CSI는 노이즈투성이입니다. RuView의 본체는 Rust로 쓰인 신호 처리·추론 엔진으로, 여기서 다음을 수행합니다.

  • 노이즈 제거·위상 보정 등의 전처리
  • 호흡·심박 같은 주기 성분의 추출
  • 자세·존재 감지를 위한 특징량 계산과 모델 추론

Rust를 택한 것은 실시간성과 메모리 안전성의 양립을 노린 것이겠지요. 엣지에서 상시 돌리는 신호 처리에는 이치에 맞는 선택입니다.

3. 시각화·API 층

추정 결과를 대시보드나 API를 통해 외부로 내보내는 층입니다. Docker로 한꺼번에 띄울 수 있기 때문에, 우선 손 안에서 전체상을 파악하는 것이 지름길입니다.

Docker로 시험하기

깊게 작업을 만들기 전에, 먼저 동작하는 상태를 보는 것이 이해의 지름길입니다. RuView는 Docker Compose로 일괄 실행되는 구성으로 되어 있습니다.

git clone https://github.com/ruvnet/RuView.git
cd RuView
docker compose up

이것으로 처리 엔진과 시각화 층이 기동하고, 브라우저에서 대시보드에 접속할 수 있습니다. 실기 ESP32-S3가 손 안에 없어도 샘플 CSI 데이터를 흘려 넣어 동작을 확인할 수 있는 구성으로 되어 있으므로, 「애초에 CSI에서 무엇을 읽을 수 있는가」를 체감하려면 여기부터 시작하는 것이 최단 경로입니다.

실제로 센싱하려면 ESP32-S3에 펌웨어를 써넣고, CSI 스트림을 엔진을 향해 보내는 데까지 진행합니다. 이 단계에서 비로소 「벽 너머의 호흡」이 숫자로 나타납니다.

esp-csi / WirelessEye 와의 차이

WiFi 센싱 계열 OSS는 RuView만이 아닙니다. 채택 판단을 위해 대표적인 3가지를 정리합니다.

espressif/esp-csi

Espressif 공식 리포지토리로, ESP32에서 CSI를 취득하기 위한 펌웨어와 샘플이 중심입니다. 위치로는 「CSI의 취득과 기본 샘플」이며, 상위의 추론·시각화·운용까지는 직접 짜는 것을 전제로 합니다.

  • 강점: 공식·경량·칩에 가장 가까움, 확실히 CSI를 취득할 수 있음
  • 약점: 존재 감지나 자세 추정까지는 커버하지 않음. 토대이지 완성품이 아님

RuView는 이 esp-csi적인 「CSI를 취득한다」 레이어의 위에 추론·시각화·운용을 쌓은 것이라고 파악하면 관계가 깔끔해집니다.

WirelessEye

CSI를 실시간으로 시각화하는 데 주안점을 둔 도구입니다. 「전파에 무엇이 비치고 있는가」를 우선 눈으로 보고 싶은 연구·학습 단계에서 강합니다. 다만 그대로 제품에 넣는 처리 기반이라는 성격은 아닙니다.

RuView의 위치

OSS주안점완성도의 성격
esp-csiCSI의 취득토대(상부는 직접 제작)
WirelessEyeCSI의 시각화관찰·학습용
RuView취득〜추론〜시각화통합 플랫폼

「우선 구조를 이해하고 싶다」면 esp-csi나 WirelessEye로 전파를 들여다보는 것이 빠릅니다. 「존재·호흡·자세까지 일관되게 시험하고 싶다」면 RuView, 라는 역할 분담입니다.

채택을 검토할 때의 현실적인 주의점

꿈이 있는 기술이지만, 업무에서 쓴다면 냉정한 선긋기가 필요합니다.

  • 정확도는 환경 의존: 가구 배치, 벽의 재질, 다른 WiFi 기기의 간섭으로 CSI는 크게 변합니다. 「어떤 방에서든 즉시 정확도가 나오는」 것이 아니라, 환경별 캘리브레이션이 전제가 됩니다.
  • 카메라의 대체가 아니라 다른 것: 개인의 식별이나 세밀한 동작 인식은 카메라의 영역입니다. CSI가 강한 것은 「누구」가 아니라 「있다/움직였다/호흡하고 있다」와 같은 프라이버시를 배려한 거친 상태 파악입니다.
  • 용도를 가림: 고령자 지켜보기, 재실 감지에 의한 공조·조명 제어, 취침 중의 바이탈 모니터 등, 카메라를 두고 싶지 않은 장소에서야말로 진가가 나옵니다.

바꿔 말하면, 이 「카메라를 둘 수 없다/두고 싶지 않다」는 제약이 있는 현장에서는 9달러 ESP32로 시작할 수 있는 RuView는 대단히 매력적인 선택지입니다.

정리

WiFi 센싱은 전용의 고가 장비가 필요했던 시대에서, 저렴한 마이컨과 OSS로 누구나 시험할 수 있는 단계에 들어섰습니다. RuView는 그 「취득에서 추론·시각화까지」를 하나로 묶은, 현시점에서 가장 진입하기 쉬운 입구 중 하나입니다.

우선 Docker로 돌려 CSI에 무엇이 비치는가를 체감하고, 감이 오면 ESP32-S3를 한 장 사서 실측으로 나아간다 — 이 순서라면 수천 엔과 몇 시간으로 「WiFi로 벽 너머가 보이는」 세계에 닿을 수 있습니다.

센서 데이터의 처리 기반이나, 이러한 엣지 디바이스를 얽은 제품 개발을 검토하고 계신다면, 주식회사 와이어드&에코 까지 부담 없이 상담해 주십시오.

CONTACT

문의

편하게 문의해 주세요.