사냥꾼의 IT 노트

[논문 리뷰]헬스케어 및 진단보조를 위한 1D YOLO 모델 기반 인간호흡 패턴 분류방법에 대한 연구 본문

논문 리뷰

[논문 리뷰]헬스케어 및 진단보조를 위한 1D YOLO 모델 기반 인간호흡 패턴 분류방법에 대한 연구

가면 쓴 사냥꾼 2022. 8. 3. 16:04

논문 출처: 박사학위_청구논문(김성훈 박사)


서론

사람의 호흡 정보는 헬스케어 등 건강과 관련된 분야에서 다양하게 활용 가능한 정보들이다. 호흡 정보를 활용하고 있는 분야는 '수면다원검사'가 대표적이다. 수면다원검사는 사람의 수면의 질, 수면 중 호흡 장애 등을 검사하기 위해 호흡 상태, 혈중 산소농도, 움직임 등을 측정한다. 최근에는 비접촉식 센서를 기반으로 호흡 정보를 측정하는 방법들이 연구되고 있으며, 대표적으로 Ultra-wideband (이하 UWB) 센서를 활용한 호흡 데이터 측정 방법들이 연구되는 추세이다.

UWB 기술은 과거엔 근거리 통신을 위해 개발된 기술이었지만 최근에는 신호가 갖는 특성을 활용, 센서로 사용하면서 생체 신호 감지가 가능해졌다. 특히 사람의 호흡뿐만 아니라 맥박까지도 측정이 가능해져 고도화된 헬스케어 연구가 진행되는 중이다. 

하지만 이런 비접촉식 방식은 사람의 자세 또는 장애물의 영향을 받을 수 있어 정확도가 떨어질 위험이 있다. 이러한 단점을 보완하기 위해서 기존의 DNN, 1D CNN 등 인공지능 기반의 패턴인식 연구들이 진행되어졌다. 이런 방법들은 고정된 입력 크기의 데이터로부터 무호흡 패턴 인식 연구가 주를 이뤘기 때문에 다양한 호흡 패턴에 대한 유연성을 떨어지는 편이다. 특히 장시간동안 측정된 호흡 데이터에서 학습된 호흡 패턴들을 검출하려면 동일한 입력 크기의 Window Sliding 방식을 사용해아 한다. 그러나 Window Sliding 방식 또한 다중 패턴의 데이터가 존재하는 경우 인식률이 저할 가능성이 높다.

이러한 문제를 해결하기 위해 본 논문에서는 Object Detection 검출에 사용되는 YOLO 기법을 택했다. 1D YOLO 모델과 검출된 호흡 패턴 영역을 병합하여 호흡 패턴 구간을 분할할 수 있는 알고리즘 및 Harmony Search 기반의 1D YOLO 신경말 모델의 하이퍼파라미터 최적화 방법을 제안한다.

YOLO는 다양한 크기의 input 이미지에서 학습된 여러 종류의 객체들을 검출할 수 있으며, 보다 빠르고 정교한 탐색이 가능하다. 이를 호흡 인식에 적용하기 위해 YOLO의 기존 2개 축의 정보를 갖는 grid cell, anchor box를 1개 축의 정보를 갖는 1D anchor, 1D gird로 재정의한다. 또한 이 1D YOLO의 layer 구성은 YOLOv3-Tiny를 기반으로 구성하며 2D 데이터 처리를 위한 모든 layer들을 1D 데이터 처리 layer로 구성한다.

(YOLO 신경망에 대한 정보는 다음 포스팅을 참고)


https://it-the-hunter.tistory.com/25?category=1035318 

 

YOLO란 무엇인가?

카메라에 비춰진 사물의 영역을 표시하고 인식된 사물이 무엇인가에 대해 알려주는 모델이 바로 YOLO이며, You Only Look Once의 약자이다. 현재 YOLO 모델은 버전이 5까지 나와있지만, 학술적으로는 4

it-the-hunter.tistory.com


호흡 데이터는 패턴 구간이 명확하게 나누어지는 신호 데이터기 때문에 기존 YOLO에 쓰이던 이미지 데이터와는 차별된 특징을 갖는다. 따라서 호흡 데이터의 특징을 잘 추출할 수 있는 하이퍼파라미터 설정이 YOLO에 필요하다. 본 논문에서 제안하는 1D YOLO의 주요 하이퍼파라티머인 1D grid, 1D anchor의 개수와 크기를 최적화하여 호흡 패턴 인식에 최적의 성능을 갖도록 설정한다. 최적화는 Harmony Search 알고리즘을 활용한다. 신경망의 output과 ground truth의 IOU를 최대화할 수 있는 Object Function을 설계하여 최적의 성능을 나타내는 1D grid, 1D anchor의 조합을 찾는다. 또한 Harmony Search 알고리즘은 파라미터 설정 시 실험을 통해 적절한 탐색 범위의 파라미터를 설정할 수 있도록 한다.

