DOI QR코드

DOI QR Code

Research on development of electroencephalography Measurement and Processing system

뇌전도 측정 및 처리 시스템 개발에 관한 연구

  • Doo-hyun Lee (Department of Computer Engineering, Korean National University of Transportation) ;
  • Yu-jun Oh (Department of Computer Engineering, Korean National University of Transportation) ;
  • Jin-hee Hong (Department of Computer Engineering, Korean National University of Transportation) ;
  • Jun-su chae (Department of Computer Engineering, Korean National University of Transportation) ;
  • Young-gyu Choi (Embeded System Lab, Department of Computer Engineering, Korean National University of Transportation)
  • Received : 2024.01.20
  • Accepted : 2024.02.22
  • Published : 2024.02.29

Abstract

In general, EEG signal analysis has been the subject of several studies due to its ability to provide an objective mode of recording brain stimulation, which is widely used in brain-computer interface research with applications in medical diagnosis and rehabilitation engineering. In this study, we developed EEG reception hardware to measure electroencephalograms and implemented a processing system, classifying it into server and data processing. It was conducted as an intermediate-stage research on the implementation of a brain-computer interface using electroencephalograms, and was implemented in the form of predicting the user's arm movements according to measured electroencephalogram data. Electroencephalogram measurements were performed using input from four electrodes through an analog-to-digital converter. After sending this to the server through a communication process, we designed and implemented a system flow in which the server classifies the electroencephalogram input using a convolutional neural network model and displays the results on the user terminal.

일반적으로 EEG 신호 분석은 의료 진단 및 재활 공학에 적용하여 뇌-컴퓨터 인터페이스 연구에 널리 사용되는 뇌 자극을 기록하는 객관적인 모드를 제공할 수 있는 능력 때문에 여러 연구의 주제가 되어 왔습니다. 본 연구에서는 뇌전도 측정하기 위한 뇌파 수신 하드웨어 개발 및 처리 시스템 구현을 통해 서버와 데이터 처리로 분류하여 개발을 진행하였다. 뇌전도를 이용한 뇌-컴퓨터 인터페이스 구현의 중간단계 연구로 진행되었으며, 측정된 뇌전도 데이터에 따라 사용자의 팔의 움직임을 예측하는 형태로 구현되었다. 네 개의 전극으로부터의 입력을 아날로그-디지털 변환기를 통해 뇌전도 측정을 수행하였다. 이를 통신 과정을 거쳐 서버에 전송한 뒤, 서버에서 합성곱 신경망 모델로 뇌전도 입력을 분류하여 그 결과를 사용자 단말로 표시하는 시스템의 흐름을 설계하고 구현하였다.

Keywords

1. 서론

뇌의 활동을 측정하고 분석하는 방법에는 여러 종류가 있다. 크게는 두개골 내에 측정 장비를 이식하여 뇌의 활동을 측정하는 침습적인 방법과, 그렇지 않고 두개골 외부에서 측정 장비의 이식 없이 외부 장비만으로 측정하는 비침습적인 방법으로 나뉜다. 뇌전도(Electroencephalogram; EEG)는 이 중 비침습적인 측정방식에 해당되며, 잡음이 측정 결과에 큰 영향을 줄 수 있다는 단점이 있는 대신 측정 장비의 이식을 위한 수술과 같은 이용자의 위험부담이 극히 적다는 장점이 있다. 그러한 이유로 EEG를 활용한 뇌 활동 측정 시스템의 개발은 중요한 연구 주제로 부각되고 있으며, 뇌 질환의 진단, 뇌 기능의 이해, 신경과학 연구 등 다양한 분야에 응용이 가능하다. 따라서 EEG를 활용하기 위해 EEG 데이터의 실시간 측정 및 분석을 수행하여 뇌 질환 환자의 뇌 활동을 분석하여 신경계 및 정신질환의 병리학적 기전을 이해하는 데 새로운 관점을 제공할 수 있을 뿐만 아니라 조기 진단으로 환자가 위험할 수 있는 상황을 예측하는 데 도움을 줄 수 있습니다[1][2]. 본 연구에서는 사용자의 움직임을 분석해 거동이 불편한 환자의 보조 기구 등의 의료장비를 개발하기 위한 기술적 기반을 구축하기 위한 연구를 수행하였습니다.

2. 본론

