37

[G3]deview gpu를 통한 얼굴인식 가속

Embed Size (px)

Citation preview

Page 1: [G3]deview gpu를 통한 얼굴인식 가속
Page 2: [G3]deview gpu를 통한 얼굴인식 가속

•  PCA를����������� ������������������  이용한����������� ������������������  얼굴인식기����������� ������������������  –  얼굴인식����������� ������������������  개요����������� ������������������  –  주요����������� ������������������  모듈의����������� ������������������  병렬성����������� ������������������  

•  GPU와����������� ������������������  병렬프로그래밍����������� ������������������  –  CUDA����������� ������������������  –  OpenCL����������� ������������������  

•  GPU����������� ������������������  기반����������� ������������������  얼굴인식기의����������� ������������������  설계����������� ������������������  –  매핑����������� ������������������  –  동기화����������� ������������������  

•  실험결과����������� ������������������  및����������� ������������������  결론����������� ������������������  

목차����������� ������������������  

Page 3: [G3]deview gpu를 통한 얼굴인식 가속

•  PCA를����������� ������������������  이용한����������� ������������������  얼굴인식기����������� ������������������  –  얼굴인식����������� ������������������  개요����������� ������������������  –  주요����������� ������������������  모듈의����������� ������������������  병렬성����������� ������������������  

•  GPU와����������� ������������������  병렬프로그래밍����������� ������������������  –  CUDA����������� ������������������  –  OpenCL����������� ������������������  

•  GPU����������� ������������������  기반����������� ������������������  얼굴인식기의����������� ������������������  설계����������� ������������������  –  매핑����������� ������������������  –  동기화����������� ������������������  

•  실험결과����������� ������������������  및����������� ������������������  결론����������� ������������������  

목차����������� ������������������  

Page 4: [G3]deview gpu를 통한 얼굴인식 가속

•  컴퓨터가����������� ������������������  얼굴을����������� ������������������  학습하여����������� ������������������  식별해내는����������� ������������������  일����������� ������������������  •  다수의����������� ������������������  응용분야����������� ������������������  -����������� ������������������  보안,����������� ������������������  정보분류����������� ������������������  등����������� ������������������  

•  학습(training)����������� ������������������  –  입력:����������� ������������������  서로����������� ������������������  다른����������� ������������������  여러����������� ������������������  얼굴이미지들����������� ������������������  –  출력:����������� ������������������  학습된����������� ������������������  정보����������� ������������������  

•  식별(testing)����������� ������������������  –  입력:����������� ������������������  학습된����������� ������������������  정보����������� ������������������  –  출력:����������� ������������������  식별결과����������� ������������������  

•  픽셀단위����������� ������������������  정보를����������� ������������������  처리하는����������� ������������������  작업으로����������� ������������������  학습에����������� ������������������  많은����������� ������������������  시간이����������� ������������������  소요����������� ������������������  

얼굴인식����������� ������������������  

Page 5: [G3]deview gpu를 통한 얼굴인식 가속

•  주성분����������� ������������������  분석����������� ������������������  •  차원����������� ������������������  정보를����������� ������������������  줄이는����������� ������������������  방법����������� ������������������  

–  입력����������� ������������������  정보들을����������� ������������������  비교하여����������� ������������������  고유����������� ������������������  벡터(eigenvector)를����������� ������������������  구하고,����������� ������������������  입력����������� ������������������  정보를����������� ������������������  고유벡터로����������� ������������������  표현����������� ������������������  

고차원����������� ������������������  ����������� ������������������  정보����������� ������������������  

PCA����������� ������������������  주성분����������� ������������������  및����������� ������������������  ����������� ������������������  정보별����������� ������������������  가중치����������� ������������������  

고차원����������� ������������������  ����������� ������������������  정보����������� ������������������  고차원����������� ������������������  ����������� ������������������  정보����������� ������������������  고차원����������� ������������������  ����������� ������������������  정보����������� ������������������  

가공된����������� ������������������  정보����������� ������������������  가공된����������� ������������������  정보����������� ������������������  가공된����������� ������������������  정보����������� ������������������  저차원����������� ������������������  정보����������� ������������������  

PCA����������� ������������������  (Principle����������� ������������������  Component����������� ������������������  Analysis)����������� ������������������  

Projection����������� ������������������  

Page 6: [G3]deview gpu를 통한 얼굴인식 가속

•  입력����������� ������������������  얼굴이미지����������� ������������������  –  픽셀����������� ������������������  개수만큼의����������� ������������������  차원����������� ������������������  ����������� ������������������  너무����������� ������������������  많은����������� ������������������  정보����������� ������������������  ����������� ������������������  ����������� ������������������  

