김민석

Add new file

Showing 1 changed file with 45 additions and 0 deletions
1 +# B2I-GAN: Anomaly detection from imaged ECG using GAN
2 +
3 + ECG(electrocardiogram) 데이터는 심장 및 혈관 장애 분석에 많이 쓰이는 데이터다. 이를 이용한 기존의 연구들은 일차원 상태인 원본 데이터를 사용해왔다.
4 + 우리는 STFT(Short-time Fourier transform)를 이용해 데이터를 이차원으로 확장시키고, 시간에 따른 주파수 영역의 분포를 분석하여 특징을 추출하여 분류하고, GAN을 이용해 비정상 데이터-생성된 정상 데이터의 차이를 보여줌으로서 어느 부분이 비정상인지 사용자에게 보여주고자 한다.
5 +
6 +
7 +## Dataset
8 +
9 +해당 연구에 사용한 데이터는 MIT-BIH Arrhythmia Database이다. 이 데이터베이스는 다양한 종류의 심부전증을 나타내는 데이터를 포함하고 있으며 ECG 딥러닝 분야의 많은 연구에서 사용되어 왔다. 내부 데이터는 초당 360Hz로 sampling된 신호로, 우리는 이 전체 샘플 중 가장 특징을 잘 나타내는 II-lead에 대해 정상 신호(N) SVE (S), VEBs (V)를 앓고 있는 환자의 ECG 신호를 추출해 GAN의 입력 데이터로 사용하였다. 다운로드 링크는 아래와 같다.
10 +>https://www.dropbox.com/sh/b17k2pb83obbrkn/AABF9mUNVdaYwce9fnwXsg1ta/ano0?dl=0&subfolder_nav_tracking=1
11 +
12 +다운받은 데이터는 /experiments/ecg/dataset/preprocessed/ano0 에 넣어준다.
13 +## Require
14 +- Python 3
15 +
16 +>### Packages
17 +- PyTorch (1.0.0)
18 +- scikit-learn (0.20.0)
19 +- biosppy (0.6.1) # For data preprocess
20 +- tqdm (4.28.1)
21 +- matplotlib (3.0.2)
22 +
23 +## 데이터 전처리
24 +![캡처](https://user-images.githubusercontent.com/57976156/122515177-07156f00-d048-11eb-92bb-f9c588fcfa5c.PNG)
25 +
26 +원본 데이터를 STFT로 변경하여 저장해야 한다. /experiments/ecg/dataset/preprocessed에 존재하는 change.py, change2.py를 하위 디렉토리 /ano0에 넣은 후 순서대로 실행하면 된다.
27 +
28 +## 사용법
29 +- train/test를 정하기 위해 run_ecg.sh 파일을 수정해야 한다.
30 + ![캡처](https://user-images.githubusercontent.com/57976156/122516269-86577280-d049-11eb-97c2-aae0b311c19a.PNG)
31 +
32 + test 값이 0이면 train, 1이면 test이다.
33 +- 실행의 명령어는 `run_ecg.sh`파일이 존재하는 디렉토리에서 다음과 같이 입력한다.<br>
34 + `/bin/bash run_ecg.sh`
35 +
36 +## 결과
37 +
38 +
39 +|Model|AUC |AP |
40 +|---|---|---|
41 +|AE|0.8944|0.8415|
42 +|AnoGAN|0.8642|0.8035|
43 +|Ganomaly|0.9083|0.8701|
44 +|BeatGAN|0.9447|0.9143|
45 +|B2I-GAN|0.9460|0.9058|