기존 시스템의 문제점
단속 시스템의 경우 각 단속 기능에 대한 카메라가 개별적으로 설치되는 것이 문제점이라고 할 수 있습니다.
교차로마다 평균 1~2개의 단속시스템이 설치되는데, 확실한 단속을 위해서는 교차로에서 방향별로 총 4개의 과속단속 및 신호 위반 단속시스템이 설치되어야 하며,
불법 주/정차 카메라 및 우회전 단속 카메라가 설치되어야 합니다.
이는 관리 및 장소, 설치에 큰 비용이 들며 예산으로 인한 추가적인 설치가 부족해 어린이 보호구역에도 설치가 잘 안 되는 결과를 만들어 냅니다.
해결 방안
그림) 통합 단속시스템 개요
사용자 인터페이스
– OpenCV에서 화면에 문자열을 출력할 때 사용하는 putText() 함수는 한글을 출력할 수 없습니다.
– 따라서 화면에 한글을 출력하기 위해서는 유니코드 문자열을 비트맵 이미지로, 비트맵 이미지를 행렬로 변환하여 출력해야 합니다.
– 문자열을 행렬로 바꿔 출력한 결과, 한글이 문제없이 잘 출력됩니다.
– 기존 문자열 출력 함수와 큰 차이가 나지 않도록 출력 형태 수정해야 합니다.
기존 단속 기준
- 차량의 경계 박스 중심점을 기준점으로 설정합니다.
- 현재 프레임의 기준점과 이전 프레임의 기준점의 위치를 비교하여, 그 거리가 기준치 이하라면 정지 상태로 판단합니다.
- 정지 상태일 경우 단속 타이머를 작동하여 시간을 누적시킵니다.
- 현재 프레임의 기준점과 이전 프레임의 기준점 사이의 거리가 일정 값을 초과하는 즉시 이동 상태로 판단하여, 단속 타이머를 초기화합니다.
- 단속 타이머가 정해진 시간을 초과한다면 불법 주/정차 차량으로 판단합니다.
기존 단속 기준의 문제점
경계 박스의 떨림이나 다른 물체에 의한 부분 폐색, 카메라의 흔들림 등 다양한 요인으로 인해 기준점인 경계 박스의 중심점의 이동 거리가 기준치를 초과하여, 차량이 실제로는 정지 상태라도 이동 중으로 오인될 수 있습니다.
위와 같은 이유로 잠깐이라도 오판 시, 단속 타이머가 즉시 초기화됩니다.
단속 알고리즘 개선
– 이전 프레임과 비교하여 기준점이 일정 픽셀 이하로 이동했을 경우, 정지 여부를 확인하는 일시 정지 판단 카운터를 증가시킵니다.
– 해당 카운터가 일정 값을 초과할 때, 일시 정지 타이머를 작동시킵니다.
– 동시에 기준점을 중심으로, 주/정차 판단 기준으로 사용할 영역을 설정합니다.
– 기준점이 주차 판단 영역 내부에 있다면 일시 정지 타이머에 값을 누적시킵니다. 기준점이 주차 판단 영역을 5 프레임 이상 벗어난다면, 주/정차를 멈추고 이동 중인 것으로 판단합니다.
개선 결과
- 차량이 주차를 시작한 것으로 판단하면, 이후의 정지 판단 기준은 비교적 여유 있게 설정하여, 부분 폐색과 같은 예외 상황에 대처합니다.
- 기준점이 연속으로 판단 기준을 벗어나는 경우에만 정차 후 이동 중인 차량으로 판단하여, 타이머가 초기화되는 일을 최대한 방지할 수 있습니다.