마지막으로 1D YOLO의 패턴 인식 결과를 활용, 전체 호흡 데이터에서 호흡 패턴별로 분할된 영역을 계산하여 다양한 데이터를 제공할 수 있는 알고리즘을 제안한다. 이를 통해 호흡 패턴별 비율, 호흡 패턴의 빈도 등 정보를 분석할 수 있다.

본 논문에서 제안하는 1D YOLO의 학습 및 테스트 데이터는 UWB 센서와 벨트형 호흡 측정기를 사용하여 5명의 사람에 대하여 비수면 상태에서 일반 호흡, 느린 호흡, 빠른 호흡, 무호흡, 움직임 총 5가지 데이터 패턴을 포함하도록 하였다. 1인당 각 센서에 대하여 30건씩 측정해 총 300건을 측정하였고, 한 건당 30분 길이로 흑정해 호흡 데이터를 구성한다. 측정된 호흡 데이터는 별도로 개발된 annotation tool을 사용해 패턴별 ground truth 영역 및 labeling 정보를 입력한다. ground truth로 설정된 영역과 IOU를 계산하여 정확도를 비교한다. 그 결과, 정확도에 있어서 1D YOLO 방법이 기존 DNN보다는 약 19.7%, 1D CNN보다는 12.4% 향상되었다. 


관련 연구

UWB Sensor

UWB 센서의 주요 하드웨어 구성은 송/수신기와 검출된 신호를 처리하기 위한 Digital Signal Processing (DSP), 수신된 펄스 신호를 복원하기 위한 임펄스 레이더용 RF 송수신 칩셋 등으로 이루어진다. 그리고 수신된 센서 데이터를 처리하기 위한 신호 알고리즘 등이 요구된다. 


UWB Signal Processing

UWB 센서가 송신한 신호는 물체에 반사되어 돌아오는 신호를 수신한 Raw 데이터를 처리하며 다양한 정보를 얻을 수 있다. 이 때 일반적으로 필터를 사용하여 노이즈 제거, 신호 증폭 및 감쇠 등의 전처리를 수행한다. 

전처리 된 신호 데이터는 사람이 위치한 거리 값을 기준으로 임의의 범위를 설정, 범위 내 각각 거리별로 데이터를 축적한다. 그 후 시간마다 축적된 값에 대하여 평균값을 취한 후 호흡 주파수 대역에 해당되는 신호를 추출하기 위해 band pass filter를 적용하여 호흡 신호를 얻는다. 이 때 신호를 주파수 축으로 변환하는 Chirp Z-Transform을 적용하면 peak 값을 얻을 수 있으며, 이를 호흡수로 판단 가능하다.


Respiration Signal

호흡 신호는 들숨에는 상승하고, 날숨에는 하강하는 경향이 있다.

 이러한 호흡 신호는 호흡 종류에 따라 다양한 형태로 나타나며 의료 분야에서는 분당 호흡수를 기반으로 다음 표와 같이 호흡 종류를 정의하고 있다.

각 호흡 종류를 UWB 센서와 벨트형 센서로 측정하면 다음과 같으며, 각 종류별로 뚜렷한 차이를 나타낸다.


수면다원검사

수면다원검사는 수면 중 호흡장애, 수면의 질, 코골이, 혈중산소포화 농도 및 각성의 정도 등을 측정하여 수면호흡장애의 중증도에 대한 정보를 제공한다. 하지만 수면다원검사는 특수 장치가 구비된 시설에서만 검사가 가능하므로 사용이 제한된다. 이러한 문제를 해결하기 위해 휴대형수면검사기를 통한 수면다원검사도 진행되고 있다. 

수면다원검사에서 측정되는 정보는 뇌파, 안전도, 근전도, 심전도, 호흡기류, 호흡노력벨트 등 다양하지만 그 중에서도 수면의 질이나 호흡장애를 진단하는데 활용된다. 최근에는 벨트형 센서뿐만이 아니라 UWB 센서 등의 비접촉식 센서를 기반으로 호흡 신호를 측정하는 기술이 연구되고 있다. 


Support Vector Machine (SVM)

지금의 딥러닝이 활발하게 연구되기 전, 전통적으로 사용된 기계학습 알고리즘 중 하나가 바로 SVM이다. 이는 분류를 위한 기준선인 결정 경계를 정의하고 결정 경계를 기준으로 새로운 데이터가 어떤 클래스에 포함되는지 판단할 수 있다. 따라서 결정 경계를 정의하는 것이 분류의 성능을 좌우한다. 이는 2D에서는 선으로, 3D에서는 평면으로 정의한다.

Linear SVM은 classification 및 pattern recognition 등에 일반적으로 사용되는 알고리즘으로, 결정 경계를 찾기 위한 결정 함수도 정의한다. 함수를 통해 클래스를 분리할 때 최대의 마진 값을 갖는 결정 경계를 찾는 것이며, 이를 위해 각 클래스 별로 여러 개의 Support Vector를 사용한다.


Deep Neural Network (DNN)

