대머리를 98% 신뢰도의 공으로 감지한 축구 디텍터와, 임의의 디텍터 후단에서 물리적으로 불가능한 검출 결과를 기각하는 물리 게이트
컴퓨터 비전스포츠 분석객체 추적

축구 경기 내내 대머리를 쫓아간 자동화 카메라, 이를 거부하는 물리 게이트를 구축했습니다

Ashutosh SinghalAshutosh Singhal2026년 7월 15일10 min

2020년 10월, 인버네스 캘리도니언 시슬(Inverness Caledonian Thistle)의 자동화 카메라가 축구 경기 내내 공 대신 부심의 대머리를 추적하는 일이 벌어졌습니다. 조명탑 불빛 아래서 머리가 공처럼 반짝였고, Pixellot 카메라는 전달받은 가장 신뢰도 높은 검출 결과를 따랐으며, 집에서 보던 시청자들은 경기가 중계 화면 밖에서 진행되는 동안 터치라인을 따라 조깅하는 대머리 남성의 클로즈업 화면을 길게 지켜봐야 했습니다(당사 WP43 솔루션 페이지에 기록됨).

그 이야기는 이 시스템을 구축하는 내내 제 머릿속을 떠나지 않았습니다. 컴퓨터 비전 분야의 누구나 겪어보았지만 제대로 규명하는 사람은 거의 없는 실패의 본질을 가장 명확하게 보여주는 사례이기 때문입니다. 디텍터는 고장 난 것이 아니었습니다. 디텍터가 해야 할 일을 정확히 수행했을 뿐입니다. 픽셀 영역의 점수를 매겼고, 머리의 반사광이 높은 점수를 받았으며, 다운스트림의 모든 시스템은 그 점수를 신뢰했습니다. 제가 구축한 데모인 Plumbline은 다음 주소에 공개되어 있으며, https://veriprajna.com/demos/physics-constrained-computer-vision, 이 모든 것은 단 하나의 주장으로 귀결됩니다. 바로 해결책이 디텍터 내부에 있지 않다는 점입니다.

모델 탓을 멈춘 순간

개발 첫날에는 더 나은 디텍터를 구상해보려 애썼지만 문제를 해결할 수 없었습니다. 객체 디텍터는 프레임 독립적입니다. 직전 순간에 실제 물체가 어디에 있었는지, 혹은 물리적으로 다음에 어디에 위치할 수 있는지에 대한 기억 없이 질감과 형태만으로 각 이미지를 평가합니다. 따라서 경기장 조명 아래에서 대머리는 국소적으로 훌륭한 공이 됩니다. 모델을 아무리 정교하게 학습시키더라도 반사광이 최고조에 달하는 프레임에서는 여전히 남성의 머리 위에 얹힌 98% 신뢰도의 공을 내놓을 것입니다. 그 신뢰도는 픽셀 자체에 대해 거짓말을 하는 것이 아닙니다. 공이 그곳에 존재할 수 있는지 여부와는 전혀 무관한 질문에 답하고 있을 뿐입니다.

바로 그 순간 제 관점이 완전히 바뀌었습니다.

여러분의 비전 시스템은 신뢰도 문제를 겪고 있는 것이 아닙니다. 물리 법칙의 문제를 겪고 있는 것입니다.

실제 공은 대머리가 따르지 않는 물리적 제약 조건을 따르며, 디텍터의 점수에는 그러한 제약이 전혀 반영되어 있지 않습니다. 이 단 하나의 관점 전환이 전체 아키텍처를 결정지었습니다. 저는 디텍터를 더 똑똑하게 만들려는 시도를 멈추고, 디텍터 후단에 위치하여 디텍터가 결코 알지 못했던 물리 법칙을 강제하는 계층을 구축하기 시작했습니다.

코드에서 "물리적으로 불가능함"이 구현되는 방식

저는 사람이 이해할 수 있는 명확한 언어로 검출 결과가 기각되는 이유를 직접 확인하고 싶었고, 그것이 제가 가장 먼저 구축한 것이었습니다. Plumbline은 어떤 디텍터의 다운스트림에도 위치할 수 있으며, 어떠한 후속 조치가 취해지기 전에 모든 후보에 대해 세 가지 결정론적 게이트를 실행합니다. 운동학 게이트(kinematic gate)는 Kalman 필터, 즉 포물선 운동 모델이 적용된 합성 경로 상의 Unscented Kalman Filter를 사용하여 실제 공이 다음에 위치할 수 있는 지점을 예측한 뒤, 각 후보가 해당 예측값에서 얼마나 벗어나는지를 Mahalanobis 거리로 측정합니다. 즉, 3시그마 미만은 수락하고, 5시그마를 초과하면 기각하며, 3~5시그마 구간은 검토 대상으로 플래그를 지정합니다. 옵티컬 플로우 게이트는 후보 영역의 국소 픽셀 움직임과 트랙의 예상 속도를 비교하여, 흐름이 엉뚱한 방향을 가리키거나 인플레이 상황에서 거의 움직이지 않는 "공"을 기각합니다. 기하학 게이트는 핀홀 모델을 사용하여 후보의 추정 깊이에서 22cm 크기의 공이 차지할 수 있는 픽셀 크기를 계산하고, 물리적으로 불가능한 크기를 걸러냅니다.

