사용자의 심전도를 측정하여 인증하는 모델 제작 프로젝트
사람은 개인마다 고유의 심전도를 가지고 있습니다. 따라서 지문이나 얼굴인식처럼 심전도를 측정하여 인증이 가능합니다. 이 점을 이용하여 심전도 사용자인증 시스템을 만들어 보았습니다.
- 2022.11.22~2022.12.16
- 1명당 10초씩 60회 측정한 심전도 100명치
- 기본적으로 심전도 데이터는 주파수데이터 이므로 시계열데이터입니다. 따라서 전처리가 매우 중요합니다.
- 연속적인 데이터를 처리할 수 있는 모델을 구성해야 합니다.
- 원본 데이터를 그대로 사용할시 잡음이 많아 정확한 모델의 학습이 어려우므로 전처리 과정을 거칩니다.
- 첫 번째 전처리 작업으로 약 5만Hz였던 원본데이터를 256Hz로 낮추는 작업입니다.
- 통과시킬 주파수의 범위를 정해 원하는 범위만 남기는 필터링 과정으로 3가지가 존재합니다.
- HighPassFilter는 설정값 이상의 주파수만 통과시키는 필터입니다.
- BandPassFilter는 일정 범위 안에 있는 주파수만 통과시키는 필터입니다.
- LosPassFilter는 설정값 이하의 주파수만 통과시키는 필터입니다.
- 필터링을 통해 필요없는 범위의 주파수는 날려줍니다.
- 한 사람이 1회 측정한 데이터당 일정히 반복되는 주기가 존재합니다. 따라서 이를 토대로 데이터를 짧게 끊어 dataset의 양을 늘려줍니다.
- 기본적으로 1초씩 끊어서 데이터를 저장해주었습니다.
📢 모델
1-dimensional CNN : 이다은
RNN : 채안나
LSTM : 이준형
GRU : 오수진
- 저희는 모델 여러개를 각자 맡아 어떤 것이 가장 정확도가 높은지 실험을 진행하였습니다.
- RNN의 경우 SimpleRNN을 적용하였는데 학습하는 시간이 다른 모델에 비해 오래걸렸습니다.
- 정확도는 BandPass적용한 데이터가 약 91%정도 나왔습니다.
- LSTM의 경우 시계열데이터에 자주 사용하는 모델이며 RNN보다 성능이 좋습니다.
- 그래프도 완만하게 나타났으며 정확도는 BandPassFilter를 사용하였을 때 98%로 가장 높았습니다.
- GRU는 LSTM과 비슷하지만 비교적 빠른 모델입니다.
- 정확도 그래프는 LSTM보다 완만하며 정확도는 BandPassFilter사용시 94%정도로 나타났습니다.
- CNN모델은 짧은 구간에 대해서 패턴을 인식합니다.
- 정확도 그래프가 대체적으로 완만하나 Low그래프에서 변동이 있었습니다.
- HighPassFilter를 사용하였을 때 정확도가 99%로 가장 높게 나타났습니다.
가장 정확도가 높게 나온 CNN과 LSTM모델을 활용하여 추가적인 실험을 진행하였습니다.
데이터를 2초로 분할, 겹쳐서 1초씩 분할한 경우를 추가로 시행해보았습니다.
이중에선 겹쳐서 1초로 분할한 데이터를 bandpass에 적용시켜 CNN모델로 학습했을 경우가 98%정확도로 높게 나왔습니다. 심화과정까지 해본 결과 1초로 분할해 Highpass를 적용한 cnn모델이 99%로 가장 높았습니다.
- testdata중 42번 사람의 데이터를 학습한 모델에 넣어본 결과 42번 사람으로 인식하는 것을 확인할 수 있습니다.
- 오른쪽 이미지의 경우 6000개의 testdata를 전부 모델에 적용시켜본 결과 거의 모든 데이터를 맞춘 것을 확인할 수 있습니다.
- 이를 애플워치나 갤럭시워치와 같이 심박수를 측정할 수 있는 전자기기에 활용하면 사용자를 인증하는 시스템을 만들 수 있습니다.
