Post

[CV] Computer Vision(1-1): Image_formation - point operator

[CV] Computer Vision(1-1): Image_formation - point operator

๐Ÿ‘“Computer Vision ์ •๋ฆฌ

Image


Digital Camera vs Human eye


alt text

  • Similarities between human eye and digital camera
    • Lens, iris(aperture), โ€ฆ
    • Retina corresponds to image sensors (i.e. CCD, CMOS)
  • Digital Image sensor
    • CCD(Charge-coupled device) - ๊ด‘์ž๊ฐ€ ๋“ค์–ด์™€์„œ ์„ผ์„œ๋ฅผ ๋•Œ๋ฆฌ๋ฉด charge๊ฐ€ ๋จ -> pixel to pixel๋กœ ์ „๋‹ฌ๋˜๋ฉฐ output์ด ๋‚˜์˜ด
    • COMS(Complementary metal oxide on silicon) - ๊ฐ ํ”ฝ์…€์—์„œ ์ง์ ‘ ์ „์•• ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ์‹

Digital image


alt text

  • Sampling - 2์ฐจ์› ์ด๋ฏธ์ง€๋Š” M x N(ex 12์˜ ๊ฒฉ์ž) ์œผ๋กœ ์ƒ˜ํ”Œ๋˜๋ฉฐ ๊ทธ ์ด๋ฏธ์ง€๊ฐ€
  • Quantuzation - ๋ฐ๊ธฐ level๋„ quantizedํ•ด์„œ ๋‚˜ํƒ€๋ƒ„(์„ค์ •ํ•œ ์–‘์žํ™” level์— ๋”ฐ๋ผ์„œ, 2์˜ ์ œ๊ณฑ์ˆ˜๋กœ ํ•˜๋ฉฐ ํŽธํ•จ 0~255๊ฐ™์€)

Image Coordinate system


alt text

  • ์ด๋ฏธ์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 2์ฐจ์›๋ฐฐ์—ด, ๊ฐ๊ฐ์€ pixel
  • ๊ฐ๊ฐ์˜ pixel์˜ ์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•ด์•ผํ•จ f(j,i) / f(y,x) (y=์„ธ๋กœ์ถ•, x=๊ฐ€๋กœ์ถ•) ์ด๊ฑด ํ‘๋ฐฑ์˜ ๊ฒฝ์šฐ
  • ๊ฐ๊ฐ์˜ pixel์€ ์ƒ˜ํ”Œ๋ง ๋œ ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ •์ˆ˜์˜ ์ขŒํ‘œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋จ
  • Color image: ๊ฐ๊ฐ pixel์€ 2์ฐจ์› ๊ฐ’์„ 3๊ฐœ ๊ฐ€์ง„๋‹ค.
    • fr(x), fg(x), fb(x)

alt text

  • ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ์‹ค์ˆ˜๋ฅผ ์จ์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ(์ด๋ฏธ์ง€ ๋ณด์ • ๋“ฑ์— ์‚ฌ์šฉ)

alt text

Color models


  • ์šฐ๋ฆฌ ๋ˆˆ์€ 380-750nm ์•ˆ์— ์žˆ๋Š” ๋น›(๊ฐ€์‹œ๊ด‘์„ )๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
  • ์ˆ˜์‹์€ ์™ธ์šฐ์ง€ ๋ง๊ณ  ๋ชจ๋ธ์ด ๋ญ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์„๊ฒƒ

Tri-stimulus theory


alt text

  • Tri-stimulus theory: ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” RGB๋ฅผ ๋ฐ›์•„ ๋“ค์ผ ์ˆ˜ ์žˆ๋Š” 3๊ฐœ์˜ ์„ธํฌ(์›์ถ”์„ธํฌ(cone cell))๊ฐ€ ์žˆ๋‹ค.
  • ๋‹ค๋ฅธ ์ƒ‰์ƒ์€ RGBํŒŒ์žฅ์˜ ์กฐํ™”๋ฅผ ํ†ตํ•ด ๋‚˜ํƒ€๋‚ด์ž๋Š” ์ด๋ก 

XYZ Color model


alt text

  • Tri-stimulus: ์Œ์ˆ˜๊ฐ’์ด ์žˆ์ง€๋งŒ ์ด๊ฑธ ์—†์• ๊ธฐ ์œ„ํ•ด ๊ฐ€์ค‘์น˜๋ฅผ ๋”ํ•ด ์–‘์ˆ˜๋ฅผ ๋งŒ๋“ค์ž๋Š” ๋ชจ๋ธ
  • X=red์˜ ๊ฐ€์ค‘์น˜, Y=green์˜ ๊ฐ€์ค‘์น˜, Z=blue์˜ ๊ฐ€์ค‘์น˜
  • Y-axis๋Š” ํœ˜๋„๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.
  • x,y,z์˜ sum์€ ๋ฌด์กฐ๊ฑด 1