DNN은 다층 퍼셉트론 개념에서 2개 이상의 hidden 레이어로 구성된 신경망이다. 각 레이어는 정의된 개수만큼의 뉴런으로 구성되어 있으며, 모든 뉴런들이 서로 연결된 Fully-Connected 형태를 갖는다.

DNN의 학습은 경사하강법을 이용해 loss function의 값을 최소화하기 위해 각 연결된 뉴런 사이의 가중치들을 업데이트하는 과정이 이루어진다. 각 뉴런에서는 연결된 가중치 w들을 각각의 입력에 곱하여 모두 더한 후 bias 결과를 활성함수에 대입하여 다음 연결된 뉴런으로 전달한다.

각 층의 모든 뉴런에 대하여 위와 같은 과정을 수행하고 output 레이어의 결과와 각 뉴런간 가중치에 대하여 손실 값을 계산, 이를 기반으로 output 레이어에서 input 레이어로 역방향으로 가중치를 업데이트한다. 이런 방법을 오류 역전파 방법이라 하며 정방향과 역방향의 연산이 반복되어 가중치 학습이 이루어진다.


1D Convolutinal Neural Network

일반적으로 CNN은 이미지 데이터를 기반으로 객체 검출 또는 인식을 하기 위해 연구된 신경망이다. 이로 인해 convolutional 레이어는 이미지의 특정 추출을 위해 N*M의 2차원 kernel을 사용하고 있다. 그리고 여러 층의 convolution을 통해 추출되는 특징들은 최종적으로 fully-connected 레이어와 연결되어 classification을 수행한다.

호흡 신호는 이미지가 아닌 1차원의 신호로 구성되어 있으므로 이를 cnn 기반의 신경망으로 학습하기 위해선 1차원 데이터 특성에 적합한 cnn을 구성해야 한다. 1D CNN은 기존에 다양한 신호 패턴 인식 연구에 사용되어 왔다. 예시로 Electrocardiogram 센서에서 추출되는 심박 신호 패턴을 1D CNN으로 인식하는 방법이 있다. 이 방법에서 1D CNN은 다양한 패턴 인식이 가능하고 월등히 높은 인식 결과를 나타냈다. 입력 데이터의 특성에 맞게 신경망의 깊이, kernel의 크기 및 개수 등의 하이퍼 파라미터가 최적화되어야 신경망의 성능을 최대로 높일 수 있다는 점이다. 그렇기 때문에 최적화 알고리즘을 사용하여 신경망의 최적화가 필수적으로 요구된다.


Long Short-Term Memory (LSTM)

LSTM 모델은 RNN의 장기 의존성 문제를 해결하기 위해 제안된 모델로 짧은 과거의 데이터뿐만 아니라 긴 과거의 데이터까지 고려하여 미래의 데이터를 예측 가능하게 하는 모델이다. LSTM의 핵심은 망각 게이트와 입력 게이트, 입력 후보를 기반으로 과거의 정보를 얼마나 잊을지 결정하고, 현 단계에서 입력되는 데이터 중 어떤 것을 Cell State에 저장할 것인지를 결정한다는 것이다.

이런 구조를 갖는 LSTM 모델은 주어진 time series 데이터에 대하여 학습할 구간의 길이와 예측 크기에 따라 LSTM cell의 주요 파라미터들을 설정해야 한다. 

최근에는 LSTM 모델을 CNN 모델과 병합한 형태의 신경망을 사용하는 모델들이 연구되고 있다. LSTM 모델은 특징을 추출하는 레이어가 없으나 CNN과 병합하면 추출된 특징의 선후 관계를 학습할 수 있는 장점이 생긴다.


YOLO (You Only Look Once)

Object Detection (이하 객체 검출)은 이미지를 분류하는 Classification 모델을 이용하여 하나의 이미지에서 객체의 위치, 크기 등을 판단 가능하게 하는 검출기로써 재정의된다. 2015년에 등장한 YOLO 모델은 v1을 시작으로 지속적인 성능 향상을 거듭하면서 실시간 검출기로 급부상했다. YOLO 모델은 45~155 FPS의 빠른 검출 속도와 높은 정확도가 특징이다. 최초의 YOLO 모델인 v1의 아키텍처는 레이어가 Convolution Layer와 Maxpool Layer로만 구성되어 있으며, Output은 7*7*30 크기의 Tensor로 출력되는 형태이다.

본 논문이 제시된 시점에선 v3가 가장 많이 쓰이는 버전이지만, 현재 yolo는 v7까지 나왔다.

Grid Cell / Anchor Box

YOLO 신경망에서 객체 검출을 하기 위한 핵심적인 요소들이다. YOLO는 여러 해상도의 Grid Cell에 대하여 각 Cell 마다 Anchor Box를 갖도록 한다.

