CCTV 기반 개인 프라이버시 제공 시스템 구현
상태바
CCTV 기반 개인 프라이버시 제공 시스템 구현
  • CCTV뉴스
  • 승인 2010.07.29 00:00
  • 댓글 0
이 기사를 공유합니다

연 재 순 서

01회 | CCTV 환경에서의 개인 프라이버시 정보보호의 필요성
02회 | CCTV 시스템 구축시 고려사항 및 구축사례에 대한 종류별 분류
03회 | CCTV 기반 얼굴 검출 기법 이해
04회 | CCTV 기반 얼굴 인식 기법 이해
05회 | CCTV 기반 바이오 정보 위협 요소
06회 | CCTV 기반 바이오 정보 보안 대책
07회 | CCTV 시스템에서의 보안 위협 요소
08회 | CCTV 시스템에서의 보안 대책
09회 | CCTV 시스템 구성요소별 보안 위협 및 방어 대책
10회 | CCTV 기반 얼굴 검출 및 인식 시스템 보안 프레임워크 구현 방법
11회 | CCTV 기반 개인 프라이버시 제공 시스템 구현 

시스템 개요

본 기고에서는 CCTV 기반 얼굴 검출 및 인식 시스템에서 실시간으로 전송되는 영상으로부터 아다부스트(Adaboost) 알고리즘을 이용하여 효율적으로 얼굴 정보를 추출한 후, 카오스(Chaos) 기반의 스크램블링(Scrambl ing) 기법을 적용하여 검출된 얼굴 정보에 대한 프라이버시(Privacy)를 제공하는 영상을 생성하여 안전하게 저장할 뿐만 아니라, 해당 클라이언트의 요구에 의해 저장된 영상으로부터 안전하게 프라이버시가 제거된 영상을 제공하는 데모 영상 감시 시스템을 소개한다.

[그림 1]은 아다부스트 얼굴 검출 알고리즘과 스크램블링 기법을 이용한 프라이버시 제공 영상 생성 프로그램의 동작 흐름을 보여주며, [그림 2]는 역스크램블링 기법을 이용한 프라이버시 제거 영상 생성 프로그램의 동작 흐름을 보여준다.

                

 
아다부스트 알고리즘(Adaboost Algorithm) 소개

아다부스트(Adaboost) 방법은 얼굴 검출 분야뿐만 아니라 패턴 분류 기법을 이용하는 다양한 분야에서 사용되어지고 있다. 얼굴 검출을 위해 사용되는 아다부스트(Adaboost)는 Viola에 의해 처음 제안되어졌고, 기존의 얼굴 검출 방법보다 복잡한 환경이나 기타 외부 변수에서도 뛰어난 검출 능력을 나타낸다. 아다부스트(Adaboost)는 약한 분류기(Weak classifier)의 집합을 선형적으로 결합하여 높은 검출 성능을 가지는 강한 분류기를 생성한다.

아다부스트 알고리즘 동작원리

[그림 3]은 아다부스트(Adaboost) 알고리즘의 영상 활용 단계를 보여주며, 다음과 같이 동작한다.



1. 입력: 훈련영상들의 집합 


이때, yi가 0이면 이미지의 배경부분(negative), 1이면 이미지의 얼굴부분(positive)을 의미한다.

2. 가중치 초기화 



이때, m은 S내의 배경 이미지의 개수를 의미하며, l은 얼굴 이미지의 개수를 의미한다.

3. t 반복, t = 1, ... , T
 
(1) 가중치의 표준화 


        
(2) 가장 낮은 가중치 에러율 εt를 가지는 약한 분류기 선택 
       


4. 가중치 업데이트


올바르게 분류가 된 경우 ei  =  0, 올바르게 되지 않은 경우



5. 강한 분류기 생성 
   


아다부스트 알고리즘(Adaboost Algorithm)의 장·단점

1. 장점
- 각 학습단계에서 positive와 negative로 분류기가 분류하여 얼굴이 잘 검출된다.
- 실시간 검출에 있어 기존 방법에 비해 뛰어난 성능을 보인다.

