DVR 검색 시스템
상태바
DVR 검색 시스템
  • CCTV뉴스
  • 승인 2009.04.10 00:00
  • 댓글 0
이 기사를 공유합니다

본 기술은 효율적인 영역 검색을 지원하기 위해서 움직임 감지(Motion Detection) 데이터를 활용한 검색 기법을 제안한다. 움직임 감지 데이터는 DVR 시스템에서 작은 추가 비용으로 추출할 수 있는 데이터이다. 그러나 일반적인 방법으로는 이 데이터를 실시간으로 DBMS(Database Management System)에 저장할 수 없다는 문제점이 있기 때문에, 본 기술에서는 이 문제의 해결을 위해서 영역 인코딩 방법을 제시하고 이를 활용한 검색 메커니즘을 제안한다. 본 기술에 따른 DVR 검색 시스템은, DVR 시스템에서 움직임 감지 데이터를 수신하는 움직임 감지 데이터 수신 엔진과, 상기 수신된 움직임 감지데이터의 인코딩 처리를 행하는 움직임 감지 데이터 삽입 엔진과 상기 인코딩 된 움직임 감지 데이터를 저장하는 데이터베이스(DB)와, 상기 데이터베이스에 저장된 데이터의 검색 처리를 행하는 쿼리 처리 엔진을 포함하여 구성된 것을 특징으로 한다.

컴퓨터와 인터넷 기술의 발달과 보안의 중요성이 대두되면서 DVR 시스템이 널리 보급 되고 있다. DVR은 과거 CCTV보다 더 선명한 화질과 빠른 검색을 지원한다는 장점이 있다.

초기 검색 방법은 다양한 배속으로 비디오 데이터의 시작 위치부터 사용자가 원하는 데이터를 찾아 가는 방식이었다. 이 방식은 높은 배속임에도 불구하고 검색 시간이 오래 걸리고, 사용자가 검색 화면을 확인해야 한다는 단점이 있었다. 즉, 화면상의 특정 영역에 변화가 있는 비디오 프레임만을 검색하는 특정 영역 검색과 시간 범위에 대한 검색이 요구되었다. 이와 같은 문제점을 해결하기 위해서, 기존 연구에서는 스마트 서치, 파노라마 서치, 멀티 서치 등을 제안하였다.

스마트 서치는 특정 영역 검색으로서, 사용자가 검색하고자 하는 특정 영역을 지정하면 시스템은 저장된 비디오 데이터를 모두 비교 분석하여 사용자가 원하는 비디오 프레임을 반환한다. 그러나 이 검색 방법은 사용자가 임의의 영역에 대해서 검색을 행할 수 있다는 장점은 있으나, 저장된 비디오 데이터를 모두 비교 분석을 행해야 하기 때문에 검색 시간이 길어진다는 단점이 있다.

파노라마 서치는, 시간을 기준으로 검색을 행한다. 시간에 대한 범위가 입력되면 그 시간 범위에 대한 결과값을 출력하고, 채널별 검색만을 지원한다. 따라서 파노라마 서치는 영역 검색을 지원하지 않는 단점이 있다.

멀티 서치는 파노라마 서치를 확장한 것으로, 한 개의 채널 검색이 아닌 다채널을 동시에 검색할 수 있다. 그러나 멀티 서치도 영역 검색을 지원하지 않기 때문에 사용자가 원하는 비디오 프레임을 검색하기 위해서는 사용자가 각 비디오 프레임을 확인해야 한다는 단점이 있다.

이와같은 문제점을 해결하고, 효율적인 영역 검색을 지원하기 위해서 움직임 감지 데이터를 활용한 검색 기법을 제안하고자 한다. 움직임 감지 데이터는 DVR 시스템에서 작은 추가 비용으로 추출할 수 있는 데이터이다. 그러나 일반적인 방법으로는 이 데이터를 실시간으로 DBMS에 저장할 수 없다는 문제점이 있기 때문에, 본 기술에서는 이 문제의 해결을 위해서 영역 인코딩 방법을 제시하고 이를 활용한 검색 메커니즘을 제안한다.

움직임 감지 데이터

본 기술에서 제안하는 DVR 시스템에서의 움직임 감지 데이터 기반 영역 검색을 사용하면 다음과 같은 효과를 얻을 수 있다.

