[Computer Vision] Image upsampling

2023. 4. 9. 02:23
๐Ÿง‘๐Ÿป‍๐Ÿ’ป Topic ์ •๋ฆฌ

- image filtering
- Gaussian Filter
- linear interpolation
- Bilinear interpolation

 

์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€, image๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ๊ณผ, image๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์— ์žˆ์–ด์„œ, histogram๋„ ๊ทธ๋ ค๋ณด๊ณ , equalization, filtering ๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•œ Gaussian filter์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด์•˜๋‹ค.

Image pyramids

 

๋‹ค์Œ topic์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…์‹œ๋‹ค.

 

์ด๋ฏธ์ง€๋ฅผ 10๋ฐฐ ํ‚ค์šฐ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ• ๊นŒ?

 

 

 

์œ„ ํ•œ pixel์— ๋Œ€ํ•ด์„œ 10์นธ์”ฉ ๋ณต์ œ๋ฅผ ํ•ด์„œ ๋„“ํ˜€๊ฐ„๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

 

10 x 10์˜ ๋ธ”๋ฝ์„ ๋˜‘๊ฐ™์€ ๊ฐ’์œผ๋กœ ๋„ฃ๋Š”๋‹ค๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

 

 

 

์ด๋ ‡๊ฒŒ ๋ณด๊ธฐ ์ข‹์ง€ ์•Š๊ฒŒ, block์ด ๋ณด์ด๋Š” ์‚ฌ์ง„์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ๋” ๋‚˜์€ ์‚ฌ์ง„์„ upsampling ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

 

 

 

Interpolation

 

ํ•œ๊ตญ๋ง๋กœ ๋ณด๊ด€์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ, data ๊ด€๋ จ ๋ถ„์•ผ์—์„œ ๋” ๋งŽ์ด ์‚ดํŽด๋ณด์‹ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์ž…๋‹ˆ๋‹ค.

 

์ขŒํ‘œ๊ณ„๊ฐ€ ํ•œ ๊ฐœ๋งŒ ์žˆ๋Š” case์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…์‹œ๋‹ค. ์ฆ‰, 1์ฐจ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ณ  image์ธ 2์ฐจ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

 



 

์šฐ๋ฆฌ์—๊ฒŒ 4๊ฐœ์˜ ์ขŒํ‘œ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

4๊ฐœ์˜ ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์ด ๊ฐ’๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” signal์„ input signal์ด๋ผ๊ณ  ํ•˜๊ณ ,

 

์ค‘๊ฐ„ ์ค‘๊ฐ„ ๊ณต๊ฐ„์— ์žˆ๋Š” ๊ฐ’์„ ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ์ค‘๊ฐ„์— ์œ„์น˜ํ•œ ๊ฐ’์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์„ "Interpolation"์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฆ‰,

์ž…๋‹ˆ๋‹ค.

 

๋ฐฉ๋ฒ•๋“ค์„ ์‚ดํŽด๋ด…์‹œ๋‹ค.

Nearest-neighbor interpolation

 

 

์œ„ ์‚ฌ์ง„์„ ๋ด…์‹œ๋‹ค.

 

x1์— ๋Œ€ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ๊ฐ’์— ๋Œ€ํ•œ ํ•จ์ˆ˜๊ฐ’, ์ฆ‰, ๊ทธ๋ƒฅ ์šฐ๋ฆฌ๊ฐ€ x1์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋Š” data ๊ฐ’์„ ์•Œ๊ณ ์žˆ๋‹ค๊ณ  ๋ด…์‹œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์œ„, ์ฃผ๋ณ€ ๊ฐ’์ฒ˜๋Ÿผ x2๊ฐ€ x1๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šฐ๋ฏ€๋กœ, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.

 

๊ฐ„๋‹จํžˆ neighbor intensity value๋ฅผ ctrl + c , vํ•˜๋Š” ๊ฒƒ์ด์ง€์š”.

 

 