RGB color Model


alt text

  • Red(1,0,0), Green(0,1,0), Blue(0,0,1)
  • ๋ชจ๋“  ์ƒ‰์€ ์ •์œก๋ฉด์ฒด ์•ˆ์—์„œ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Color filter arrays


alt text

์˜ค๋ฅธ์ชฝ์€ Bayer pattern

  • ๊ฐ๊ฐ์˜ ์ƒ‰์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด fliter๋ฅผ ์”Œ์šด๋‹ค.
  • red๋งŒ senseํ•˜๊ธฐ ์œ„ํ•ด์„œ color filter๋ฅผ ์”Œ์šฐ๋ฉด red๋งŒ ์ธ์‹ํ•จ
  • ๋งŽ์ด ์“ฐ๋Š” ํŒจํ„ด์€ Bayer pattern(green์€ ํœ˜๋„์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ผ์น˜๊ธฐ ๋•Œ๋ฌธ์— 1/2์„ ์‚ฌ์šฉํ•จ)

Represent RGB color model


alt text

YCrCb/YUV/YIQ Color Model


alt text

  • ๊ฐ’์€ ์™ธ์šธ ํ•„์š” X

HSV Color model


  • ์‚ฌ๋žŒ์€ ์ƒ‰์„ ์ƒ‰์กฐ(Hue),์ฑ„๋„(Saturation),๋ช…๋„(Value) ์ด 3๊ฐ€์ง€๋กœ ์ธ์‹์„ ํ•˜๊ฒŒ ๋œ๋‹ค. alt text

Image processing operators


ํ•œ ์ด๋ฏธ์ง€์˜ ํ”ฝ์…€๋“ค์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์„œ ์ด๋ฏธ์ง€์— ์ ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž๋“ค์ด ์žˆ๋‹ค.

  1. Point operator: ๊ฐ๊ฐ์˜ pixel์— ๋…๋ฆฝ์ ์œผ๋กœ ์—ฐ์‚ฐํ•ด์„œ ์ฒ˜๋ฆฌ(ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€์—์„œ ๊ฐ€๋Šฅ)
  2. Neighborhood operator: ํ•˜๋‚˜์˜ pixel๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋ณ€์˜ pixel๊นŒ์ง€ ๊ณ ๋ คํ•ด์„œ ์ฒ˜๋ฆฌ(์ด๋ฏธ์ง€๋ฅผ ๋‘๊ฐœ๋กœ ๋งŒ๋“ค์–ด์„œ ํ•˜๋‚˜๋Š” ์ €์žฅ์šฉ, ํ•˜๋‚˜๋Š” ๊ณ„์‚ฐ์šฉ)
  3. Geometric transformation: global operation ์ฆ‰ ์ „์ฒด์˜ ๊ฐ’์„ ํ•œ๋ฒˆ์— ๋ณ€๊ฒฝํ•จ(ํšŒ์ „, ์ด๋™, ํ™•๋Œ€/์ถ•์†Œ, ์™œ๊ณก ๋“ฑ)

Point operator


๐Ÿ“špoint operator: ๊ฐ ํ”ฝ์…€์˜ ๊ฐ’๋งŒ์„ ์ด์šฉํ•ด์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๊ทธ ํ”ฝ์…€์˜ ๊ฐ’๋งŒ์„ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž

  • ex: ๋ฐ๊ธฐ ์กฐ์ •, ๋Œ€๋น„ ์กฐ์ •, ๊ฐ๋งˆ ๋ณด์ • ๋“ฑ

  • ์ผ๋ฐ˜์ ์ธ pointer operator์˜ ํ‘œํ˜„: \(f_outโ€‹(x,y)=t(f_inโ€‹(x,y))\)
  • $๐‘“_in(๐‘ฅ,๐‘ฆ)$: ์ž…๋ ฅ ํ”ฝ์…€ ๊ฐ’
  • $๐‘“_out(๐‘ฅ,๐‘ฆ)$: ์ถœ๋ ฅ ํ”ฝ์…€ ๊ฐ’
  • $t$: ํ”ฝ์…€ ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

alt text

Linear Point Operators

