Face Recognition
- what is face recognition
- one hot learning
- siamese network
- triplet loss
- face verification and binary classification
1. what is face recognition
- face verification
- ์ด ์ฌ๋์ ์ผ๊ตด๊ณผ ์ ์์ด ์ผ์นํ๋์ง ํ์ธํ๋ 1:1๋ฌธ์
- ์ผ๊ตด ์ฌ์ง์ input์ผ๋ก ๋ฐ์, ์ด ์ฌ๋์ ์ฌ์ง๊ณผ ์ด ์ฌ๋์ ID๊ฐ ์ผ์นํ๋์ง ์ฌ๋ถ๋ฅผ output์ผ๋ก ๋ฐํ
- face recognition
- ์ด ์ฌ๋์ด ๊ทธ๋ฃน ์ค ํ ๋ช ์ธ์ง ํ์ธํ๋ 1:K ๋ฌธ์
- ์ผ๊ตด ์ฌ์ง์ input์ผ๋ก ๋ฐ์, ์ด ์ฌ๋์ด group ์ค ํ ๋ช ์ ์ํ๋์ง ์ฌ๋ถ๋ฅผ output์ผ๋ก ๋ฐํ
- face verification๋ณด๋ค ์ด๋ ค์ด ๋ฌธ์ ์ด๋ค.
2. one hot learning
face recognition ๋ฌธ์ ๋ฅผ ์ผ๋ฐ์ ์ธ model ๋ฐฉ์์ผ๋ก ํ์ตํด๋ ๊ด์ฐฎ์๊ฐ?
์ผ๋ฐ์ ์ธ model(input-CNN-output)์ผ๋ก ํ์ต์ ์งํํ๋ฉด group์ ํ ๋ช ์ ๋ฉค๋ฒ๊ฐ ์ถ๊ฐ๋๋ค๋ฉด ๋ชจ๋ธ์ ์ฌํ์ต ํด์ผํ๋ค.
์๋ํ๋ฉด output node์ ๊ฐ์๊ฐ 1๊ฐ ์ฆ๊ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒ๋ค๊ฐ ํ ์ฌ๋์ ๋ํ ์ฌ์ง์ด ์ ํ์ ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ชจ๋ธ์ ํ์ตํ๋ ๊ฒ๋ ๊ฒฐ์ฝ ์ฌ์ด ๋ฌธ์ ๊ฐ ์๋๋ค.
์ด๊ฒ์ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํ์ต์ ์งํํด์ผ ์ข์๊ฐ?
similarity function์ ํ์ตํ๋ ๊ฒ์ด๋ค.
d(image_1, image_2) = degree of difference between images์ธ ํจ์ d๋ฅผ ํ์ตํ์ฌ
d(img1, img2)์ ๊ฒฐ๊ณผ๊ฐ ์๊ณ๊ฐ ์ด์์ด๋ฉด ๋์ผํ ์ฌ๋์ผ๋ก, ์๊ณ๊ฐ ๋ฏธ๋ง์ด๋ฉด ๋ค๋ฅธ ์ฌ๋์ผ๋ก ํ๋ณํ๋๋ก ํ๋ ๊ฒ์ด๋ค
3. siamese network
face recognition์ ์ํด ๋ชจ๋ธ์ ํ์ตํ๋๋ฐ,
$$ \begin{cases}minimize ||f(x^{(i)})-f(x^{(j)})|| & x^{(i)} = x^{(j)}\\ maximize ||f(x^{(i)})-f(x^{(j)})|| & x^{(i)} \neq x^{(j)}\end{cases} $$
๋ ์ด๋ฏธ์ง ์ ์ธ๋ฌผ์ด ๋์ผ ์ธ๋ฌผ์ด๋ผ๋ฉด ๋ชจ๋ธ ํตํด encoding๋ ๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ์ค์ด๋ค๋๋ก,
๋ ์ด๋ฏธ์ง ์ ์ธ๋ฌผ์ด ๋ค๋ฅธ ์ธ๋ฌผ์ด๋ผ๋ฉด ๋ชจ๋ธ ํตํด encoding๋ ๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ์ปค์ง๋๋ก ํ์ตํ๋ ๊ฒ์ด๋ค.
4. triplet loss
์์์ ์ด๋ฏธ์ง ์ ์ธ๋ฌผ์ด ๋์ผ ์ธ๋ฌผ์ด๋ผ๋ฉด encoding vector์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ์ค์ด๋ค๋๋ก,
๋ค๋ฅธ ์ธ๋ฌผ์ด๋ผ๋ฉด encoding vector ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ์ปค์ง๋๋ก ํ์ต์ ํ๋ค๊ณ ํ๋๋ฐ,
๊ทธ๋ ๋ค๋ฉด ์ด๋ค loss๋ฅผ ์ฌ์ฉํด์ ๋ชจ๋ธ์ ํ์ตํด์ผ ํ๋๊ฐ?
๋ฐ๋ก Triplet Loss๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ Anchor์ Positive๋ ๋์ผ ์ธ๋ฌผ์ ์ฐ์ ์ฌ์ง์ด๊ณ , negative๋ ๋ค๋ฅธ ์ธ๋ฌผ์ ์ฐ์ ์ฌ์ง์ด๋ค.
Anchor๋ฅผ A, Positive๋ฅผ P, Negative๋ฅผ N์ด๋ผ๊ณ ํ์ํ์ ๋ triplet loss๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค.
$$ L(A, P, N) = max(||f(A)-f(P)||^2 - ||f(A)-f(N)||^2 + \alpha, 0) $$
์ฌ๊ธฐ์ alpha๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
์ฒซ ๋ฒ์งธ, ||f(A)-f(P)||^2, ||f(A)-f(N)||^2 ์ฌ์ด๋ฅผ ์ผ์ ๊ฑฐ๋ฆฌ(alpha)๋ณด๋ค ์ปค์ง๋๋ก ํ์ตํ๊ธฐ ์ํ ๋ชฉ์
๋ ๋ฒ์งธ, f(A), f(P), f(N) ๋ชจ๋ ์ ์ฌํ๊ฒ ๋์ ||f(A)-f(P)||^2 > ||f(A)-f(N)||^2 ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ํฉ์ ํํผํ๊ธฐ ๋ชฉ์ ๋ ์๋ค.
์ฆ, ์ด๋ฏธ์ง์ ๋ํด ๋ค๋ฅธ encoding vector๊ฐ ๋์ฌ ์ ์๋๋ก ํ๊ธฐ ์ํ ์ ์ฝ์กฐ๊ฑด์ด๋ค.
์ฌ๊ธฐ์ max(||f(A)-f(P)||^2 - ||f(A)-f(N)||^2 + alpha, 0)๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
||f(A)-f(P)||^2 + alpha๊ฐ ||f(A)-f(N)||^2๋ณด๋ค ์๋ค๋ฉด ์์๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ loss์ ์ต์๊ฐ์ 0์ผ๋ก ์ ํํ๊ธฐ ์ํจ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ||f(A)-f(P)||^2 + alpha <= ||f(A)-f(N)||^2 ๋ฅผ ๋ง์กฑํ๊ธฐ๋ ์ฝ๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ loss๊ฐ 0์ด ๋๊ธฐ ๋๋ฌธ์ parameter๊ฐ ๋ฐ์ดํฐ๋ก๋ถํฐ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ฐฐ์ธ ์ ์๊ฒ ๋๋ค.
๋ฐ๋ผ์ ||f(A)-f(P)||^2 + alpha > ||f(A)-f(N)||^2์ด ๋ ์ ์๋, ์ฆ ๋ชจ๋ธ์ด ํท๊ฐ๋ฆฌ๊ธฐ ์ฌ์ด (A, P, N) ์์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒ์ด ์ค์ํ๋ค.
training data์์ triplet loss๋ฅผ ์ด์ฉํ์ฌ CNN ๋ชจ๋ธ์ ํ์ตํ ํ,
test time์์๋ ํ์ตํ CNN ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง์ ๋ํ encoding vector๋ฅผ ์ป์ ๋ค,
DB์ ์กด์ฌํ๋ ์ฌ๋ฌ ๋ช ์ member๋ค๊ณผ์ encoding vector์ ๋น๊ตํ์ฌ group์ ์ํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํ๊ฒ ๋๋ค.
5. face verification and binary classification
์์ ๋ฐฉ๋ฒ์ด ์๋๋ผ, binary classification์ผ๋ก๋ face recognition ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
๋ ์ฌ๋์ ์ด๋ฏธ์ง๋ฅผ ๋์ผํ ๋ชจ๋ธ์ ๋ฃ์ด encoding vector๋ฅผ ๊ตฌํ ๋ค,
๋ ๋ฒกํฐ์ ์ฐจ์ด ๋ฒกํฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ํ๋ binary classification์ ์ํํ์ฌ ๋ ์ด๋ฏธ์ง๊ฐ ๋์ผ ์ธ๋ฌผ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํ๋๋ก ํ๋ค.
$$ \hat y = \sigma(\sum_{k=1}^{V}w_k |f(x^{(i)})_k-f(x^{(j)})_k|+b) $$
- V : encoding vector์ ๊ธธ์ด
- f(x^(i))_k : i image์ encoding vector์ k๋ฒ์งธ ์์
'๐ > Coursera_DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
WEEK7 : convNet in 1D, 2D, 3D (0) | 2020.12.25 |
---|---|
WEEK7 : Neural Style Transfer (1) | 2020.12.25 |
WEEK6 : Object Detection (2) (0) | 2020.12.23 |
WEEK6 : Object Detection (1) (0) | 2020.12.23 |
WEEK6 : convNet ์ฌ์ฉ์ ๋์์ด ๋ ์ง์ (0) | 2020.12.23 |