본 연구에서는 최대 8채널 입력이 동시에 처리 가능한 프로그래밍 가능한 이득증폭기(Programmable Gain Amplifier; PGA) 및 저잡음 아날로그-디지털 변환기(Analog-Digital Conveter; ADC)인 ADS 1299 칩을 사용하였다[3]. 건식 센서로부터 측정된 EEG 신호를 저역 통과 필터와 ADS1299, Raspberry Pi 전처리 과정을 거쳐 서버로 전송할 수 있도록 하였다. 서버는 사용자가 전송받은 데이터를 분석하고 시각화하여 사용자가 웹 앱의 형태로 간편하게 접근하여 확인할 수 있도록 시스템을 구현하였다.

2.1 시스템 설계

본 연구에서 설계한 시스템의 작동 순서는 그림 1과 같다. 가장 먼저 사용자에 두부에 부착된 건식 전극을 저역 통과 필터를 거쳐 ADS1299 ADC에 연결하여 입력된 EEG 데이터를 디지털 값으로 변환하도록 하였다. 중간 제어장치의 역할을 하는 Raspberry Pi는 ADS1299로부터 SPI 통신을 이용하여 측정 및 변환된 데이터를 획득하고 전처리 과정을 거쳐 HTTP 프로토콜을 이용해 서버로 전송하고 서버는 전송받은 데이터를 데이터베이스에 저장하고 이를 학습된 머신러닝 모델에 입력한 후처리된 결과를 웹 앱(Web App) 형태로 사용자에게 제공하는 형태로 시스템을 설계하였다[3][4][5][6][7].

JBJTBH_2024_v17n1_38_f0001.png 이미지

그림 1. 시스템 설계 흐름도

Fig. 1. Flowchart of System Design

2.2 시스템 구현

뇌전도 측정 및 처리 시스템은 하드웨어와 서버, 데이터 처리로 분류하여 다음과 같이 분류하여 개발을 진행하였다

2.2.1 하드웨어

하드웨어 개발에 사용된 환경은 ADS1299를 이용해 Raspberry Pi의 GPIO 핀에 장착할 수 있도록 회로도를 그림 2와 같이 설계하였다. 회로도의 왼쪽 부분 8핀 커넥터에 건식 센서가 연결되며, 오른쪽 40핀 커넥터에는 Raspberry Pi의 GPIO가 연결될 수 있도록 하였다. 8핀 커넥터와 ADS1299 사이에는 저역 통과 필터를 적용하여 100μV 내외의 낮은 수준의 전위차에 대한 안정된 뇌전도 데이터를 얻을 수 있도록 하였다. 그림 3은 회로도를 기반으로 인쇄회로기판(Printed Circuit Board; PCB)을 기구설계에 용이하도록 3D로 구현한 모습이다.

JBJTBH_2024_v17n1_38_f0002.png 이미지

그림 2. ADS1299 측정보드의 회로도

Fig. 2. Circuit Diagram of ADS1299 Measure Board

JBJTBH_2024_v17n1_38_f0003.png 이미지

그림 3. ADS1299 측정보드의 PCB 설계

Fig. 3. PCB design of ADS1299 measurement board

Raspberry 는 Raspberry Pi OS 6.1.21-v8+가 설치된 Raspberry Pi 4 4GB 모델을 사용하였다. 그림 4는 ADS1299 측정 보드와 Raspberry Pi 4를 조립한 상태로 두 보드가 데이터를 주고받기 위해 Raspberry Pi를 Master로 한 SPI 통신을 수행하도록 하였다. 두 보드 사이에서 통신을 수행하는 코드는 Python으로 작성되었으며, 데이터 전처리 과정을 거쳐 서버와 연결해 실시간으로 데이터를 전송한다.

JBJTBH_2024_v17n1_38_f0004.png 이미지

그림 4. ADS1299 측정 보드를 Raspberry Pi 4 보드에 실장 상태

Fig. 4. ADS1299 measurement board mounted on Raspberry Pi 4 board

2.2.2 서버

뇌전도 데이터를 업로드하는 서버를 구축하기 위해 자바 언어 기반의 Spring 프레임워크를 사용하였다. Spring은 범용적으로 자바를 이용하여 웹 서버를 구현할 때 주로 사용되는 프레임워크로, 구현한 환경 다음과 같다. Spring Core v6.0.11 및 Spring Boot v3.1.3 프레임워크를 기반으로 하여 자바 개발자 도구(Java Developer Kit; JDK) 17.0.8 기반에서 작동하는 1.8.22 버전의 Kotlin 언어를 사용하였다. 이 때, Kotlin은 자바 가상 머신(Java Virtual Machine; JVM)상에서 작동되는 언어로, 자바와 상호 호환이 가능해 Kotlin에서 Spring 프레임워크를 사용하는 것이 가능하다. 또한 서버에서 데이터를 저장하기 위해 Spring 프레임워크에서 지원하는 Spring Data MongoDB 4.1.3 의존성을 이용하여 MongoDB에 접근해 데이터를 저장하고 불러오도록 구현하였다.

