CCTV를 AI의 눈으로 바라보다

CAOS (CCTV Automated Observation System)

by 핑크곰

2024년의 마지막 달, 1년간의 대장정이 끝났다.

CAOS(CCTV Automated Observation System)라는 이름의 이 프로젝트는 처음엔 단순한 'CCTV 현황 조회 서비스' 정도로 시작했지만, 지금은 디지털뉴스룸의 핵심 인프라가 되었다.

프로젝트명 CAOS는 Chaos와 같은 발음인 '카오스'로 읽는다. 무질서하고 혼돈스러운 수천 개의 CCTV 영상을 질서 있게 정리한다는 의미를 담았다. 그리고 실제로 이 시스템은 전국 약 1만여개의 CCTV라는 '카오스'를 'AI의 눈'으로 정리하는 마법을 부렸다.

1*mxG_62gUXVXRMOmUBQ7Szw.png



시작은 미약했으나... 아니, 처음부터 거대했다

"전국의 모든 CCTV를 실시간으로 모니터링 해 봅시다."

처음 이 요구사항을 들었을 때, 잠시 귀를 의심했다. 전국의 '모든' CCTV라니? 그게 몇 개나 되는데?

알아보니 우리가 접근 가능한 공공 CCTV만 해도 약 1만여개였다. 경찰청이 관리하는 교통 CCTV가 대부분을 차지했고, 환경부, 한국도로공사, 심지어 독도전망대 CCTV까지 포함되어 있었다.

이 모든 CCTV를 하나의 시스템에서 모니터링한다는 건, 마치 1만여개의 TV 채널을 동시에 시청하는 것과 같았다. 인간의 눈으로는 불가능한 일이었다.



한국도로공사님, 기상청님 보우하사

가장 큰 고민은 '언제 녹화를 시작할 것인가'였다. 24시간 모든 CCTV를 녹화한다? 스토리지가 몇 페타바이트가 있어도 모자랄 판이었다. 그때 떠오른 아이디어가 바로 '이벤트 데이터 연계'였다. 한국도로공사는 고속도로에서 발생하는 모든 사고 정보를 실시간으로 수집하고 있고 이 데이터에는 사고 발생 시간과 정확한 위치(위도, 경도)가 포함되어 있었다. 마찬가지로, 기상청에서 제공하는 정보에는 화재, 지진과 같은 데이터를 포함하고 있었다.

"이벤트가 발생하면 → 위치를 확인하고 → 근처 CCTV를 찾아서 → 자동으로 녹화를 시작한다"

간단해 보이는 이 로직을 구현하는 데만 꽤나 오랜 시간이 걸렸다. 왜냐하면...



시간을 되돌리는 마법, 이전 장면 녹화
1*3_abjQ7wRtIxuBKlZ4haXw.png

이벤트는 예고 없이 일어난다. 이벤트 데이터를 받아서 녹화를 시작하면 이미 중요한 순간은 지나간 후다. 우리에게 필요한 건 이벤트가 '어떻게' 발생했는지를 보여주는 영상이었다.

HLS(HTTP Live Streaming) 프로토콜의 특성을 활용하면 과거로 갈 수 있다는 걸 발견했다. HLS는 영상을 작은 조각(chunk)으로 나누어 전송하는데, 이 조각들이 서버에 일정 시간 동안 남아있었던 것이다.

과거의 chunk들을 모아서 재조립하면, 타임머신을 탄 것처럼 사고 발생 전 상황을 볼 수 있었다. 물론 모든 CCTV가 이를 지원하는 건 아니어서, 일부만 '시간 여행'이 가능했다.



Docker 컨테이너 속 작은 우주
1*aQwD9TF5ZIA24aHpZgJx-A.png

시스템 아키텍처는 마이크로서비스로 설계했다. 워낙 많은 CCTV 영상이 자동/수동으로 녹화가 되기 때문에, 각 기능을 독립적인 Docker 컨테이너로 분리해서, 마치 레고 블록처럼 조립할 수 있게 만들었다. 특정 이벤트 녹화 서비스가 죽어도 다른 이벤트 녹화는 멈추지 않는다. 마치 각자 일만 열심히 하는 개발팀 마냥(?)



AI의 눈으로 보는 세상, CAOS-ACE
1*VT_MLYOsKhuzs74Dd3ilCw.png

약 1만여개의 CCTV가 만들어내는 영상의 양은 어마어마했다. 이 중에서 정말 뉴스에 쓸 만한 영상을 찾아내는 건 모래사장에서 바늘 찾기였다.

그래서 우리는 AI에게 '뉴스 감각'을 가르치기로 했다. YOLO(You Only Look Once) 실시간 객체 인식 모델을 파인튜닝했고, 우리만의 평가 알고리즘 CAOS-ACE(Algorithm for Critical Events)를 개발했다.

'하이라이트'를 찾기 위한 수식은 꽤 복잡해 보이지만, 결국은 "가장 극적인 순간을 찾아라"는 명령이었다.



사용성 업그레이드

1*L21czl-5ylnOQUMeHo5-qQ.png

AI를 적용한 가장 큰 이유는 결국 사용성 개선이었다. 한발 나아가, 카오스는 현장에서 바쁘게 움직이는 기자들을 위해 AI가 선별한 영상을 자사 메신저로 발송해주는 서비스도 개발했다. 시간대별 구독 기능을 제공하고 AI가 선별한 영상을 시간과 장소에 상관없이 모바일 메신저로 발송하여 사용성을 한단계 업그레이드 했다.



성과
1*HT7AY99VX2ov-1II8PJqWQ.png

시스템을 오픈하고 가장 떨렸던 순간은 녹화된 영상들이 처음으로 뉴스에 활용될 때였다. 다행히 반응은 기대 이상이었다.

"와, 이제 사고 영상 구하려고 경찰서에 전화 안 해도 되네요!"

"불꽃 축체 CCTV도 볼 수 있어요?"

"날씨 좋은 날 독도 영상 한 번 써봐야겠네요."

"교통정보 파악하러 현장 직접 나갈 필요가 없어졌네요."

"고속도로 화재 CCTV 라이브 연결해주세요"

"집회 현장 CCTV 라이브 가능할까요?"

교통체증이 심한 명절에 헬기로 보던 고속도로 모습은 이제 대부분 CCTV 영상으로 대체됐고, 일기예보에는 한결같이 CCTV 영상이 자리를 잡게 됐다.



마치며: 기술과 저널리즘의 만남

CAOS 프로젝트를 진행하면서 느낀 건, 기술이 저널리즘을 대체하는 게 아니라 더 강력하게 만든다는 것이다. AI가 수천 개의 영상을 걸러내지만, 그 중에서 어떤 이야기를 전할지 결정하는 건 여전히 사람의 몫이다.

약 1만여개의 디지털 눈이 대한민국을 지켜보고 있다. 그리고 그 뒤에는 AI의 두뇌가, 그 뒤에는 또 사람의 지혜가 있다. 이 조합이 만들어내는 시너지가 바로 CAOS의 진정한 가치다.

이 글을 쓰는 지금도 CAOS는 쉬지 않고 전국을 모니터링하고 있다. 참 성실한 녀석이다.

keyword
매거진의 이전글소스 정적 분석도구 SonarQube