첫째, DVR 시스템에서 움직임 감지 데이터는 가장 중요한 데이터 중에 하나이다. 그러나, 기존에는 실시간으로 발생하는 움직임 감지 데이터를 저장할 수 있는 방법이 없는 관계로, 필요 시에 저장된 비디오 데이터를 기반으로 생성하여 사용하였다. 저장된 비디오 데이터를 기반으로 한 움직임 감지 데이터 추출은 하드웨어로 처리 할 수가 없기 때문에 많은 시간이 소요되어 검색에 많은 시간이 소요되는 문제점이 있었다. 따라서, 본 기술에 따르면, 움직임 감지 데이터를 효율적으로 저장할 수 있다.

둘째, 효율적인 영역 검색을 지원한다. 영역 인코딩 기법을 사용하여 움직임 감지 데이터를 DBMS에 저장할 수 있게 됨으로써, 기존과 달리 영역 검색을 효율적으로 지원할 수 있게 되었다. 즉, 시스템에서 복잡한 프로그램을 작성할 필요 없이 간단한 SQL을 통해서 영역 검색을 지원할 수 있다.

셋째, 검색 결과를 프레임 단위로 제공함으로써, PDA와 같은 다양한 시스템에서의 검색이 가능하다. PDA와 같은 이동 단말기의 특성은 네트워크 속도가 떨어지고, 가용한 메모리양이 작기 때문에 검색 결과가 너무 크게 되면 사용자가 볼 수 없다는 문제점이 있다. 그러나 본 기술에서 제안한 방법을 적용하면, 해당 비디오 프레임만을 반환 받기 때문에, 시스템에 많은 부하를 걸지 않으면서도 사용자에게 정확한 정보를 제공할 수 있다.

첨부된 도면을 참조하여 본 기술의 실시 예에 따른 DVR 검색 시스템을 설명함에 있어 동일한 부분에 대해서는 동일한 참조 번호를 부여하였다.

일반적으로 많은 데이터를 효율적으로 처리하기 위해서는 DBMS라는 소프트웨어를 사용한다. DBMS는 데이터들의 집합인 DB를 관리하며, 사용자에게 빠른 검색과 편리한 인터페이스를 제공하기 위해서 인덱스와 SQL이라는 검색 언어를 제공하고 있다.

따라서 본 기술에서도 DVR 시스템에서의 영역 검색을 효율적으로 지원하기 위해서 움직임 감지 데이터를 그림 2에서와 같이 DBMS가 관리하는 DB(Database, 23)에 저장하고 이를 기반으로 검색을 지원한다. DVR 시스템에서 움직임 감지 데이터는 각 프레임마다 그림 1과 같이 추출된다. 움직임 감지 데이터는 화면의 해당 영역에 움직임이 감지되면 '1'로 설정되고, 그렇지 않으면 '0'으로 설정된다.


그림 1. 본 기술의 실시 예에 따른 움직임 감지데이터 예

움직임 감지 데이터는 실시간으로 DBMS에 저장되고, 검색을 위해 인덱스도 설정된다. 본 기술에 따른 DVR 시스템은 동시에 4개의 채널을 지원하고 한 채널에서 초당 30프레임이 녹화되기 때문에 DBMS는 그림 1에서 나타낸 바와 같이, 움직임 감지 데이터를 초당 최대 120개를 삽입해야 한다. 그러나, 움직임 감지 데이터를 각 영역별로 저장하는 방식으로는 초당 최대 120개를 삽입할 수 없고, 초당 최대 25개의 데이터만 삽입할 수 있다.

움직임 감지 데이터를 실시간으로 DBMS에 저장하기 위해서는 감지 데이터를 압축하여 DBMS에 저장되는 데이터의 양을 줄여야 한다. 뿐만 아니라 데이터의 압축 시간이 작고, 검색 시에 SQL 문으로 압축된 데이터에 대해서 질의를 수행할 수 있어야 한다.

이와 같은 요구 사항을 만족시키기 위해서 본 기술에서는 영역 인코딩 방법을 제안한다. 영역 인코딩 방법의 기본 개념은 그림1과 같이 2차원 움직임 감지 데이터를 1차원의 배열로 변경하고, '1'로만 이루어진 영역의 시작 위치와 끝 위치만을 저장하는 방법이다.

즉, 그림 1의 움직임 감지 데이터를 1차원으로 변경하면 아래와 같다.


이를 영역 인코딩 방법으로 표현하면, 다음과 같다.