본 연구에서 서버는 매우 큰 난수를 이용해 거의 중복이 발생하지 않도록 하는 범용 고유 식별자(Universally Unique IDentifier; UUID)를 이용하여 입력된 데이터들을 구분할 수 있도록 하였다. 각각의 데이터들이 갖는 UUID를 Token이라 하며, 그림 5는 Token에 해당하는 뇌전도 데이터를 제공하는 Web App을 불러와 출력한 결과를 나타낸 결과이다. 그림 5의 휴대폰 화면에서 상단 굵은 글씨가 데이터의 Token이다.

JBJTBH_2024_v17n1_38_f0005.png 이미지

그림 5. 휴대폰 환경에서 접근한 웹 페이지. Token 데이터 출력 그래프

Fig. 5. Web pages accessed in a mobile phone environment and token data output graph.

Raspberry Pi에서 데이터를 전송하기 위해 Web Socket 및 HTTP 통신 규약을 이용해 통신을 수행하였다. 라즈베리 파이는 센서 데이터를 서버로 송신만 담당하기 위해 HTTP 통신 규약의 POST Request를 사용했으며, Token을 생성하는 과정에서 Token의 상태와 데이터의 송수신이 필요한 경우 및 웹 페이지를 통해 사용자에게 실시간으로 데이터를 제공할 필요가 있는 경우에는 Web Socket을 사용한 독자적인 통신 규약에 따라 작동하도록 구현하였다.

그림 6은 서버와 Raspberry Pi가 Web Socket을 이용해 통신하기 위한 내부 통신 규약을 나타내었다. 클라이언트와 서버는 서로에게 동작 코드(Operation Code; OpCode)를 전송해 기본 동작을 제어한다. 클라이언트가 서버에 접근 요청을 보내면 서버는 클라이언트에 서버가 작동할 준비가 되었음을 알리는 OpCode 0을 반환한다.

JBJTBH_2024_v17n1_38_f0006.png 이미지

그림 6. 동작 코드를 이용한 Web Socket 통신시 내부 통신 규약

Fig. 6. Internal Communication Protocol Using Operation Code Through Web Socket Communication

서버가 OpCode 0을 전송하면 클라이언트는 연결 세션이 유지 중 임을 알리기 위하여 OpCode 1을 서버로 45초 간격으로 반복하여 전송하며, 서버 또한 OpCode 1을 수신하면 곧바로 클라이언트에게 OpCode 11을 전송한다. 45초마다 OpCode 1과 OpCode 11을 주고받는 과정을 반복하며 세션 유지 확인 주기(Heartbeat Cycle)를 형성하며, 이 Heartbeat Cycle이 끊기면 서버와 클라이언트는 해당 세션이 더 이상 유효하지 않다고 판단하면 세션을 종료하도록 구현하였다.

본 연구에서 구현한 서버가 실행되는 백엔드 실행기록을 그림 7에 나타내었다. 여러 OpCode들이 기록에 표시되고 있으며, 서버와 클라이언트 간의 연결 상태를 확인하기 위한 Heartbeat 신호를 수신했는지 여부를 확인하는 부분도 반복적으로 나타나고 있다. 그림 7의 아래쪽 부분은 그림 7의 내용 중 일부를 확대 및 가시성을 위해 이미지처리를 한 것으로, 토큰에 따른 세션들의 연결을 포함하여 세션 유지 확인 신호 등을 클라이언트와 주고 받는 모습을 확인할 수 있다.

JBJTBH_2024_v17n1_38_f0007.png 이미지

그림 7. 서버 백엔드 실행 기록

Fig. 7. Server Back-end Running Log

