๐Ÿ’ป/๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด

[์˜์ƒ์ฒ˜๋ฆฌ] ๋ฐ•์Šค ํ•„ํ„ฐ, ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ

ruhz 2020. 10. 18. 03:46

์ขŒํ‘œ ๋ณ€ํ™˜์—๋Š” ํšŒ์ „, ์ด๋™ ๋“ฑ์˜ ์–ดํŒŒ์ธ ๊ธฐํ•˜๋ณ€ํ™˜๋“ค์„ ๋ณด์•˜๊ณ ,
๋ช…๋„ ๋ณ€ํ™˜์œผ๋กœ๋Š” ๋น„ํŠธ ํ‰๋ฉด ๋ถ€ํ˜ธํ™”, ํžˆ์Šคํ† ๊ทธ๋žจ ํ‰ํ™œํ™” ๋“ฑ์„ ๋ณด์•˜๋‹ค.
๋‹ค์Œ์œผ๋กœ ๋ณผ ๋ณ€ํ™˜์€ '๊ณต๊ฐ„ ๋ณ€ํ™˜'์ด๋‹ค. ๊ณต๊ฐ„ ๋ณ€ํ™˜์€ ๋Œ€๋ถ€๋ถ„ ํ•„ํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ๋ณ€ํ™˜์ด๋‹ค.

 

 

์„ ํ˜• ํ•„ํ„ฐ (Linear Filter)

'์ปค๋„'์„ ํ†ต๊ณผ์‹œ์ผœ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์ปค๋„์€ ์ด๋ฏธ์ง€ ๋ณด๋‹ค๋Š” ์ž‘์€ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์ด๊ณ , ์–ด๋–ค ๊ฐ€์ค‘์น˜ ๊ฐ’๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€์—์„œ ํ”ฝ์…€๊ฐ’์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด, ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋ณธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปค๋„์˜ ์ค‘์•™์ด ๊ฒน์ณ์ง€๋„๋ก ๋†“๋Š”๋‹คใ…ก๋งŒ์•ฝ ํ•„ํ„ฐ๊ฐ€ ์ด๋ฏธ์ง€ ๋ฐ–์œผ๋กœ ์‚์ ธ ๋‚˜์˜จ๋‹ค๋ฉด, ์ด๋ฏธ์ง€ ๋‘˜๋ ˆ๋กœ 0์„ ์ถ”๊ฐ€(zero-padding)ํ•ด์ค€๋‹ค. ์ด์ œ, ์ปค๋„์˜ ๊ฐ€์ค‘์น˜๋“ค๊ณผ ๊ฒน์ณ์ง„ ํ”ฝ์…€์˜ ๊ฐ’์„ ๊ณฑํ•ด์„œ ๊ทธ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•œ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€์—์„œ์˜ ํ”ฝ์…€๊ฐ’์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ, ๊ฐ๊ฐ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์„ ํ˜•์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ํ”ฝ์…€์— ๊ณฑํ•ด์ง€๋Š” ํ•„ํ„ฐ๋ฅผ ๋ณด๊ณ  '์„ ํ˜• ํ•„ํ„ฐ'๋ผ๊ณ  ํ•œ๋‹ค.

 

์•„๋ž˜๋Š” CNN(์ปจ๋ฒŒ๋ฃจ์…˜ ์‹ ๊ฒฝ๋ง)์„ ๊ณต๋ถ€ํ•  ๋•Œ ๋‚˜์™”๋˜ ์˜์ƒ์ธ๋ฐ ํ•„ํ„ฐ์˜ ๊ฐœ๋…์ด ์ž˜ ํ‘œํ˜„๋˜์–ด ์žˆ์–ด ์ฒจ๋ถ€ํ•œ๋‹ค.

 

 

Convolution vs Correlation

 

[๋”ฎ๋Ÿฌ๋‹/์˜์ƒ์ฒ˜๋ฆฌ] Convolution & Correlation ์ดํ•ดํ•˜๊ธฐ | Popit

CNN๊ณผ ์˜์ƒ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉด์„œ, Convolution์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Correlation์€ ๋Œ€์ƒ ํ•จ์ˆ˜ ํ˜น์€ ์‹œ์Šคํ…œํ•จ์ˆ˜์™€ ์ž…๋ ฅํ•จ์ˆ˜๊ฐ€ ๋˜‘๊ฐ™์ด ์ผ์น˜ํ•˜๋Š” ์‹œ์ ์— ์˜ค๋ฉด ์ง„ํญ์˜ ๋†’์ด๊ฐ€ ์ตœ๋Œ€๊ฐ’์„ ๊ฐ–

www.popit.kr

์ปจ๋ฒŒ๋ฃจ์…˜์€ ๋ถ„๋ฆฌ๊ฐ€๋Šฅ(Seperable)ํ•˜๋‹ค. ์ด์ฐจ์› ๋ฐฐ์—ด์„ ์ปจ๋ฒŒ๋ฃจ์…˜ ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค, ์ผ์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”, x, y์— ๋Œ€ํ•ด 2๋ฒˆ ์ปจ๋ฒŒ๋ฃจ์…˜ ํ•˜๋Š” ๊ฒƒ์ด ๊ณ„์‚ฐ์ด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค.

 

 

๋ฐ•์Šค ํ•„ํ„ฐ

