보행 패턴 분석용 데이터셋 수집 인프라 구축

공공 치안기관의 보행 패턴 분석 연구를 위해 CCTV 80대가 둘러싼 무대 환경에서 보행 데이터를 수집하는 인프라를 구축했습니다. 영상이 수십 테라바이트 규모여서 디스크로 옮기는 체계를 설계하고, 관절 추출과 데이터셋 생성을 잇는 파이프라인을 개발했습니다.

Architecture

동기

걸음걸이 모델을 학습시키려면 같은 사람이 걷는 모습을 여러 각도에서 동시에 찍은 영상이 필요했습니다. 그런 데이터는 사 올 수 없어서 직접 만들어야 했습니다. 무대를 하나 두고 그 둘레를 CCTV 80대로 둘러 초당 30프레임으로 찍었습니다.

발주는 공공 치안기관이 했고 연구는 대학 연구실이 수행했으며 저희 회사가 거기 참여하는 구조였습니다. 그래서 무대도 연구실에 있었습니다.

내가 담당한 트랙

수집한 영상이 학습 데이터가 되어 나오기까지를 제가 맡았습니다. 항목별 내역은 오른쪽 「주요 업무」에 있습니다.

트랙경계
CCTV 물리 설치같이 했습니다. 네트워크 쪽 설정은 제가 했습니다

수십 테라바이트를 어떻게 옮길 것인가

찍은 영상은 학습 환경으로 옮겨야 했는데 양이 수십 테라바이트였습니다. 네트워크로 밀어 넣는 것과 디스크에 담아 들고 가는 것을 놓고 보면 후자가 쌌습니다.

그래서 데이터를 옮기는 일이 전송이 아니라 운반이 되었고, 무엇을 담아 왔고 그것이 온전한지를 확인하는 절차가 따로 필요해졌습니다.

관절은 사람이 찍지 않았습니다

수집한 영상은 그대로는 학습 데이터가 아닙니다. 프레임으로 자르고, 각 프레임에서 사람의 관절 위치를 좌표로 만들어야 합니다.

관절을 사람이 하나씩 찍지는 않았습니다. 사람이 나온 프레임을 MMPose 에 넣으면 관절 지점이 나왔고 그 결과를 그대로 썼습니다. C#/WPF 로 만든 도구가 영상을 5프레임마다 잘라 내고 이 과정을 이어 붙여, 최종 산출이 YOLO 와 MMPose 가 바로 읽는 형식으로 나오게 했습니다. 사람이 그 화면에서 하는 일은 뽑혀 나온 결과를 눈으로 보는 것이었습니다.

WPF 를 고른 이유는 회사가 C# 을 쓰고 있었기 때문입니다.

배운 점

데이터를 남에게 받는 것이 아니라 처음부터 만들어 봤다는 것이 남았습니다.

특히 뽑혀 나온 결과를 사람이 볼 수 있게 해 둔 것이 그런데, 모델이 낸 것을 눈으로 확인할 수 있으면 그 모델을 어디까지 믿을지 말할 수 있고 무엇을 고쳐야 할지도 보입니다. 그 기반을 만들어 둔 것이 이 프로젝트에서 제일 값어치 있는 일이었다고 생각합니다.