๊ทธ๋ฆฌ๊ณ  ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•˜์—ฌ ๊ณ ์•ˆํ•ด๋‚ธ ๊ฒƒ์ด ๋‹ค์Œ์˜ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

Linear interpolation

 

 

 

์„ ํ˜•์ ์œผ๋กœ ์–ด๋– ํ•œ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

 

์„ ํ˜• ๋ฐฉ์‹์œผ๋กœ๋Š” ๋‘˜๋Ÿฌ์‹ธ๊ณ  ์žˆ๋Š” ์ ์„ ๊ธฐ์ค€์œผ๋กœ, ๊ทธ ๋‘ ์ ์œผ๋กœ๋ถ€ํ„ฐ ์ผ์ฐจํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด, ํ•˜๋‚˜์˜ ์ง์„ ์‹์„ ์„ธ์›๋‹ˆ๋‹ค.

 

 

์œ„์™€ ๊ฐ™์ด surrounding point๋ฅผ ์ด์šฉํ•ด์„œ ์ง์„ ์‹์„ ์„ธ์›๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , x1, x2 ๊ธฐ์ค€์œผ๋กœ ๋ณธ๋‹ค๋ฉด,

 

x'2, x'3์˜ ๊ฐ’์„ ์œ„ linear function์˜ ๊ฐ’์œผ๋กœ ๋Œ€์ž…์‹œ์ผœ ์ค๋‹ˆ๋‹ค.

 

์ง์„  ์‹์€ ์ขŒํ‘œ ๋‘ ์ ๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ์–ด๋–ค ๋‘ ๊ฐœ์˜ ์ ์„ ์ด์šฉํ• ์ง€๋ฅผ ์ž˜ ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ธฐ์ค€ 2๊ฐœ์˜ ์ ์„ ์ž˜ ๊ณจ๋ผ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์ง์„ ์‹์„ ๊ตฌํ•ด์„œ ๋„ฃ๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ์ง€์— ์ ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐํ•  ๊ฒƒ์ด ์ƒ๊น๋‹ˆ๋‹ค.

 

์ฃผ์–ด์ง„ data ์ค‘ ์ธ์ ‘ํ•œ 2๊ฐœ์˜ ์ ์„ ๊ณ ๋ฅด๋Š” ๊ฒƒ์„ ์ด๋ฏธ์ง€์—์„œ ์ƒ๊ฐํ•ด๋ณผ๊นŒ์š”?

 

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ pixel x, x+1 ์ด ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.  image์—์„œ๋Š” ์ธ์ ‘ pixel์ด 1๋งŒํผ ์ฐจ์ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ์ˆ˜ ์œ„์น˜์ธ ๊ฒƒ ๊ฒฝ์šฐ๋„ ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์†Œ์ˆ˜์— ์œ„์น˜ํ•œ ์ง€์ ์—์„œ์˜ pixel ๊ฐ’์„ ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ๋ž€์ƒ‰ ์ ์„ ์•Œ๊ณ ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋Ÿผ ๋” ์ž์„ธํžˆ ๊ทธ๋ ค์ง„ ๊ทธ๋ฆผ์„ ๋ด…์‹œ๋‹ค.

 

๊ตฌํ•ด์•ผํ•˜๋Š” ๊ฐ’์€ F์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ F์˜ ๊ฐ’ ๋นผ๊ณ ๋Š” ๋‹ค ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

x1, x2, f(x1), f(x2), ๋žŒ๋‹ค(์–ผ๋งˆ๋‚˜ ๋–จ์–ด์กŒ๋‚˜ ๊ธธ์ด)๋ฅผ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

f(x)์˜ ๊ฐ’์€ ์ง์„  ์‹์„ ๊ตฌํ•ด์„œ ๋Œ€์ž…ํ•˜์—ฌ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