Anchor Box는 미리 정의된 크기 값을 가진 Bounding box이며, 이 Anchor box가 위치한 영역의 데이터가 객체인지 아닌지, 만약 객체인 경우 어떤 클래스에 해당되는지를 YOLO가 판단한다. 이 Anchor Box는 수식 내 범위가 제한되어 있지 않기 때문에 Grid cell의 위치를 벗어날 수 있다. 따라서 벗어나지 않도록 Sigmoid 함수를 사용, 더 좋은 위치에 Anchor box가 위치하도록 하여 학습 시간을 단축시키는데 유효한 결과가 나타났다.

 

Ancor box는 YOLO의 최종 Output에서 각 grid cell마다 정의된 Anchor box 개수만큼의 결과를 가진다. 그리고 각각의 Anchor Box의 결과는 Ground Truth와 IOU를 계산하여 지정된 Threshold 이상의 Anchor Box만 선택하여 최종 검출 결과로 사용한다.

 


YOLO v3 - Tiny Model

Tiny Model은 기존 v3 모델 아키텍처를 경량화하여 유사한 정확도를 나타내며, 빠른 속도로 처리가 가능하도록 설계된 모델이다. v3 모델은 총 3개의 prediction scale을 가지지만 tiny model은 총 2개의 prediction scale을 가진다.

본 논문에서는 학습 시간을 최소화하기 위해 YOLO v3-tiny 모델을 기반으로 호흡 데이터를 학습할 수 있는 아키텍처를 제안한다.


CNN Hyper Parameter 최적화

CNN에서의 하이퍼 파라미터는 신경망의 구조에 따라 다양할 수 있으며, 다음 표와 같은 파라미터들이 존재한다. 아래 파라미터 중 검출 성능에 가장 큰 영향을 미치는 것은 Kernel size와 Kernel count이다. 


Grid / Random Search

전통적인 하이퍼 파라미터의 최적화 방법은 manual search, grid search, random search 등이 있다.

  • Manual Search: 연구자의 경험 등에 의지하여 임의의 하이퍼 파라미터를 설정하여 최적화 하는 방법
  • Grid Search: Manual Search와는 크게 다르지 않으나, 하이퍼 파라미터의 범위와 간격을 미리 정해 각 경우의 수 모두를 대입하여 최적의 경우의 수를 찾는 방법
  • Random Search: 정해진 범위에서 난수를 생성해 최적의 하이퍼 파라미터를 찾는 방식으로, 언제든지 특정 조건을 통해 하이퍼 파라미터 탐색 도중에 중단이 가능

Bayesian Optimization

grid search, random search와 같이 고전적인 방법들은 최적의 하이퍼 파라미터를 찾기 위해 수많은 반복이 요구될 수 있기 때문에 효율적이지 않다. 따라서 본 논문에서는 Bayesian Optimization 기반의 최적화 방법을 사용한다. 

 

 

 

Bayesian Optimization 수식

위 수식과 과정에서 알 수 있듯이, 신경망의 하이퍼 파라미터에 대하여 Bayesian Optimization을 수행하기 위해서는 목적함수 f(x)와 목적함수에 대한 Estimation Function f(x)', Acuisition Function E1(x)가 정의되어야 한다.


Harmony Search (이하 HS) Optimization 

HS 알고리즘은 확률론적인 이론을 바탕으로, 최적화 문제를 해결하는 기법으로 연주자가 보다 좋은 화음을 만들어내기 위한 과정을 모델화하여 최적화 문제를 해결하는 알고리즘이다. HS 알고리즘과 유전 알고리즘은 Random Process를 통해 확률론적으로 해에 접근하는 방법은 유사하나, 초기 값 집단을 구성하는 과정에서는 차이가 있다. HS 알고리즘은 다음과 같이 총 5가지의 과정으로 진행된다.

 

 

 

Bayesian Optimization은 순차적으로 계산되는 알고리즘으로 병렬처리가 불가능하며, 최적화를 위해 정의해야 할 함수가 많다는 단점이 있다. 따라서 본 논문은 이를 해결하기 위해 Harmony Search 알고리즘 기반으로 제안하는, 1D YOLO 신경망의 하이퍼 파라미터들을 최적화하는 방법을 실험을 통해 나타낸다. 


1D YOLO 기반 호흡 패턴 인식 딥러닝 모델링

기존 연구의 한계점

전통적으로 사용되는 기계학습 알고리즘인 DNN부터, 최근에 사용되는 CNN 기반의 호흡 패턴 인식 방법들은 입력 데이터 당 하나의 호흡 패턴을 분류하는 경우에는 효과적인 방법이다. 하지만 입력 데이터에 두 가지 이상의 패턴을 포함하는 경우에는 인식률이 낮아질 수 있으며, 문턱 값에 의해 그 어떠한 패턴에도 포함되지 않는 결과를 발생할 위험이 있다. 아래 표는 하나의 데이터에 두 가지 호흡 패턴이 포함된 데이터를 1D CNN으로 인식한 결과이다.

인식 결과에서 최상위 확률값을 나타내는 2개의 패턴을 분류 결과로 사용하더라도, 실제 Ground Truth와는 다른 결과임을 보인다. 이런 문제 때문에 장시간 호흡 데이터에서 패턴별 구간 분할 시 복수의 패턴이 포함된 구간의 영역에 위치할 수 있다. 이는 최종적으로 호흡 패턴 영역 분할 시 잘못된 결과를 발생 시킬 수 있다.