linear operators: ๋‘ ์ด๋ฏธ์ง€ $f_0$. %f_1%์„ ๊ฐ๊ฐ ์—ฐ์‚ฐํ•œ ํ›„ ๋”ํ•œ ๊ฒฐ๊ณผ = ๋‘ ์ด๋ฏธ์ง€๋ฅผ ๋”ํ•œ ํ›„ ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ

\[t(f_0+f_1) = t(f_0)+t(f_1)\]

โœ… ๋ฐ๊ธฐ ์กฐ์ • ์—ฐ์‚ฐ

  • ๋ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ: \(f_out(j,i) = min(f_in(j,i)+a,L-1)\)
  • ์–ด๋‘ก๊ฒŒ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ: \(f_out(j,i) = max(f_in(j,i)+a,0)\)
  • ๋ฐ˜์ „ ์—ฐ์‚ฐ: \(f_out(j,i) = (L-1)-f_in(j,i)\)

  • $a$: ๋ฐ๊ธฐ ์กฐ์ •๊ฐ’
  • $L$: ํ”ฝ์…€ ๊ฐ’์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€๊ฐ’(๋ณดํ†ต 256)

alt text

linear point operator ์˜ˆ์‹œ
๋ฐ๊ธฐ ์กฐ์ • ๋ฐ ๋ฐ˜์ „

โœ…Linear Blend ์—ฐ์‚ฐ
๋‘ ์ด๋ฏธ์ง€๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค

  • ํ˜ผํ•ฉ ์—ฐ์‚ฐ: \(f_out(j,i)=\alphaf_1(j,i)+(1-\alpha)f_2(j,i)\)
  • alpha๊ฐ€ 0์—์„œ 1๋กœ ๋ณ€ํ•  ๋•Œ ์ด๋ฏธ์ง€๊ฐ€ ์ ์ง„์ ์œผ๋กœ ๋ณ€ํ˜•

alt text

๊ฐ๊ฐ 1๋ฒˆ, 6๋ฒˆ์ด 2๊ฐœ์˜ ์‚ฌ์ง„์ด๋‹ค. ๊ทธ ์‚ฌ์ด์—๋Š” ์ค‘๊ฐ„ ์‚ฌ์ง„

Non-linear point operator-Gamma correction


๐Ÿ“šGamma Correction: ์ด๋ฏธ์ง€์˜ ๋ฐ๊ธฐ ์ˆ˜์ค€์„ ๋น„์„ ํ˜•์ ์œผ๋กœ ์กฐ์ • ๋ชจ๋‹ˆํ„ฐ(CRT)์˜ ์ถœ๋ ฅ ๋ฐ๊ธฐ๊ฐ€ ์ž…๋ ฅ ์‹ ํ˜ธ์™€ ๋น„์„ ํ˜• ๊ด€๊ณ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์ •์ด ํ•„์š”

alt text

$\gamma$๊ฐ’์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€์˜ ๋ฐ๊ธฐ๊ฐ€ ๋น„์„ ํ˜•์ ์œผ๋กœ ๋ฐ”๋€œ

$\gamma<1$: ์ด๋ฏธ์ง€๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๋ฐ์•„์ง(์–ด๋‘์šด ๋ถ€๋ถ„ ๊ฐ•์กฐ) $\gamma>1$: ์ด๋ฏธ์ง€๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ์–ด๋‘์›Œ์ง(๋ฐ์€ ๋ถ€๋ถ„ ๊ฐ•์กฐ)

  • ์ „๋ฅ˜(V)์— gamma(r)์„ ์ œ๊ณฑํ•˜์—ฌ ๋ช…๋„๋ฅผ ์กฐ์ ˆํ•จ
  • ๊ฐ๋งˆ๊ฐ’์„ ๋‘๋ฐฐ๋กœ ํ•ด๋„ ๋ฐ๊ธฐ๊ฐ€ ๋น„๋ก€๋กœ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค

Compositing and matting


  • Matting: ์‚ฌ์ง„์˜ foreground ๋ฌผ์ฒด๋งŒ ์ธ์‹ํ•ด์„œ ์ถ”์ถœ(์˜ˆ: ํฌ๋กœ๋งˆํ‚ค)
  • Compositing: ๋ฝ‘์•„๋‚ธ ๋ฌผ์ฒด๋ฅผ background ์œ„์— ๋†“์Œ(์˜ˆ: ๋ฐฐ๊ฒฝ ํ•ฉ์„ฑ)
  • ๊ฐ๊ฐ์˜ pixel์— RGB์— 4๋ฒˆ์งธ ์ฑ„๋„ A(alpha)๊ฐ’(ํˆฌ๋ช…๋„)์„ ์ด์šฉํ•ด์„œ ๋”ํ•œ๋‹ค
    • $\alpha=1$: ์™„์ „ ๋ถˆํˆฌ๋ช…
    • $\alpha=0$: ์™„์ „ ํˆฌ๋ช…

