졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/class/2014/14cd1/졸업작품 2차... ·  ·...

32
졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식 프로그램 제출일 2014, 05, 23 과목 종합설계 담당교수 유준범 교수님 학번/이름 200511347 이태화 200811447 이재형

Upload: duongdang

Post on 19-May-2018

250 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

졸업 작품 2차 중간보고서

네트워크 기반 수배차량 인식 프로그램

��

제출일 2014, 05, 23

과목 종합설계 담당교수 유준범 교수님

학번/이름 200511347 이태화 200811447 이재형

Page 2: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

2

<목 차>

l 개발 동기

l 개발 요구 사항

n 번호판 인식

n 번호 획득

n 영상 전송

l 동작 구조

l 필요 기술 및 사용 라이브러리

n OpenCV

n FFmpeg

n 인코딩,디코딩

n 소켓통신

n 레이블링

n 세선화

n 템플릿 매칭

l 주요 개발 내용 (주요 source code 및 실행 화면)

n 레이블링 함수

n 이미지 레이블링

n 번호판 인식

n 번호 인식

n 인코딩 및 영상전송

n 디코딩 및 영상 재생

l 개발 진행 사항

Page 3: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

3

l 개발 동기

현대에는 장소 곳곳에 cctv가 장착되어 있어 범죄 예방과 범죄 발생시에 증거자료로 활용되고

있다.

하지만 cctv에서 특정 차량을 확인하기 위해서는 차량의 예상 동선을 미리 파악하여 동선 안의

cctv들을 실시간으로 지켜보거나 녹화된 내용들을 일일이 돌려보며 차량을 확인해야 하는 불편함

이 있다.

이러한 불편함을 해소 하기 위해 cctv로부터 차량의 이미지를 얻고, 해당 이미지에서 차량 번

호를 자동으로 인식하여 미리 입력된 차량의 번호와 비교 후 일치할 시 cctv의 영상을 클라이언

트에게 전송해주는 프로그램을 제작해 보려고 한다.

<예상 동작 방식>

Page 4: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

4

l 개발 요구 사항

1.차량 번호판이 찍힌 이미지를 분석하여 번호판 인식

2.인식된 번호판을 분석하여 차량 번호 획득

3.사용자로부터 입력받은 차량 번호와 비교

4.번호가 일치하면 CAM의 현재 영상을 client에서 재생

n 번호판 인식

ü 차량의 번호판을 인식하기 위해서 차량 이미지를 로드하여 이진화 한다.

ü 이진화된 이미지에서 레이블링 작업을 수행 하여 번호판 일 수 있는 것들 것 인식한다.

ü 레이블링 된것들 중 너무 작거나 큰 것들을 제외하여 번호판이 아닐 확률이 높은 것들

을 제외한다.

ü 레이블링 된 것들 각각을 대상으로 색상 반전 하여 다시 레이블링 한다

ü 다시 레이블링 된 것의 개수가 7개 이상인 것들을 번호판으로 간주 한다.

n 번호 획득

ü 번호판으로 간주된 것들을 레이블링 한다.

ü 레이블링 된 것들 중 너무 작거나 너무 큰 것들을 제외하여 숫자나 문자가 아닐 확률

이 높은 것들을 제외한다.

ü 레이블링 된 것들의 x좌표와 이미지를 저장한다.

->이미지는 미리 준비해둔 템플릿(0~9 숫자 이미지)의 사이즈로 리사이즈 하여 저장

한다.

ü x좌표를 비교하여 레이블링된 이미지를 앞의 것부터 순서대로 정렬 한다.

ü 인식률을 높이기 위하여 이미지들을 세선화 한다.

ü 세선화된 이미지와 템플릿들을 비교하여 가장 같은 확률이 높은 것의 숫자를 값으로

취한다.

ü 입력받은 번호와 비교하여 3개 이상 일치하면 영상 전송 모듈을 수행한다.

n 영상 전송

ü Server에서 cam 영상을 인코딩 한다.

ü UDP 네트워크를 통해 server 에서 client로 인코딩된 스트림 데이터를 전송한다.

