4만 개짜리 GitHub 프로젝트, WiFi 재실 감지, 과연 성공했을까?

by DD
2개월 전
조회수 8

WiFi CSI(Channel State Information) 기술을 활용한 재실 감지 프로젝트 RuView를 직접 시도했으나, 재실 감지 실패(Presence Detection Failure)라는 결과를 얻음

ESP32-S3 보드(ESP32-S3 Board)에 펌웨어(Firmware)를 올리고, Docker 컨테이너(Docker Container)를 통해 서버를 구축하는 등, 상세한 구현 과정을 거침

RuView의 핵심 기능인 재실 감지 및 인원 수 추정이 하드코딩된 값(Hardcoded Value)을 반환하며, 실제 WiFi 신호 분석은 이루어지지 않음을 확인

RuView의 문제점을 분석하고, 수학적 알고리즘(Mathematical Algorithm) 기반의 ESPectre 프로젝트를 대안으로 제시하며, ML 학습(ML Training)의 필요성에 대한 의문을 제기

WiFi CSI(Channel State Information) 기술의 원리

본문에 따르면 WiFi CSI(Channel State Information)는 WiFi 신호(WiFi Signal)가 사람에게 부딪히면서 미세하게 변화하는 점을 활용한다. 즉, WiFi 신호의 진폭(Amplitude), 위상(Phase), 주파수 응답(Frequency Response) 등의 변화를 분석하여 사람의 존재 여부를 판단하는 기술이다.

CSI 데이터(CSI Data) 수집: ESP32-S3 보드(ESP32-S3 Board)와 같은 장치를 통해 WiFi 신호의 CSI 데이터를 수집

데이터 전처리(Data Preprocessing): 수집된 CSI 데이터에서 노이즈(Noise)를 제거하고, 특징(Feature)을 추출

머신러닝 모델(Machine Learning Model) 적용: 추출된 특징을 기반으로 사람의 자세, 움직임, 재실 여부 등을 추정. RuView는 AI 환각(Hallucination)으로 인해 실제 데이터 분석이 이루어지지 않음.

RuView 프로젝트의 기술적 문제점

글쓴이는 RuView 프로젝트를 직접 사용해 보면서, 재실 감지(Presence Detection) 기능이 제대로 작동하지 않는다는 것을 확인했다. 특히, RuView는 하드코딩된 값(Hardcoded Value)을 반환하여, 실제 WiFi 신호 분석이 이루어지지 않는다는 점을 지적했다.

AI 환각(Hallucination): 핵심 신호 처리 파이프라인이 실제 CSI 데이터를 분석하지 않고, 랜덤/하드코딩된 값을 반환

모델 부재: 신경망 모델에 학습된 가중치가 없어, 94.2% 정확도와 같은 성능 수치는 조작된 것으로 밝혀짐

UI 문제: UI의 JavaScript 코드가 외부 IP로 접속 시, SSL이 없어 연결 실패. WebSocket 연결 실패(WebSocket Connection Failure) 문제 발생

이러한 문제점들로 인해 RuView는 실제 재실 감지 기능을 제대로 수행하지 못했다.

ESP32-S3 보드(ESP32-S3 Board) 펌웨어(Firmware) 플래싱 과정

글쓴이는 RuView 프로젝트를 사용하기 위해 ESP32-S3 보드(ESP32-S3 Board)에 펌웨어를 플래싱하는 과정을 상세히 설명했다. 펌웨어 플래싱 과정에서 발생한 문제점들을 공유하며, 실제 개발 과정에서 겪을 수 있는 어려움을 보여준다.

펌웨어 다운로드: GitHub Releases에서 최신 펌웨어 바이너리(Binary)를 다운로드

플래싱 명령어: `python3 -m esptool` 명령어를 사용하여 펌웨어 플래싱. 특수문자 처리 문제(Special Character Handling), UART 포트 인식 문제(UART Port Recognition Problem) 발생

프로비저닝(Provisioning): WiFi SSID와 비밀번호, 서버 IP 등을 설정하는 프로비저닝 과정 진행

결과적으로 3개의 보드에 펌웨어 플래싱을 성공했지만, UART 포트 문제(UART Port Issue)로 인해 어려움을 겪었다.

RuView 서버 구축 및 웹 UI(Web UI) 확인

글쓴이는 Proxmox 서버(Proxmox Server)에 Ubuntu 24.04 LXC를 생성하고, Docker를 설치하여 RuView 서버를 구축했다. 또한, 웹 UI(Web UI)를 확인하는 과정에서 발생한 문제점들을 공유한다.

Docker 이미지 실행: `docker run` 명령어를 사용하여 RuView 서버 Docker 이미지 실행

웹 UI 접속: 웹 UI 접속 시, WebSocket 연결 실패(WebSocket Connection Failure) 문제 발생. UI 코드 수정으로 해결

3D 뷰 확인: 3D 뷰(3D View)가 실제 WiFi 신호와 무관하게 작동하는 것을 확인

결과적으로 RuView 서버 구축에는 성공했지만, 핵심 기능인 재실 감지(Presence Detection)가 제대로 작동하지 않았다.

ESPectre 프로젝트 소개 및 RuView와의 비교

글쓴이는 RuView 프로젝트의 실패 경험을 바탕으로, 대안으로 ESPectre 프로젝트를 소개한다. ESPectre는 RuView와 달리, 수학적 알고리즘(Mathematical Algorithm)을 사용하여 모션 감지를 수행하며, ML 학습(ML Training)이 필요 없다는 점을 강조한다.

ESPectre의 특징: MVS 알고리즘과 서브캐리어 밴드 자동 캘리브레이션(Subcarrier Band Auto Calibration)을 사용. ML 학습(ML Training) 불필요

ESPHome 컴포넌트 지원: ESPHome 컴포넌트를 통해 Home Assistant에 쉽게 통합

ESP32-S3 지원: ESP32-S3 보드(ESP32-S3 Board)를 지원

ESPectre는 RuView와 달리, 수학적 알고리즘(Mathematical Algorithm)을 기반으로 하기 때문에, 보다 안정적인 모션 감지 기능을 제공할 것으로 기대된다.

WiFi로 재실 감지? RuView 믿었다가... (feat. 삽질 기록)

댓글 0

첫 번째 댓글을 남겨보세요!