2 Fri
GARIGO : Face Mosaic Project
์ ์ฌ๋ Part 2.

๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋์ธ ์ธ๋ฌผ๋ก ๊ฐ์ฃผํ๋ค๊ณ ํ๋ค. ์ด์ ๋ํ ๊ตฌํ์ ์ธ ๋ถ๋ถ๊ณผ ํ๊ณ๋ฅผ ๋ค๋ฃฌ๋ค.
import cv2
ex_hist = []
methods = {'CORREL': cv2.HISTCMP_CORREL, 'CHISQR': cv2.HISTCMP_CHISQR,
'INTERSECT': cv2.HISTCMP_INTERSECT,
'BHATTACHARYYA': cv2.HISTCMP_BHATTACHARYYA}
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
hist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])
cv2.normalize(hist, hist, 0, 1, cv2.NORM_MINMAX)
if len(ex_hist) == 0:
ex_hist = hist
similarity = cv2.compareHist(ex_hist, hist, methods['CORREL'])
ex_hist = hist
if similarity < 0.9:
similarity2, _ = structural_similarity(ex_frame, image, full= True, multichannel=True)
if similarity2 < 0.7:
pass
else:
similarity = 1
ex_frame = image
1 : cv2์ ์๋ ์ ์ฌ๋ ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํจ์ด๋ค
3 : ์ด์ ํ๋ ์์ ๊ธฐ์ตํ๊ธฐ ์ํ ๋ณ์
4: ๋ค์๊ณผ ๊ฐ์ ์ ์ฌ๋ ๋น๊ต ํจ์๋ค์ด ์กด์ฌํ๋ค. ์ด ์ค ๋ ํจ์๋ 1์ ๊ฐ๊น์์ผ ์ ์ฌํ๊ณ ๋๋จธ์ง ๋ ํจ์๋ 0์ ๊ฐ๊น์์ผ ์ ์ฌํ๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ผ
8~10 : ํ์คํ ๊ทธ๋จ์ ๊ณ์ฐํ๊ณ ์ ๊ทํํ๋ค
11 : ์ด์ ์ฅ๋ฉด์ด ์์ ๊ฒฝ์ฐ(์ฒซ ํ๋ ์) ์์ธ ์ฒ๋ฆฌ
17 : ์ ์ฌ๋๊ฐ 0.9์ดํ ์ผ๊ฒฝ์ฐ ๋น์ทํ ์ด๋ฏธ์ง๋ก ๊ฐ์ฃผํ์ง ์๊ฒ ๋ค๋ ๋ป์ด๋ค.
19 : ์๋์์ ์ค๋ช
structural_similarity
์ด ๋ opencv ํจ์๋ฅผ ์ฌ์ฉํด ์ ์ฌ๋๋ฅผ ๋น๊ตํ๋ฉด ๊ฐํน ๊ต์ฅํ ๋น์ทํ ์ฅ๋ฉด์ธ๋ฐ๋ ์ ์ฌ๋๊ฐ ๋ค๋ฅด๊ฒ ๋์ฌ ๋๊ฐ ์๋ค.
๋ง์น ๋ฅํ์ดํฌ ๋ธ๋ฝ ๊ธฐ์ ๊ณผ ๋น์ทํ๊ฑธ๊น?
์ด ๋ ํ๋ฒ๋ ๊ฒ์ฆ์ ํ๊ธฐ ์ํด
skimage.metrics
์์ ์ ๊ณตํ๋ ๋ชจ๋์ ์ฌ์ฉํ๋ค. ์ด ๋ชจ๋์ด ์ข ๋ ์ ํํ๊ณ ์ ๋ฐํ ์ ์ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.์๋ ๊ทธ๋ฌ๋ฉด ๊ทธ๋ฅ ์ด๊ฑฐ ์ฐ๋ฉด ๋์์?
๊ทธ๋งํผ ์ค๋๊ฑธ๋ฆฐ๋ค. ์๋นํ ์ค๋๊ฑธ๋ฆฐ๋ค. ๋ฐ๋ผ์ ์ฒซ๋ฒ์งธ ์ ์ฌ๋ ๋น๊ต์์ ํ๋ฝํ์ ๊ฒฝ์ฐ๋ง ์ ์ฉํ๋ค.
์์์ ๋น์ทํ ์ฅ๋ฉด๋ค์ ์ฐ์์ฒด์ด๋ค.
from skimage.metrics import structural_similarity
์ด๋ ๊ฒฐ๊ณผ ํ์ผ์ด๋ค. (๋์์์ผ๋ก ๋์์ผ๋ฉด ๊น๋ํ์ํ ๋ฐ..)
ํ๊ณ
๋ฐ๋ก ์ด์ ํ๋ ์์๋ ์ ์ฉํ์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
(์ธ์ ๋ชปํจ) - (๊น์ข ๊ตญ) - (์ธ์ ๋ชปํจ) ์ ๊ฒฝ์ฐ์๋
(์ธ์ ๋ชปํจ) - (๊น์ข ๊ตญ) - (๊น์ข ๊ตญ) ์ผ๋ก ๊ฐ์ ๋์ง๋ง ์ด์ ํ๋ ์์ ๊ฐ์ ๋์ง ๋ชปํ๋ค.
์ด๋ฅผ ๊ฐ์ ํ๋ ค๋ฉด ์ ์ฌ๋๊ฐ ๋น์ทํ ์ฅ๋ฉด๋ค๊ฐ์ ๋ชจ๋ ์ผ๊ตด์ขํ๋ฅผ ๊ธฐ์ตํด์ผ ํ๋ค.
ํ๋ก์ ํธ ์์ฑ ๊ธฐํ์ด ๋ค๊ฐ์์ ๊ตฌํํ์ง ๋ชปํ์ง๋ง ๊ตฌํํด๋ณด๊ณ ์ถ์ ๋ถ๋ถ์ด๋ค.

์ด๋ ํ ์ธ๋ฌผ์ ๋ํด ์ฌ๋ฌ ์ฌ์ง์ ํ์ตํ์ ๋์ ์๋ ๋ฐฉ์๊ณผ ๋์ผํ๋ฐ, ๊ฐ ํ๋ ์๋ง๋ค ์ธ์ ๋ฏธ์ธ์ ์ฌ๋ถ๋ฅผ ์กฐ์ฌํ๊ณ ํน์ threshold๊ฐ๋ณด๋ค ์ธ์ ๋น์จ์ด ๋๋ค๋ฉด ์ ์ฌ๋๊ฐ ๋น์ทํ ์ ์ฒด ํ๋ ์์ ์ผ๊ตด์ ์ธ์ํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์ ํ๋ค.
Last updated
Was this helpful?