ü client에서 전송받은 스트림 데이터를 디코딩한다.

ü clinet에서 차량의 이미지들을 분석하다가 입력받은 번호와 일치하면 디코딩된 영상을

재생한다.

Page 5: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

5

l 동작 구조

<client 상세 구조>

영상전송 모듈 : 서버에서 전송받은 데이터를 디코딩

이미지 분석 모듈 : 차량의 이미지를 분석하여 입력된 번호와 비교

두 모듈을 반복적으로 수행하다가 이미지 분석에서 획득된 번호와 입력된 번호가 일치할 시

영상 전송 모듈만을 반복 수행하며 디코딩된 이미지를 출력하여 영상을 재생 한다.

Page 6: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

6

l 필요 기술 및 사용 라이브러리

n OpenCV(Open Source Computer Vison)

ü 인텔에서 만든 강력한 영상처리 라이브러리

ü 초급에서 고급 수준까지 영상처리 알고리즘을 미리 구현된 함수로 제공

ü VFW 라이브러리를 활용해 다시 만든 라이브러리 제공

ü cv,cvaux,cxcore,highgui,ml,cvcam 등으로 구성

<OpenCV 의 구성>

ü Cv

-기본 컴퓨터 비전,영상처리 주요 알고리즘 관련 함수

- cv.h, cvXXX.lib, cvXXX.dll (lib : 라이브러리파일, dll : 동적 라이브러리 파일로

실행할 때 필요)

ü cvaux

- 전문 컴퓨터 비전 알고리즘 함수

- cvaux.h, cvauxXXX.lib, cvauxXXX.dll

ü cvcore

- 영상 행렬을 포함한 다양한 데이터 구조 지원 함수

- cvcore.h, cvcoreXXX.lib, cvcoreXXX.dll

ü highgui

- gui 관련함수(영상 읽기, 윈도우관련, 마우스/키보드제어, 카메라/동영상 처리)

- highgui.h, highgui.lib, highgui.dll

ü ml

- 기계학습 관련 함수

- ml.h, ml.lib, ml.dll

ü cvcam

-카메라 관련 입출력 함수

Page 7: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

7

<사용한 API>

ü cvNamedWindow( const char* name, int flags ,

CV_DEFAULT(CV_WINDOW_AUTOSIZE) )

: 윈도우 생성

ü cvShowImage( const char* name, const CvArr* image )

: 윈도우에 이미지 출력

ü cvDestroyWindow( const char* name )

: 윈도우 제거

ü IplImage* cvCreateImage( CvSize size, int depth, int channels )

: 이미지 생성

ü IplImage* cvLoadImage( const char* filename, int iscolor,

CV_DEFAULT(CV_LOAD_IMAGE_COLOR))

: 이미지 로드

ü cvReleaseImage( IplImage** image )

: 이미지 로드된 메모리 해제

ü cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse,

void* param CV_DEFAULT(NULL))

: 마우스 이벤트를 처리할 콜백 함수 설정

ü CV_CDECL *CvMouseCallback (int event, int x, int y, int flags, void* param)

: 마우스 콜백 함수

event -> CV_EVENT_MOUSEMOVE

CV_EVENT_LBUTTONDOWN

CV_EVENT_RBUTTONDOWN

CV_EVENT_MBUTTONDOWN

ü cvPutText( CvArr* img, const char* text, CvPoint org, const CvFont* font,

CvScalar color )

: 이미지에 텍스트 삽입

ü CvPoint cvPoint( int x, int y ) {CvPoint p; p.x = x; p.y = y; return p;}

: 픽셀 위치

ü CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0), double val2

CV_DEFAULT(0), double val3 CV_DEFAULT(0)) {CvScalar scalar; scalar.val[0] =

val0; scalar.val[1] = val1; scalar.val[2] = val2; scalar.val[3] = val3; return scalar}

Page 8: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

8

: 칼라정보(blue,green,red 순)

ü cvResize( const CvArr* src, CvArr* dst, int interpolation ,

CV_DEFAULT( CV_INTER_LINEAR ))