Raspberry Pi에서는 위 과정을 거쳐 Web Socket을 통해 접근할 Token의 사용 가능 여부를 확인한 다음, 측정된 데이터를 HTTP 통신규약의 POST Request를 이용해 서버로 전송한다. 다만, 데이터의 전송 과정에서 전송 지연 문제가 발생해 순서가 잘못되거나, 여러 장치에서 하나의 Token에 동시 접근해서 데이터를 올바르게 수정하지 못하는 공유 자원에 대한 상호배제 문제 등 데이터 무결성이 파괴되는 상황이 발생할 수 있으므로 클라이언트는 POST Request를 전송할 때 데이터의 값과 데이터가 전송된 시간을 함께 전송할 수 있도록 하여 데이터 전송에 지연이 생기더라도 데이터를 올바른 위치에 추가하여 전송 지연 문제를 해결하였다. 또한 POST Request를 수신하면 이를 즉시 데이터에 반영하지 않고 수신받은 순서대로 작업 대기열(Processing Queue)에 입력하여 순차적인 처리를 진행하도록 세마포어 상호 배제 알고리즘을 적용해 데이터 무결성을 보장하도록 구현하였다.

2.2.3 데이터 처리

본 연구에서 데이터 처리 과정은 크게 셋으로 나뉜다. 가장 먼저 Raspberry Pi에서 원본 입력 데이터 중, EEG 주파수 대역에 해당하는 데이터를 강화하고 잡음을 제거하며 각 전극의 전위 레벨의 차에 대한 등가화를 진행하고 데이터를 균등하게 만들기 위해 Butterworth 필터를 적용하였다[5].

그림 8은 원본 데이터와 Butterworth 필터를 적용한 데이터를 그래프로 그린 것이다. 그림 8의 위쪽 그래프는 여러 채널에서 입력된 전위가 균일하지 않고 서로 다른 전위 레벨에 위치한 것을 확인 할 수 있다. 그러나 필터링을 진행한 아래쪽 그래프에선 모든 데이터들이 0을 중심으로 비슷한 크기로 등가화 되었다. 또한 특정 채널의 경우 원본 데이터는 우상향 그래프를 갖지만, 필터를 거친 뒤에는 그렇지 않은 모습을 확인할 수 있어 외부 요인에 의한 데이터의 변화, 즉 노이즈가 완화되었음을 알 수 있었다.

JBJTBH_2024_v17n1_38_f0008.png 이미지

그림 8. ADS1299로부터 입력된 원본 데이터(위)와 필터링된 데이터(아래)

Fig. 8. Raw Data(Above) and Filtered Data(Below) from ADS1299

원본 데이터를 Oscillooscope를 이용해 측정했을 때 최대 약 100μV 정도의 전위를 보였다.

사용자가 서버에 접근할 때, 서버는 사용자에게 그림 5와 같은 Web App 형태의 웹 페이지를 제공한다. 그림 5의 상단에 굵은 글씨로 쓰여진 Token의 바로 아래줄에 “Class : Left”라고 쓰여진 부분과 그 아래에 위치한 그래프를 확인할 수 있는데, 이는 각각 Token에 해당하는 데이터를 입력으로 하여 머신러닝 모델로 분류한 결과 및 그 데이터를 그래프로 나타낸 것이다.

서버가 사용자에게 제공하는 웹 페이지는 Vue.js로 개발하여 동적인 웹 페이지의 구성이 가능하다. 따라서 서버의 데이터가 실시간으로 변하더라도 사용자의 웹 페이지에 표시되는 그래프를 동적으로 수정할 수 있다. 그림 9는 서버 데이터에 변화가 생겼을 때 웹 페이지의 그래프를 수정하는 과정을 나타내었다. 서버는 데이터가 수정되면 OpCode 14 또는 15를 이용하여 데이터의 변화를 웹 페이지에게 알리고, 페이지는 변화된 데이터를 불러와 새로 고침 없이 동적으로 그래프를 수정하며, 사용자가 그래프를 확대 또는 축소하여도 그에 맞추어 알맞은 그래프를 사용자에게 제공하도록 하였다.

JBJTBH_2024_v17n1_38_f0009.png 이미지

그림 9. 데이터가 변경될 때 그래프를 동적으로 수정하는 과정

Fig. 9. The process of dynamically modifying graphs as data changes

뇌파 데이터는 뇌전도 측정으로 얻은 전위값의 변화에 대한 시계열 데이터이므로 파동과 같은 특성을 가진다. 따라서 뇌파의 성분을 분석하기 위해 푸리에 변환(Fourier Transform; FT)을 사용할 수 있으며, 시간에 따라 주파수 성분 또한 변화하기 때문에 데이터를 일정 시간 간격으로 나누어 FT를 수행하는 단시간 푸리에 변환(Short Time Fourier Transform; STFT)을 사용했다[7][8]. 이산 STFT를 수행하기 위해 식 1의 연산 과정을 수행하였으며, 연산 과정에서 창함수(ω)는 hanning을 사용하였다[10].