영역 인코딩 방법은 예에 보는 바와 같이 데이터의 양이 줄 뿐만 아니라, 검색을 효율적으로 하기 위해서 구축할 인덱스의 수에서 큰 차이를 보인다. 즉, 기존 방법으로 하면, 각 영역 별로 인덱스를 구축해야 하기 때문에 77개의 인덱스를 구축해야 하지만, 영역 인코딩 방법에서는 시작 위치와 끝 위치를 위해서 각각 하나씩의 인덱스만을 구축하면 된다. 이로 인해, 인덱스 구축 시간이 현저히 감소하여 움직임 감지 데이터를 실시간을 입력할 수 있게 된다.

영역 질의를 위해서 작성해야 할 SQL문도 영역 인코딩 방법을 사용하면 간단하게 구현할 수 있다. 사용자가 검색하고자 하는 영역에 움직임이 발생했는지를 검사하기 위해서는 사용자가 지정한 영역보다 작거나 같은 시작 위치와 지정한 영역 보다 크거나 같은 끝 위치를 가진 영역 인코딩 데이터를 DB에서 검색하면 된다.

결론적으로, 영역 인코딩 방법은 저장할 데이터의 양과 구축할 인덱스 수를 감소 시켜 움직임 감지 데이터를 거의 실시간으로 DBMS에 저장하는 것을 가능하도록 하며, 저장된 인코딩 데이터를 디코딩 단계를 거치지 않고 바로 SQL로 검색이 가능하도록 하여 검색을 효율적으로 지원할 수 있게 한다.

또한, 검색된 결과 프레임만을 사용자에게 제공하는 메커니즘을 제안한다. 기존에는 검색 결과를 1~2분 정도의 비디오 파일로 제공되어 사용자가 다시 정확한 화면을 검색해야 하지만, 움직임 감지 데이터와 함께 해당 비디오 프레임의 옵셋을 저장함으로써, 비디오 파일에서 정확한 해당 비디오 프레임만을 사용자에게 제공할 수 있다.

그림 2는, 본 기술에 따른 DVR 검색 시스템의 구조를 나타내는 블럭도이다.

그림 2. 본 기술 따른 DVR 검색 시스템을 나타내는 도면

그림 2에서 나타낸 바와 같이, 본 기술의 검색 시스템(100)은 DVR 시스템(20)으로부터 움직임 감지 데이터를 받아서 DBMS에 저장하는 움직임 감지 데이터 수신 엔진(21)과 움직임 감지 데이터 삽입 엔진(22)와, 사용자(25)로부터 영역 검색 질의어를 받아서 처리하는 쿼리 처리 엔진(24) 및 DB(23)로 구성된다.

움직임 감지 데이터 수신엔진(21)은 TCP/IP 인터페이스 모듈(201)과 버퍼 관리자(202)를 포함하며, DVR 시스템(20)으로부터 TCP/IP 인터페이스 모듈(201)을 통해 움직임 감지 데이터를 전송 받고, 전송 받은 움직임 감지 데이터는 버퍼 관리자(202)에 임시 저장된다.

움직임 감지 데이터 삽입엔진(22)은 움직임 감지 데이터 관리자(204)와 DBMS 인터페이스 모듈(205)을 포함한다. 움직임 감지 데이터 관리자(204)는 파이프 라인(203)을 통해 버퍼 관리자(202)에 저장된 움직임 감지 데이터를 읽고, DB(23)에 저장된 날짜 제한 기능을 감시한다. 또한, 이 관리자는 움직임 감지 데이터를 영역 인코딩 방법으로 인코딩하여, DBMS 인터페이스 모듈(204)을 통해 테이블, 인덱스의 생성 및 삭제를 행하고, 인코딩 된 데이터를 삽입한다.

쿼리 처리엔진(24)은 TCP/IP 인터페이스 모듈(209)과, 쿼리 처리부(206)와 DBMS 인터페이스 모듈(207)을 포함한다. TCP/IP 인터페이스 모듈(209)을 통해 범위 질의 혹은 파일 이름을 검색할 수 있는 질의를 입력 받는다.

쿼리 처리부(206)는 범위 질의 또는 시간+범위 질의인지를 확인하고, 입력된 범위 질의에 대해서는 DB(23)에 저장된 영역 인코딩 데이터에 대해서 SQL문으로 질의를 만들어 수행시킨다. 쿼리 처리엔진(24)은 DBMS 인터페이스 모듈(207)을 통해 DB(23)에 저장된 데이터를 검색한다.

본 기술에 따른, DVR 검색 시스템은 복수의 DVR 시스템과 여러 사용자의 동시 접속을 지원하기 위하여, 도시하지는 않았지만, 데이터 입력 부분과 질의 처리 부분을 쓰레드(thread)로 구현한다.

