2023 계 모각소 

VCL에서 살아남기 

활동내용 및 발표자료

<팀원>

디지털미디어학과 한동엽

디지털미디어학과 엄채윤

디지털미디어학과 우지수

디지털미디어학과 한송헌


<팀원별 활동내용>

한동엽

프로그램의 기능은 컴퓨터비젼 수업 때 출제된 과제를 통하여 낯설지는 않았기 때문에 전체적인 틀은 모두 이해하고 있었다. 

다만 feature를 감지하는 기능, optical flow를 계산하는 기능, 그리고 이를 이어서 update하는 기능을 같이 적용해 본적이 없었기 때문에 

각 기능들을 프로그램이 요구하는 바에 맞게 integration하는 역할을 맡았다. 이후에는 기능이 제대로 동작하지 않거나 모르는 부분들을 서로 토론하며 개선 방안을 찾았다.

엄채윤

Optical Flow 파트를 복습했으며 관련 코드를 팀원들과 작성해봤다. 

코드를 함께 작성하면서 오류가 생기면 다같이 의논하여 오류를 해결했으며 모르거나 헷갈리는 내용이 있으면 자유롭게 질의응답을 하며 스터디를 진행했다.

우지수

컴퓨터비전 수업에서 배웠던 내용 중 하나인 Optical Flow를 복습 및 응용시켜서 

video속의 움직이는 특정 feature 위에 덮어씌우고 싶은 사진으로 덮어서 움직임 및 회전을 정확하게 따라가게 하는 기술을 만들고자 하였다. 

컴퓨터비전 수업에서 배운 것은 Image에 한정된 내용들이었지만, video를 이용하고 싶었기에 새로운 dll파일을 다운로드 받아 include 폴더에 넣고, 

새로운 header를 include 해줘야 하는 등 처음 세팅이 쉽지 않았고, 헤매는 시간이 있었다. 

매 활동 시간마다 코드에 오류가 발생하여 원인을 찾는데에 많은 시간을 소모하는 등 OpenCV를 다루는 것은 생각보다 더욱 쉽지 않았지만, 

서로 돕고 의논하며 오류의 원인을 찾고, 어떠한 방식으로 나아가야 할 지에 대해서 토론하면서 최종적으로 좋은 결과를 도출해낼 수 있었다.

한송헌

모각소를 통해 지난 학기 컴퓨터비전 과목에서 배웠던 'optical flow'에 대한 개념을 심화적으로 이해하고 이를 영상에서 직접 구현해보고자 하였다. 

OpenCV를 사용하여 영상에서 물체 움직임을 트래킹하는 기술을 구현하고, 이를 바탕으로 인터렉션을 추가하여 사용자가 원하는 구역을 선택하면 

해당 구역 내의 물체를 트래킹할 수 있도록 구현하였다. 결과적으로 트래킹 시 해당 물체 위로 이미지가 계속하여 오버레이 될 수 있도록 하는 기능을 구현하였다.


<팀원별 최종성과>

한동엽

feature matching을 계산하지 않고, 대신 feature와 optical flow로 계산한 다음 frame의 결과를 계속 update해주면서, 

matching을 굳이 하지 않고도 같은 feature들을 계산해주도록 했다. 

다만 matching 단계를 생략하는 경우 feature point들의 order가 소실되므로 image를 덧씌워줄 때에는 order를 임의로 다시 복원시켜줄 필요가 있었고, 

이를 함수로 구현해서 결과가 잘 나올 수 있도록 했다. 

또한 결과 분석과 추후 기능 추가를 위해 OpenCV 전용 ui 라이브러리인 cvui를 추가해서 간단한 체크박스와 프린트 기능을 통해 디버깅에 용이하도록 했다.

엄채윤

처음에는 간단하게 Feature Points가 움직임을 따라가는 코드를 구현했으며, 

최종적으로는 움직이는 영상에 이미지를 넣어서 이미지가 물체의 움직임에 맞도록 조절하는 코드까지 구현했다. 

코드를 직접 구현하며 Optical Flow에 대한 개념을 다시 한번 정리할 수 있었다.

우지수

초기에 직접 영상 속 범위를 설정하면, 해당 범위 내에서 자동으로 feature들을 detect하여 지속적으로 사진이 움직이는 feature들을 따라가게 만들었다. 

이에서 조금 더 발전시켜서 해당 사진이 feature의 회전 및 모양의 변화도 정확하게 따라갈 수 있게끔 Motion model을 계산하였고, 결과적으로 좋은 성과를 얻어내게 되었다.

한송헌

영상에서 물체를 트래킹 시, 영상의 각 프레임마다 특징점들 간의 optical flow를 계산하여 이를 바탕으로 움직임을 계산한다. 

최종 프로그램에서는 사용자가 설정한 구역 내의 특징점을 바탕으로 homography를 반복적으로 계산하고 이를 이용해 이미지가 오버레이될 수 있도록 하였다.

결과적으로 사용자가 설정한 구역 내 물체를 이미지가 따라가며 커버하고, 카메라가 움직이는 각도나 회전을 고려하여 이미지의 크기나 형상이 자연스럽게 변형되는 기술을 

구현했다. 다만, 빠른 카메라의 움직임 속도에 따라 이미지의 변형에 오류가 존재한다.


<팀원별 향후계획>

한동엽

이번 모각소 동안 개발한 코드를 더 일반적인 환경에서도 대처 가능하게 만들고 싶다. 

예를 들어, 현재의 코드는 사라진 feature를 다시 찾아서 match하는 기능이 없어 한번 사라진 feature는 이후에 계산이 불가능하다. 

또한 homography를 update하고 refine하는 여러 방법들이 시도되어 왔는데, 관련된 여러 학술 자료를 바탕으로 더 성능이 좋은 코드를 개발하고 싶다.

엄채윤

컴퓨터 비전 분야로 진로를 정했기 떄문에 계속해서 컴퓨터 비전 공부를 진행해 나갈 것이다. 

지금 현재 스터디 팀원들과 계속해서 공부를 이어가면서 컴퓨터 비전 분야에 대한 흥미와 학습을 지속해나갈 것이다.

우지수

수업에서 이론으로만 배워봤던 Optical Flow를 직접 활용해보니, 정말 다양하고 무궁무진한 용도로써 응용되어 사용될 수 있을 것 같다는 생각이 들었다. 

이후 관련된 전공수업들을 더 수강해보면서 컴퓨터비전과 관련된 공부를 더 깊게 해봐야겠다는 목표가 생겼다.

한송헌

프로그램이 커버할 수 있는 카메라의 움직임 속도를 계속해서 개선할 필요가 있다. 

또 현재 영상 편집 프로그램에서 특정 물체를 커버하는 기술과 비교할 수 있을 정도의 성과를 구현하고자 한다.


<발표자료>