\(\begin{align}X(m, w)=\sum_{n=-\infty}^{\infty} x[n] w[n-m] e^{-i w n}\end{align}\)       (식 1)

그림 10은 본 연구에서 테스트 데이터를 얻기 위해 EEG 측정을 수행했을 때 전극의 위치이다. 본 연구에서는 뇌파의 변화와 팔의 움직임을 이용하여 테스트를 진행하였기 때문에 그림 10과 같이 점 C3, C4에서 일정 간격 떨어진 네 점에 전극을 부착하여 해당 부분의 뇌파 데이터를 통해 테스트 데이터를 추출했다[6].

JBJTBH_2024_v17n1_38_f0010.png 이미지

그림 10. 테스트 데이터 측정시 전극의 위치

Fig. 10. Position of Electrodes When Measuring the Test Data

그림 11은 뇌파 데이터를 입력으로 식 1의 연산을 수행하여 그 결과의 제곱을 시각화 한 스펙트로그램(Spectrogram)을 이미지로 저장한 결과이다. 출력값의 최대값을 255로, 최소값을 0으로 정규화하였으며, 뇌파 채널과 동일하게 단일채널 이미지로 저장하여 회색조 이미지로 출력되었다.

JBJTBH_2024_v17n1_38_f0011.png 이미지

그림 11. STFT의 출력 결과를 정규화한 이미지 (뇌전도 스펙트로그램)

Fig. 11. Image of Normalized Output Matrix from STFT (EEG Spectrogram)

본 연구에선 뇌파 데이터를 STFT를 이용해 분석하여 그 결과를 합성곱 신경망(Convolutional Neural Network; CNN)에 입력으로 주어 학습 및 분류하도록 구현했다.

CNN 모델을 학습시키기는 과정에서 데이터 분류를 자동화하기 위해 Google의 오픈소스 프로젝트인 MediaPipe[7]를 이용해 실시간 카메라 입력을 통해 팔의 움직임에 따라 데이터를 자동으로 분류하는 시스템을 구현하였다. 그림 12는 뇌파 데이터의 자동 분류 시스템으로 분류된 데이터들의 분류 화면 및 그 결과를 이용하여 CNN 모델을 학습하는 과정을 나타낸 그림이다.

JBJTBH_2024_v17n1_38_f0012.png 이미지

그림 12. 분류 시스템을 이용한 신경망 학습

Fig. 12. Training Neural Network Using Classifying System

3. 결론

3.1 실험 결과

그림 13은 Python 3.9.9 및 Tensorflow 2.9.1 라이브러리를 이용해 CNN을 구성하고 Batch size는 30, Epoch은 50으로 설정하여 학습시킨 결과이다. 두 그래프 중 위쪽은 학습 데이터에 대한 정확도이며 아래쪽은 검증 데이터에 대한 정확도이다. 두 그래프 모두 학습이 진행됨에 따라 값이 상승함을 확인할 수 있으며, 대략 30 Epoch 이후로는 유의미한 정확도 향상을 보이지 않았다.

JBJTBH_2024_v17n1_38_f0013.png 이미지

그림 13. CNN 학습 단계에 따른 정확도

Fig. 13. Accuracy According to Training Epochs

그림 14는 앞서 구현한 데이터 분류 시스템을 이용해 저장된 데이터와 학습된 모델을 이용해 데이터를 분류한 결과이다. 그림 14의 왼쪽에는 분류 시스템의 실행 화면과 실제 데이터의 그래프이고, 오른쪽에는 학습된 CNN 모델을 이용한 분류 결과와 데이터의 스펙트로그램이 그려져있다.

JBJTBH_2024_v17n1_38_f0014.png 이미지

그림 14. 자동 분류된 원본 데이터와 처리 및 CNN 모델의 예측 결과

Fig. 14. Auto-Classified Raw Data and Result of Processes and Prediction from CNN Model

또한, 그림 14에 그려진 네 개의 테스트 데이터에 대해서는 모두 정확한 분류를 하는 결과를 보였지만, 본 연구에서 사용한 테스트 데이터에 대해서는 학습 단계에서 보여주었던 것과 유사하게 약 71.43%의 분류 정확도를 보였다.

3.2 연구 결론