์„ ํ˜•ํ•„ํ„ฐ์˜ ์˜ˆ์‹œ๋กœ, ๋ฐ•์Šค ํ•„ํ„ฐ, ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ ์ด๋ ‡๊ฒŒ 2๊ฐ€์ง€๋ฅผ ๋ณผ ๊ฒƒ์ด๋‹ค. ๋ฐ•์Šคํ•„ํ„ฐ๋Š” ๊ฐ€์ค‘์น˜๋กœ 1/ํ•„ํ„ฐ์˜ SIZE๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ด๋ฏธ์ง€์™€ ์—ฐ์‚ฐ์„ ํ•ด๋ณด๋ฉด, ํ•„ํ„ฐ๊ฐ€ ๊ฒน์ณ์ง„ ์˜์—ญ ์ „์ฒด์˜ ํ‰๊ท ๊ฐ’์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์•„๋ฌด๋ž˜๋„ ์˜์—ญ์˜ ํ‰๊ท ๊ฐ’์ด๋‹ค ๋ณด๋‹ˆ, ์ด๋ฏธ์ง€๊ฐ€ ํ๋ ค์ง€๋Š” ํšจ๊ณผ(Blur)๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค. 

๋ฐ•์Šค ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•œ ๋ชจ์Šต, ์ฝ”๋“œ๋Š” ํŽ˜์ด์ง€ ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

 

 

๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ

๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ ์—ญ์‹œ ํ๋ ค์ง€๋Š” ํšจ๊ณผ๋ฅผ ๋‚ด๋Š” ํ•„ํ„ฐ์ด์ง€๋งŒ, ๋ฐ•์Šค ํ•„ํ„ฐ๋ณด๋‹ค๋Š” ๋” ๋ถ€๋“œ๋Ÿฝ๊ณ  ์งˆ ์ข‹์€ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค. ๊ฒฐ๊ตญ ํ•„ํ„ฐ ์ •์ค‘์•™์— ๊ฒน์ณ์ง„ ๊ฐ’์ด, ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ์˜ ๊ฐ’์ด๋ฏ€๋กœ ๊ฐ€์žฅ ๋†’์€ ๊ฐ€์ค‘์น˜๋ฅผ ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ์„œ ๋ฉ€์–ด์งˆ ์ˆ˜๋ก ๊ฐ€์ค‘์น˜๋ฅผ ์ ์  ๋‚ฎ๊ฒŒ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ฌด๋ž˜๋„ ์›๋ณธ ์ด๋ฏธ์ง€์˜ ํŠน์„ฑ์ด ์ข€ ๋” ์œ ์ง€๋  ๊ฒƒ์ด๊ณ , ํ•ฉ๋ฆฌ์ ์œผ๋กœ ํ‰๊ท ์„ ๋‚ด์คฌ๊ธฐ์— ๋” ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ๋ ค์งˆ ๊ฒƒ์ด๋‹ค.

์ด ํ•„ํ„ฐ์— '๊ฑฐ๋ฆฌ๊ฐ€ ์ด ์ •๋„๋ฉด ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ์–ด๋Š ์ •๋„๋กœ ์ค˜์•ผํ•˜์ง€?'๋ฅผ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ ๊ณก์„ ์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋Š” ๊ณ ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด, ํ‘œ์ค€ ๋ถ„ํฌ์™€ ๊ฐ™์€ ๋ง์ด๋‹ค. ๋ณต์žกํ•ด ๋ณด์ด๋Š” ํ•จ์ˆ˜์ง€๋งŒ, ๊ฒฐ๊ตญ ์‹œ๊ทธ๋งˆ(σ)์— ๋Œ€ํ•œ ํ•จ์ˆ˜์ด๋‹ค. ์‹œ๊ทธ๋งˆ๋Š” ํ‘œ์ค€ํŽธ์ฐจ. ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ์ž‘๋‹ค๋ฉด ์ค‘์•™์ด ์šฐ๋š ์†Ÿ์€ ๊ณก์„ ์ด ์ƒ๊ธฐ๊ณ , ์ด๊ฒƒ์„ ๊ฐ€์ค‘์น˜๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์›๋ž˜์˜ ํ˜•ํƒœ๊ฐ€ ๋œ ๋ญ‰๊ฐœ์ง„ ์ด๋ฏธ์ง€๋ฅผ ์–ป์„ ๊ฒƒ์ด๋‹ค. ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ํฌ๋‹ค๋ฉด ๊ทธ ๋ฐ˜๋Œ€๊ฐ€ ๋œ๋‹ค.

์ด ์ˆ˜์‹์€, 2D ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋ฅผ ๊ทผ์‚ฌ ์‹œ์ผœ, ํ•„ํ„ฐ ๋‚ด ์ขŒํ‘œ๊ฐ’๋งŒ ๋„ฃ์œผ๋ฉด ๊ฐ€์ค‘์น˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒํ•œ ๊ฒƒ์ด๋‹ค. ์ด ์ˆ˜์‹์„ ๋ณด๋ฉด, ๊ฒฐ๊ตญ s, t์˜ ์ ˆ๋Œ€์ ์ธ ํฌ๊ธฐ. ์ฆ‰ ํ•„ํ„ฐ์˜ ํฌ๊ธฐ ์—ญ์‹œ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์นจ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋Š” ํ•„ํ„ฐ์˜ ํฌ๊ธฐ์™€, ๋ถ„ํฌ์˜ ํ‘œ์ค€ํŽธ์ฐจ์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฐธ๊ณ ๋กœ ํ•„ํ„ฐ์˜ ํฌ๊ธฐ๋Š” ๊ทธ ์ ˆ๋ฐ˜์ด ํ‘œ์ค€ํŽธ์ฐจ์˜ 3๋ฐฐ์™€ ๋น„์Šทํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฐ€์šฐ์‹œ์•ˆ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•œ ๋ชจ์Šต, ์ฝ”๋“œ๋Š” ํŽ˜์ด์ง€ ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ 

 

 

์ฝ”๋“œ

 

ruhz3/ImgProcessing

Codes of digital image processing. Contribute to ruhz3/ImgProcessing development by creating an account on GitHub.

github.com