이 중 어느 것도 별도의 딥러닝 모델이 아닙니다. 어떤 신경망 외부에도 존재하는, 한 줄 한 줄 직접 읽을 수 있는 순수 numpy와 scipy 코드일 뿐이며, 이것이 바로 제가 이들을 신뢰하는 이유입니다. 여기서의 신뢰는 사후에 스스로를 해명해야 하는 블랙박스에 의존하지 않습니다.

대머리는 이 세 가지 게이트를 모두 동시에 통과하지 못합니다. 카메라를 무너뜨리는 엣지 케이스는 디텍터의 테스트 세트에는 결코 등장하지 않는 법이기에, 저는 단순한 우연한 오류가 아닌 2020년 인버네스 사건의 재현으로서 의도적으로 이 사칭자(impostor)를 주입했습니다. 합성 클립의 가장 극단적인 프레임에서 머리는 공의 예측된 움직임으로부터 82.3시그마나 벗어난 수치를 기록했는데, 이는 아슬아슬한 수준이 아니라 운동학적으로 터무니없는 수치입니다. 반면 0.87의 신뢰도와 0.4시그마를 기록한 실제 공은 깔끔하게 게이트를 통과하며 카메라는 공을 계속 추적합니다.

단순 트래커가 98% 신뢰도의 대머리에 고정되는 동안 이를 기각하는 Plumbline 게이트 피드
대머리 부심 시나리오. 디텍터는 두 트래커 모두에 부심의 머리 위에 위치한 높은 신뢰도(최대 98%)의 "공"을 전달합니다. 왼쪽의 단순 트래커는 이에 고정되는 반면, 오른쪽 창의 게이트 피드는 세 가지 게이트 모두에서 사칭자를 동시에 기각하고(경기 진행 중 정지 상태, 최악의 프레임에서 82.3시그마로 운동학적 불가능, 해당 깊이에서 불가능한 크기) 자체 예측을 바탕으로 관성 추적(coast)을 유지합니다.

모든 기각 사유는 파일로 보존됩니다

저는 이 모든 과정을 맹목적으로 믿어야 하는 것으로 만들고 싶지 않았기에, 모든 결정마다 사용자가 열어볼 수 있는 기록을 생성하도록 했습니다. 내보낸 결정 로그(decision log) 상단에는 시드(seed), 시나리오, 디텍터 ID, 게이트 임계값이 포함되며, 그 아래로 후보별 프레임당 한 행씩 기록됩니다. 즉 디텍터가 출력한 클래스와 신뢰도, 각 게이트의 수치적 판정과 자연어 사유("Mahalanobis 82 sigma >= 5 sigma: kinematically impossible"), 그리고 최종 조치가 기재됩니다. 대머리 부심 시나리오에서 게이트는 사칭자의 높은 신뢰도를 지닌 18건의 오탐을 모두 기각하며, 물리 트래커는 최고 신뢰도 추적 방식의 59.1%, 임계값 상향 방식의 20.5%에 맞서 97.7%의 시간 동안 공을 안정적으로 유지합니다(합성 장면, 시드 7).

자동화된 시각적 의사결정에 대한 책임을 지는 사람에게 이 기록은 사고 보고서를 제출하느냐, 아니면 그저 어깨를 으쓱하고 마느냐의 차이를 만듭니다. 이는 단순한 컴플라이언스 인증서가 아니라 카메라가 왜 그렇게 동작했는지에 대한 증거로 제출할 수 있도록 설계된, 프레임별 파일로 보존되는 명확한 물리적 이유입니다.

bald_linesman 시나리오에 대해 내보낸 물리 게이트 결정 로그
내보낸 결정 로그, 시나리오 bald_linesman, 시드 7. 두 가지 기준선(59% 및 20%) 대비 98%의 물리 표적 추적 시간(time-on-target)을 기록하며, 하단에는 프레임별 게이트 판정 및 자연어 사유가 명시되어 있습니다.

신뢰도 임계값을 올리는 것은 잘못된 조절기입니다

엔지니어들에게 대머리 기각 사례를 보여주면 첫 번째 본능적 반응은 거의 항상 같습니다. 가짜 공이 탈락할 때까지 신뢰도 임계값을 올리면 그만이라는 생각입니다. 저는 직관적으로는 맞아 보이지만 실제로는 틀린 그 생각에 숫자로 답하기 위해 이 데모를 제작했습니다. 사칭자가 전혀 없는 깨끗한 합성 장면에서 임계값을 올리면 신뢰도가 낮은 실제 공의 43.2%를 버리게 되지만, 물리 게이트는 클린 세트 미탐률을 단 2.3%로 억제하며 이는 공을 완전히 놓친 것이 아니라 단 1프레임의 탐지 지연(acquisition latency)에 불과합니다. 임계값 상향은 단 하나의 오탐(false positive)을 막기 위해 무수한 미탐(false negative)을 양산하는 행위입니다.

물리 게이트는 완전히 다른 축에서 작동합니다. 희미한 실제 검출을 버리지 않고도 불가능한 검출을 기각할 수 있는데, 게이트가 검사하는 내용(공이 이곳에, 이러한 움직임으로, 이 크기로 존재할 수 있는가)은 디텍터가 얼마나 강하게 투표했는지와 무관하기 때문입니다. 이러한 직교성(orthogonality)이야말로 깨끗한 장면 테스트를 통해 반박할 수 없게 증명하고자 한 핵심입니다.

깨끗한 장면에서의 공정성 검증: 임계값 상향 기준선의 43% 미탐 대비 물리 게이트 2% 미탐
사칭자가 없는 깨끗한 장면에서의 공정성 검증. 임계값 상향 기준선의 43% 미탐 대비 물리 게이트는 프레임의 2%(1프레임의 탐지 지연)만 놓치며, 비고란에는 대머리 사칭자가 자연 발생적 오류가 아니라 2020년 인버네스 사건을 의도적으로 재현하여 주입한 것임이 명시되어 있습니다.

테스트 과정에서 제가 특히 애착을 갖게 된 작은 순간이 있는데, 바로 가림(occlusion) 상황입니다. 선수가 10여 프레임 동안 공 앞을 가로지르면 모든 후보가 기각되는데, 물리 트래커는 선수를 공으로 오인하여 붙잡는 대신 공백 구간 동안 자체 예측을 통해 관성 추적(coast)을 유지하다가 공이 다시 나타났을 때 재포착합니다. 잘못된 대상을 억지로 추적하는 대신 비어 있는 트랙을 의연하게 유지하는 모습을 보면서, 이 계층이 단순한 필터가 아니라 일종의 '판단력'에 가깝다는 것을 처음으로 실감했습니다.

차마 공개하지 못할 뻔했던 숫자

저는 실제 영상에 대한 테스트 결과를 거의 제외할 뻔했으며, 이를 그대로 남겨둔 것은 이번 전체 개발 과정에서 제가 가장 자랑스럽게 생각하는 결정입니다. 위의 모든 결과는 정답(ground truth)이 명확히 알려진 합성 장면에서 실행된 것이며, 이것이 깔끔한 벤치마크를 가능하게 한 요소이지만 합성 데이터에서의 성공은 불신을 사기 쉽습니다. 그래서 실제 방송 클립을 가져와 프레임 단위로 실제 YOLO11x 검출을 실행하고, 실제 인물 검출 결과로부터 부심의 머리를 가짜 공으로 주입한 뒤, 동일한 세 가지 게이트를 변경 없이 실행했습니다. 그 과정에서 솔직한 두 가지 절충안이 뒤따랐습니다. 캘리브레이션되지 않은 단일 방송 클립에는 미터법 기준의 깊이 정보가 없으므로 운동학 게이트는 월드 좌표계 대신 이미지 평면에서 2D Kalman 필터로 실행되었으며, 3D 필터인 척 꾸며내는 것은 기만이었을 것입니다. 그리고 점수는 떨어졌습니다. 실제 클립에서 물리 게이트는 최고 신뢰도 추적 방식의 43.8%, 임계값 상향 방식의 30.0%에 맞서 68.3%의 시간 동안 공을 유지했습니다.