2. 단점
- 훈련데이터 집합에 대한 의존성이 강하다.
- 훈련데이터 집합 이미지의 개수가 많을수록 훈련기간이 느리다.

스크램블링 알고리즘(Scrambling Algorithm) 소개

이미지 스크램블링은 위치 또는 이미지 픽셀의 색상을 복잡하게 하여 원본 이미지가 인지되어질 수 없게 하는 것이다. 그러나 관리자는 특정한 알고리즘에 의하여 원본 이미지를 재생성 할 수 있어야한다.

이미지 스크램블링 기법에는 카오틱 맵 시스템을 기반한 방법과 아놀드 트랜스폼 등 다양한 기법들이 있다. 본 스크램블링 기법에서는 로지스틱 맵을 이용한 카오틱 시스템기반의 스크램블링 방법을 사용하였다.

카오틱 시스템

카오틱 시스템은 잡음과 같은 특성을 가지고 있으며, 입력된 파라미터 값들과 초기 값을 알고 있을 때 정확하게 원본 이미지를 복원시킬 수 있다. 카오틱 시스템에서 가장 잘 알려진 것은 다음 수식에서 생성되어지는 로지스틱 맵이다.



여기서 3.5699456<r≤4;0<Xn<1. [그림 4]에서는 X0=0.5이고 r=3.9999에 대한 값과 500번 반복한 횟수의 변화를 보여준다. 스크램블링 방법에서, X0의 초기 값은 관리자에 의해서 지정되며, 안전하게 유지된다. X0의 초기 값은 사용자의 키에 의해 할당되어지거나 또는 사용자의 키와 해쉬 함수를 통해 생성되어진 값에 의해서 할당되어질 수 있다.



스크램블링 알고리즘 동작원리

[그림 5]는 스크램블링과 역스크램블링의 순서도이다.


1. 스크램블링 과정
·입력: 스크램블을 위한 이미지 I, 비밀 키 K
·출력: 스크램블링 이미지 I ′

단계 1: 카오틱 순서를 얻기 위해 로지스틱 맵 함수를 사용한다.
단계 2: 스크램블링 테이블을 생성하기 위하여 카오틱 순서를 정렬하고 정렬된 새로운 순서를 사용한다.
단계3 : 스크램블링 테이블에 따른 픽셀의 위치들을 변경한다.

위의 단계들을 수행한 후, 원본 이미지는 스크램블링 된다. 예를 들면, 그림 3에서 원본 이미지 (a)의 크기는 4x4이고, 로지스틱 맵 함수에서 r의 값은 3.7, 그리고 키 값은 0.5라고 가정한다.

먼저, 로지스틱 맵 함수 Xn+1=3.7Xn(1-Xn)는 카오틱 순서 (b)를 계산하기 위해 다음과 같이 사용되어진다.



두 번째로, 증가된 차례에 의해 카오틱 순서 (c)는 정렬되어 진다. 세 번째로, 새롭게 정렬된 카오틱 순서는 스크램블링 테이블 (d)를 생성하기 위해 사용되어진다.

새롭게 정렬된 카오틱 순서에서, 0.2567은 카오틱 순서의 첫 번째 값이고, 정렬되기 전의 카오틱 순서는 세 번째  값이다. 이 때, 스크램블링 테이블의 첫 번째 값은 3이다.

0.2608은 정렬 후 카오틱 순서의 두 번째 값이고, 정렬되기 전의 카오틱 순서의 10번째 값이다. 따라서 스크램블링에 두 번째 수는 10이 된다. 위의 과정들을 차례대로 실행하면, 스크램블링 테이블이 생성되어진다. 스크램블링 이미지 (e)를 얻기 위해서, 스크램블링 테이블을 이용하여 픽셀들의 위치를 변경한다.

[그림 6]과 같이, 스크램블링 테이블의 첫 번째 값이 3이고, 원본 이미지의 첫 번째 위치한 값인 145는 스크램블링 이미지의 세 번째로 이동되어진다. 스크램블링 테이블에서 두 번째 값은 10이다. 이 때, 원본 이미지의 두 번째 값인 247은 스크램블링 이미지의 10번째 픽셀 위치로 이동된다.