: 이미지를 목적 이미지 사이즈로 리사이즈하여 목적이미지에 저장

ü CvSize cvGetSize( const CvArr* arr )

: 이미지 사이즈 획득

ü cvCvtColor( const CvArr* src, CvArr* dst, int code )

:색상 영역을 그레이 등의 다른 컬러 영역으로 변조하여 목적 이미지에 저장

Code -> CV_BGR2GRAY CV_RGB2GRAY CV_GRAY2BGR V_GRAY2RGB

ü cvWaitKey(int delay CV_DEFAULT(0))

: 키보드로 입력이 들어올때 까지 대기, 0이면 무한 대기

ü cvThreshold( const CvArr* src, CvArr* dst, double threshold, double

max_value, int threshold_type )

: 이미지를 이진화 하여 목적 이미지에 저장

->threshold_type : CV_THRESH_BINARY = 임계값보다 높으면 최대값으로, 아니면 0

CV_THRESH_OTSU = OTSU 알고리즘에 의해 임계값을 정하여 이진화

CV_THRESH_BINARY_INV =

ü cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness

CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0))

: p1 을 좌상 p2를 우하 로 하는 사각형을 이미지에 그림

ü cvSetImageROI( IplImage* image, CvRect rect )

: 이미지에서 rect 영역을 관심 영역으로 설정 한다.

ü CvRect cvRect( int x, int y, int width, int height ) {CvRect r; r.x = x; r.y = y;

r.width = width; r.height = height; return r; }

: 사각형 영역 지정

ü cvResetImageROI( IplImage* image )

: 관심영역 해제

Page 9: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

9

n FFmepg

ü FFmpeg은 디지털 음성 스트림과 영상 스트림에 대해서 다양한 종류의 형태로 기록

하고 변환하는 컴퓨터 프로그램이다.

ü 이 프로젝트의 이름은 MPEG 영상 표준화 그룹에서 유래했고, "mpeg" 앞에 붙은

"FF"는 "fast forward"를 의미한다.

ü 이 프로젝트는 'Fabrice Bellard'에 의해 시작되었고, 지금은 'Michael Niedermayer'

에 의해서 지속되고 있다. 수많은 FFmpeg 개발자들이 'MPlayer' 프로젝트에 포함

되어 있고, 'FFmpeg'는 MPlayer 프로젝트 서버를 호스팅하고 있다.

ü FFmpeg은 리눅스 기반으로 개발되었지만, 애플, 윈도, 아미가OS 등 대부분의 운영

체제에서 컴파일이 가능하다.

ü FFmpeg 은 명령어를 직접 입력하는 방식으로 동작하며 여러가지 자유

소프트웨어와 오픈 소스 라이브러리로 구성되어 있다. 라이브러리

중에는 libavcodec 도 들어있는데, 이 라이브러리는 음성/영상 코덱 라이브러리로

여러 프로젝트에서 쓰이고 있다. 또, libavformat 라는

음성/영상 다중화, 역다중화 라이브러리도 있다.

<FFmpeg tools & libraries>

ü Fmpeg provides various tools:

ü ffmpeg is a command line tool to convert multimedia files between formats.

ü ffserver is a multimedia streaming server for live broadcasts.

ü ffplay is a simple media player based on SDL and the FFmpeg libraries.

ü ffprobe is a is a simple multimedia stream analyzer.

ü and developers libraries:

ü libavutil is a library containing functions for simplifying programming, including

random number generators, data structures, mathematics routines, core

multimedia utilities, and much more.

ü libavcodec is a library containing decoders and encoders for audio/video codecs.

ü libavformat is a library containing demuxers and muxers for multimedia

container formats.

ü libavdevice is a library containing input and output devices for grabbing from

and rendering to many common multimedia input/output software frameworks,

including Video4Linux, Video4Linux2, VfW, and ALSA.

ü libavfilter is a library containing media filters.

ü libswscale is a library performing highly optimized image scaling and color

space/pixel format conversion operations.