반면 YOLO 신경망은 학습된 객체들을 하나의 이미지에서 다중 검출이 가능하며, 보다 빠른 다중 객체 검출이 가능하다. 따라서 본 논문에서는 장시간의 호흡 데이터 내에서 여러 개의 호흡 패턴들을 빠르고 정확하게 검출할 수 있는 1D YOLO 신경망을 제안한다.


제안하는 방법의 개요 

1D YOLO 아키텍처는 YOLO v3-Tiny의 구조를 기반으로 구성하였으며, 이미지가 아닌 신호 데이터 처리를 위해 일부 레이어에 1D 데이터를 입력할 수 있도록 변경하였다. 또한 학습할 호흡 데이터에 맞도록 적절한 하이퍼 파라미터 설정 방법도 제안한다.


1D YOLO Architecture

1D YOLO 아키텍처는 YOLO v3-Tiny와 레이어 구조를 갖고 있으며, 차이점은 1차원 데이터를 처리하기 위해 Conv2D, MaxPool2D 등의 2차원 데이터 처리용 레이어를 Conv1D, MaxPool1D로 변경한 것이다. 또한 주요 하이퍼 파라미터가를 호흡 데이터 학습을 위해 다음 표의 파라미터들에 대하여 재정의 하였다.

기본적인 하이퍼 파라미터들은 [net]과 [convolutional] 항목에 정의되어 있으며, 입력에 대한 크기 및 채널, convolutional 레이어의 kernael 크기 및 개수 등의 정의되어 있다. 여기서 kernel의 크기는 1D CNN 기반의 호흡 패턴 인식 연구를 통해 적절한 크기로 최적화 하였다. 따라서 호흡 데이터의 주요 특징들을 추출할 수 있도록 하이퍼 파라미터를 설정한다. 이렇게 재정의 하여 생성된 1D YOLO 아키텍처는 다음 표와 같다.

CNN 파라미터 외 YOLO 기법과 관련된 주요 파라미터들은 [yolo] 항목에 정의된다. 


1D YOLO Hyper-parameter 최적화

HS 알고리즘 기반 1D YOLO 최적화 방법

본 논문에서 제안하는 1D YOLO의 하이퍼 파라미터 중 호흡 패턴의 인식 정확도를 좌우하는 항목은 1D Anchor의 크기, 개수이며, 정의된 값들을 읽어 모델 생성에 사용한다. Anchor 크기와 개수는 Harmony Search 알고리즘을 통해 최적화가 이루어지도록 모델의 성능이 Ground Truth와 IOU가 최대가 될 수 있도록 Harmony Memory 및 Object Function을 설계한다.


 Harmony Memory 및 Object Function 정의

Harmony Search 알고리즘을 사용하여 1D YOLO의 하이퍼 파라미터를 최적화하기 위해서는 Harmony Memory 구성과 목적함수 정의가 필요하다. 따라서 먼저 Harmony Search 알고리즘을 사용하여 최적화할 하이퍼 파라미터들에 대해 탐색할 범위를 정의한다. 본 논문에서 제안하는 1D YOLO 모델은 2개의 YOLO 레이어를 포함하고 있으며, 1개의 레이어는 작은 객체를 검출하기 위해 비교적 작은 값의 Achor 값을 가지지만 나머지 1개의 레이어는 큰 객체를 검출하기 위해 큰 값의 Anchor 값을 가진다. Harmony Search 알고리즘을 사용해 Harmony Memory가 갱신될 때, 1D Anchor의 개수와 크기를 선택할 수 있도록 탐색 범위를 구분하여 최적화 한다.


Harmony Search Parameter 설정

Harmony Search 알고리즘은 객체 함수와 몇 개의 파라미터에 의해 최적해가 탐색되며, 탐색을 위한 파라미터들은 적절한 값으로 설정되어야 적은 수의 Iteration으로 최적해를 찾을 수 있다. 그리고 HM Size (이하 HMS)는 충분히 큰 값으로 설정해야 Local Maxima에 빠지는 문제도 방지할 수 있다. 

본 논문에서는 HMS를 기존 1D CNN 기반 호흡 패턴 인식 방법보다 10배 큰 값인 10,000으로 설정하여 보다 밀도 높은 탐색이 이루어지도록 구성하였다. 

Harmony Memory Considering Ratio (이하 HMCR)은 신규 Harmony 생성 시 기존 Harmony Memory 값들을 이용하여 생성할 것인지 Random Selection을 통해 생성할 것인지를 나타내는 확률값으로 클수록 Harmony Memory를 사용할 확률이 높아진다. 큰 HMS 값으로 초기화된 HM을 적극적으로 활용하기 위해 본 논문에서는 HMCR의 값은 0.8로 설정했다. PAR은 HMCR에 의해 기존 Harmony Memory를 사용하여 신규 Harmony를 생성하는 경우 기존 하이퍼 파라미터에 변동 값을 취할 확률을 결정하는 값이다. 만약 변동 값을 취하는 경우 설정된 범위 내에서 무작위 선택한 자연수 값을 더하거나 빼도록 한다.

