기술 가이드

WiFi CSI 제스처 인식: 구축하고 학습하고 검증하는 방법

WiFi CSI 제스처 인식은 카메라 없이 손이나 몸의 몇 가지 동작을 분류할 수 있습니다. 하지만 무선 경로, 라벨, 하드웨어와 테스트 분할을 하나의 실험으로 함께 설계해야 합니다.

사람이 제스처를 하는 동안 WiFi 신호가 CSI 파형과 제스처 클래스로 변하는 모습
인식은 무선 채널의 변화에서 시작해 학습한 방 밖에서 검증한 모델로 끝나야 합니다.

Channel State Information에는 제스처로 인해 반복적으로 나타나는 변화가 포함될 수 있고, 분류 모델은 그 변화를 학습할 수 있습니다. 어려운 부분은 파형을 그리는 일이 아니라 대표성 있는 패킷을 수집하고, 반복 가능한 라벨을 만들며, 모델이 사람이나 방 또는 세션만 외우지 않았음을 확인하는 것입니다.

첫 실험은 의도적인 제스처 세 개에서 여섯 개와 정지 또는 미지 클래스로 좁히는 것이 좋습니다. 시간, 참가자, 세션, 거리와 방 조건을 기록하고 학습에 포함되지 않은 사람이나 방에서 시험합니다. 단순한 존재 감지나 움직임 감지는 기존 관련 가이드가 더 적합합니다.

WIDAR3와 SignFi는 전처리와 모델을 비교하는 데 도움이 되지만, 장치와 샘플링 방식과 환경이 다를 수 있습니다. 모든 점수는 신호 출처, 라벨 규칙, 명확한 테스트 분할과 연결되어야 합니다.

WiFi CSI 제스처 인식이 실제로 인식하는 것

CSI는 여러 부반송파, 안테나와 시간에 따라 무선 채널이 어떻게 변하는지 나타냅니다. 손의 움직임은 다중 경로와 위상 관계를 바꿉니다. 모델이 보는 것은 사람이 이해하는 제스처가 아니라 정제, 보정, 정규화와 특징 추출을 거친 측정 구간입니다.

다섯 가지 제스처 분류, 수어 어휘, 방 안의 활동 인식은 서로 다른 문제입니다. 한 사람과 한 방에서 높은 정확도를 얻었다고 해서 다른 환경으로 일반화된다는 뜻은 아닙니다.

  • 세 개에서 여섯 개의 제스처와 정지 또는 미지 클래스로 시작합니다.
  • 모호한 구간에는 클래스와 신뢰도뿐 아니라 미지 상태도 반환합니다.
  • 존재, 움직임, 자세, 신원과 제스처를 별도의 작업으로 정의합니다.

캡처에서 제스처 클래스까지의 파이프라인

재현 가능한 파이프라인은 패킷 소스, CSI 수신기, 안테나 위치, 채널과 방을 기록합니다. 시간 정보, 참가자, 제스처, 거리와 세션을 보존한 뒤 복잡한 필터를 추가해야 결과를 나중에 감사할 수 있습니다.

전처리는 모델의 경계입니다. 손상된 패킷을 제거하고 조심스럽게 정규화하며 학습 데이터로만 파라미터를 정합니다. 전체 녹화에 적용한 필터는 테스트 정보가 새어 나가게 할 수 있습니다.

  • 감사를 위해 원시 데이터 또는 최소 처리 데이터를 보관합니다.
  • 펌웨어, 채널, 대역폭, 안테나와 패킷 간격을 기록합니다.
  • 겹치는 윈도우를 만들기 전에 세션을 분리합니다.
WiFi CSI 캡처에서 정제와 라벨링을 거쳐 분리된 제스처 클래스로 이어지는 흐름
캡처, 정제, 라벨링, 학습과 평가는 하나의 사슬이며 앞 단계의 약점은 나중에 모델 문제처럼 보일 수 있습니다.

하드웨어: 마케팅 용어보다 CSI 접근을 먼저 확인하세요

호환되는 ESP32 CSI 구성은 보드, ESP-IDF 버전, 펌웨어, 패킷 소스와 안테나 배치가 문서화되어 있다면 저렴한 시작점이 됩니다. 보드는 캡처 부품이지 완성된 제스처 센서가 아닙니다.

호환 네트워크 카드를 사용하는 Linux 노트북도 다른 캡처 경로가 될 수 있습니다. Raspberry Pi는 로깅, 추론 또는 화면을 담당할 수 있지만 자동으로 CSI 수신기가 되지는 않습니다.

  • RSSI만이 아니라 실제 CSI가 노출되는지 확인합니다.
  • 첫 기준 실험에서는 송신기, 수신기, 채널과 거리를 고정합니다.
  • 하드웨어 경로가 불명확하면 ESP32 CSI 가이드를 참고합니다.

데이터셋과 라벨: WIDAR3, SignFi와 자체 공간

공개 데이터셋은 전처리와 모델 아이디어를 재현하는 데 유용합니다. 하지만 WIDAR3와 SignFi의 장치, 샘플링, 라벨과 공간은 자신의 시스템과 다를 수 있습니다.