ü libswresample is a library performing highly optimized audio resampling,

rematrixing and sample format conversion operations.

Page 10: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

10

n 인코딩, 디코딩

ü 인코딩이란 정보의 형태나 형식을 변환하는 처리를 말하며 디코딩은 변환된 정보를

원래의 정보로 되돌리는 처리를 말한다.

ü 서버와 클라이언트 간의 영상 스트리밍을 위해 서버에서 영상을 인코딩하여

전송하고 클라이언트에서 전송된 데이터를 디코딩 하는 과정이 필요하다.

ü ffmpeg 라이브러리를 사용하여 손쉽게 인코딩,디코딩 작업을 할수 있다.

ü 라이브러리 및 변수 초기화 과정 필요.

ü ffmpeg 으로 인코딩 시 YUV420P 형식의 영상 데이터를 이용하기 때문에

영상데이터를 YUV420P 형식으로 변환해 주어야 한다.

n Socket 통신

<소켓이란?>

ü 두 프로그램이 네트워크를 통해 서로 통신을 수행 할 수 있도록 양쪽에 생성되는 링크의

단자.

ü 두 소켓이 연결되면 서로 다른 프로세스끼리 데이터를 전달 할 수 있다. 결국 소켓이

구현됨으로써 네트워크 및 전송 계층의 캡슐화가 가능해 진다.

ü 소켓은 원래 캘리포니아 버클리 대학 분교에서 UNIX 용으로 개발 되었으며 UNIX 에서의

입출력 메소드의 표준인 개방/읽기/쓰기/닫기 메커니즘을 따른다.

<소켓의 종류>

ü 스트림

- 스트림 소켓은 양방향으로 바이트 스트림을 전송 할 수 있는 연결 지향형 소켓으로 양쪽

어플리케이션이 모두 데이터를 주고 받을 수 있다는것을 의미한다. 스트림소켓은 오류수정,

전송처리, 흐름제어등을 보장해 주며 송신된 순서에 따른 중복되지 않은 데이터를 수신하게

된다. 이 소켓은 각 메세지를 보내기 위해 별도의 연결을 맺는 행위를 하므로 약간의

오버헤드가 존재한다. 그러므로 소량의 데이터보다는 대량의 데이터를 보내는 경우에

적당하다. 스트림소켓은 이러한 품질의 통신을 수행하기 위해서 TCP 를 사용한다.

ü 데이터그램

- 명시적으로 연결을 맺지 않으므로써 비 연경형 소켓이라고 한다. 메세지는 대상 소켓으로

전송되며 대상 소켓은 메세지를 적절히 수신한다. 스트림소켓을 사용하는것이 데이터그램

소켓을 사용하는것보다 더 신뢰성이 높은 방법이지만 연결을 수립하는데 드는 오버헤드는

무시할 수 없다. 데이터그램 소켓을 사용하려면 클라이언트에서 서버로 데어터를 전송 할때

UDP 를 사용한다. 이 프로토콜에서는 메세지의 크기에 약간의 제한이 있으며 메세지의

확실한 전달 역시 보장하지 않으며 통신 중 데이터를 읽어 버리더라도 오류를 되돌리지

않는다.

Page 11: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

11

ü Raw

- RAW 소켓은 패킷을 가져오면 TCP/IP 스택상의 TCP,UDP 계층을 우회하여 바로

어플리케이션으로 송신하는 소켓이다. 이런 소켓에서 패킷은 TCP/IP 필터를 통해 전달

되지 않으으로 원형 그대로의 패킷을 볼 수 있다. 이는 모든 데이터를 적절히 처리하거나

헤더를 제거하고 이를 파싱하는 과정은 모두 수신 어플리케이션에서 담당해야 하는 것이다.

실제 RAW 소켓을 이용하여 프로그래밍을 하는 일은 거의 드물며 만약 시스템

소프트웨어나 패킷을 분석하는 프로그램을 개발할 경우 필요 할수도 있다.

<TCP , UDP>

