Ⅰ. 서론
최근 코로나바이러스감염증-19의 유행으로 인하여 비대면 활동이 증가하는 추세이다. 비대면 활동이 증가함에 따라서 실내에서의 사람 행동 인식 (HAR; human activity recognition) 시스템 연구가 활발히 진행되고 있다 [1]-[5]. 이러한 HAR 시스템에는 레이다, IMU (inertial measurement unit) 센서, 가속도 센서, 카메라, 적외선 센서 등 다양한 센서가 사용된다 [6]-[8]. 하지만 IMU 센서나 가속도 센서는 사용자가 몸에 부착해야 한다는 것이 단점이며, 카메라는 실내에서 사용할 경우 사생활 침해 문제가 발생할 수 있고 어두운 환경에서는 인식률이 떨어진다는 단점이 있다 [9]. 이와 비교하여 레이다는 사용자의 몸에 부착하지 않아도 사용할 수 있으며, 사생활 침해 문제가 발생하지 않고, 밝기 등 주변 환경의 영향도 적게 받는다. 특히, CW (continuous wave) 레이다의 경우 FMCW (frequency modulated continuous wave) 레이다와 비교하여 경량이며 저가 구현이 가능한 장점을 갖는다 [10]. 따라서, CW 레이다는 사생활 보호 및 편의성, 비용, 성능 측면에서 실내 환경에서의 HAR 시스템에 적합하다.
HAR 시스템에는 분류를 위하여 CNN (convolutional neural network), k-NN (k-nearest neighbor), SVM (support vector machine) 등 다양한 기계 학습 (machine learning) 및 인공 신경망 (neural network) 알고리즘이 사용된다 [11]-[13]. 레이다를 사용하는 HAR 시스템의 경우, 스펙트로그램 (spectrogram)을 분류하는 것이 목적이므로 이미지 인식 및 분류에 유용한 CNN을 적용하는 것이 적합하다. 하지만, CNN의 경우 분류 성능이 좋은 만큼 연산 복잡도가 높다는 것이 단점이 존재한다 [14]. 이를 보완하기 위해서 BNN (binarized neural network)이 사용된다. BNN은 CNN의 입력 데이터와 연산에 사용되는 다양한 parameter를 binarize하여 연산 복잡도와 메모리 사용량을 크게 감소시킬 수 있다 [15].
이에, 본 논문에서는 CW 레이다를 기반으로 실내에서의 9가지 운동 동작을 인식 및 분류하는 HAR 시스템을 제안한다. 제안된 시스템은 CW 레이다로부터 신호를 수신하여 pre-processing 한 후 BNN을 이용하여 이를 분류하고, post-processing을 거쳐 분류 결과를 사용자에게 보여준다. Pre-processing과 post-processing 과정은 시스템의 경량화 및 소형화를 통해서 휴대성을 높이기 위하여 Raspberry Pi를 사용해서 구현하였다. 또한, ROI (region of interest)를 추출하여 BNN의 분류 정확도를 높이고, 운동 횟수를 세기 위해서 pre-processing 과정에서 적용되는 운동 횟수 counting 알고리즘을 제안하였다.
또한, 제안된 BNN 분류기는 다양한 모델 실험을 통해서 분류 성능 및 parameter 크기를 고려하여 최적의 구조로 설계되었으며, 연산의 가속화를 위하여 FPGA (field programmable gate array)를 사용하여 가속 하드웨어를 설계 및 구현하였다.
본 논문의 구성은 다음과 같다. Ⅱ장에서는 CW 레이다 신호 처리에 사용되는 STFT (short time Fourier transform)과 분류를 위한 CNN 및 BNN 기법을 설명하고, Ⅲ장에서는 본 논문에서 제안하는 HAR 시스템의 개요에 대해서 설명한다. Ⅳ장에서는 시스템의 분류 성능에 대한 평가 및 실험 결과를 제시하고, Ⅴ장에서는 시스템의 설계 및 구현과 관련된 내용을 설명한다. 마지막으로 Ⅵ장에서 본 논문의 결론을 맺는다.
Ⅱ. Backgrounds
2-1 STFT
FFT (fast Fourier transform) 연산을 사용하면 시간 영역에서 주파수 영역으로 데이터를 변환할 수 있다. 하지만, FFT 연산은 전체 시간 영역에 대한 주파수를 계산하기 때문에 시간에 따라서 주파수가 변하는 데이터를 처리하기에 부적합하다. 이를 보완하기 위해 샘플링된 신호에 윈도우 함수를 곱하여 신호를 일정한 시간 간격으로 나누고, 이 짧은 간격의 신호에 각각 FFT를 수행하는 STFT를 사용한다. 이를 통하여 짧은 시간 영역에 대한 주파수 정보를 얻을 수 있다.
\(\begin{aligned} \operatorname{STFT} & x[n](m, w) \equiv X(m, w) \\ = & \sum_{n=-\infty}^{\infty} x[n] w[n-m] e^{-j w n}\end{aligned}\) (1)
2-2 CNN
CNN은 1998년 LeCun의 LeNet-5 network에서 시작되어 현재까지 꾸준히 발전해왔다 [16]. CNN은 특징을 추출하는 convolution layer와 데이터를 분류하는 FCL (fully connected layer)로 구성되며 이미지 인식 및 분류에 유용하다. Convolution layer에서는 학습된 weight로 이루어진 필터를 이동시키며 입력 데이터와 convolution 연산을 통해서 입력 데이터의 특징을 추출한다. FCL에서는 앞서 추출된 특징을 바탕으로 완전 연결된 뉴런들과의 연산을 통해서 입력 데이터가 속한 class를 알아낸다.
2-3 BNN
BNN은 인공 신경망의 한 종류로, 학습 및 분류 과정에서 입력 데이터와 parameter가 모두 binarize 되어 연산 된다는 것이 특징이다. BNN은 특징을 추출하는 convolution layer와 데이터를 분류하는 FCL layer로 구성된다는 점에서 CNN과 유사하지만, CNN의 arithmetic operation 대부분이 BNN에서는 데이터와 parameter의 binarize 처리를 통하여 bit-wise operation으로 대체된다. 따라서 CNN과 비교하여 BNN은 메모리 접근 횟수 및 메모리 사용량을 줄일 수 있고, 연산 속도가 빨라 시간 복잡도를 낮출 수 있으며 전력 효율이 높다는 것이 장점이다 [15].
Ⅲ. 제안된 시스템의 개요
3-1 시스템 구조
제안된 시스템의 구조는 그림 1과 같다. CW 레이다에서 USB UART를 인터페이스를 통해서 Raspberry Pi로 수신한 신호를 STFT 처리한 후 운동 횟수 counting 알고리즘을 적용하여 운동 횟수와 feature map을 추출한다. 이 feature map은 scaling과 sign 함수 처리 후 SPI (serial peripheral interface)를 통하여 FPGA로 전달된다. FPGA에서는 전달된 feature map에 대해 미리 학습시켜 저장해놓은 parameter를 사용하여 BNN 분류 연산이 수행된다. BNN 분류기의 연산이 완료되면 연산 결과는 다시 SPI를 통하여 Raspberry Pi로 전달되고, Raspberry Pi에서 softmax 함수를 처리하여 feature map이 속한 class를 분류한다. 마지막으로 분류 결과와 운동 횟수를 모니터에 display한다.
그림 1. 제안된 HAR 시스템의 구조도
Fig. 1. Structure of the proposed HAR system.
3-2 Dataset 정의
제안된 시스템에서 사용한 CW 레이다는 Infenion Tech사의 Sense2Go development kit이다. 레이다의 중심주파수는 24 GHz이고, 인식 범위는 horizontal 29 °, vertical 80 °이다. 레이다의 인식 범위를 고려하여 대상과 레이다 사이의 수평 간격은 1 m, 벽과 레이다 사이의 각은 45 °로 설정하였으며, 레이다의 높이는 168 cm로 설정하였다. Dataset의 취득 환경은 실내 공간으로 설정하였다.
운동 동작은 bicycle crunch, high kick, high knee jack, hollow rock, leg raise, lunge, side lateral raise, sit up, squat 총 9가지로 하체, 상체, 복근 등 신체의 다양한 부분을 포함하도록 선정하였다. 그림 2는 각 운동 동작의 자세이고, 그림 3은 각 운동 동작의 스펙트로그램이다.
그림 2. 9가지 운동 동작의 예시
Fig. 2. Examples of 9 exercise postures.
그림 3. 9가지 운동 동작의 스펙트로그램
Fig. 3. Spectrograms for 9 exercise postures.
3-3 Signal Pre-Processing
CW 레이다로부터 3000 Hz로 샘플링된 I (In-phase), Q (Quadrature) 데이터를 USB UART 통신을 통해 Raspberry Pi가 수신한다. 이 데이터에 Hamming windowing과 128 point STFT를 수행하였다. 이후 DC-offset을 제거하고, DC 주파수를 기준으로 상하 10 point씩 20 point 크기의 데이터가 추출된다. 또한 시간 축에 대하여 전체 운동 시간을 단일 운동 동작 시간으로 분리하고, 동작 횟수를 세기 위해서 제안한 운동 횟수 counting 알고리즘을 적용하였다.
제안된 운동 횟수 counting 알고리즘은 각 운동 동작의 사이 구간에서는 도플러 주파수 편이가 거의 없다는 점을 이용하여 그림 4의 두 번째 그림과 같이 전체 운동 시간에 대한 스펙트로그램에서 시간 축의 누적 합을 구한 후, n+1 열과 n 열의 차이가 threshold보다 작으면 쉬는 구간으로 인식한다. 이후 그림 4의 세 번째 그림과 같이 쉬는 구간을 기준으로 시간 축에서 20 point 크기로 분리하여 최종적으로 20 point * 20 point 크기의 단일 운동 동작에 대한 스펙트로그램을 얻는다. 이때 분리된 스펙트로그램의 개수를 세어 운동 횟수를 알아낸다.
그림 4. 제안된 운동 횟수 counting 알고리즘의 예시
Fig. 4. Example of the proposed exercise counting algorithm.
신경망 학습의 성능 저하를 막기 위해서 추출된 단일 운동 동작 스펙트로그램을 standard scaling 방식으로 정규화하였다. Standard scaling은 식 (2)와 같이 입력 데이터의 분포를 파악한 후 표준정규분포를 따르는 z-score에 대응시킨다. 식(2)에서 μ는 데이터의 평균이며, δ는 데이터의 표준편차이다.
\(\begin{aligned}z=\frac{(x-\mu)}{\delta}\end{aligned}\) (2)
정규화한 스펙트로그램을 BNN의 입력 데이터로 사용하기 위해서 식 (3)과 같이 sign 함수를 적용한 후 0을 –1로 변환하여 1과 –1로 binarize 하였으며, FPGA에서 BNN 연산을 처리하기 위해서 –1을 0으로 변환하여 결과적으로 1과 0으로 binarize 하였다.
\(\begin{aligned}\operatorname{sgn} x=\left\{\begin{array}{ll}1 & x>0 \\ 0 & x=1 \\ -1 & x<0\end{array}\right.\end{aligned}\) (3)
3-4 Signal Post-Processing
Raspberry Pi에서 FPGA의 BNN 분류기 연산 결과인 9개의 출력 데이터에 식 (4)와 같은 softmax 함수를 적용하여 스펙트로그램이 속한 class를 알아낸다.
\(\begin{aligned}\begin{array}{l}\sigma(z)_{i}=\frac{e^{z_{i}}}{\sum_{j=1}^{K} e^{z_{i}}} \\ (i=1, \ldots, K),\left(z_{i}=z_{1}, \ldots, z_{k}\right)\end{array}\end{aligned}\) (4)
전체 운동 횟수만큼 BNN 연산과 softmax 함수 처리 과정을 반복한 후 최종적으로 운동 동작이 속한 class와 운동 횟수를 모니터에 display 한다.
Ⅳ. 제안된 시스템의 분류 성능 평가
4-1 운동 횟수 counting 알고리즘의 성능 평가
제안된 운동 횟수 counting 알고리즘을 적용하여 9개의 운동 동작 class 당 100개의 임의 선택된 데이터로 실험한 결과 99.9%의 추출률을 보였다.
4-2 BNN 분류 성능 평가
CNN 대신 메모리 사용과 전력 효율, 연산 속도 및 복잡도 측면에서 유리한 BNN을 사용하기 위하여 표 1과 같이 여러 가지 CNN 구조에 대해서 입력 데이터를 quantization 하는 실험을 진행하였다. 실험 결과 floating 입력 데이터를 사용한 경우와 비교하여 입력 데이터를 quantization 한 경우에도 분류 성능이 크게 저하 되지 않는 것을 확인하였다.
표 1. CNN 입력 데이터 quantization 실험 결과
Table 1. Experiment result of CNN with quantized input data.
BNN 분류기의 학습 및 검증을 위해서 각 class 당 약 950개, 총 8,460개의 데이터를 취득하였으며, 학습을 위한 training set으로 전체 dataset의 70%인 5,922개, 검증을 위한 test set으로 전체 dataset의 30%인 2,538개의 데이터를 사용하였다. 학습은 adam optimizer, cross entropy loss function을 사용하였고, epoch는 200, batch size는 64, learning rate는 0, 40, 80, 100, 120, 140 epoch마다 0.005, 0.001, 0.0005, 0.0001, 0.00005, 0.00001로 변경하며 진행하였다.
여러 가지 CNN과 BNN 모델 구조에 대해서 표 2와 같이 실험을 진행하였다. 실험 결과 CNN과 비교했을 때 분류기의 성능이 크게 저하되지 않으며, 분류기의 연산에 사용되는 전체 parameter 크기가 FPGA에서의 연산 처리에 적절한지 고려하여 최종적으로 그림 5와 같이 4 convolution layer, 2 FCL 구조의 BNN 분류기를 선택하였다.
표 2. CNN과 BNN 구조별 분류 성능
Table 2. Accuracy for various CNN, BNN architecture.
그림 5. 제안된 BNN 분류기의 구조
Fig. 5. Structure of proposed BNN classifier.
Ⅴ. 제안된 시스템의 구조 설계 및 구현
5-1 Software 설계 및 구현
본 논문에서 제안된 HAR 시스템의 소프트웨어는 저비용 고성능의 ARM architecture 기반 SBC (single board computer)인 Raspberry Pi Foundation의 Raspberry Pi 4 Model B에 Python을 사용하여 구현하였다. 제안된 HAR 시스템에서 설계 및 구현한 소프트웨어는 CW 레이다 통신 모듈, 신호 pre-processing 모듈, FPGA 통신 모듈, 신호 post-processing 모듈, 분류 결과 출력 모듈로 구성된다. 또한, 하드웨어로 구현한 BNN 분류기와 연산 속도를 비교하기 위하여 소프트웨어로 구현된 BNN 분류기를 설계하였다.
5-2 Hardware 설계 및 구현
본 논문에서 제안된 HAR 시스템의 BNN 연산을 위한 하드웨어 구조는 그림 6과 같으며, 크게 Raspberry Pi와 연결된 SPI block, BNN 연산을 처리하는 BNN block으로 구분된다. 두 가지 block은 dual-port RAM (random access memory)을 통해서 데이터를 공유하며, Raspberry Pi와 FPGA가 개별 clock을 사용하여 독립적으로 RAM에 접근할 수 있도록 설계하였다.
그림 6. 제안된 BNN 분류기의 블록도
Fig. 6. Block diagram of the proposed BNN classifier.
SPI block은 Raspberry Pi와 FPGA의 SPI 통신을 통한 데이터 교환을 목적으로 설계되었다. SPI 통신을 관리하는 모듈, RAM에 데이터를 작성하거나 읽기 위한 read/write controller 모듈, dual-port RAM에 Raspberry Pi와 FPGA의 BNN block이 동시에 접근하는 것을 막기 위한 FLAG로 구성된다.
BNN block은 4개의 convolution layer와 2개의 FCL layer로 구성되며, XNOR pop-count 연산을 기반으로 설계하였다. 모든 convolution layer와 첫 번째 FCL layer는 두 개의 RAM을 사용하여 연결하였으며, 첫 번째와 두 번째 FCL layer의 연결은 RAM의 사용 없이 구현하였다.
설계한 BNN 분류기는 Verilog HDL로 작성하였으며, Altera Cyclone Ⅴ 5CSEMA5F31C6N FPGA를 사용하여 검증 및 구현하였다. FPGA 구현 결과, 표 3과 같이 7,673개의 logic과 12,105개의 register, 18.7 Kb의 메모리를 사용하여 구현되었으며, 최대 354.23 MHz 동작 주파수에서 연산 가능한 것을 확인하였다. 또한, 그림 9와 같은 환경에서 1개의 입력 데이터에 대한 BNN 분류기의 평균 연산 처리 속도는 소프트웨어로 구현한 경우 7161.05 ms가 소요되었고, FPGA로 구현한 경우 2.35 ms가 소요되어 99.97% 감소한 것을 확인하였다.
그림 7. BNN 분류기의 두 번째 convolution layer 블록도
Fig. 7. Block diagram of the second convolution layer.
그림 8. BNN 분류기의 첫 번째 FCL 블록도
Fig. 8. Block diagram of the first FCL.
그림 9. 제안된 HAR 시스템의 검증 환경
Fig. 9. Verification environment of the proposed HAR system.
표 3. 제안된 HAR 시스템의 구현 결과
Table 3. Implementation results of the proposed HAR system.
Ⅵ. 결론
본 논문에서는 CW 레이다와 BNN을 기반으로 한 사람 행동 인식 시스템을 제안하였다. 실내 환경에서의 9개 운동 동작을 정의하였고, CW 레이다 신호처리 과정에서 운동 횟수 counting 알고리즘을 제안하였다. 연산의 가속화를 위해서 BNN 분류기를 가속 하드웨어 구조로 설계하였으며, software 구현 대비 연산 속도가 99.97% 향상된 것을 확인하였다.
Acknowledgments
본 논문은 2021년도 정부 (과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행되었으며 (No. 2019-0-00056, 2020-0-00201), CAD tool은 IDEC에 의해 지원되었음.
참고문헌
- R. J. Javier, Y. Kim, "Application of linear predictive coding for human activity classification," IEEE Geoscience and Remote Sensing Letters, Vol. 11, No. 10, pp. 1831-1834, Oct. 2014. https://doi.org/10.1109/LGRS.2014.2311819
- I. Alnujaim, D. Oh, Y. Kim, "Generative adversarial networks for classification of micro-doppler signatures of human activity," IEEE Geoscience and Remote Sensing Letters, Vol. 17, No. 3, pp. 396-400, Mar. 2020. https://doi.org/10.1109/lgrs.2019.2919770
- Y. W. Kim, H. Ling, "Human activity classification based on micro-doppler signatures using an artificial neural network," IEEE Antennas and Propagation Society International Symposium, San Diego, CA, USA, pp. 1-4, 2008.
- S. M. Lee, S. M. Yoon, H. R. Cho, "Human activity recognition from accelerator data using convolutional neural network," IEEE International Conference on Big Data and Smart Computing (BigComp), Jeju, Korea (South), pp. 131-134, 2017.
- F. Luo, S. Poslad, E. Bodanese, "Kitchen activity detection for healthcare using a low-power radar-enabled sensor network," ICC 2019 - 2019 IEEE International Conference on Communications (ICC), Shanghai, China, pp. 1-7, 2019.
- D. Yang, J. Huang, X. Tu, G. Ding, T. Shen, X. Xiao, "A Wearable Activity Recognition Device Using Air-Pressure and IMU Sensors," IEEE Access, Vol. 7, pp. 6611-6621, Dec. 2018. https://doi.org/10.1109/ACCESS.2018.2890004
- J. G. Cho, "Human activity recognition using sensor fusion and kernel discriminant analysis on smartphones," Journal of the Korea Convergence Society, Vol. 11, No. 5, pp. 9-17, May. 2020. https://doi.org/10.15207/JKCS.2020.11.5.009
- J. H. Suk, J. D. Jeon, C. G. Lyuh, "State-of-the-art on gesture sensing technology based on infrared proximity sensor," The Optical Journal, Vol. 161, pp. 58-73, Jan. 2016.
- E. H. Yoo, "Online privacy, technologies, and perceived risk," The Journal of Social Science, Vol. 25, No. 2, pp. 82-100, Jun. 2018. https://doi.org/10.46415/jss.2018.06.25.2.82
- K. J. Baik, B. J. Jang, "Hand gesture classification using multiple doppler radar and machine learning," The Journal of Korean Institute of Electromagnetic Engineering and Science, Vol. 28, No. 1, pp. 33-41, Jan. 2017. https://doi.org/10.5515/KJKIEES.2017.28.1.33
- M. Zeng, L. T. Nguyen, B. Yu, O. J. Mengshoel, J. Zhu, P. Wu, J. Zhang, "Convolutional neural networks for human activity recognition using mobile sensors," 6th International Conference on Mobile Computing, Applications and Services, Austin TX USA, pp. 197-205, Nov. 2014.
- A. Tharwat, H. Mahdi, M. Elhoseny, A. E. Hassanien, "Recognizing human activity in mobile crowdsensing environment using optimized k-NN algorithm," Expert Systems with Applications, Vol. 107, pp. 32-44, Oct. 2018. https://doi.org/10.1016/j.eswa.2018.04.017
- D. H. Jang, H. Kim, Y. H. Jung, "Design and implementation of human-detecting radar system for indoor security applications," The Institute of Korean Electrical and Electronics Engineers, Vol. 24, No. 3, pp. 783-790, Sep. 2020.
- Q. Zhang, M. Zhang, T. Chen, Z. Sun, Y. Ma, B. Yu, "Recent advances in convolutional neural network acceleration," Neurocomputing, Vol. 323, pp. 37-51, Jan. 2019. https://doi.org/10.1016/j.neucom.2018.09.038
- M. Courbariaux, I. Hubara, D. Soudry, R. E. Yaniv, Y. Bengio, (2016, March). Binarized neural networks: Training deep neural networks with weights and activations constrained to +1 or -1. arXiv [Online]. Available: https://arxiv.org/abs/1602.02830.
- Y. Lecun, L. Bottou, Y. Bengio, P. Haffner, "Gradient-based learning applied to document recognition," Proceedings of the IEEE, Vol. 86, No. 11, pp. 2278-2324, Nov. 1998. https://doi.org/10.1109/5.726791