•  PCA를����������� ������������������  통해����������� ������������������  주성분(고유성분)을����������� ������������������  계산����������� ������������������  

•  얼굴공간(face����������� ������������������  space)에����������� ������������������  대한����������� ������������������  프로젝션����������� ������������������  –  각����������� ������������������  입력����������� ������������������  얼굴이미지에����������� ������������������  대해,����������� ������������������  주성분들에����������� ������������������  대한����������� ������������������  가중치를����������� ������������������  구하는����������� ������������������  것����������� ������������������  

•  입력����������� ������������������  얼굴이미지는����������� ������������������  주성분들의����������� ������������������  선형식으로����������� ������������������  재구성����������� ������������������  가능����������� ������������������  –  주성분들에����������� ������������������  대한����������� ������������������  가중치를����������� ������������������  이용한����������� ������������������  weighted����������� ������������������  sum����������� ������������������  

PCA를����������� ������������������  이용한����������� ������������������  얼굴인식����������� ������������������  

Page 7: [G3]deview gpu를 통한 얼굴인식 가속

PCA����������� ������������������  

고유성분����������� ������������������  얼굴(eigen����������� ������������������  face)����������� ������������������  

입력����������� ������������������  얼굴이미지����������� ������������������  

입력얼굴이미지의����������� ������������������  ����������� ������������������  고유얼굴별����������� ������������������  가중치����������� ������������������  ����������� ������������������  

1

W 2

W 3

W 4

W

7

W5

W 8

W

9

W 12

W

13

W 14

W 15

W 16

W

6

W

10

W 11

W

PCA를����������� ������������������  이용한����������� ������������������  얼굴인식����������� ������������������  

Projection����������� ������������������  to����������� ������������������  face����������� ������������������  space����������� ������������������  

pixel����������� ������������������  space����������� ������������������  

Page 8: [G3]deview gpu를 통한 얼굴인식 가속

•  모듈1����������� ������������������  :����������� ������������������  공분산����������� ������������������  행렬����������� ������������������  계산����������� ������������������  –  얼굴이미지����������� ������������������  픽셀����������� ������������������  단위의����������� ������������������  정보에����������� ������������������  대한����������� ������������������  공분산을����������� ������������������  계산����������� ������������������  ����������� ������������������  –  각각����������� ������������������  계산된����������� ������������������  픽셀단위의����������� ������������������  정보를����������� ������������������  이미지����������� ������������������  단위로����������� ������������������  누적합����������� ������������������  

•  모듈2����������� ������������������  :����������� ������������������  Jacobi����������� ������������������  method����������� ������������������  –  고유����������� ������������������  벡터를����������� ������������������  계산����������� ������������������  

PCA����������� ������������������  얼굴인식����������� ������������������  알고리즘����������� ������������������  주요모듈����������� ������������������  

Covariance Matrix

Computation����������� ������������������  

Eigen value Computation (Jacobi met

hod)����������� ������������������  

Eigenface Computation����������� ������������������  

Projecting to Subspace����������� ������������������  

training images����������� ������������������  

covar. matrix����������� ������������������  

eigen value����������� ������������������  

eigen vector����������� ������������������  

eigenfaces����������� ������������������  

Face DB����������� ������������������  weights����������� ������������������  

1����������� ������������������   2����������� ������������������  

4����������� ������������������  

Training����������� ������������������  

3����������� ������������������  

Page 9: [G3]deview gpu를 통한 얼굴인식 가속

•  모듈3����������� ������������������  :����������� ������������������  고유성분����������� ������������������  얼굴����������� ������������������  구성����������� ������������������  –  학습하는����������� ������������������  얼굴����������� ������������������  정보를����������� ������������������  고유벡터와����������� ������������������  곱을����������� ������������������  통해����������� ������������������  계산����������� ������������������  –  고유벡터의����������� ������������������  수����������� ������������������  만큼의����������� ������������������  고유성분����������� ������������������  얼굴����������� ������������������  생성����������� ������������������  

•  모듈4����������� ������������������  :����������� ������������������  얼굴공간으로의����������� ������������������  프로젝션����������� ������������������  –  입력되는����������� ������������������  얼굴이미지를����������� ������������������  고유성분얼굴로����������� ������������������  구성된����������� ������������������  얼굴공간으로����������� ������������������  프로젝션����������� ������������������  

PCA����������� ������������������  얼굴인식����������� ������������������  알고리즘����������� ������������������  주요모듈����������� ������������������  

Covariance Matrix

Computation����������� ������������������  

Eigen value Computation (Jacobi met

hod)����������� ������������������  