본 연구에서는 뇌전도를 실시간으로 측정하고 분석하여 그 결과를 제공하는 시스템을 설계 및 구현하였다. ADS1299 ADC 및 Raspberry Pi를 이용하여 뇌전도를 측정하는 장치를 설계하고 구현하였다. Spring Framework를 이용한 서버로 측정된 뇌전도 데이터를 전송받는 과정 및 전송받아 처리하는 과정을 설계 및 구현하였다.

전송받은 뇌전도 데이터를 분류하고 CNN 모델에 학습시켜 테스트 데이터에서 약 71.43%의 정확도를 보였다.

추후 의학연구윤리심의위원회(Institutional Review Board; IRB)의 심의 및 승인을 받아 본 연구에서 구현한 뇌전도 측정 및 분류 시스템을 응용하여 뇌 질환 환자들로부터 임상 데이터를 확보하여 뇌 질환 환자들의 발작 등 돌발적인 위험 상황을 사전에 예측하는 기구 및 거동이 불편한 환자의 움직임을 보조하는 외골격 로봇 시스템 등에 관한 연구를 추가적으로 수행하고자 한다. 이러한 시스템을 구현할 때 가장 중요한 것은 EEG의 실시간 측정 및 분석으로, 본 연구에서 설계한 실시간 측정 장비 및 실시간 통신을 통해 분석 결과를 빠르게 전달하는 서버 시스템, 그리고 실시간에 가깝게 처리되는 EEG 분석 시스템이 큰 역할을 수행할 수 있을 것이라 기대한다. 분석 시스템의 경우 선행 연구들과 비교하여 분석 소요 시간 및 그 정확도 등의 성능 지표에서 선행 연구들에 비해 큰 이점을 보이지 못하였으나 추후 알고리즘 개선 및 양질의 데이터를 이용한 추가적 학습을 통해 더 나은 성능을 가지도록 개선할 것이다.

References

  1. Adkinson JA, Karumuri B, Hutson TN, Liu R, Alamoudi O, Vlachos I, Iasemidis L Connectivity and centrality characteristics of the epileptogenic focus using directed network analysis. IEEE Trans Neural Syst Rehabil Eng 27(1):22-30 2019  https://doi.org/10.1109/TNSRE.2018.2886211
  2. Bansal K, Nakuci J, Muldoon SFPersonalized brain network models for assessing structure function relationships. Curr Opin Neurobiol 52:42-47 2018  https://doi.org/10.1016/j.conb.2018.04.014
  3. Texas Instruments "ADS1299-x Low-Noise, 4-, 6-, 8-Channel, 24-Bit, Analog-toDigital Converter for EEG and Biopotential Measurements," SBAS499C -JULY 2012 - REVISED JANUARY 2017 
  4. Guk-Han Jo and Young-Joon Song, "State Analysis and Location Tracking Technology through EEG and Position Data Analysis," JOURNAL OF ADVANCED INFORMATION TECHNOLOGY AND CONVERGENCE, vol. 8, no. 2, pp. 27-39, 2018.  https://doi.org/10.14801/JAITC.2018.8.2.27
  5. S. S. Daud and R. Sudirman, "Butterworth Bandpass and Stationary Wavelet Transform Filter Comparison for Electroencephalography Signal," 2015 6th International Conference on Intelligent Systems, Modelling and Simulation, Kuala Lumpur, Malaysia, 2015, pp. 123-126, 
  6. David Lee, Hee-Jae Lee, and Sang-Goog Lee, "Motor Imagery EEG Classification Method using EMD and FFT," Journal of KIISE, vol. 41, no. 12, pp. 1050-1057, 2014. 
  7. K. Keerthi Krishnan and K. P. Soman, "CNN based classifi cation of motor imaginary using variational mode decomposed EEG-spectrum image," Biomedical Engineering Letters (BMEL), vol. 11, no. 3, pp. 235-247, 2021,  https://doi.org/10.1007/s13534-021-00190-z
  8. Jae Myung Kim and Sung Bum Pan, "CNN based User Recognition using EEG Spectrogram Image," in Proceedings of KIIT Conference, pp. 123-125, 2021, 
  9. https://developers.google.com/mediapipe
  10. Gautam, Ganesh, Shrestha, Surendra, and Cho, Seongsoo, "Spectral Analysis of Rectangular, Hanning, Hamming and Kaiser Window for Digital Fir Filter," International journal of advanced smart convergence, vol. 4, no. 2, pp. 138-144, 2015.  https://doi.org/10.7236/IJASC.2015.4.2.138