2. 역스크램블링 과정
·입력: 역스크램블링을 위한 이미지 I ′, 비밀 키K
·출력: 원본 이미지 I

단계 1: 카오틱 순서를 얻기 위하여 로지스틱 맵 함수를 사용한다.
단계 2: 역스크램블링 테이블을 생성하기 위하여 카오틱 순서를 정렬하여 정렬된 새로운 순서를 만든다.
단계 3: 역스크램블링 테이블에 따른 픽셀들의 위치를 변경한다.

위의 단계들을 수행하면, 원본 이미지가 생성되어진다. [그림 7]에서와 같이, 첫 번째로 로지스틱 맵 함수 Xn+1=3.7Xn(1-Xn)은 다음과 같이 카오틱 순서 (b)를 계산하기 위하여 사용된다.



두 번째로, 카오틱 순서 (c)는 정렬에 의해 새롭게 생성되어진다. 세 번째로, 카오틱 순서의 새로운 순서는 역스크램블링 테이블 (d)를 생성하기 위하여 사용되어진다.

0.5000은 카오틱 순서에서 첫 번째 값이고, 정렬 후 카오틱 순서에서는 세 번째 값이다. 이 때 스크램블링 테이블 안에 첫 번째 값은 3이다.
 
카오틱 순서의 두 번째 값인 0.9250은 정렬 후 카오틱 순서의 16번째 값에 해당한다. 따라서 원본 이미지의 두 번째 값은 16이 된다. 위의 과정을 차례대로 실행하면, 역스크램블링 테이블이 생성되어진다. 역스크램블링 테이블을 이용하여, 원본 이미지 (e)를 복원하기 위해서 픽셀들의 위치를 변경한다.

만약 스크램블링 테이블 안에 첫 번째 수는 3이고, 이 때 스크램블링 이미지 값인 56은 원본 이미지의 3번째 위치로 이동 된다. 스크램블링 테이블의 두 번째 값은 16이다. 이 때 스크램블링 이미지의 두 번째 픽셀 값인 169는 원본 이미지의 16번째 위치로 이동되어진다.


시스템 인터페이스 소개

1. 영상 캡쳐
실시간으로 CCTV로부터 송신되는 영상을 영상 감시 서버가 캡쳐한다. [그림 8]은 영상 캡쳐 과정을 보여준다.


2. 얼굴 검출
아다부스트(Adaboost) 얼굴 검출 알고리즘을 이용하여 캡쳐된 프레임으로부터 얼굴을 검출한다. [그림 9]는 얼굴 검출 과정을 보여준다.


3. 스크램블링

검출된 얼굴 영역 정보와 비밀 키(Secret key)를 입력 파라미터로 하여 블록(Block) 단위의 스크램블링을 수행하여 프라이버시 제공 프레임을 생성한다. [그림 10]은 스크램블링 과정을 보여준다.


4. 프라이버시 제공 영상 생성 및 저장
프라이버시가 제공된 프레임을 모아 프라이버시 제공 영상을 생성한 후 활용에 적합한 동영상 포맷으로 안전하게 저장한다. [그림 11]은 프라이버시 제공 영상 생성 및 저장 과정을 보여준다.


5. 저장된 프라이버시 제공 영상 읽기
임의의 클라이언트에 의해 프라이버시 제거 요청이 있을 때, 영상 감시서버는 저장된 프라이버시 제공 영상을 안전하게 읽어 온다. [그림 12]는 저장된 프라이버시 제공 영상을 읽어 오는 과정을 보여준다.


6. 역스크림블링
비밀 키를 입력으로 하여 프라이버시가 제공된 영상으로부터 역스크램블링을 수행하여 검출된 얼굴 정보를 안전하게 복원한다. [그림 13]은 역스크램블링 과정을 보여준다.


7. 프라이버시 제거 영상 생성 및 저장
역스크램블링된 영상 정보를 프라이버시 제거 영상으로 하여 저장 및 클라이언트에게 안전하게 제공한다. [그림 14]는 프라이버시 제거 영상 생성 및 저장 과정을 보여준다.





자료 협조:한국인터넷진흥원





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