ü 포트를 사용하여 통신을 하는 방법에는 TCP 와 UDP 프로토콜 두가지가 있다.

ü TCP 는 두 프로그램 간의 토인이 처음 시작될 때부터 끝날 때까지 계속 연결을 유지하는

연결지향(Connection oriented) 방식으로 전화와 비유할 수 있다.

ü UDP 는 연결을 설정하지 않고 데이터를 보내는 방식으로 우편물에 비유할 수 있다. 보낸

데이터가 제대로 갔는지, 순서대로 갔는지 동의 여부에 대해 전혀 신경쓰지 않는 신뢰성이

결여된 프로토콜 이다. TCP 처럼 연결을 하고 끊는 번거로운 작업이 필요 없고, TCP 보다

빠르며 데이터의 순서가 별로 중요하지 않고 패킷의 일부가 손상되어도 큰 영양을 미치지

않는 음성이나 영상 데이터를 전송할때 많이 이용되어 진다.

n 레이블링

ü 레이블링(Labeling)이란?

인접한 화소에 모두 같은 번호(Label)를 붙이고 연결되지 않은 다른 성분에는 다른

번호를 붙이는 일

ü 레

- 컴

Page 12: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

- 레이블링

- 좌측상단부터

num=1 로 설정

- 현재 픽셀의

false)

- 상하좌우

1 로 설정

-픽셀의 방문기록

- 상하좌우

1 로 설정

-픽셀의 방문기록

- 상하좌우

없으므로 이전

- 상하좌우

없으므로 이전

- 이전 픽셀이

- 이어서 다시

위의 루틴

좌측상단부터 검색하여 최초로 만난 하얀픽셀(value=255)

설정

픽셀의 방문 기록을 true 로 설정(모든 픽셀의 방문기록

상하좌우 인접한 픽셀중 값이 255 이고 방문기록이 false

방문기록 true , 이전좌표(2,2)로 설정

상하좌우 인접한 픽셀중 값이 255 이고 방문기록이 false

방문기록 true , 이전좌표(2,3)로 설정

상하좌우 인접한 픽셀중 값이 255 이고 방문기록이 false

이전 픽셀로 돌아감

상하좌우 인접한 픽셀중 값이 255 이고 방문기록이 false

이전 픽셀로 돌아감

픽셀이 없으면 루틴 종료

다시 255 인 픽셀을 검색 만나면 num=2 로

수행

12

(value=255)의 값을

방문기록 초기값은

false 인 픽셀의 값을

false 인 픽셀의 값을

false 인 인 픽셀이

false 인 인픽셀이

Page 13: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

- 임계값 이하의 컴포넌트

- 레이블된 컴포넌트의

- 컴포넌트 레이블링

컴포넌트 삭제

컴포넌트의 개수를 줄이기 위하여 임계값 이하의 컴포넌트를

레이블링 루틴에서 수행, 컴포넌트의 시작위치와 끝위치를

- 현재 위치(x,y)를 시작위치

y), 끝위치(end x, end y)

- +x 방향으로 갔을 때

end x 를 x 로 설정

- +y 방향으로 갔을 때

end y 를 y 로 설정

- -x 방향으로 갔을 때

start x >= x 이면 start x

- -y 방향으로 갔을 때

Start y >= y 이면 start y

설정된 시작 위치에서 끝

픽셀의 개수들을 구하여 임계값보다

1 인 값들을 0 으로 바꾼다

13

컴포넌트를 삭제

끝위치를 구해냄

시작위치(start x, start

(end x, end y)로 설정

때, x>=end x 이면

때 y>=end y 이면

start x 를 x 로 설정

start y 를 y 로 설정

위치까지 1 인

임계값보다 작으면

바꾼다.

Page 14: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

- 각 컴포넌트 정보의

- 각각의 컴포넌트

rect[component num])

정보의 저장

컴포넌트 정보를 사각형 영역을 나타내는 opencv 구조체

rect[component num])에 저장

좌측상단부터 검색하여 픽셀값이

만나면 해당 컴포넌트의 방문기록을

설정하고 컴포넌트의 시작위치를

