보행 패턴 기반 인물 식별 시스템 인프라 구축
걸음걸이를 통해 인물을 식별하는 AI 시스템의 CCTV 네트워크, GPU 인프라, 데이터 파이프라인을 구축한 프로젝트입니다.
Architecture
동기
걸음걸이로 사람을 식별한다는 것이 이 연구의 전제였습니다. 얼굴이 보이지 않아도 걸음의 특징은 남는다는 것입니다.
연구원들이 모델을 돌리려면 GPU 를 쓸 수 있는 판이 먼저 있어야 했는데, 그 판이 사람마다 조금씩 달랐습니다. 그래픽 드라이버, CUDA, cuDNN, 파인튜닝에 쓰는 프레임워크 가운데 버전이 하나만 어긋나도 어제 돌던 코드가 오늘 안 돕니다.
내가 담당한 트랙
연구원들이 올라설 환경과 그 위에서 모델을 띄우는 도구를 제가 맡았습니다. 항목별 내역은 오른쪽 「주요 업무」에 있습니다.
| 트랙 | 경계 |
|---|---|
| 모델 자체 | 연구원들 몫이었습니다. 저는 그들이 쓸 판을 만들었습니다 |
학습하는 판과 띄우는 판을 다르게 두기
학습 환경은 컨테이너로 감싸지 않았습니다. 베어메탈 PC 에 드라이버부터 프레임워크까지 버전을 직접 맞춰 두고 연구원들이 그 위에서 작업하게 했습니다.
추론 쪽은 달랐습니다. 이쪽은 이미지로 만들어 GPU 를 붙여 컨테이너로 띄웠습니다. 학습은 사람이 붙어서 계속 만지는 일이고 추론은 정해진 것을 반복해서 돌리는 일이라, 판을 굳혀 두어도 되는 쪽만 굳힌 셈입니다.
어떤 버전을 띄울지 고르는 화면
팀에는 윈도우 프로그램에 대한 수요가 있었습니다. 그래서 C# 으로 만든 애플리케이션이 모델을 직접 다루지는 않고, 태그로 올려 둔 이미지 가운데 하나를 골라 환경변수와 함께 띄우는 역할을 맡았습니다. 사내 배포 상황판에 가까웠습니다.
배운 점
그래픽 드라이버와 CUDA, cuDNN, 그리고 프레임워크가 서로 맞는 버전 조합은 생각보다 좁습니다. 하나를 올리면 나머지도 같이 맞춰야 하고, 그 조합을 사람이 각자 손으로 맞추면 결국 사람마다 다른 판이 됩니다.
버전 의존이 이렇게 빡빡한 스택일수록 그 조합을 이미지로 굳혀 두는 일이 필요하다는 것을 여기서 알았습니다.