본문 바로가기
Project

CCTV 이상행동 판별 시스템 제작 - 05. 사진찍기 -> 라벨링 -> 모델 학습의 무한 굴레

by EunjiBest 2022. 8. 19.

CCTV 이상행동 판별 시스템 제작 - 05. 사진찍기 -> 라벨링 -> 모델 학습의 무한 굴레





실력향상에는 실전에 뛰어드는 것이 최고라는 말이 괜히 있는게 아닌 것같다.

지금까지 공부는 잘~ 정제된 유명한 예제 데이터(MNIST, 타이타닉, IRIS 등..)를 가지고 모델 학습을 하는 법 위주로 실습해왔다.

이론적으로는 데이터 전처리가 인공지능의 80퍼센트를 차지한다고 배웠지만
예제 데이터로는 전처리를 집중적으로 한 적도 없고(많이 할 것도 없다), 그냥 모델만 잘 쌓아서 돌리면 정확도가 높게 나와 즐거웠다.

지금은 아니다..
데이터가 인공지능에서 너무너무 중요하다는 사실을 깨닳는 요즘이다.


문제점


- 모델이 우리가 의도한 특징을 잡지 못함.

이 상황을 방지 하기 위해서 처음부터 사진을 찍을 때,
모델이 특징을 쉽게 잡을 수 있도록 폭행은 팔만 사용한다던가, 기물파손은 의자만 차는 등..특징잡을 만한 것들을 의도해서 넣었다.


하지만 모델은 우리가 의도한 특징을 정확하게 잡지 못했다.

의자가 없어도 발만 올라가면 -> 기물파손
내가 실신 사진을 많이 찍었다면 -> 내 얼굴만 봐도 실신
사람 두 명이 붙어있다면 -> 폭행

이런식으로 엉뚱한 상황들이 디텍션 되었다.



모델 성능 올리기



1. 데이터 추가

위와 같은 문제점이 나온 가장 큰 이유는 많은 데이터가 없다는 것이다.
고작 몇 백장으로 학습을 시키는데 좋은 성능이 나올리가 없기 떄문에
학습한 것을 테스트하고 특징이 될만한 문제점을 찾아서 사진을 찍어 데이터를 추가해주었다.

먼저 여러가지 행동을 테스트 해보고 엉뚱한 행동에 대해 디텍션을 하는 상황과 그에 대한 이유들을 판단해보았다.


옆으로 앉아있음 -> 기물파손 (아마도 다리의 각도가 물건을 차는 자세이기 때문에)
팔 앞지르기(악수, 물건 건내주기) -> 폭행 (팔을 뻗는 행동이 폭력으로 인식)
허리를 구부리고 앉아있는 자세 -> 폭행, 기물파손 (왜 이렇게 나오는지 모르겠음)
친구와 팔짱 -> 폭행(두명의 사람이 붙어있어서 폭행으로 인식)

그리고 해당 행동들을 찍어서 데이터를 추가하기로 했다.



이번에는 사람들도 추가하고 다양한 상황들을 연출하여 사진을 찍었다.

이렇게 하면 기존에 의도했던 특징을 잡을 수 있음과 동시에
사진에 라벨링이 되지 않은 행동들은 디텍션이 되지 않는다는 효과를 기대할 수 있다.




2. 임계값 조정

임계값도 함께 조정했다.
예를 들어 폭행이 0.50만 나와도 디텍션이 되었다면,
임계값을 올려 0.70이상만 디텍션이 되도록 수정해주었다.




무한반복


위의 과정을 이제 무한 반복해주면 된다.
언제까지? 성능이 좋아질 때 까지!

이건 프로젝트가 끝날 때까지 끊임없이 수정해주고
성능을 올려야하는 부분이다.

그럼 그동안 무엇을 해야할까?
이제는 눈에 보일 수 있도록 서비스를 만들어야한다.

그 내용은 다음 포스팅에서 이어나가도록 하겠다.



반응형

댓글