실제 사용을 위해서는 여러 세션, 서로 다른 속도, 정지와 우발적 움직임을 수집해야 합니다. 참가자와 세션 식별자를 보존하고 겹치는 윈도우를 만들기 전에 분할합니다.

  • 각 제스처에 짧고 동일한 지시문을 사용합니다.
  • 선풍기, 문, 반려동물, 지나가는 사람과 빈 방을 부정 사례로 포함합니다.
  • 논문이나 공개 데이터셋의 정확도를 자신의 방에 대한 보장으로 표현하지 않습니다.

전처리와 모델 학습

먼저 진폭 또는 위상 특징, 고정 길이 윈도우, 단순 분류기와 혼동 행렬을 사용하는 투명한 기준선을 만드세요. 그 다음 합성곱, 순환 또는 어텐션 모델을 비교해도 변환 과정을 추적할 수 있어야 합니다.

증강은 견고성을 높일 수 있지만 실제 환경 변화를 대신하지는 않습니다. 최종 세션을 보류하고 클래스별 재현율, macro-F1, 지연 시간, 미지 예측과 정지 상태의 오탐을 보고합니다.

  • 겹치는 윈도우를 만들기 전에 세션 또는 참가자 단위로 분할합니다.
  • 비슷한 제스처와 정지 클래스 사이의 혼동을 확인합니다.
  • 전처리 파라미터는 학습 데이터에서만 추정합니다.

사람과 방이 바뀌었을 때 검증하는 방법

가장 중요한 테스트는 같은 녹화에서 가져온 또 다른 윈도우가 아닐 때가 많습니다. 새로운 참가자, 방, 날짜, 수신기 위치와 실제 사용 중 발생할 수 있는 부정 움직임을 시험합니다.

제스처 지시는 같게 유지하되 속도와 자세는 자연스럽게 허용합니다. 클래스별 재현율과 오탐, 대표적인 실패를 비교하고 모든 구간을 억지로 분류하기보다 미지 상태를 사용합니다.

  • 세션 내부 분할은 디버깅에는 유용하지만 일반화를 증명하지는 않습니다.
  • 참가자 분할은 개인의 움직임 스타일을 학습했는지 시험합니다.
  • 부정 및 미지 사례는 분류를 거부할 수 있는지 확인합니다.
방과 참가자가 달라지는 상황에서 WiFi 제스처 인식을 검증하는 두 공간과 신호 흔적
사람과 방을 바꿔 시험하면 무선 채널이 달라져도 같은 제스처가 인식되는지 확인할 수 있습니다.

한계, 개인정보 보호와 다음 단계

CSI는 기하, 펌웨어, 무선 트래픽, 벽, 가구, 안테나와 사람에 영향을 받습니다. 같은 제스처도 다른 방에서는 달라지고, 관계없는 움직임이 학습한 클래스처럼 보일 수 있습니다. 별도의 증거 없이는 카메라, 신원 인식 또는 의료 시스템이라고 설명해서는 안 됩니다.

카메라가 없어도 무선 센싱은 재실, 움직임과 생활 패턴을 드러낼 수 있습니다. 로컬 처리, 짧은 보관, 동의와 미지 상태를 우선하고, 학습 전에 참가자와 방 기준의 분할을 먼저 작성하세요.

  • 제스처 어휘, 방, 사람과 하드웨어를 시스템 사양으로 취급합니다.
  • 분류 결과에서 신원, 건강 상태 또는 숨은 활동을 추론하지 않습니다.
  • 모든 점수를 분할, 세션 수와 실패 정의에 연결합니다.

주요 기술 참고 자료

WiFi CSI 제스처 인식 FAQ

WiFi CSI 제스처 인식은 WiFi 움직임 감지와 같은가요?

아닙니다. 움직임 감지는 변화가 있었는지를 찾고, 제스처 인식은 측정 구간을 여러 정의된 클래스 중 하나에 매핑합니다.

ESP32만으로 제스처를 인식할 수 있나요?

호환 ESP32는 CSI를 수집할 수 있지만 패킷 소스, 라벨, 전처리, 모델과 검증이 추가로 필요합니다.

첫 데이터셋에는 몇 개의 제스처가 필요한가요?

세 개에서 여섯 개의 제스처와 정지 또는 미지 클래스로 시작하면 라벨링과 실패 분석이 가능합니다.

가장 좋은 WiFi CSI 제스처 데이터셋은 무엇인가요?

모두에게 맞는 하나의 데이터셋은 없습니다. 하드웨어, 어휘, 샘플링과 사람 또는 공간의 다양성이 질문에 맞는 자료를 고르고 실제 배포에는 현장 데이터를 추가하세요.

왜 한 방에서는 작동하지만 다른 방에서는 실패하나요?

다중 경로, 가구, 안테나 위치, 무선 트래픽과 참가자가 CSI를 바꿉니다. 방을 바꾼 테스트가 없으면 모델이 제스처 대신 환경을 학습할 수 있습니다.

WiFi CSI 제스처 인식으로 사람을 식별하거나 건강을 진단할 수 있나요?

제스처 분류기를 그런 용도로 사용해서는 안 됩니다. 별도의 과제, 근거, 동의, 개인정보 보호와 독립적인 검증이 필요합니다.