마지막으로 최적화를 수행할 Iteration 갑은 30,000 으로 설정하며, 가장 높은 IOU를 갖는 하이퍼 파라미터 조합이 연속적으로 갱신되지 않는 회수(k)가 500회 이상인 경우 최적화가 완료된 것으로 간주하여 종료하도록 한다. HS 알고리즘의 설정된 파라미터 값들을 정리하면 다음과 같다.


호흡 패턴 인식 결과 영역 병합 및 분할

1D YOLO 신경망의 output 형태는 아래와 같이 tensor의 형태로 출력된다.

호흡 데이터는 일반적인 이미지와 다르게 학습된 패턴들의 연속으로 이루어져 있으므로, 거의 모든 위치에서 Objectness Score 및 Classification 확률값이 높게 나온다. 따라서 1D YOLO를 사용한 output 결과를 시각화하면 다음과 같이 하나의 호흡 패턴 영역 내에서 여러 개의 1D Anchor 결과들이 출력되는 것을 알 수 있다.

하나의 영역 내에서 나타나는 다수의 인식 결과는 하나의 영역으로 병합이 이루어져야 하고, 서로 다른 두 개의 패턴 영역이 겹치는 부분 또는 중간에 빈공간이 존재하는 경우에는 서로 분할되도록 해야 한다. 검출 결과에 대하여 병합 또는 분할은 다음 예시처럼 진행된다.


실험 결과 및 고찰

실험 환경

본 논문은 실험을 위해 벨트형 센서와 UWB 센서를 사용했으며, 각각의 센서들은 PC와 UART 통신을 통해 데이터를 측정할 수 있는 환경으로 구성한다.

 

먼저 UWB 센서의 호흡 데이터에 대한 신뢰도를 검증하기 위해 두 센서를 동시에 활용하여 호흡 데이터를 측정하고, 들숨과 날숨 시 발생되는 호흡 신호가 서로 유사하게 측정되는지 검증한다.

측정 결과 다음과 같이 동일한 패턴으로 호흡 신호가 측정되는 것을 확인할 수 있었으며, 무호흡 ㅜ간에서도 서로 유사한 특징을 나타내는 걸 알 수 있었다.

벨트형 호흡 센서를 사용한 데이터 수집 환경은 센서를 착용하고, 간이 침대에서 5가지 호흡 패턴을 포함하는 호흡 데이터를 수집하였다. 또한 UWB 센서를 사용한 호흡 신호 수집 환경은 아래와 같이 간이침대에 사람이 정자세로 눕고 사람의 흉부로부터 20cm 떨어진 위치에 UWB 센서를 설치하여 5가지 호흡 패턴에 대한 신호를 수집하였다.

호흡 데이터 측정 프로그램을 사용하여 데이터를 수집하며, 하나의 데이터에 일반 호흡, 서호흡, 빈호흡, 무호흡, 움직임 신호가 포함되도록 유도하여 데이터를 수집한다.


학습 및 테스트 데이터 구성

학습 및 테스트를 위한 데이터셋 구성은 5명의 사람에 대하여 벨트형 센서 및 UWB 센서를 같이 사용한다. 한 사람당 각 센서별로 30건씩 총 300개의 호흡 데이터를 수집하였다. 그리고 수집된 호흡 데이터들은 서로 다른 센서를 사용하여 데이터를 수집하였기 때문에 다음 표와 같이 Raw 데이터의 구조가 다르다. 벨트형 센서의 Raw 데이터는 초당 10frame으로 측정되며 프레임마다 1개의 값을 가지는 반면, UWB 센서는 초당 25frame이고 매 프레임마다 660개의 값들이 저장되는 구조다.

서로 다른 구조의 Raw 데이터를 학습하기 위해서는 서로 동일한 구조를 갖도록 해야 한다. 따라서 fps는 더 낮은 값을 갖는 벨트형 호흡 센서에 맞추고, 데이터의 값은 UWB 센서와 동일하게 일반화하여 서로 동일한 구조를 갖도록 한다. 

서로 동일한 구조로 수정된 Raw 데이터는, 본 논문에서 제안한 1D YOLO의 학습을 위해 별도로 구현된 Annotatin Tool을 사용하여 학습 데이터를 구성한다.

이 Annotation tool은 Ground Truth 설정 영역에서 마우스 드래그를 통해 호흡패턴의 영역을 설정할 수 있으며, 영역이 설정되면 labeling 설정 영역에서 중심점 및 영역의 길이 정보가 자동으로 입력된다. 그리고 선택한 영역에 대한 분당 호흡 수가 표시된다. 분당 호흡수는 호흡 신호에 대하여 peak를 계산하고, 설정된 영역의 시간 내 peak의 수에 따라 계산된다. 마지막으로 클래스 번호 정보를 입력 후 add 버튼을 클릭해 호흡 패턴영역에 대한 Ground Truth를 설정한다. 이 작업을 반복해 장시간 호흡 데이터 수집을 수행한다. 모든 labeling이 완료된 후에는 Save 버튼을 클릭해 파일을 저장한다.

