검색결과 리스트
글
모션 증폭(Motion Magnification)
사람들은 훌륭한 눈을 갖고 있습니다. 특정한 물체의 변화를 감지하고 이를 감지할 수 있는 능력을 충분히 갖고 있습니다. 그럼에도 바람에 의한 건물의 흔들림 혹은 사람의 표정과 같이 미세한 변화를 탐지하는 것은 상당히 어렵고 실제로 이를 맨눈으로 분별하는 사람은 거의 손에 꼽을 정도로 없으리라 생각합니다.
위 사진을 보았을 때 여러분께서는 그네를 타고 움직이는 모습을 확실하게 확인하실 수 있습니다. 다음에는 사진을 한 번 볼까요?
혹시 이전 사진과의 차이점을 발견하셨나요? 만약 차이점을 찾지 못하셨더라도 걱정하지 않으셔도 됩니다. 이전의 사진에 익숙해져 차이를 찾는 것이 상당히 어려우실 수 있습니다.
위의 사진들에서 보신바와 같이 그네를 탄 사람처럼 움직임에 큰 변화가 있을 경우 우리는 이를 쉽게 파악할 수 있습니다. 그러나 그네를 지탱하는 부분과 같이 움직임이 매우 작을 때엔 이를 인지하는 것 조차 어렵습니다. 이번 포스팅에서 소개해드릴 모션 증폭(Motion Magnification)은 미세한 움직임을 말 그대로 증폭시켜 그네를 지탱하는 부분이 움직였음을 사진을 통해 파악할 수 있게 해주는 기술입니다. 그렇다면 이러한 모션 증폭 기술은 어떻게 해당 부분의 변화를 파악하고 이를 나타낼 수 있는 것일까요?
연구 배경
노후화된 설비를 점검할 때 문제를 분석하기 위해 진동감지 센서를 부착하거나 초음파를 측정 하는 등의 방법으로 정밀하게 분석하는 방법들이 있습니다. 이러한 방법을 사용할 경우 원인을 직접적으로 분석하므로 매우 좋은 방법이라 할 수 있습니다. 그러나 크기가 큰 건물과 같은 거대한 설비를 분석하기 위해서는 상당히 많은 양의 센서가 필요하며 초음파 측정 또한 각 위치별로 수행하에는 물리적, 시간적 비용이 발생하기 마련입니다.
모션 증폭은 이러한 각종 장비를 사용하지 않고도 카메라 기반이 시각 정보를 통해 촬영된 영상에서 이미지의 미세한 변화를 분석하고 이를 이미지에 표시함으로서 사람의 눈으로 변화를 확인할 수 있도록 하는 것을 목표로 하고 있습니다.
동작 원리
영상에서 작은 모션을 찾아낸 후 이를 증폭시키기 위해 기준 프레임(Reference frame)으로부터 관측된 픽셀 강도의 변화로부터 입력 영상의 궤적(Trajectory)을 찾아내 이를 이미지에 반영하는 것을 목표로 합니다. 이를 위해 다음과 같은 5가지 과정이 적용됩니다.
1. 영상 준비
모션 증폭 알고리즘을 적용하기 위해서는 영상을 촬영하는 카메라가 특정 시점에 지속적으로 고정되어 있어야 합니다. 만약 카메라가 진동하거나 움직이게 된다면 카메라에 촬영된 물체가 아닌 카메라의 떨림이 적용될 수 있기 때문이지요.
영상의 노출 변화에 의해 발생되는 밝기의 변화를 보정하고 움직임을 완벽하게 고정시킨다면 모션 분석의 준비는 끝납니다.
2. 특징점 궤적 클러스터 분석
입력된 영상의 이미지를 비교하여 미묘한 변화가 발생한 부분을 분석하여 특징점의 궤도를 분석하고 이동 경향이 같은 특징점을 하나의 클러스터로 분석합니다,
3. 분할(레이어 배정)
클러스터 단위로 분류된 특징점 궤적으로부터 기준 프레임의 각 픽셀 정보에서 모션 궤적을 얻는 과정을 진행합니다. 특징점 클러스터에 해당되는 부분을 별개의 독립된 레이어로 적용하면 다음과 같은 레이어들로 분류됨을 확인할 수 있습니다.
4. 선택된 클러스터의 움직임을 증폭
레이어가 결정되었다면 모션 증폭을 적용하기 위한 레이어를 정의합니다.
각 레이어에서 미세한 변화를 감지한 클러스터의 궤적 변화가 있던 부분들이 검게 나타납니다 해당 부분에 대해 보간법(Interpolate)을 활용하여 해당 부분을 메꿉니다.
5. 영상에 적용
위의 과정을 통해 적용된 모션 증폭을 영상에 적용합니다. 배경 레이어는 모든 프레임에 대해 변경되는 부분은 없으므로 해당 픽셀들을 우선 적용한 다음 이상치(Outlier)에 적용된 픽셀들을 적용합니다. 끝으로 선택되지 않은 나머지 레이어에 대해 적용을 하면 아래와 같이 모션 증폭이 적용된 이미지를 얻을 수 있습니다.
위와 같은 방법을 통해 특정 영상에서 직접 확인하기 어려웠던 미세한 변화를 감지하고 이를 이미지에 나타냄으로서 영상 증폭 기술이 적용될 수 있었습니다. 다음으로 이러한 모션 증폭 알고리즘이 적용된 사례에 대하여 소개해 드리도록 하겠습니다.
오일러 영상 증폭(Eulerian Video Magnification)
영상에 나오는 사람의 얼굴을 통해 맥박수를 측정할 수 있다고 하면 믿어지시는지요? 먼저 아래의 영상을 보도록 합시다.
영상에서 보시는 바와 같이 심장이 뛸 때 마다 피가 얼굴로 전달되는 모습이 맨눈으로는 거의 보이지 않지만 영상 증폭 기술을 통해 색 변화가 나타남을 분명하게 파악하실 수 있습니다. 또한 자고 있는 아기의 호흡 장면을 증폭하여 아이가 숨을 제대로 쉬고 있는지도 확인할 수 있습니다.
이 그림은 위의 영상에서 확인하셨던 영상 증폭 기술에서 사용된 프레임워크의 구조도입니다. 입력된 이미지를 분리한 다음 시간 처리(Temporal Processing)과정에서 특정한 필터를 적용한 다음 분리된 이미지를 다시 합쳤을 때 모션 증폭이 적용된 영상을 확인할 수 있습니다.
이 기술에 적용되는 필터는 사용자가 직접 설정할 수 있으며 영상에 따라 적합한 주피수를 찾는다면 미세한 움직임을 더 정확하게 확인할 수 있을 것으로 기대됩니다.
학습 기반 영상 모션 증폭(Learning-based Video Motion Magnification)
위에서 말씀드린 바와 같이 특정 영상에 가장 적합한 필터를 적용하였을 때 모션이 잘 포착되는 것을 확인하실 수 있었습니다. 그렇다면 이러한 필터를 가장 적합하게 찾을 수 있는 방법은 무엇일까요? 직접 해당 주파수를 일일히 찾아서 하는 방법밖에 없는걸까요?
포스텍 전자공학과 오태현 교수님이 제안한 학습 기반의 영상 모션증폭 알고리즘은 사람이 직접 최적화된 필터를 찾는 과정을 인공신경망 기반의 CNN 알고리즘으로 이미지를 학습하여 최적화된 모션 증폭 영상을 얻을 수 있도록 하는 알고리즘을 구상하였습니다.
위의 그림에서 보시는 바와 같이 위의 원본 이미지에서 아래쪽은 증폭 영상의 이미지를 나타냅니다. 왼쪽의 경우 기존의 모션증폭 알고리즘으로 아기 옷의 주변에 잔상같은 것이 남아 있는 것을 볼 수 있습니다. 반면 오른쪽의 경우 주변 잔상이 제거된 깔끔한 모습을 보실 수 있습니다.
지금까지 보신 바와 같이 모션 증폭 기능을 적용하여 사람의 눈으로 확인하기 어려웠던 미세한 변화를 쉽게 확인할 수 있으며 인공지능을 적용하여 원하는 부분만 증폭할 수 있던 것을 확인하였습니다. 이 기술을 실제 적용하게 된다면 별도의 감지 센서 설치 없이 카메라만으로 미세한 변화를 감지할 수 있을 것으로 기대됩니다.
- 참고자료
LIU, Ce, et al. Motion magnification. ACM transactions on graphics (TOG), 2005, 24.3: 519-526.
'공대생의 팁' 카테고리의 다른 글
wget 사용시 증명서(certificate) 관련 문제가 발생하였을 때 해결방법 (0) | 2020.09.11 |
---|---|
WSL(Windows Subsystem for Linux )에서 'Can't open display: :0.0' 오류 발생시 해결방법 (1) | 2020.09.10 |
VMware 가상머신에서 실제 프린터를 연결하는 방법 (0) | 2020.07.05 |
컴퓨터에 USIM을 꽂아 통신사 데이터를 써보자! 3G LTE USB 모뎀 사용 후기 (35) | 2020.06.03 |
Visual Studo Code로 SSH 접속시 비밀번호 입력이 반복적으로 나올때 해결방법 (4) | 2020.05.16 |