DVR 시스템(20)에서는 움직임이 감지되었을 때부터 비디오 데이터와 움직임 감지 데이터를 DVR 검색 시스템(100)에 TCP/IP(200)를 통해 전송을 시작한다. DVR 시스템(20)으로부터 전송되는 움직임 감지 데이터는 움직임 감지 데이터 수신엔진(21)에 의해서 수집되고, 이를 버퍼 관리자(202)를 거쳐, 움직임 감지 데이터 삽입엔진(22)에 의해 DB(23)에 저장된다. 전송된 움직임 감지 데이터는 데이터의 해상도, 시간, 프레임 번호, 채널 번호 등으로 구성된다.

움직임 감지 데이터를 DB에 삽입하는 경우 영역 인코딩 방법 외에 해상도 문제를 고려해야 하는데, DVR 시스템(20)은 고정된 해상도로 비디오를 녹화하는 것이 아니라 동적으로 변경될 수 있다. 이로 인하여 영역 질의어 처리에서 같은 영역임에도 불구하고 해상도의 차이로 인해서 다른 영역으로 인식되는 문제점이 있다. 따라서, 본 기술에서는 움직임 감지 데이터를 검색 시스템(100)에서 미리 정한 해상도로 정규화하여 저장하고, 영역 질의어도 정규화하여 처리한다.

비디오 데이터는 도시하지 않았지만, 비디오 데이터 삽입 엔진에 의해 파일 시스템에 저장된다. 비디오 데이터의 형식은 그림 3에 나타낸 바와 같이, 비디오 스트림 데이터와 비디오 데이터 오프셋 정보를 다른 파일에 저장한다. 이는 각 비디오 프레임의 크기가 다르기 때문에 검색할 때에 좀 더 효과적으로 해당 비디오 프레임을 추출하기 위함이다.


그림 3. 비디오 데이터의 저장 형식을 나타내는 도면

본 기술의 DVR 검색 시스템은 채널 번호, 시간 및 움직임 감지 데이터 상에서의 영역에 대한 검색을 지원한다. 영역 검색에는 TOTAL_MATCH와 PARTIAL_MATCH를 지원하는데, TOTAL_MATCH는 영역 질의어에서 지정한 모든 영역에서 움직임이 감지된 비디오 프레임을 검색하고, PARTIAL_MATCH는 영역 질의어에서 지정한 영역 중에 한 영역 이상에서 움직임이 감지된 비디오 프레임을 검색한다. 질의 처리를 담당하는 쿼리 처리부(206)는 사용자와의 인터페이스를 위해서 표 1과 같은 명령어를 지원한다.

 

QP_GET_FRAME 명령어는 QP_RESULT_LIST에서 검색된 비디오 프레임 정보 중에서 사용자가 선택한 특정 비디오 프레임을 제공한다.


그림 4. DVR 검색 시스템에 삽입된 움직임 감지 데이터 수

그림 4는 DVR 시스템에서의 삽입된 움직임 감지데이터의 수를 나타내는 도면이다. 움직임 감지 데이터의 삽입 속도는 그림 4에 나타낸 바와 같이 분당 삽입되는 데이터의 수로 측정된다. 이 DVR 검색 시스템은 동시에 4개의 채널을 지원하고 한 채널에서 초당 30프레임이 녹화되기 때문에 DBMS는 움직임 감지 데이터를 초당 최대 120개(분당 최대 7200)를 삽입할 수 있다.

그림 4에 나타낸 바와 같이, 5분과 41분 사이에 삽입 속도가 저하되는 것은 DBMS에서 인덱스로 사용하고 있는 B+트리의 특성상 노드의 분할이 많이 발생하였기 때문이다. 41분 이후에는 트리의 팬 아웃(fan-out)이 충분히 커져서 데이터들이 적절히 분산되고, 이로 인해 노드의 분할이 적게 발생하여 속도가 다시 증가한다.

저장된 움직임 감지 데이터에 대한 검색 속도는 표 2에 나타낸다. 검색 시간은 20번 반복하여 그 평균값을 정한다. 검색 속도는 저장된 데이터의 수에 따라 조금씩 감소하지만 전체적으로 빠르게 검색됨을 알 수 있다.



본 기술의 범위는 실시 예에 한정되지 않는다. 다양한 수정, 결합, 부분 결합 및 교체가 그것들이 첨부된 청구항 또는 그와 동등한 실질적인 범위 내에 있는 한, 당업자에 의해 설계 요구 사항 및 기타 요소들에 따라 발생될 수 있음은 물론이다.

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.