스마트 인재개발원/3차프로젝트

(광주인공지능학원) Skeleton Vector Information and RNN Learning Algorithm 공부하기

행동 인식은 데이터를 통해 인간의 행동을 인식하는 기술로서 비디오 감시 시스템을 통한 위험 행동과 같은 어플리케이션에 활용 되어 질 수 있다. 기존의 행동 인식 알고리즘은 2차원 카메라를 통한 영상이나 다중모드 센서, 멀티 뷰와 같은 장비를 이용한 방법을 사용하거나 3D 장비를 이용하여 이루어져 왔다. 2차원 데이터를 사용한 경우 3차원 공간의 행위 인식에서는 가려짐과 같은 현상으로 낮은 인식율을 보였고 다른 방법은 복잡한 장비의 구성이나 고가의 추가적인 장비로 인한 어려움이 많았다. 본 논문은 RGB와 Depth 정보만을 이용하여 추가적인 장비 없이 CCTV 영상만으로 인간의 행동을 인식하는 방법을 제안한다. 먼저 RGB 영상에서 스켈레톤 추출 알고리즘을 적용하여 관절과 신체부위의 포인트를 추출한다. 이를 식을 적용하여 변위 벡터와 관계 벡터를 포함한 벡터로 변형한 후 RNN 모델을 통하여 연속된 벡터 데이터를 학습한다. 학습된 모델을 다양한 데이터 세트에 적용하여 행동 인식 정확도를 확인한 결과 2차원 정보만으로 3차원 정보를 이용한 기존의 알고리즘과 유사한 성능을 입증할 수 있었다.

사람마다 같은 행동임에도 키와 신체 부위별 크기에 따 른 차이에 의해 추출된 스켈레톤 특징은 사람마다 다른 값 을 가진다. 각 행동의 공통된 값을 얻기 위해 Diago et al(2017)이 제안한 방법[6]을 적용하여 관절과 부위별 포인 트를 관계 벡터와 변위 벡터값으로 변형한다. 스켈레톤 추 출 알고리즘의 포인트 수와 Diago et al의 사람의 포인트 수가 다르므로 이를 반영하여 관계 벡터와 변위 벡터 값으 로 변환

식 (1)에서 s는 영상의 프레임 번호를 의미하며 τ는 영상 의 전체 프레임 수이다. 는 스켈레톤 포인트의 i번째 (x, y) 좌표를 의미한다. 변위 벡터의 경우 식 1을 적용하여 구 한 나중의 프레임에서 f1, f2, f3의 부위별 위치의 (x1, y1) 값과 먼저 프레임에서 f1, f2, f3 부위별 위치 (x0, y0) 값의 차를 구하고(x1-x0, y1-y0) 사람의 신체 부위별 크기 차이 를 고려하여 값을 구한다. D(1, 4, 7, 12, 13)의 경우 그림 2에서 1(머리와 목 연결 선), 4(오른쪽 손 과 오른쪽 팔꿈치 연결선), 7(왼쪽 손과 왼쪽 팔꿈치 연결선), 12(오른쪽 무릎 과 오른쪽 발 연결선), 13(왼쪽 무릎과 왼쪽 발 연결선)의 거리의 합을 의미한다

 

각 프레임마다 사람의 스켈레톤에서 프레임 당 50개의 벡터로 변환하고 연속된 프레임을 모아서 데이터를 만들었 다. 데이터를 training data와 validation data, test data는 4:1:1로 나누어 RNN(recurrent Neural Network)의 학습에 사용하였다. RNN 구조는 2층의 BiGRU(Bidrectional gated recurrent unit)[7]와 학습 성능의 향상을 위해 Batch Normalization[8], 50%의 DropOut[9]을 적용하였다. GRU의 경우 별 도의 파라미터를 둠으로써 입력 frame의 수만큼, 많은 층의 back propagation시 loss에 대한 weight의 변화 값에 따른 gradient vanishing, exploding 현상을 방지함으로써 학습이 잘 이루어지게 한다. 그리고 Batch Normaliza- tion의 경우 입력데이터를 평균이 0, 분산이 1인 데이터 분포로 바꾸어 균일한 분포의 데이터로 바꾸어 loss 함수에서 global mini- mum으로의 수렴을 도와 학습이 잘 이루어지도록 한다

 

 

SYSU 3D Human-Object Interaction Set 의 결과 값으로 정확도가 다소 낮은 듯 하나 다른 알고리즘 의 경우 데이터 세트의 RGB 영상뿐만 아니라 깊이 정보와 스켈레톤 정보를 모두 포함하여 행동 인식의 정확도를 구 하 것이고 본 논문에서 제안한 방법은 RGB 영상만을 사용 하여 행동 인식 정확도를 구한 것이지만 수치상 비슷한 결 과가 나왔으므로 의미가 있다고 본다.

 

그리고 학습의 성능을 높이기 위해 활성화 함수로 SELU를 적용하고 데이터 증대를 적용하여 학습을 하고 클래스의 분포를 SVM을 적용하여 얻은 결과 를 최종클래스로 지정하여 행동 인식 분류 성능을 높일 수 있었다. 데이터 세트에 스켈레톤 정보를 같이 활용한 기존 의 행동 인식 알고리즘과 비교하면 더 우수하거나 비슷한 성능을 지님을 확인할 수 있었다. 본 논문의 알고리즘의 경 우 벡터의 변화를 사용함으로써 관점에 따른 영상 내 행동 인식에 장점이 있으나 한 영상 내 여러 가지 행동을 하거나 여러 사람의 행동을 인식하는데 한계점을 지닌다. 앞으로 이러한 점을 보완한다면 다양한 영상 내 행동 인식에 적용 할 수 있을 것이다.

"스마트인재개발원에서 진행된 수업내용입니다"

https://www.smhrd.or.kr/

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr