평소와 다른 장면은, 복원 오차로 찾을 수 있을까?
영상 속 모든 이상 상황을 미리 이름 붙여 학습시키기는 어렵다. 정상적인 장면을 학습한 모델이 입력을 다시 복원하게 하고, 원본과 복원 결과의 차이가 커지는 순간을 이상 후보로 보는 것이 이번 연구의 출발점이다.
첨부 발표는 시공간 오토인코더(AE)를 구현하고 변분 오토인코더(VAE)를 적용해 비교한 수업 프로젝트다. 영상 프레임을 데이터로 바꾸는 전처리부터 모델 학습, 임계값 계산, 실시간 카메라 테스트와 방송 영상의 블랙 화면 실험까지 진행 과정을 담고 있다.
복원 오차가 높다는 것은 학습한 패턴과 차이가 있다는 신호다. 이 값만으로 사고·장애의 종류를 확정하거나, 의미상 비정상인 장면을 모두 찾았다고 볼 수는 없다.
자료 범위: A조 발표 PPT 23장. 본문은 발표 내용과 코드 화면을 분석한 기록이며, 모델 재학습이나 독립적인 성능 검증 결과는 아니다.
영상에서 판정까지, 실험을 나누어 보기
발표에서는 정상 영상과 대상 영상을 각각 준비하고, 추출한 프레임을 NPY 파일로 저장했다. 정상 데이터의 손실 분포에서 임계값을 계산한 다음 대상 영상의 오차와 비교하는 흐름이다.
| 단계 | 발표에서 확인한 내용 |
|---|---|
| 영상 전처리 | 프레임 추출 후 정상·대상 데이터의 NPY 세트 생성 |
| 학습 입력 | 227 × 227 크기, 10개 단위 묶음, 채널 축 추가 코드 제시 |
| 학습 설정 | AE 코드 화면에 epochs = 100, batch_size = 10 표기 |
| 복원 학습 | Y_train = X_train.copy()로 입력 자체를 복원 목표로 사용 |
| 추가 실험 | 실시간 카메라 동작 변화, 방송 프레임 뒤 블랙 이미지 삽입 |
코드 화면에는 ‘정상 모델 / 대상 모델’ 구분과 test.npy를 학습에 사용하는 예시가 함께 있다. 데이터 파일 이름만으로 학습·평가 분리가 확인되지는 않는다.
공간 특징과 시간 흐름을 함께 다루는 구조
한 장면의 외형만 보는 대신 여러 프레임의 변화를 함께 다루기 위해 Conv3D, ConvLSTM2D, Conv3DTranspose를 연결한 구조를 제시한다. 앞부분에서 특징을 압축하고, 중간에서 시퀀스 정보를 처리한 뒤, 뒷부분에서 입력을 복원하는 설계 의도다.
AE 학습 코드에는 Adam과 mean_squared_error가 사용된다. ConvLSTM 층에는 입력·순환 연결의 Dropout 설정이 보이며, 각 시점의 출력을 뒤 단계로 전달하는 구성을 취한다.
구현에서 확인할 점: 시간 축의 위치
PPT는 입력을 (227, 227, 10, 1)로 구성하고 Conv3D와 ConvLSTM2D를 이어 붙인다. ‘10개 프레임’이 실제로 각 층에서 의도한 시간 축으로 해석되는지, 단순 reshape가 프레임 순서와 픽셀 배치를 유지하는지 확인이 필요하다. 모델 이름이나 층 목록만으로 시공간 처리가 올바르게 연결됐다고 단정하지 않는다.
평균보다 얼마나 큰가: μ + 3σ
원본 입력 x와 복원 결과 x̂의 평균제곱오차를 계산하고, 정상 데이터에서 얻은 오차의 평균과 표준편차로 임계값을 설정했다.
발표에 제시된 임계값 0.0007606741510491734
입력 묶음의 복원 오차가 임계값보다 크면 이상 후보로 표시한다. 여기서 오차는 ‘위험 확률’이 아니라 입력과 복원 결과 사이의 수치적 차이다.
발표가 언급한 약 99.7% 범위는 정규분포 가정에 관한 설명이다. 실제 정상 복원 오차가 같은 분포를 따르는지는 별도 확인이 필요하며, 이 임계값이 99.7% 탐지 정확도를 뜻하지는 않는다.
검토 포인트: 학습에 쓰지 않은 정상 검증 데이터로 임계값을 보정하고, 카메라·장면·조명 변화에 따른 오탐을 살펴볼 필요가 있다.
고정된 잠재값에서, 잠재 분포 학습으로
발표는 VAE를 통해 입력의 잠재 분포를 학습하면 정상 패턴의 다양성을 이해하는 데 도움이 될 것이라는 가설을 세웠다. 인코더가 평균과 로그 분산을 만들고, 샘플링한 잠재값을 디코더에 전달한다.
z_mean
z_log_var
| 구분 | AE 코드 화면 | VAE 코드 화면 |
|---|---|---|
| 핵심 레이어 | Conv3D + ConvLSTM2D | Conv2D + 잠재 분포 샘플링 |
| 잠재 표현 | 특징 표현을 디코더로 전달 | 평균·로그 분산에서 잠재값 생성 |
| 학습 손실 | 평균제곱오차(MSE) | Binary cross-entropy 기반 재구성 손실 + KL |
| 비교 시 주의 | 시공간 모델 구조 | AE와 레이어·손실이 함께 달라짐 |
두 모델의 차이는 잠재 분포의 유무에만 한정되지 않는다. 아키텍처와 학습 손실도 다르므로, 결과 차이를 VAE의 특정 요소 하나의 효과로 분리해 해석하기는 어렵다.
304개 기준, AE 146 · VAE 153
발표에는 304프레임을 기준으로 AE에서 146개, VAE에서 153개를 이상으로 감지했다고 기록되어 있다. 아래 비율은 이 숫자를 304로 나눈 값이며, 실제 정답과 비교한 정확도가 아니다.
| 발표 지표 | AE | VAE |
|---|---|---|
| 이상으로 표시된 개수 | 146 | 153 |
| 기준 수 대비 비율 · 계산값 | 48.03% | 50.33% |
| 발표의 평균제곱오차 | 0.00074505493 | 0.0007605493 |
VAE의 이상 표시 개수와 보고된 MSE가 조금 더 크다. 하지만 정답 라벨과 오탐·미탐 집계가 없으므로 VAE가 더 정확하다고 결론 내릴 수는 없다.
발표 문구는 ‘프레임’ 단위를 사용하지만 코드와 콘솔은 ‘프레임 묶음’을 다룬다. 304·146·153이 개별 프레임 수인지 묶음 수인지는 재현 실험에서 확인해야 한다. AE와 VAE에 동일 임계값이 표기되어 있어, 모델별 정상 오차 분포에 맞춘 보정 여부도 추가 확인 항목이다.
VAE 학습 손실과 위 표의 평가 MSE는 구분해야 한다. 표의 MSE는 슬라이드 19에 적힌 값을 옮겼으며, 원시 예측값과 계산 코드는 제공되지 않아 다시 계산하지 않았다.
손의 움직임에서, 방송 블랙 화면까지
실시간 카메라에서 변화 관찰하기
발표에서는 cv2.VideoCapture로 카메라를 켜고, 손을 갑자기 올렸을 때 평균 오차가 증가하는 현상을 관찰했다. 이는 입력 변화에 점수가 반응한 사례이며, 특정 행동을 정확히 분류했다는 결과와는 구분된다.
방송 프레임 끝에 블랙 이미지 넣기
방송 영상을 프레임으로 추출한 뒤 마지막 구간에 임의의 블랙 이미지를 추가하고 복원 오차를 비교했다. 정상 구간과 다른 화면이 이어질 때 점수 변화가 감지되는지 살펴본 실험이다.
슬라이드 21의 콘솔에는 정상 묶음 예시 약 0.00042119, 0.00039641와 비정상 묶음 예시 약 0.00076131이 보인다. 마지막 값은 발표 임계값을 조금 넘지만, 이 예시만으로 블랙 화면 전반에 대한 안정적인 탐지 성능을 판단할 수는 없다.
오차가 큰 구간을 운영자에게 확인 후보로 전달하고, 점수의 지속 시간과 화면 상태를 함께 보는 방향을 검토할 수 있다. 발표도 큰 오차가 오래 지속될 때 블랙 화면 등의 상황에 대비할 가능성을 제안했다.
추가 검토: 의도적인 암전·페이드아웃·장면 전환과 실제 송출 이상을 구분하고, 단순 밝기 기반 블랙 화면 규칙과 비교해 AI 모델이 더해 주는 효과를 확인한다.
다음 실험에서는, 비교 조건부터 맞추기
- 학습·검증·평가 데이터를 분리한다정상 학습 영상, 임계값 보정용 정상 영상, 이상 구간 라벨이 있는 평가 영상을 구분한다. 같은 영상의 인접 프레임이 서로 다른 세트에 섞이지 않도록 확인한다.
- 입출력 형태와 판정 단위를 고정한다프레임 크기·정규화·시간 축·묶음 길이·이동 간격을 기록하고, 복원 출력이 입력과 같은 크기인지 확인한다. 프레임 단위와 이벤트 단위 평가를 구분한다.
- 모델별 임계값을 검증 데이터에서 보정한다AE와 VAE의 정상 오차 분포를 각각 확인한다. 같은 평가 세트와 일관된 기준으로 비교하며, 3시그마 규칙의 적합성도 검토한다.
- 정답 라벨을 기준으로 오탐·미탐을 센다Precision·Recall·F1과 이벤트 탐지 지연을 확인한다. 실시간 적용이라면 시간당 오탐 수와 처리 속도도 함께 기록한다.
- 방송 상황별로 실패 사례를 모은다블랙 화면뿐 아니라 정상 암전, 조명 변화, 화면 전환을 비교한다. 오차가 커진 이유를 원본 구간과 대조해 분석한다.
더 많이 표시하는 모델보다,
이유를 확인할 수 있는 실험으로.
이번 프로젝트는 영상 전처리부터 AE·VAE 구현과 이상 점수 계산까지 연결한 학습 기록이다. 다음 단계는 데이터 분리와 평가 단위를 명확히 하고, 실제 이상 구간을 얼마나 안정적으로 찾아내는지 검증하는 일이다.
발표 자료와 연구 기록
Spatio-Temporal AutoEncoder for Video Anomaly Detection
A조: 고준 · 박주호 · 박지훈 · 정규혁 · 황태진
첨부 파일: V4 추가수정본, 총 23장
본문의 모델 설정·임계값·실험 수치는 첨부 발표에 근거한다. 구조도와 비율 그래프는 해당 내용을 재구성했으며, 콘솔·프레임 이미지는 PPT에서 발췌했다.
PPT에 표기된 선행 연구Yong Shean Chong, Yong Haur Tay.
Abnormal Event Detection in Videos using Spatiotemporal Autoencoder. 2017.
PPT 슬라이드 4에 기재된 참고문헌. 이 글에서는 첨부 발표를 분석했으며 선행 논문 전문을 별도로 검증하지 않았다.
‘검토 포인트’와 ‘다음 실험’은 발표의 결과를 해석하며 정리한 보완 제안이다. 발표에서 확인되지 않은 성능 수치나 구현 결과는 추가하지 않았다.