ํ•ญ์ƒ ์ด๋ ‡๊ฒŒ ํ•˜๊ธด ์–ด๋ ค์šฐ๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ฐํ•ด๋ด…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ์ธ์ ‘ํ•œ ๋‘ pixel ๊ฐ„์˜ ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ์กฐํ•ฉ์€ linear interpolation์ด๋ฏ€๋กœ ์„ ํ˜• ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ, ๋ณธ์ธ ๊ฐ’ ๊ทธ๋Œ€๋กœ์—, ๋” ๊ฐ€๊นŒ์šด pixel ์ชฝ์— ๋” ํฐ weight๋ฅผ ์ฃผ๋ƒ์— ๋”ฐ๋ผ ์กฐํ•ฉ์„ ๋ฐ˜์˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋‹น์—ฐํžˆ, ๊ฐ€๊นŒ์šด ์œ„์น˜์˜ pixel ๊ฐ’์— ๋” ํฐ ๊ฐ€์ค‘์น˜๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ƒ๋Œ€์ ์œผ๋กœ ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ชฝ์—๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๋” ์ž‘์€ weight๋ฅผ ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

 

๋” ๊ฐ€๊นŒ์šด x1 ์ชฝ์˜ ๋” ํฐ ๊ฐ€์ค‘์น˜๋ฅผ ์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  (๋žŒ๋‹ค) < (1 - ๋žŒ๋‹ค) ์ด๋ฏ€๋กœ,

 

cross๋ฅผ ์ด๋ฃจ์–ด์„œ ๊ณฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

Bilinear Interpolation

 

์ž, ๊ทธ๋Ÿผ image์— ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ์ ์šฉ์‹œ์ผœ๋ณผ๊นŒ์š”?

 

 

image๋Š” ์œ„ ๋‚ด์šฉ์— y ์ขŒํ‘œ๋งŒ ์ถ”๊ฐ€๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ Linear์—์„œ image๋กœ ๊ฐ„ ์ˆœ๊ฐ„, ์ธ์ ‘ํ•œ pixel์ด 4๊ฐœ๊ฐ€ ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  Bilinear Interpolation์ด๋ผ ๋ถˆ๋ฆฌ๋Š” ์ด์œ ๋Š”,

 

๋ฐฉ๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๊ณ„์‚ฐํ•œ ๊ทธ ๊ณผ์ •์ด 2๋ฒˆ์— ๊ฑธ์ณ์„œ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” 2๊ฐœ ์‚ฌ์ด์˜ ํ•œ ์ ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์œผ๋‹ˆ,

 

๊ทธ๊ฒƒ์„ ์ด์šฉํ•ด์„œ ํ•ด๋ด…์‹œ๋‹ค.

 

 