alt text

C: ์ตœ์ข… ํ•ฉ์„ฑ์ด๋ฏธ์ง€
B: Background
F: Foreground
$\alpha$: ๊ฐ ํ”ฝ์…€์˜ ํˆฌ๋ช…๋„

Histogram Equalization


what is histogram?

์ด๋ฏธ์ง€์—์„œ ๋ฐ๊ธฐ ๊ฐ’์˜ ๋ถ„ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ž˜ํ”„ โ†’ Count the total number of pixels for each brightness value in [0, L-1]

  • Normalized histogram: ์ด๋ฏธ์ง€์˜ ๋ฐ๊ธฐ ๋ถ„ํฌ๋ฅผ ๋„“๊ฒŒ ํŽด์„œ, ๋Œ€๋น„๋ฅผ ๋†’์ด๋Š” ์—ฐ์‚ฐ

alt text

$\hat{h}(l)$: Normalized histogram ๊ฐ’ $c(l_in)$: ๋ˆ„์  ๋ถ„ํฌ ํ•จ์ˆ˜ $T$: ๋ณ€ํ™˜ ํ•จ์ˆ˜

  • ์ฆ‰, ๋ฐ๊ธฐ ๊ฐ’์ด $l_in$์ด์—ˆ๋˜ ํ”ฝ์…€์€ $T(l_in)$์ด๋ผ๋Š” ์ƒˆ ๋ฐ๊ธฐ ๊ฐ’์œผ๋กœ ๋ฐ”๋€œ

alt text alt text

  • Find a mapping function f(I) to make histogram flat
  • Improve the visual appearance of image by increasing the dynamic range of colors

alt text

์‚ฌ์ง„์„ ๋ณด๋ฉด ๋Œ€์กฐ๊ฐ€ ์ž˜๋ณด์ด๊ฒŒ ๋ณ€๊ฒฝ๋˜์–ด ์–ผ๋ฃฉ๋ง์€ ๋” ์ข‹์•„์กŒ์ง€๋งŒ ์ƒˆ ์‚ฌ์ง„์€ ๋…ธ์ด์ฆˆ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋จ

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€?

  • ๋ˆ„์  ํžˆ์Šคํ† ๊ทธ๋žจ(cumulative histogram)์„ ๊ตฌํ•œ๋‹ค alt text

alt text

$\hat{h}(l)=h(l)โ€‹/M*N=h(l)/64โ€‹โ‡’{0,0,0.203,0.281,0.297,0.156,0.063,0}$
$c(l)=\displaystyle\sum_{k=0}^l \hat{โ€‹h}(k)โ‡’{0.0,0.0,0.203,0.484,0.781,0.937,1.0,1.0}$
$l_out$ ๊ณ„์‚ฐ(์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผ) -> (A) ๋„ํ‘œ๋ฅผ ์ด๋ฏธ์ง€์— ์ ์šฉ
ํžˆ์Šคํ† ๊ทธ๋žจ์ด ๊ณจ๊ณ ๋ฃจ ๋ถ„ํฌ(์›๋ž˜ ๋ฐ๊ธฐ ๊ฐ’์ด (2,6)์‚ฌ์ด ์˜€๋Š”๋ฐ (1,7)๋กœ ๋„“์–ด์ง)

ํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€์— ๋ฐ์€ ์˜์—ญ๊ณผ ์–ด๋‘์šด ์˜์—ญ์ด ๋™์‹œ์— ์กด์žฌํ•˜๋ฉด?? โ†’ ํ•œ์ชฝ์€ ์ข‹์•„์ง€์ง€๋งŒ, ๋‹ค๋ฅธ ์ชฝ์€ ๋ง๊ฐ€์ง!

  • ํ•ด๊ฒฐ๋ฐฉ๋ฒ•:
    • ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ MxM ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ ์„œ ๊ฐ ๋ธ”๋ก๋งˆ๋‹ค Histogram Equalization ์ˆ˜ํ–‰

alt text

โœ… ์ด ๋ฐฉ์‹์€ ํ”ฝ์…€ ์ฃผ๋ณ€์„ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ Point Operator๊ฐ€ ์•„๋‹ˆ๋‹ค! (์ด๊ฑด ์ง€์—ญ ์—ฐ์‚ฐ์ด๋‹ˆ๊นŒ)

This post is licensed under CC BY 4.0 by the author.