세로 길이를 0 으로 설정

다음에 만난 픽셀이 방문된 컴포넌트의

현재 위치정보를 이용하여

시작위치와 가로 세로 길이를 update

14

구조체 (cvRect

픽셀값이 0 이 아닌 것을

방문기록을 true 로

시작위치를 현재위치로, 가로

컴포넌트의 픽셀이면

해당 컴포넌트의

update

Page 15: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

n 세선화

ü 세선화(thinning)란

- 두께를 가진 이진

바꾸어 주는 것

- 템플릿 매칭 전에

- Zhang-Suen 세선화

ü 세선화 구현

란?

이진 이미지를 그 형태특성만 남은 즉 두께가 1

전에 숫자 이미지를 세선화 하여 매칭 확률을 높일

세선화 알고리즘을 이용하여 구현한다.

15

1 인 이미지로

높일 수 있다.

Page 16: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

n 템플릿 매칭

ü 세선화된 번호 이미지

ü 두 이미지의 전체

증가 시킨다

☞ 이상 적인

☞ 같은 숫자

ü 템플릿 별로 count

ü 가장 앞에 정렬된

이미지 각각에 템플릿 번호 이미지(0~9) 모두를 비교한다

픽셀값을 비교하여 템플릿 이미지의 픽셀 값이

경우에 템플릿의 픽셀값이 항상 같거나 큼

일 수록 count 값이 작게 나올 것이다.

count 를 저장하고 count 순으로 정렬 한다.

템플릿의 번호를 취한다.

16

비교한다.

값이 더 작으면 count를

Page 17: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

17

l 주요 개발 내용

n 레이블링 함수

Page 18: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

18

Page 19: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

19

Page 20: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

20

Page 21: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

21

n 이미지 레이블링

ü 이진화 후 레이블링

Page 22: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

ü 잡영제거

22

Page 23: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

n 번호판 인식

23

Page 24: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

24

n 번호 인식

Page 25: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

25

Page 26: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

ü 입력 번호와 비교

26

Page 27: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

27

n 인코딩 및 영상 전송

ü 인코더 초기화 및 인코딩 설정(사이즈,비트레이트,fps 등)

ü RGB 영상 데이터를 YUV420P 형식으로 변환후 avFrame 구조체(인코딩에

사용되는 자료구조)에 저장

Page 28: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

28

ü 인코딩 및 스트림 데이터 전송

n 디코딩 및 영상 재생

ü 디코더 초기화 및 디코딩 할 영상 스트림 정보(사이즈,압축코덱) 설정

ü 디코딩된 YUV420P 이미지를 RGB 이미지로 변환

Page 29: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

ü 디코딩 및 영상 재생

ü 번호 일치시 서버의

재생

서버의 캠 영상이 클라이언트로 스트리밍

29

Page 30: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

30

서버에서

촬영되고 있는 영상

클라이언트에서

재생되는 영상

Page 31: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

l 개발 진행 사항

ð 데모 테스트를 진행중이며

진행중이며 2 차 보고서에 이은 최종보고서도 작성중입니다

31

작성중입니다.

Page 32: 졸업 작품 2차 중간보고서dslab.konkuk.ac.kr/Class/2014/14CD1/졸업작품 2차... ·  · 2014-06-02졸업 작품 2차 중간보고서 네트워크 기반 수배차량 인식

32

l 참고 자료 및 문헌

n http://www.devgee.com/soft/sort014/sort034/sort0201/list201_1.html

ü 그래픽 분석 소스 개발 모임

n 문제차량 지능형 검색 및 자동인식 서비스 참조모델.pdf

ü 한국 정보화 진흥원, 행정안전부

n 차량의 종류와 자동차 번호판 인식을 위한 영상처리 알고리즘 개발 논문

ü 2000년 2월 서울시립대학교 대학원 제어계측공학과 이평원 저

n http://ffmpeg.zeranoe.com/builds/

n http://www.ffmpeg.org/

n http://trac.ffmpeg.org/wiki

n http://opencv.org