์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ (x', y')์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , ์ด์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ 4๊ฐœ์˜ pixel ์„ ์ด์šฉํ•ด์„œ 2๊ฐœ์˜ step์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ, ๊ตฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. (x,y) ์™€ (x, y+1)์„ ์ด์šฉํ•ด์„œ ๊ตฌํ•œ๋‹ค.

 

  • ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€๋Š”๋ฐ ์™œ y -> y+1์ด๋ผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด ๊ฒฝ์šฐ ๊ทธ๋Ÿฌํ•œ ๋ถ€๋ถ„๋“ค์„ ๋„˜์–ด๊ฐ€๊ณ , pixel์ด๋ผ๋Š” ํŠน์ˆ˜์„ฑ์„ ์ธ์ง€ํ•˜๊ณ  ๋ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.
  • (x, y') ์œ„์น˜์˜ ๊ฐ’์„ ๊ตฌํ•ฉ์‹œ๋‹ค.
  • ๋‘ ๊ฐœ์˜ pixel ๊ฐ„์˜ ๊ฐ€์ค‘ํ•ฉ์„ ์ด์šฉํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 

 

2. (x+1, y) ์™€ (x+1, y+1)์„ ์ด์šฉํ•ด ๊ตฌํ•œ๋‹ค.

  • ์ด ๋‘ ์ˆ˜์˜ ๊ฐ€์ค‘ํ•ฉ์œผ๋กœ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ 1,2๋ฒˆ์„ ์ง€๋‚˜์„œ,

 

์šฐ๋ฆฌ๊ฐ€ linear interpolation์„ ํ†ตํ•ด ๊ตฌํ•ด๋†“์€ 1๊ณผ 2์˜ ์‹์„ ํ†ตํ•ด์„œ 3๋ฒˆ์˜ ์‹์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ 3๋ฒˆ์˜ ์‹์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์šฐ๋ฆฌ๊ฐ€ bilinear interpolation์ด๋ผ๋Š” ๊ณผ์ •์„ ํ†ตํ•ด์„œ image pixel ์—์„œ์˜ pixel ๊ฐ’์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

์•„๋ž˜ ์˜ˆ์‹œ๋„ ๋˜‘๊ฐ™์ด 1,2 ๋ฒˆ์„ ๊ฑฐ์ณ 3๋ฒˆ์„ ๊ตฌํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ด๊ฒƒ์„ ๋งค๋ฒˆ ํ•˜๊ธฐ๋„ ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค.

 

Applying the linear interpolation to 2D data (image)

 

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ Linear interpolation์„ 2D Data image์— ์ ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

์ด pixel๋“ค์„ ํ†ตํ•ด ๊ตฌํ•œ ์•„๋ž˜์˜ ์‹์€,

 

๊ทธ์ €, ๊ฐ€๊นŒ์šด ์œ„์น˜์— ๋Œ€ํ•ด ๋” ํฐ ๊ฐ€์ค‘์น˜๋ฅผ, ๋ฉ€๋ฆฌ ์žˆ๋Š” ์œ„์น˜์— ๋Œ€ํ•ด ๋” ๋จผ ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ์•Œ์•„๋ณด๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ํ•œ ์ขŒํ‘œ์— ๋Œ€ํ•ด์„œ

 

(๊ฑด๋„ˆํŽธ์— ์žˆ๋Š” ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด) x (์ขŒํ‘œ)

 

์ด๋ ‡๊ฒŒ ๋ด์ฃผ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ด์™€ ๊ฐ™์€ ์ˆ˜์‹์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ณด๋‹ˆ,

 

(v, u) ์œ„์น˜์˜ pixel ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฃผ๋ณ€ 4๊ฐœ์˜ pixel์„ ๊ฐ€์ค‘ํ•ฉ์„ ์ด์šฉํ•ด ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ ,

 

๊ฐ€์ค‘์น˜์˜ ํ•ฉ์ด 1์ด ๋ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, 4๊ฐœ์˜ ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด์˜ ํ•ฉ์œผ๋กœ, ๋‹น์—ฐํ•˜๊ฒŒ๋„ image pixel ์‚ฌ์ด์˜ ์ฐจ์ด๊ฐ€ 1์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ „์ฒด ํฐ ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๊ฐ€ 1์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ๊ฐ€์ค‘ ํ‰๊ท ์„ ์ทจํ•œ ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๊ฒฝํ˜ํ•œ ๊ฐ€์ค‘ ํ‰๊ท ์—๋Š” Gaussian filter ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

Gaussian filter ๋Š” ์ฃผ๋ณ€๊ฐ„์˜ pixel ๊ฐ’๋“ค์— ๋Œ€ํ•ด ๋‹ค๋ฅธ weight๋ฅผ ์ฃผ๊ณ , ํ‰๊ท ์„ ํ•œ๋‹ค๋Š” ์ธก๋ฉด์—์„œ ๋ณด๋ฉด ์œ ์‚ฌํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์„ ํ†ตํ•ด์„œ interpolation์„ ํ•œ๋‹ค๋ฉด,

 

Gaussian filter์˜ ํŠน์ง•๊ณผ ๊ฐ™์ด smoothing์ด ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์†Œ์ˆ˜ ์œ„์น˜์˜ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด interpolation์˜ ๋ชฉ์ ์ด๋ฏ€๋กœ ๋‘˜์˜ ๋ชฉ์ ์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ๋ชฉ์ ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

ํฌ๊ธฐ๋ฅผ 2๋ฐฐ๋กœ ํ‚ค์šด๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค.

 

H/2, W/2     =>      H, W

 

 

์ฃผ์–ด์ง„, pixel ๋“ค์„ ๊ธฐ์ค€์œผ๋กœ, 2๋ฐฐ ํ‚ค์šด ๋งŒํผ์˜ ๊ป๋ฐ๊ธฐ๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0์œผ๋กœ ์ฑ„์›Œ์ง„ ๊ฒƒ์„.

 

๊ทธ๋ฆฌ๊ณ  ์ฒซ pixel๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฑ„์šธ ๋•Œ, H/2, W/2์˜ pixel ๊ฐ’๋“ค์„ ์ฐธ์กฐํ•ด์„œ ์ฑ„์›Œ๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด,

 

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋™์ผํ•œ ์œ„์น˜๋ฅผ ์ฐพ์•„์„œ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์™ผ์ชฝ ๊ฒƒ์„ ์ฐธ์กฐํ•˜์—ฌ, ์šฐ๋ฆฌ๊ฐ€ ์˜ค๋ฅธ์ชฝ์— pixel ๊ฐ’๋“ค์„ ์ฑ„์›Œ ๋„ฃ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , ์˜ค๋ฅธ์ชฝ์— ๊ฐ’์„ ๋„ฃ์–ด์ค„ ๋•Œ, ๊ฐ ๊ฐ’์—์„œ 2์”ฉ ๋„“ํ˜€์ฃผ๊ณ  ์žˆ์œผ๋‹ˆ, ๊ฐ ์ขŒํ‘œ์—์„œ 2๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์ด reference์— ์žˆ๋‹ค๋ฉด ๊ฐ€์ง€๊ณ  ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, ์ฃผํ™ฉ์ƒ‰ ์œ„์น˜๋“ค์€ ์–ด๋–ป๊ฒŒ ์ฑ„์šธ๊นŒ์š”?

 

 

์ง€๊ธˆ (2m + 1, 2n + 1)์˜ ๊ฒฝ์šฐ์—, (m+0.5, n+0.5)๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ง€์š”.

 

๊ทธ๋ž˜ ์—ฌ๊ธฐ์„œ ์†Œ์ˆ˜ ์œ„์น˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ Bilinear interpolation์ด ํ•„์š”ํ•ด ์ง‘๋‹ˆ๋‹ค.

 

 

๋งŒ์•ฝ 4๋ฐฐ๋ฅผ ํ‚ค์šฐ๊ณ  ์‹ถ๋‹คํ•˜๋ฉด?

 

4๋ฅผ ๋‚˜๋ˆ ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์œ„์น˜ ์„ค์ •์„ ์ž˜ ํ•˜๊ณ , ๋งŒ์•ฝ ์†Œ์ˆ˜์ผ ์ง€๋ผ๋„, interpolation์„ ์“ฐ๋ฉด ๋‹ค ๋˜๋ฏ€๋กœ ๋‹ค ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋น„๊ตํ•ด๋ด…์‹œ๋‹ค.

 

Nearest neighbor์€ ์ค‘๋ณต๋œ ๊ฐ’๋“ค์ด ๋Š˜์–ด์ ธ ๋ณด์ด๋Š” ๊ฒฉ์ž๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

 

Bilinear interpolation์€ 4๊ฐœ์˜ pixel๋กœ ๊ฐ€์ค‘ํ‰๊ท ์„ ํ•˜๋‹ค๋ณด๋‹ˆ Gaussian filter์™€ ๋น„์Šทํ•œ ์—ฐ์‚ฐ์ด๋ฏ€๋กœ ์–ด๋Š ์ •๋„ ๋ฟŒ์˜‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋Œ€์‹ ์—, Nearest neighbor์ฒ˜๋Ÿผ dot์ด ๋ณด์ด๋Š” ๊ฒƒ๋ณด๋‹จ ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ 2๋ฐฐ 3๋ฐฐ 4๋ฐฐ๋„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

 

bilinear interpolation์„ ํ†ตํ•ด์„œ ์ •์ˆ˜๋ฐฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋น„์œจ๋กœ๋„ ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ…Œ๋ฉด, 0.8๋ฐฐ๋ฅผ ํ•œ๋‹ค๊ณ  ๋ด…์‹œ๋‹ค.

 

 

 

 

์œ„์™€ ๊ฐ™์ด ํฌ๊ธฐ๋ฅผ ์ค„์ด๋“  ํ‚ค์šฐ๋“  ๊ป๋ฐ๊ธฐ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

0.8๋ฐฐ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•˜์—ฌ scalingํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  0์œผ๋กœ ์ฑ„์›Œ๋†“๊ณ  ํ•˜๋‚˜ํ•˜๋‚˜ ์ฑ„์šฐ๋Š” ์‹์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

(x,y)์˜ ๊ฐ’์„ ๊ตฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, x์™€ y์— ์ค„์ด๊ณ ์žํ•˜๋Š” ๋น„์œจ๋กœ ๋‚˜๋ˆ ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ด ๋น„์œจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด scale factor๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์•„๋ž˜์™€ ๊ฐ™์ด scaling์„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด x/factor, y/factor๊ฐ€ ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ์˜ bilinear interpolation์„ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , x์™€ y์˜ ๊ฐ๊ฐ์˜ ๋น„์œจ์ด ๋‹ค๋ฅด๋‹ค๊ณ  ํ•ด๋„ ๋ฌธ์ œ๋  ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

 

x์™€ y์— ๊ฐ๊ฐ 0.6๋ฐฐ, 1.2๋ฐฐ๋ฅผ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด, x/0.6, y/1.2๋ฅผ ํ•ด์„œ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ฐ๊ฐ์˜ ๋ฐฉํ–ฅ์˜ ๋น„์œจ๋กœ ์œ„์น˜๋ฅผ ์ฐพ์€ ๋‹ค์Œ, ๊ทธ ์œ„์น˜์—์„œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์˜ค๋ฉด, ๋‹ค ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

 

 

 

 

์ง€๊ธˆ๊นŒ์ง€์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

์ค‘์ ์ ์œผ๋กœ ๋ณด๋Š” ๊ฒƒ์ด interpolation์ž…๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ• ์ค‘ ์ค‘์š”ํ•œ ๊ฒƒ์ด linear interpolation ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

image์— ์ ์šฉํ•˜๋‹ค๋ณด๋ฉด, x,y ์ถ•์— ๋Œ€ํ•ด์„œ ์ง„ํ–‰ํ•˜๋ฏ€๋กœ, Bilinear interpolation์„ ํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

1,2 ๋ฒˆ์œผ๋กœ 3๋ฒˆ ๊ตฌํ•˜๋Š” ์‹์œผ๋กœ ๋ง์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์‹์„ ๋„“์ดํ•˜๋Š” ์‹์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด, ์‰ฝ๊ฒŒ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๊ฐ€์ค‘ํ•ฉ๊ณผ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

'Artificial Intelligence > Computer Vision' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Computer Vision] Image Gradient  (0) 2023.04.16
[Computer Vision] Edge Detection  (0) 2023.04.15
[Computer Vision] Image pyramids  (0) 2023.04.05
[Computer Vision] Image Filtering - Gaussian filter  (0) 2023.04.02
[Computer Vision] Image Filtering - Average filter  (0) 2023.04.02

BELATED ARTICLES

more