Eigenface Computation����������� ������������������  

Projecting to Subspace����������� ������������������  

training images����������� ������������������  

covar. matrix����������� ������������������  

eigen value����������� ������������������  

eigen vector����������� ������������������  

eigenfaces����������� ������������������  

Face DB����������� ������������������  weights����������� ������������������  

1����������� ������������������   2����������� ������������������  

4����������� ������������������  

Training����������� ������������������  

3����������� ������������������  

Page 10: [G3]deview gpu를 통한 얼굴인식 가속

식별할����������� ������������������  이미지����������� ������������������  

식별����������� ������������������  결과����������� ������������������  

C

B

A

D

A’

B’

C’

E’

PCA����������� ������������������  얼굴인식(식별)����������� ������������������  알고리즘����������� ������������������  

Face DB����������� ������������������  

Projecting to Subspace����������� ������������������  testing images����������� ������������������  

4����������� ������������������  Finding the Ne

arest����������� ������������������  

Testing����������� ������������������  

•  오분류를����������� ������������������  줄이기����������� ������������������  위해서는����������� ������������������  더����������� ������������������  많은����������� ������������������  얼굴이미지를����������� ������������������  학습����������� ������������������  ����������� ������������������  많은����������� ������������������  시간이����������� ������������������  소요����������� ������������������  ����������� ������������������  가속의����������� ������������������  필요성����������� ������������������  

Page 11: [G3]deview gpu를 통한 얼굴인식 가속