Annotation을 통해 생성된 데이터셋은 다음 표와 같으며, 설정한 Ground Truth에 따른 호흡 패턴 별 개수와 데이터의 길이를 나타낸다. 각각의 호흡 데이터는 총 18,000개의 값을 가진다. 이와 같이 600개로 구성된 데이터셋 중에서 400개는 학습에 사용되고, 150개는 검증, 나머지 50개는 테스트 데이터로 사용한다.


실험 및 평가

Harmony Search 기반 최적화 결과

HS 알고리즘을 사용하여 제안하는 1D YOLO의 하이퍼 파라미터들은 HS 파라미터를 사용하여 최적화를 수행하였다. Harmony Memory가 갱신됨에 따라 IOU 정확도 값이 최대인 Harmony가 갱신됨에 따라 증가하는 그래프를 보여준다. 이때, 본 논문에선 최대값의 IOU를 갖는 Harmony가 갱신된 Iteration 위치로부터 k번의 Iteration 동안 갱신되지 않는다면, 최적화가 완료된 것으로 간주한다. 그 결과 4,364번째 Iteration에서 최적화가 종료된다는 것을 알 수 있었다.

또한 최대 IOU 값이 갱신되는 시점에서의 하이퍼 파라미터의 조합과 IOU값은 다음 표와 같이 나타나며, 최적화가 종료된 시점에서 1D Anchor는 74개가 사용됐고, 각각의 1D Anchor 크기들이 HS 알고리즘에 의해 최적화됐다. 


영역 병합 및 분할 결과 IOU 정확도 평가

HS 알고리즘을 사용하여 하이퍼파라미터 최적화가 수행된 1D YOLO 모델은 Test 데이터셋에 대하여 호흡 패턴 검출을 수행하고, 그 검출 결과들에 대해 영역 병합 및 분할 알고리즘으로 처리한다. 그 결과, 아래와 같이 테스트 데이터들의 Ground Truth 영역과 비교하여 불일치 영역 및 IOU 값을 나타냈다. 

이 값은 1D Anchor가 올바르게 패턴 영역을 검출했는지 판단하는 문턱 값이며, 값이 작을수록 하나의 호흡 패턴 영역에서 다수의 검출 결과가 발생할 수 있고 오검출 발생의 확률이 높아진다. 따라서 본 논문에서는 0.8의 비교적 높은 값을 취해 적절한 수의 검출 결과가 나타나도록 한다. 

Ground Truth와 비교에 따른 불일치 영역들은 대부분 호흡 패턴이 변하는 구간에서 주로 발생하며, 특히 움직임 패턴 영역 신호가 다른 호흡 패턴과 유사하게 나타나는 경우에는 호흡 패턴으로 인식되어 불일치 영역이 크게 발생하는 경우가 있었다.


기존 방법과의 정확도 및 속도 비교

본 논문에서 제안한 1D YOLO 기반 검출 방법의 정확도와 속도 비교는 다음과 같이 50개의 테스트 데이터에 대하여 기존 검출 방법인 1D CNN과 DNN을 적용한 영역 분할 결과와 제안하는 방법의 영역 분할 결과를 Ground Truth와 IOU 정확도를 비교한다. 이들은 사전 학습된 모델을 사용하였다. 그리고 각각의 방법에 대해 입력 데이터로부터 결과를 계산하는 데 소요된 시간을 측정해 제안하는 방법과 비교한다.

본 논문에서 제안한 1D YOLO 기반 영역 분할 결과와 기존 방법들의 분할 결과는 전체 50개의 테스트 데이터 중 10개의 샘플 결과를 시각화 하여 나타냈었다. 패턴 벼 각 결과를 관찰했을 때, 제안하는 방법이 기존 방법보다 더 적은 불일치 영역을 나타낸다. 또한 특정 패턴 영역의 일부를 Ground Truth와 완전히 패턴으로 인식하는 문제도 발생했다.

50개의 테스트 데이터에 대해 제안하는 방법과 기존 방법의 평균 IOU 결과는 다음 표와 같으며, 본 논문에서 제안한 방법이 기존 방법보다 약 12.4% (1D CNN), 19.7% (DNN) 더 높은 정확도를 나타냈다.

각각의 방법에 대한 패턴 인식 결과는 confusion matrix로 나타내었으며, 영역의 일치 정도를 평가하는 IOU와 다르게 패턴 인식의 정확도를 평가하므로 더 높은 결과 값을 보인다. 그 결과 기존 방법들은 window 내 다중 특징 문제로 제안하는 방법보다 낮은 인식 결과가 나타났다.