저는 68.3%라는 수치를 두고 한동안 고민했습니다. 97.7%는 사람들의 이목을 끄는 숫자이지만, 68.3%는 까다로운 실제 영상에서의 진실된 숫자이기 때문입니다. 저는 누구나 확인할 수 있도록 애플리케이션 내부 스코어보드에 이 정직한 숫자를 그대로 두었습니다. 스스로를 과대포장하는 검증 계층은 이미 자신이 하겠다고 내세운 단 하나의 본분을 망각한 것과 같습니다. 핵심은 방향성입니다. 수정되지 않은 동일한 게이트 코드가 실제 검출과 시뮬레이션 검출 모두에서 두 가지 기준선을 뛰어넘으며, 스스로의 한계 또한 솔직하게 드러내고 있다는 점입니다.

실제 영상 스코어보드: 단순 트래커의 44% 대비 물리 게이트 68% 표적 유지율
실제 영상의 "About this demo" 패널. 실제 YOLO11x 검출이 적용된 실제 방송 클립에서 물리 게이트는 최고 신뢰도 추적 방식의 44% 대비 68%의 표적 유지율을 기록하며, 실제 영상은 훨씬 까다롭고 있는 그대로 측정되었기 때문에 합성 환경의 상한선보다는 솔직히 낮게 나타납니다.

이것이 진정으로 지향하는 토대

저는 축구 전용 제품을 만들고자 한 것이 아니며, 이 데모가 무엇이며 무엇이 아닌지 명확히 짚고 넘어가고자 합니다. Pixellot의 후속 펌웨어가 이미 말 그대로의 대머리 사례를 처리하고 있고 디텍터 자체가 최종 제품이 아니므로, 우리가 상용 카메라 시스템보다 더 뛰어난 추적 성능을 낸다고 주장하려는 것이 아닙니다. 제품의 본질은 디텍터와 그 출력을 기반으로 동작하는 후속 시스템 사이에 위치하는 얇고 검사 가능한 계층입니다. 이러한 지표는 디텍터의 오류율이 아니라 추적 품질을 의미하므로, 기반 디텍터의 성능이 아무리 향상되더라도 이 가치는 변함없이 유지됩니다.

이 계층은 제가 개발을 시작했을 때보다 지금 훨씬 더 중요합니다. 컴퓨터 비전은 프레임에 라벨만 붙이는 것을 넘어 프레임을 바탕으로 직접 행동하는 에이전틱(agentic) AI 방향으로 나아가고 있으며, 그 밑바탕에 자리한 미해결 거버넌스 과제는 자율 에이전트가 물리적으로 불가능한 검출 결과에 따라 행동하는 것을 어떻게 막을 것인가입니다. SoccerNet은 아직 벤치마크에 물리 법칙 인지 기법을 통합하지 않은 채 다중 객체 추적을 여전히 "완전한 해결과는 거리가 멀다"고 평가하고 있습니다. 저에게 대머리 사례 자체가 흥미로웠던 적은 없습니다. 정작 흥미로운 점은 대머리를 걸러낸 제약 조건, 즉 실제 물체는 물리 법칙을 따라야 한다는 원칙이 미래의 완벽한 디텍터에도 동일하게 유효하다는 사실입니다. 일정한 높이에 떠서 시속 3마일로 움직이는 공은 어떤 신뢰도 점수를 부여받든 잘못된 것이기 때문입니다. 검출 결과가 기각되는 과정을 직접 확인하고 기각된 정확한 사유를 읽어보고 싶다면 데모는 다음 주소에 있으며, https://veriprajna.com/demos/physics-constrained-computer-vision, 실제 클립과 합성 장면이 나란히 구동되는 모습을 확인할 수 있습니다.

제 말만 듣기보다 직접 눈으로 확인하고 싶으시다면, 실제 클립과 합성 장면이 나란히 구동되는 전체 데모를 아래에서 확인하실 수 있습니다.

카메라가 대머리를 쫓아간 것은 공이 어떻게 움직일 수 있는지 아무도 알려주지 않았기 때문입니다. 제가 구축한 모든 것은 누구나 검증할 수 있는 위치에 기록해 둔 바로 그 지침일 뿐입니다.

관련 연구

다른 채널에도 게시됨

확신을 가지고 AI를 구축하세요.

차세대 엔터프라이즈 AI 구축에 깊은 경험을 갖춘 팀과 협업하세요. 신뢰할 수 있는 AI 전략을 설계하고 구축하며 배포할 수 있도록 지원해 드리겠습니다.

Veriprajna 딥테크 컨설팅 은(는) 헬스케어, 금융, 규제 분야를 위한 안전 필수 AI 시스템 구축을 전문으로 합니다. 당사의 아키텍처는 확립된 프로토콜에 따라 검증되며 포괄적인 규정 준수 문서를 갖추고 있습니다.