클로즈드루프 ECoG 뇌‑컴퓨터 인터페이스를 위한 오픈소스 구현: Micromed·FieldTrip·PsychoPy 통합
초록
본 논문은 임상 현장에서 사용되는 Micromed ECoG 시스템과 FieldTrip, PsychoPy를 결합한 클로즈드루프 BCI 파이프라인을 오픈소스로 제공한다. 세 개의 파이썬 라이브러리(psychopylib, pymarkerlib, pyfieldtriplib)를 통해 실험 설계, 마커 전송, 실시간 신호 처리 및 피드백을 모듈화하고, 코드 가독성과 재현성을 높였다. 시스템 구조, 구현 세부사항 및 사용 예제가 상세히 기술되어 있어, ECoG 기반 BCI 연구자들이 빠르게 실험을 구축하고 임상 환경에 적용할 수 있도록 돕는다.
상세 분석
이 연구는 기존 BCI 플랫폼이 제공하는 GUI 중심의 고수준 기능과, 자유로운 스크립팅이 가능한 툴박스 사이의 절충점을 모색한다. Micromed 장비는 주로 임상 기록용으로 설계돼 실시간 스트리밍 인터페이스가 제한적이며, 기존 솔루션인 BCI2000·OpenViBE는 Micromed와 직접 연동이 가능하지만 복잡한 설정과 제한된 코드 접근성을 가진다. 저자들은 FieldTrip의 버퍼 서버를 중간 매개체로 활용해 Micromed 데이터 스트림을 TCP 기반 링버퍼에 저장하고, 이를 여러 클라이언트가 동시에 읽을 수 있게 함으로써 데이터 손실 없이 비동기 처리를 가능하게 했다.
세 개의 파이썬 라이브러리는 각각 BCI 파이프라인의 핵심 단계에 초점을 맞춘다. psychopylib는 PsychoPy의 Builder가 생성하는 난해한 코드를 대체해, Segment와 Sequence 객체를 통해 실험 흐름을 선언적이고 계층적으로 정의한다. 이 구조는 사전·사후 콜백을 이용해 다음 세그먼트의 시각 자극 준비와 현재 세그먼트의 로그 기록을 병렬로 수행함으로써, 1 s 이하의 짧은 구간에서도 정확한 타이밍을 유지한다. pymarkerlib는 COM 포트를 통한 시리얼 마커 전송을 추상화해, Micromed SystemPlus, VIEWPixx 등 다양한 외부 장치와 동기화를 단순화한다. 특히 마커 전송과 동시에 화면 업데이트를 보장하는 설계는 실시간 피드백 지연을 최소화한다.
pyfieldtriplib은 멀티스레드 기반 파이프라인을 제공한다. FieldTrip 버퍼에서 LSL 혹은 직접 TCP 스트림을 받아오고, 사용자 정의 전처리 체인(리샘플링, 리레퍼런싱, 필터링 등)을 단계별로 적용한다. 각 단계는 독립적인 콜백으로 구현돼, 실시간으로 연산 부하가 높은 모델(예: 딥러닝 기반 디코더)도 별도 스레드에서 실행하면서 메인 데이터 흐름을 방해하지 않는다. 또한, 처리된 epoch을 즉시 PsychoPy 애플리케이션에 전달해 시각·청각 피드백을 생성함으로써 완전한 클로즈드루프를 구현한다.
기술적 강점으로는 (1) 임상 환경에 맞춘 저지연 TCP 전송과 버퍼 기반 데이터 공유, (2) 파이썬 중심의 모듈화로 연구자가 원하는 부분만 교체·확장 가능, (3) 오픈소스 코드와 상세 매뉴얼 제공을 통한 재현성 확보가 있다. 한편 제한점은 (가) 실시간 성능이 파이썬 인터프리터와 GIL에 의존하므로 CPU 코어 수와 파이썬 구현 최적화에 민감하고, (나) Micromed 라이선스가 실시간 스트리밍을 시작하기 전에 30 s 지연을 유발한다는 점이다. 이러한 제약은 시스템 설정 단계에서 사전 비활성화가 필요하며, 향후 Cython 혹은 Rust 기반 모듈로 교체하면 더욱 낮은 지연을 기대할 수 있다. 전반적으로 이 논문은 임상 ECoG 데이터를 활용한 BCI 연구에 실용적인 도구세트를 제공함으로써, 하드웨어 종속성을 최소화하고 소프트웨어 설계 자유도를 크게 확대한다.
댓글 및 학술 토론
Loading comments...
의견 남기기