속도의 비교평가는 다음 표와 같이 기존 방법의 Window Sliding의 값 변화에 따른 결과 산출 속도와 제안하는 방법의 속도를 비교하였으며, 기존 방법보다 최대 6.7배 빠른 속도를 보였다. 이는 기존 방법의 Window Sliding Step마다 검출 영역들이 발생하고, 이를 분할 및 병합하는데 많은 시간이 소요되는 것으로 분석된다. 하지만 본 논문에서 제안하는 방법은 1D YOLO의 1D Anchor를 기반으로 적절한 수의 검출 영역을 나타내므로 기존의 방법보다 뛰어나다.


결론

센서 기술이 점점 정교해짐에 따라 인공지능 기술과 접목되면서 기술의 급성장이 이뤄지고 있다. 이로 인해 의료 및 헬스케어 분야에서는 센서를 통해 측정된 생체 신호를 분석하기 위해 인공지능 기술과 융합한 연구들이 활발하게 진행되고 있다. 최근에는 센서로부터 추출한 생체 신호의 특정 패턴을 인식하는 연구들이 진행되고있다. 

하지만 기존의 연구들은 무호흡에 대한 단순 Classification 연구들이 주로 이루어졌으며, 실제로 호흡 정보 분석에 활용도가 높은 정보를 제공하기 위해서는 장시간의 호흡 데이터에서 여러 가지 호흡 패턴별 빈도, 지속정도 등의 정보가 제공되어야 한다. 다라서 이러한 정보들을 제공하기 위해 기존 방법에서 보완해야 할 방안은 다음과 같다.

  • 입력 데이터의 크기에 영향을 받지 않고, 장시간의 호흡 데이터에 대하여 호흡 패턴별 영역 분리를 통해 각 패턴의 빈도 및 지속정도 등의 정보를 생성할 수 있는 신경망 모델 또는 알고리즘 구현
  • 호흡 신호 데이터의 특성에 맞게 신경망의 하이퍼 파라미터를 최적화하여 결과의 정확도를 높일 수 있는 방법의 구현

본 논문에서는 위의 방안들을 고려하여 단순한 Classification 뿐만이 아닌 장시간 동안 측정된 호흡 데이터에 대해 호흡 패턴 영역을 분할할 수 있는 신경망을 제안하였다. 이러한 신경망을 설계하기 위해 CNN 기반 다중 객체 검출 방법인 YOLO를 사용하였으며, 1차원 호흡 데이터의 패턴 영역 검출이 가능한 1D YOLO 모델을 설계하였다. 

제안한 모델을 통해 검출된 호흡 패턴 영역들은 병합 및 분할 알고리즘을 적용하여 전체 호흡 데이터에서 호흡 패턴의 빈도, 지속 정도 등의 정보를 분석할 수 있도록 했다. 특히 HS 알고리즘을 적용해 주요 하이퍼 파라미터인 1D Anchor의 크기와 개수를 최적화 하여 성능을 향상 시켰다.

학습 및 테스트를 위해 사용된 데이터는 일반 성인 5명을 대상으로 벨트형 센서 및 UWB 센서를 사용하여 사람마다 각 센서 별 30분 길이의 데이터를 30건씩 측정하여 한 사람당 60건, 총 300개의 데이터를 확보하였다. 각 데이터는 일반 호흡, 느린 호흡, 빠른 호흡, 무호흡, 움직임 총 5개의 패턴을 모두 포함하도록 유도하여 데이터를 측정하였다.

본 논문에서 제안하는 방법의 성능 평가는 기존 패턴인식 알고리즘인 1D CNN, DNN에 대하여 Window Sliding 방식으로 호흡 패턴 영역을 검출하도록 하고, 검출 결과를 제안하는 영역 병합 알고리즘으로 병합하여 Ground Truth와의 IOU 정확도와 결과 도출까지 소요되는 시간을 비교하였다. 그 결과 본 논문에서 제안하는 방법은 1D CNN보다는 약 12.4%의 정확도 향상과 6.7배의 속도 향상, DNN보다는 19.7%의 정확도 향상과 3.9배의 속도 향상을 확인할 수 있었다.

향후 연구 과제로는, 제안한 방법이 실제 수면다원검사의 호흡 데이터 측정을 위한 임상 실험을 통해 유효성 입증과 제한점을 보완하기 위한 연구들이 수행되어야 한다. 에상되는 제한점으로는 특수한 환경에서의 호흡 패턴 인식의 정확도 저하, 호흡 패턴 영역 분할의 정확도 저하 등으로 예상된다. 이런 제한점을 해결하기 위해 신경망 내에서 1D 데이터의 특징 패턴 영역을 인식하고, 분할까지 수행할 수 있는 의미론적 분할 형태의 신경망으로 개선하는 연구가 필요하다.

이런 형태의 신경망으로 개선되는 경우, 호흡 패턴뿐만 아니라 폭넓은 분야에서의 Signal 데이터에 대한 패턴 인식 및 영역 분할이 가능한 범용적인 신경망으로 활용될 수 있을 것으로 기대한다.