•  입력����������� ������������������  :����������� ������������������  얼굴이미지����������� ������������������  •  출력����������� ������������������  :����������� ������������������  얼굴이미지들간의����������� ������������������  공분산(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  •  수식����������� ������������������  

–  Ф����������� ������������������  =����������� ������������������  Γ����������� ������������������  ­–����������� ������������������  Ψ����������� ������������������  (이미지와����������� ������������������  평균����������� ������������������  이미지의����������� ������������������  차이)����������� ������������������  –  C����������� ������������������  =����������� ������������������  공분산����������� ������������������  행렬����������� ������������������  (N����������� ������������������  x����������� ������������������  N)����������� ������������������  

•  복잡도����������� ������������������  :����������� ������������������  ����������� ������������������  O(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  ����������� ������������������  ����������� ������������������  -����������� ������������������  N����������� ������������������  =����������� ������������������  얼굴이미지����������� ������������������  수,����������� ������������������  P����������� ������������������  =����������� ������������������  이미지����������� ������������������  픽셀수����������� ������������������  

모듈1����������� ������������������  :����������� ������������������  공분산����������� ������������������  행렬계산����������� ������������������  

Tjiij P

C )()(1

Ψ−Γ⋅Ψ−Γ=

PN 2

2N

Page 12: [G3]deview gpu를 통한 얼굴인식 가속

•  입력����������� ������������������  :����������� ������������������  얼굴이미지들간의����������� ������������������  공분산����������� ������������������  행렬����������� ������������������  •  출력����������� ������������������  :����������� ������������������  고유벡터(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  

–  M����������� ������������������  =����������� ������������������  고유벡터의����������� ������������������  수 ����������� ������������������  ����������� ������������������  

•  계산����������� ������������������  –  Jacobi����������� ������������������  eigenvalue����������� ������������������  method����������� ������������������  

•  복잡도����������� ������������������  :����������� ������������������  O(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  

모듈2����������� ������������������  :����������� ������������������  Jacobi����������� ������������������  method����������� ������������������  

3N

M

Page 13: [G3]deview gpu를 통한 얼굴인식 가속

•  입력����������� ������������������  :����������� ������������������  얼굴이미지,����������� ������������������  고유벡터����������� ������������������  •  출력����������� ������������������  :����������� ������������������  고유성분����������� ������������������  얼굴(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  •  수식����������� ������������������  

–  u����������� ������������������  =����������� ������������������  고유성분얼굴,����������� ������������������  ����������� ������������������  v����������� ������������������  =����������� ������������������  고유벡터����������� ������������������  ����������� ������������������  –  Ψ����������� ������������������  =����������� ������������������  평균얼굴����������� ������������������  이미지,����������� ������������������  ����������� ������������������  Γ����������� ������������������  =����������� ������������������  얼굴����������� ������������������  이미지����������� ������������������  –  N����������� ������������������  =����������� ������������������  학습하는����������� ������������������  얼굴이미지의����������� ������������������  수����������� ������������������  

•  복잡도����������� ������������������  :����������� ������������������  O����������� ������������������  (����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  

모듈3����������� ������������������  :����������� ������������������  고유성분����������� ������������������  얼굴����������� ������������������  구성����������� ������������������  

∑=

Ψ−Γ=N

kkmkm vu

1

)(

NMP

MP

Page 14: [G3]deview gpu를 통한 얼굴인식 가속

•  입력����������� ������������������  :����������� ������������������  얼굴이미지,����������� ������������������  고유성분����������� ������������������  얼굴����������� ������������������  •  출력����������� ������������������  :����������� ������������������  얼굴공간에서����������� ������������������  사용되는����������� ������������������  가중치(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  •  수식����������� ������������������  

–  u����������� ������������������  =����������� ������������������  고유성분����������� ������������������  얼굴,����������� ������������������  Γ����������� ������������������  =����������� ������������������  얼굴����������� ������������������  이미지,����������� ������������������  Ψ����������� ������������������  =����������� ������������������  평균얼굴����������� ������������������  이미지����������� ������������������  ����������� ������������������  ����������� ������������������  

•  복잡도����������� ������������������  :����������� ������������������  O����������� ������������������  (����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  )����������� ������������������  ����������� ������������������  

모듈4����������� ������������������  :����������� ������������������  얼굴공간으로의����������� ������������������  프로젝션����������� ������������������  

)( Ψ−Γ⋅= nTmnm uw

NMP

NM

Page 15: [G3]deview gpu를 통한 얼굴인식 가속

•  PCA를����������� ������������������  이용한����������� ������������������  얼굴인식기����������� ������������������  –  얼굴인식����������� ������������������  개요����������� ������������������  –  주요����������� ������������������  모듈의����������� ������������������  병렬성����������� ������������������  

•  GPU와����������� ������������������  병렬프로그래밍����������� ������������������  –  CUDA����������� ������������������  –  OpenCL����������� ������������������  

•  GPU����������� ������������������  기반����������� ������������������  얼굴인식기의����������� ������������������  설계����������� ������������������  –  매핑����������� ������������������  –  동기화����������� ������������������  

•  실험결과����������� ������������������  및����������� ������������������  결론����������� ������������������  

목차����������� ������������������  

Page 16: [G3]deview gpu를 통한 얼굴인식 가속

•  Graphics����������� ������������������  Processing����������� ������������������  Unit����������� ������������������  –  CPU에����������� ������������������  비해����������� ������������������  캐쉬의����������� ������������������  크기를����������� ������������������  줄이고,����������� ������������������  다수의����������� ������������������  코어를����������� ������������������  집적����������� ������������������  –  데이터����������� ������������������  병렬성에����������� ������������������  적합����������� ������������������  –  Throughput����������� ������������������  Computing����������� ������������������  –  계층적인����������� ������������������  병렬����������� ������������������  구조����������� ������������������  

•  GPGPU����������� ������������������  (General����������� ������������������  Purpose����������� ������������������  GPU)����������� ������������������  –  GPU를����������� ������������������  프로그래밍을����������� ������������������  통해서����������� ������������������  범용적으로����������� ������������������  사용����������� ������������������  가능����������� ������������������  –  CUDA,����������� ������������������  OpenCL����������� ������������������  등����������� ������������������  C기반����������� ������������������  병렬프로그래밍����������� ������������������  프레임워크����������� ������������������  사용����������� ������������������  

GPU����������� ������������������  구조����������� ������������������  

Page 17: [G3]deview gpu를 통한 얼굴인식 가속

SM����������� ������������������  (Shared����������� ������������������  Multiprocessor)����������� ������������������  

GTX����������� ������������������  480����������� ������������������  구조����������� ������������������  

GPU����������� ������������������  구조����������� ������������������  (GTX480)����������� ������������������  

Page 18: [G3]deview gpu를 통한 얼굴인식 가속

SP����������� ������������������  ����������� ������������������  (Streaming����������� ������������������  Processor����������� ������������������  =CUDA����������� ������������������  core)����������� ������������������  

GPU����������� ������������������  구조����������� ������������������  

SM����������� ������������������  

공유����������� ������������������  메모리(shared����������� ������������������  memory)����������� ������������������  SM내에서����������� ������������������  수행되는����������� ������������������  쓰레드들간의����������� ������������������  자료����������� ������������������  공유,����������� ������������������  동기화����������� ������������������  

Page 19: [G3]deview gpu를 통한 얼굴인식 가속

•  Compute����������� ������������������  Unified����������� ������������������  Device����������� ������������������  Architecture����������� ������������������  –  NVIDIA의����������� ������������������  GPU를����������� ������������������  위한����������� ������������������  C����������� ������������������  기반����������� ������������������  병렬����������� ������������������  프로그래밍����������� ������������������  프레임워크����������� ������������������  –  컴파일러,����������� ������������������  라이브러리,����������� ������������������  디바이스����������� ������������������  드라이버����������� ������������������  

•  Kernel����������� ������������������  –  GPU에서����������� ������������������  병렬로����������� ������������������  수행되는����������� ������������������  함수����������� ������������������  

CUDA����������� ������������������  

//serial code (host)‏

. . .

. . .

//parallel code in kernel (device)‏ KernelA<<< nBlk, nThr >>> (args);

//serial code (host)‏

//parallel code = kernel (device)‏ KernelB<<< nBlk, nThr >>>(args);

Thread����������� ������������������  block����������� ������������������  

Threads����������� ������������������  

Page 20: [G3]deview gpu를 통한 얼굴인식 가속

•  Open����������� ������������������  Compute����������� ������������������  Language����������� ������������������  –  다양한����������� ������������������  종류의����������� ������������������  멀티코어/매니코어����������� ������������������  디바이스를����������� ������������������  위한����������� ������������������  C����������� ������������������  기반����������� ������������������  병렬����������� ������������������  프로그래밍����������� ������������������  프레임워크����������� ������������������  

–  이종����������� ������������������  (heterogeneous)����������� ������������������  시스템의����������� ������������������  병렬프로그래밍을����������� ������������������  위한����������� ������������������  표준����������� ������������������  

OpenCL����������� ������������������  ����������� ������������������  

SP����������� ������������������  

SM����������� ������������������   GPU����������� ������������������  

Page 21: [G3]deview gpu를 통한 얼굴인식 가속

•  PCA를����������� ������������������  이용한����������� ������������������  얼굴인식기����������� ������������������  –  얼굴인식����������� ������������������  개요����������� ������������������  –  주요����������� ������������������  모듈의����������� ������������������  병렬성����������� ������������������  

•  GPU와����������� ������������������  병렬프로그래밍����������� ������������������  –  CUDA����������� ������������������  –  OpenCL����������� ������������������  

•  GPU����������� ������������������  기반����������� ������������������  얼굴인식기의����������� ������������������  설계����������� ������������������  –  매핑����������� ������������������  –  동기화����������� ������������������  

•  실험결과����������� ������������������  및����������� ������������������  결론����������� ������������������  

목차����������� ������������������  

Page 22: [G3]deview gpu를 통한 얼굴인식 가속

•  Thread����������� ������������������  block����������� ������������������  =>����������� ������������������  연산을����������� ������������������  SM으로����������� ������������������  수행����������� ������������������  •  Thread����������� ������������������  =>����������� ������������������  연산을����������� ������������������  SP로����������� ������������������  수행����������� ������������������  

•  기본적으로����������� ������������������  하나의����������� ������������������  쓰레드����������� ������������������  블록에서����������� ������������������  다수의����������� ������������������  쓰레드가����������� ������������������  수행되어야����������� ������������������  가속이����������� ������������������  이루어질����������� ������������������  수����������� ������������������  있음����������� ������������������  

•  극단적으로����������� ������������������  두가지����������� ������������������  매핑이����������� ������������������  존재함����������� ������������������  –  매핑����������� ������������������  1����������� ������������������  :����������� ������������������  하나의����������� ������������������  쓰레드에����������� ������������������  하나의����������� ������������������  픽셀����������� ������������������  작업����������� ������������������  할당����������� ������������������  –  매핑����������� ������������������  2����������� ������������������  :����������� ������������������  하나의����������� ������������������  쓰레드에����������� ������������������  하나의����������� ������������������  얼굴이미지����������� ������������������  작업����������� ������������������  할당����������� ������������������  

매핑(Mapping)����������� ������������������  

Page 23: [G3]deview gpu를 통한 얼굴인식 가속

•  동기화����������� ������������������  ����������� ������������������  –  쓰레드들의����������� ������������������  연산결과를����������� ������������������  하나로����������� ������������������  모아야����������� ������������������  하는����������� ������������������  경우에����������� ������������������  필요����������� ������������������  –  예)����������� ������������������  합����������� ������������������  리덕션����������� ������������������  (sum����������� ������������������  reduction)����������� ������������������  –  매핑����������� ������������������  방법에����������� ������������������  따라����������� ������������������  동기화가����������� ������������������  필요할����������� ������������������  수����������� ������������������  있음����������� ������������������  

•  합����������� ������������������  리덕션의����������� ������������������  구현����������� ������������������  예����������� ������������������  

매핑(Mapping)����������� ������������������  

+ + + +

+ +

+

step����������� ������������������  1����������� ������������������  

step����������� ������������������  2����������� ������������������  

step����������� ������������������  3����������� ������������������  

Page 24: [G3]deview gpu를 통한 얼굴인식 가속

•  매핑����������� ������������������  1����������� ������������������  

매핑(Mapping)����������� ������������������  

1����������� ������������������  픽셀����������� ������������������  

픽셀단위����������� ������������������  연산����������� ������������������  

일반적으로����������� ������������������  이미지의����������� ������������������  수가����������� ������������������  적고����������� ������������������  픽셀의����������� ������������������  크기가����������� ������������������  클����������� ������������������  때����������� ������������������  

장점:����������� ������������������  병렬성이����������� ������������������  높다����������� ������������������  단점:����������� ������������������  쓰레드간����������� ������������������  동기화����������� ������������������  필요����������� ������������������  

Page 25: [G3]deview gpu를 통한 얼굴인식 가속

매핑(Mapping)����������� ������������������  

•  매핑����������� ������������������  2����������� ������������������  

이미지����������� ������������������  단위����������� ������������������  작업����������� ������������������  

일반적으로����������� ������������������  이미지의����������� ������������������  수가����������� ������������������  많고����������� ������������������  픽셀의����������� ������������������  크기가����������� ������������������  작을����������� ������������������  때����������� ������������������  적용����������� ������������������  

장점����������� ������������������  :����������� ������������������  동기화가����������� ������������������  필요없음����������� ������������������  단점����������� ������������������  :����������� ������������������  픽셀����������� ������������������  단위����������� ������������������  병렬성����������� ������������������  없음����������� ������������������  

Page 26: [G3]deview gpu를 통한 얼굴인식 가속

•  일반적 매핑

매핑(Mapping)����������� ������������������  

하나의����������� ������������������  쓰레드가����������� ������������������  k개����������� ������������������  만큼의����������� ������������������  픽셀들을����������� ������������������  담당����������� ������������������  (1<=����������� ������������������  k����������� ������������������  <=����������� ������������������  P)����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 27: [G3]deview gpu를 통한 얼굴인식 가속

•  쓰레드����������� ������������������  블록����������� ������������������  –  얼굴이미지����������� ������������������  한����������� ������������������  쌍����������� ������������������  ����������� ������������������  총����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  개의����������� ������������������  쓰레드����������� ������������������  블록����������� ������������������  필요����������� ������������������  

•  쓰레드����������� ������������������  –  한����������� ������������������  얼굴이미지����������� ������������������  중����������� ������������������  일정����������� ������������������  개수의����������� ������������������  픽셀들����������� ������������������  –  내적����������� ������������������  (dot����������� ������������������  product)를����������� ������������������  계산����������� ������������������  

����������� ������������������  ����������� ������������������  

공분산����������� ������������������  행렬계산����������� ������������������  -����������� ������������������  모듈1����������� ������������������  

내적����������� ������������������  계산����������� ������������������  

하나의����������� ������������������  쓰레드����������� ������������������  블록에서����������� ������������������  이루어지는����������� ������������������  연산����������� ������������������  

서브����������� ������������������  공분산1����������� ������������������  

서브����������� ������������������  공분산2����������� ������������������  

서브����������� ������������������  공분산4����������� ������������������  

서브����������� ������������������  공분산3����������� ������������������  

서브����������� ������������������  공분산5����������� ������������������  

서브����������� ������������������  공분산6����������� ������������������  

서브����������� ������������������  공분산7����������� ������������������  

서브����������� ������������������  공분산8����������� ������������������  

서브����������� ������������������  공분산9����������� ������������������  

서브����������� ������������������  공분산10����������� ������������������  

합����������� ������������������  리덕션����������� ������������������   공분산����������� ������������������  

2N

Page 28: [G3]deview gpu를 통한 얼굴인식 가속

•  쓰레드����������� ������������������  블록����������� ������������������  –  고유얼굴����������� ������������������  ����������� ������������������  총����������� ������������������  고유벡터의����������� ������������������  수만큼����������� ������������������  쓰레드����������� ������������������  블록����������� ������������������  필요����������� ������������������  

•  쓰레드����������� ������������������  –  한����������� ������������������  얼굴이미지����������� ������������������  중����������� ������������������  일정����������� ������������������  개수의����������� ������������������  픽셀들����������� ������������������  

•  동기화����������� ������������������  –  N장의����������� ������������������  입력����������� ������������������  얼굴이미지들에����������� ������������������  대한����������� ������������������  계산����������� ������������������  결과를����������� ������������������  누적하여����������� ������������������  고유얼굴을����������� ������������������  계산����������� ������������������  

고유성분����������� ������������������  얼굴����������� ������������������  구성����������� ������������������  ­–����������� ������������������  모듈3����������� ������������������  

하나의����������� ������������������  쓰레드����������� ������������������  블록에서����������� ������������������  이루어지는����������� ������������������  연산����������� ������������������  

순차적으로����������� ������������������  ����������� ������������������  누적����������� ������������������  

Page 29: [G3]deview gpu를 통한 얼굴인식 가속

•  쓰레드����������� ������������������  블록����������� ������������������  –  얼굴이미지����������� ������������������  한����������� ������������������  장과����������� ������������������  고유얼굴����������� ������������������  하나에����������� ������������������  대한����������� ������������������  연산����������� ������������������  –  총����������� ������������������  N����������� ������������������  x����������� ������������������  M����������� ������������������  개의����������� ������������������  쓰레드����������� ������������������  블록����������� ������������������  필요����������� ������������������  

•  쓰레드����������� ������������������  –  일정 개수의 픽셀에 대해 내적 계산

고유얼굴����������� ������������������  정보로����������� ������������������  매핑����������� ������������������  ­–����������� ������������������  모듈4����������� ������������������  

서브����������� ������������������  가중치����������� ������������������  1����������� ������������������  서브����������� ������������������  가중치����������� ������������������  2����������� ������������������  서브����������� ������������������  가중치����������� ������������������  3����������� ������������������  서브����������� ������������������  가중치����������� ������������������  4����������� ������������������  서브����������� ������������������  가중치����������� ������������������  5����������� ������������������  서브����������� ������������������  가중치����������� ������������������  6����������� ������������������  서브����������� ������������������  가중치����������� ������������������  7����������� ������������������  서브����������� ������������������  가중치����������� ������������������  8����������� ������������������  서브����������� ������������������  가중치����������� ������������������  9����������� ������������������  

W내적����������� ������������������  계산����������� ������������������   합����������� ������������������  리덕션����������� ������������������  

하나의����������� ������������������  쓰레드����������� ������������������  블록에서����������� ������������������  이루어지는����������� ������������������  연산����������� ������������������  

Page 30: [G3]deview gpu를 통한 얼굴인식 가속

•  PCA를����������� ������������������  이용한����������� ������������������  얼굴인식기����������� ������������������  –  얼굴인식����������� ������������������  개요����������� ������������������  –  주요����������� ������������������  모듈의����������� ������������������  병렬성����������� ������������������  

•  GPU와����������� ������������������  병렬프로그래밍����������� ������������������  –  CUDA����������� ������������������  –  OpenCL����������� ������������������  

•  GPU����������� ������������������  기반����������� ������������������  얼굴인식기의����������� ������������������  설계����������� ������������������  –  매핑����������� ������������������  –  동기화����������� ������������������  

•  실험결과����������� ������������������  및����������� ������������������  결론����������� ������������������  

목차����������� ������������������  

Page 31: [G3]deview gpu를 통한 얼굴인식 가속

작업

실행시간(ms) 속도이득

C Portion(%) CUDA (kernel)

CUDA (kernel + memory)

Portion(%) C/CUDA (kernel)����������� ������������������  

C/CUDA (kernel + memory)����������� ������������������  

모듈1 9,201 22% 92 159 16% 100X 58X

모듈3 15,858 38% 268 332 34% 59X 48X

모듈4 16,477 39% 203 254 26% 81X 65X 모듈 (1+3+4) 41,535 99% 562 745 76% 74X 56X

전체 응용시간 41,776 987 52X 42X

고화질����������� ������������������  DB����������� ������������������  (190장)����������� ������������������  ����������� ������������������  

DB����������� ������������������  :����������� ������������������  Caltech����������� ������������������  DB(픽셀����������� ������������������  320X400)����������� ������������������  ����������� ������������������  학습하는����������� ������������������  이미지����������� ������������������  수����������� ������������������  :����������� ������������������  190,����������� ������������������  쓰레드당����������� ������������������  할당하는����������� ������������������  픽셀의����������� ������������������  수����������� ������������������  :����������� ������������������  500����������� ������������������  

Page 32: [G3]deview gpu를 통한 얼굴인식 가속

작업

실행시간(ms) 속도이득

C Portion(%) CUDA (kernel)

CUDA (kernel + memory)

Portion(%) C/CUDA (kernel)����������� ������������������  

C/CUDA (kernel + memory)����������� ������������������  

모듈1 33,124 22% 331 403 11% 100X 82X

모듈3 57,249 38% 954 1,077 28% 60X 53X

모듈4 59,607 39% 735 851 22% 81X 70X 모듈 (1+3+4) 149,980 99% 2,019 2,331 61% 74X 64X

전체 응용시간 151,466 3,821 43X 39X

DB����������� ������������������  :����������� ������������������  Caltech����������� ������������������  DB(픽셀����������� ������������������  320X400)����������� ������������������  ����������� ������������������  학습하는����������� ������������������  이미지����������� ������������������  수����������� ������������������  :����������� ������������������  360,����������� ������������������  쓰레드당����������� ������������������  할당하는����������� ������������������  픽셀의����������� ������������������  수����������� ������������������  :����������� ������������������  500����������� ������������������  

고화질����������� ������������������  DB����������� ������������������  (360장)����������� ������������������  ����������� ������������������  

Page 33: [G3]deview gpu를 통한 얼굴인식 가속

작업

실행시간(ms) 속도이득

C Portion(%) CUDA (kernel)

CUDA (kernel + memory)

Portion(%) C/CUDA (kernel)

C/CUDA (kernel + memory)

모듈1 819 21% 11 60 14% 76X 14X

모듈3 1,403 35% 25 35 8% 55X 40X

모듈4 1,455 37% 17 43 10% 87X 34X 모듈 (1+3+4) 3,677 93% 53 138 32% 70X 27X

전체 응용시간 3,969 427 12X 9X

DB����������� ������������������  :����������� ������������������  AT&T����������� ������������������  DB(픽셀����������� ������������������  92X112)����������� ������������������  ����������� ������������������  학습하는����������� ������������������  이미지����������� ������������������  수����������� ������������������  :����������� ������������������  200,����������� ������������������  쓰레드당����������� ������������������  할당하는����������� ������������������  픽셀의����������� ������������������  수����������� ������������������  :����������� ������������������  40����������� ������������������  

저화질����������� ������������������  DB����������� ������������������  (200장)����������� ������������������  ����������� ������������������  

Page 34: [G3]deview gpu를 통한 얼굴인식 가속

작업

실행시간(ms) 속도이득

C Portion(%) CUDA (kernel)

CUDA (kernel + memory)

Portion(%) C/CUDA (kernel)����������� ������������������  

C/CUDA (kernel + memory)����������� ������������������  

모듈1 3,261 19% 43 95 4% 76X 34X

모듈3 5,664 33% 95 113 5% 59X 50X

모듈4 5,895 35% 59 123 5% 100X 48X 모듈 (1+3+4) 14,820 87% 196 331 13% 75X 45X

전체 응용시간 16,999 2,492 7X 7X

DB����������� ������������������  :����������� ������������������  AT&T����������� ������������������  DB(픽셀����������� ������������������  92X112)����������� ������������������  ����������� ������������������  학습하는����������� ������������������  이미지����������� ������������������  수����������� ������������������  :����������� ������������������  400,����������� ������������������  쓰레드당����������� ������������������  할당하는����������� ������������������  픽셀의����������� ������������������  수����������� ������������������  :����������� ������������������  40����������� ������������������  

저화질����������� ������������������  DB����������� ������������������  (400장)����������� ������������������  ����������� ������������������  

Page 35: [G3]deview gpu를 통한 얼굴인식 가속

결론����������� ������������������  ����������� ������������������  

•  PCA����������� ������������������  기반의����������� ������������������  얼굴인식����������� ������������������  알고리즘을����������� ������������������  GPU를����������� ������������������  이용하여����������� ������������������  가속����������� ������������������  ����������� ������������������  –  입출력,����������� ������������������  Jacobi����������� ������������������  모듈을����������� ������������������  제외한����������� ������������������  주요����������� ������������������  모듈들을����������� ������������������  모두����������� ������������������  가속����������� ������������������  (최대����������� ������������������  100배)����������� ������������������  

–  전체����������� ������������������  얼굴인식기(학습)에����������� ������������������  걸리는����������� ������������������  시간이����������� ������������������  40배����������� ������������������  정도����������� ������������������  단축����������� ������������������  •  128K����������� ������������������  입력화소의����������� ������������������  얼굴이미지����������� ������������������  400장����������� ������������������  

•  얼굴이미지를����������� ������������������  많이����������� ������������������  사용할수록����������� ������������������  Jacobi����������� ������������������  모듈도����������� ������������������  병렬화가����������� ������������������  향후����������� ������������������  필요����������� ������������������  

����������� ������������������  ����������� ������������������  

Page 36: [G3]deview gpu를 통한 얼굴인식 가속
Page 37: [G3]deview gpu를 통한 얼굴인식 가속