ο£Ώ Apple Lover Developer & Artist

μ˜μ†μ μΈ λ””μžμΈμ— ν˜„λŒ€μ˜ 곡감을 μ±„μ›Œλ„£λŠ” κ³΅λ°©μž…λ‹ˆλ‹€

πŸ–₯ Computer Science/Computer Vision

[Computer Vision] Filter - Part 1

singularis7 2021. 9. 14. 16:47
λ°˜μ‘ν˜•

μ§€λ‚œ μ‹œκ°„μ— 이진 μ˜μƒ 및 라벨링을 μ•Œμ•„λ³΄μ•˜λ‹€λ©΄ 이번 μ‹œκ°„μ—λŠ” μ˜μƒμ²˜λ¦¬μ—μ„œ μ‚¬μš©λ˜λŠ” 3가지 κΈ°λ³Έ 연산에 λŒ€ν•΄ μ•Œμ•„λ³Έλ‹€. 크게 ν™”μ†Œ, μ˜μ—­, κΈ°ν•˜ν•™μ  μš”μ†Œλ‘œ μ²˜λ¦¬ν•˜λŠ” 방법이 μžˆλ‹€. 특히, μ˜μ—­μ— κ΄€ν•œ μ²˜λ¦¬λŠ” λ”₯λŸ¬λ‹κ³Ό κΉŠμ€ 관련이 μžˆμ–΄μ„œ μ€‘μš”ν•˜λ‹€;

점 μ—°μ‚°

  • 였직 μžμ‹  (ν•˜λ‚˜μ˜ ν”½μ…€)의 λͺ…암값에 따라 μƒˆλ‘œμš΄ κ°’ κ²°μ •
  • 주어진 μ˜μƒμ— 각 ν”½μ…€μ˜ λͺ…암값을 μ–΄λ–»κ²Œ λ°”κΎΈλŠ”κ°€?

μ–΄λŠ 픽셀값을 λ°”κΏ€λ•Œ 자기 μ£Όλ³€μ˜ λͺ…μ•”κ°’κ³Ό 관계없이 값을 κ²°μ •ν•œλ‹€. μ„ ν˜• 연산은 주어진 μ˜μƒμ— λŒ€ν•˜μ—¬ νŠΉμ • λͺ…μ•”κ°’ 만큼 λ”ν•΄μ£Όκ±°λ‚˜ λΊ„μ„œ ν˜„μž¬ ν”½μ…€μ˜ λͺ…암값을 κ²°μ •ν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©λœλ‹€.

λͺ…암값을 λ°κ±°λ‚˜ μ–΄λ‘‘κ²Œ ν•˜λŠ” 경우 0 <= λͺ…μ•”κ°’ < L 을 λ§Œμ‘±ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄ min, max ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 보인닀. λ°˜μ „μ€ 밝은 것은 μ–΄λ‘‘κ³  μ–΄λ‘μš΄ 것은 밝게 λ§Œλ“€μ–΄μ£ΌκΈ° λ•Œλ¬Έμ— 총 Lκ°’μ—μ„œ ν˜„μž¬μ˜ λͺ…암값을 λΉΌμ£Όμ–΄ λ°˜μ „μ„ κ΅¬ν˜„ν•œλ‹€.

λΉ„ μ„ ν˜• 연산은 주둜 λͺ¨λ‹ˆν„° 색상을 μ‘°μ ˆν•  λ•Œ μ‚¬μš©λ˜λŠ”λ°, λΉ„μ„ ν˜• 적으둜 λ³€λ™μ‹œμΌœμ€€λ‹€. 0κ³Ό 255값을 μ¦κ°€μ‹œν‚¨λ‹€λ©΄ μ˜μƒμ΄ saturation λ˜λŠ” 문제점이 λ°œμƒν•œλ‹€. λ”°λΌμ„œ 0κ³Ό 255의 μ€‘μ‹¬λΆ€μ˜ 값을 μ‘°μ •ν•˜μ—¬ μ˜μƒμ„ μ‘°μ ˆν•˜λ„λ‘ 도와쀀닀.

λ””μ‘ΈλΈŒ

Aμ˜μƒμœΌλ‘œλΆ€ν„° Bμ˜μƒμœΌλ‘œ ν™”λ©΄ μ „ν™˜μ„ κ΅¬ν˜„ν•  λ•Œ 픽셀값을 κ°‘μžκΈ° λ°”κΎΈλŠ” 것이 μ•„λ‹ˆλΌ λΉ„μœ¨κ°’ aλ₯Ό ν™œμš©ν•˜μ—¬ λΆ€λ“œλŸ½κ²Œ μ „ν™˜ μ‹œν‚€λŠ” 것이 λͺ©ν‘œμ΄λ‹€.

μ˜μ—­ μ—°μ‚° (였늘의 κ°€μ•„μ•„μ•„μ•„μž₯ μ€‘μš”ν•œ μ£Όμ œμ΄λ‹€.)

  • 이웃 ν™”μ†Œμ˜ λͺ…암값에 따라 μƒˆλ‘œμš΄ κ°’ κ²°μ •
  • 4μ—°κ²°μ„±, 8μ—°κ²°μ„±κ³Ό 같이 μ£Όλ³€μ˜ λ‹€λ₯Έ 값에 따라 μžμ‹ μ˜ 픽셀값을 λ³€κ²½

주어진 μž…λ ₯ μ˜μƒμ˜ λͺ…암값쀑 λ‚΄κ°€ μ›ν•˜μ§€ μ•ŠλŠ” λͺ…암값을 ν•„ν„°λ§ν•˜λŠ” 방법을 톡해 μ˜μƒ 처리 및 효과λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€. (μ€‘μš”ν•˜λ‹€)

spatial domain (2차원 μ˜μƒ 평면)μ—μ„œμ˜ 이미지 ν•„ν„°λŠ” grid of numbersλΌλŠ” ν•„ν„°λ₯Ό μ„€κ³„ν•˜μ—¬ μˆ˜ν•™μ  연산을 톡해 κ³„μ‚°ν•˜λŠ” 것이닀. μ˜μƒμ— μ–΄λ–»κ²Œ μ μš©ν•˜λŠ”κ°€μ— 따라 smoothing, sharpening, measuring texture 효과λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€.

μ™œ 이것이 μ˜μ—­ 연산인가? 

주어진 μ˜μƒμ—μ„œ ν•˜λ‚˜μ˜ 픽셀값을 κ²°μ •ν•˜κΈ°μœ„ν•΄ λ‹€μŒκ³Ό 같이 λ™μž‘ν•œλ‹€.

주어진 μ˜μƒμ—μ„œ ν•˜λ‚˜μ˜ 픽셀값을 결정함에 μžˆμ–΄μ„œ grid of numbers λ₯Ό μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠ” 가에 따라 각쒅 효과λ₯Ό λ§Œλ“€μ–΄ λ‚΄κ²Œ λ˜λŠ”λ° 이 λ–„ ν•˜λ‚˜μ˜ 픽셀값을 μΈμ ‘ν•œ 픽셀에 정보λ₯Ό ν™œμš©ν•˜μ—¬ κ²°μ •ν•œλ‹€.

ν•„ν„°λ₯Ό μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠ”κ°€μ— λ”°λΌμ„œ μ˜μƒμ˜ ν™”μ†Œλ₯Ό μ¦κ°€μ‹œν‚€κ±°λ‚˜, μž‘μŒμ„ μ—†μ—κ±°λ‚˜ , λŒ€λΉ„λ₯Ό μ¦κ°€μ‹œν‚€κ³  μ€‘μš”ν•œ 정보λ₯Ό μΆ”μΆœν•˜λŠ” μš©λ„λ‘œ ν™œμš©ν•  수 있으며 μ‹€μ œλ‘œ λ”₯λŸ¬λ‹μ—μ„œ μ˜μƒμ„ μ²˜λ¦¬ν•˜κ³  μΈμ‹ν•˜λŠ”λ° 이와 같은 방법이 ν™œμš©λ˜κ³  μžˆλ‹€.

μ˜μƒμ— ν•„ν„°λ₯Ό μ μš©ν•˜κΈ°μœ„ν•œ μˆ˜ν•™μ  λ°©λ²•μœΌλ‘œ 상관(correlation)κ³Ό μ»¨λ³Όλ£¨μ…˜(convolution) 방법이 μ‘΄μž¬ν•œλ‹€. 

1μ°¨μ›μœΌλ‘œ λ¨Όμ € ν•΄μ„ν•΄λ³΄μž!

상관(correlation)은 주어진 μ˜μƒκ³Ό ν•„ν„°κ°€ μ–΄λ–€ 관계λ₯Ό κ°–κ³  μžˆλŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것이닀.

1μ°¨μ›μ˜ μž…λ ₯ μ˜μƒ μžˆμ„ λ•Œ μž…λ ₯ μ˜μƒμ΄ μœˆλ„μš° u 필터와 같은 νŠΉμ„±μ„ 갖도둝  μ˜μƒμ„ λ³€ν™”μ‹œμΌœμ£ΌλŠ” 것이 이미지 ν•„ν„°λ§μ˜ μ£Όμš” κ°œλ…μ΄λ‹€. μƒμ„Έν•œ μ—°μ‚° 방법은 λ‹€μŒκ³Ό κ°™λ‹€.

계산할 수 μ—†λŠ” λ²”μœ„λ₯Ό μ œμ™Έν•˜κ³  μœˆλ„μš°λ₯Ό 우츑으둜 ν•œμΉΈμ”© μ›€μ§μ΄λ©΄μ„œ μœˆλ„μš° 값을 픽셀값에 κ³±ν•˜μ—¬ ν•©ν•œ 결과값을 κΈ°λ‘ν•œλ‹€. λ”°λΌμ„œ 같은 μž…λ ₯ μ˜μƒμ΄λΌλ„ 필터에 따라 κ²°κ³Ό 값이 λ‹¬λΌμ§ˆ 수 μžˆλ‹€. 

μœˆλ„μš°λŠ” λ‚΄κ°€ 가진 μ˜μƒμ„ νŠΉμ • κΈ°μ€€μœΌλ‘œ κ°•μ‘°ν•΄μ£ΌλŠ” 역할을 ν•΄μ€€λ‹€. λ˜ν•œ ν˜„μž¬ ν”½μ…€μ˜ λͺ…암값을 결정함에 μžˆμ–΄μ„œ μœˆλ„μš°κ°€ 보고 μžˆλŠ” μ£Όλ³€ 픽셀값을 μ°Έμ‘°ν•˜κ³  있기 λ•Œλ¬Έμ— μ˜μ—­ 연산이닀. 

상관은 이와 같이 주어진 μœˆλ„μš°λ₯Ό μ›€μ§μ—¬κ°€λ©΄μ„œ μž…λ ₯ μ—°μ‚°κ³Ό κ³±ν•œ κ²°κ³Όλ₯Ό λ‹€ λ”ν•΄μ£ΌλŠ” 것이닀.

μ»¨λ³Όλ£¨μ…˜μ€ 주어진 μœˆλ„μš°λ₯Ό 뒀집은 후에 상관과 같은 연산을 ν•œλ‹€. μˆ˜ν•™μ μœΌλ‘œ 보면 상관과 λ™μΌν•œ 연산이닀. λ”₯λŸ¬λ‹ CNNμ—μ„œμ˜ μ»¨λ³Όλ£¨μ…˜μ˜ κ°œλ…κ³Ό λ™μΌν•˜λ‹€. 

2μ°¨μ›μœΌλ‘œ ν™•μž₯ν•΄λ³΄μž!

2차원 μ˜μƒμ—μ„œ μ»¨λ³Όλ£¨μ…˜κ³Ό 상관이 μ–΄λ–»κ²Œ μ΄λ£¨μ–΄μ§€λŠ”μ§€ μ‚΄νŽ΄λ³΄μž. μœˆλ„μš°λ₯Ό μ˜μƒμ˜ μ‹œμž‘ λΆ€ν„° λκΉŒμ§€ 움직여 κ°€λ©΄μ„œ μ˜μ—­ 연산을 ν•˜κ²Œ λœλ‹€.

값을 κ²°μ •ν•˜λŠ” 방법이닀. μž…λ ₯μ˜μƒμ— μœˆλ„μš°λ₯Ό μ”ŒμšΈ λ•Œ μ›λ³Έμ—μ„œμ˜ λͺ…암값은 0μ΄μ—ˆμ„μ§€λΌλ„ μ£Όλ³€μ˜ μ˜μ—­ 연산에 μ˜ν•΄ λ‹€λ₯Έ κ°’μœΌλ‘œ λ°”λ€” 수 μžˆλ‹€. 

μƒκ΄€μœΌλ‘œ κ³„μ‚°ν•œ κ²°κ³Όλ₯Ό μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ©΄ κ³„μ‚°μ˜ κ²°κ³Όκ°€ μœˆλ„μš°μ™€ λ‹€λ₯΄κ²Œ λ’€μ§‘ν˜€ λ³΄μΈλ‹€λŠ” 단점이 μ‘΄μž¬ν•œλ‹€. μœˆλ„μš°κ°€ κ°–κ³  μžˆλŠ” original νŠΉμ„±μ„ 잘 λ°˜μ˜ν•˜κΈ° μœ„ν•˜μ—¬ μ»¨λ³Όλ£¨μ…˜μ„ 많이 ν™œμš©ν•˜κ²Œ λœλ‹€.

μˆ˜μ‹μ μœΌλ‘œ 상관과 μ»¨λ³Όλ£¨μ…˜μ„ 해석해보면 μœ„μ™€ κ°™λ‹€. 이 λ•Œ μ»¨λ³Όλ£¨μ…˜ ν‘œκΈ°μ˜ 경우 *(λ³„ν‘œ) λ₯Ό 많이 μ‚¬μš©ν•˜λŠ” κ²½ν–₯이 있으며 fλΌλŠ” μ˜μƒμ— uλΌλŠ” ν•„ν„°λ₯Ό μ”Œμ—ˆκ΅¬λ‚˜λΌκ³  해석할 수 μžˆλ‹€. 

μƒκ΄€μ˜ 경우 주어진 μ˜μƒμ„ x만큼 μ›€μ§μ—¬λ‚˜κ°€λ©΄μ„œ uλΌλŠ” ν•„ν„°λ₯Ό κ³±ν•΄μ„œ λ‹€ 더해주면 λœλ‹€λŠ” μˆ˜ν•™μ  의미λ₯Ό μ§€λŠ¬κ³  μžˆλ‹€.

μ „μžκ³΅ν•™μ—μ„œλ„ μ»¨λ³Όλ£¨μ…˜ κ°œλ…μ„ μ‚¬μš©ν•œλ‹€. 보톡 μ‹ ν˜ΈλŠ” 0 ν˜Ήμ€ 1κ³Ό 같이 λ―ΈλΆ„ κ°€λŠ₯ν•˜μ§€ μ•Šμ€ ν˜•νƒœλ‘œ input이 λ“€μ–΄μ˜€λŠ”λ° ν•„ν„°λ₯Ό ν™œμš©ν•˜μ—¬ λ―ΈλΆ„ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄μ£ΌκΈ° μœ„ν•΄ μ»¨λ³Όλ£¨μ…˜ κ°œλ…μ΄ λ„μž…λ˜μ—ˆλ‹€.

μ˜μƒμ²˜λ¦¬ν•˜λŠ” μ‚¬λžŒ μž…μž₯μ—μ„œλŠ” ν•„ν„°λ₯Ό 톡해 μ˜μƒμ— 효과λ₯Ό 쀄 수 μžˆμ§€ μ•Šμ„ κΉŒλΌλŠ” 생각에 λ„μž…λ˜μ—ˆλ‹€.

νŠΉμ§•μ„ κ°•μ‘°ν•˜κΈ° μœ„ν•΄ ν™œμš©λœλ‹€λŠ” λ°œμƒμ—μ„œ 더 λ‚˜μ•„κ°€ λ”₯λŸ¬λ‹μ—μ„œ μ»¨λ³Όλ£¨μ…˜μ„ ν™œμš©ν•˜μ—¬ μ˜μƒμœΌλ‘œ λΆ€ν„° νŠΉμ§•μ„ 뽑아내기 μœ„ν•œ λ°©ν–₯으둜 μ§„λ³΄ν•˜κ²Œ λœλ‹€.

  • ν•„ν„°λ₯Ό μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠ”κ°€μ— 따라 μ›ν•˜λŠ” 값에 λŒ€ν•œ 3x3 값을 ν•˜λ‚˜μ˜ κ°’μœΌλ‘œ μ€„μ—¬μ„œ ν‘œν˜„ν•  수 μžˆλ‹€.
  • λ‚΄κ°€ κ°–κ³  μžˆλŠ” κ°’κ³Ό μ£Όλ³€μ˜ νŠΉμ„±μ„ λ°˜μ˜ν•΄μ„œ ν•˜λ‚˜μ˜ νŠΉμ§•μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.

local feature은 전체 μ˜μƒμ„ μ˜μ—­μ„ λ³΄λŠ” 것이 μ•„λ‹ˆλΌ λ‚΄κ°€ 주어진 ν”½μ…€μ˜ μ£Όλ³€ (3X3)을 λ³΄κ³ μ„œ μ–΄λ–€ νŠΉμ§•μ„ κ°–κ³  μžˆλŠ”κ°€λ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ λ³΄λŠ” 것을 local feature 라고 λΆ€λ₯Έλ‹€. 

Hierarchical ꡬ쑰의 경우 μ£Όλ³€μ˜ 값에 λŒ€ν•΄ μ»¨λ³Όλ£¨μ…˜μ„ μ—¬λŸ¬λ²ˆ μˆ˜ν–‰ν•˜λ©΄μ„œ ν•˜λ‚˜μ˜ κ°’μœΌλ‘œ μˆ˜λ ΄ν•˜λ„λ‘ μ„€κ³„ν•˜μ—¬ 계측적인 ꡬ쑰λ₯Ό κ°–λŠ”λ‹€.

ν•„ν„°μ˜ 값을 μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠ”κ°€μ— 따라 λ‹¬λΌμ§ˆ 수 있고 ν•„ν„°λŠ” 컀널, weight와 같은 ν‘œν˜„μœΌλ‘œ λΆˆλ¦¬κΈ°λ„ ν•œλ‹€. λ”₯λŸ¬λ‹ κ΄€μ μ—μ„œ μž„μ˜μ˜ ν•„ν„°λ₯Ό μ£Όκ³  λ‹€μ–‘ν•œ μ˜μƒμ„ 톡해 μ–΄λ–€ 값을 κ°–κ³  μžˆμ„ λ•Œμ— μ˜μƒμ˜ featrueλ₯Ό 잘 μΆ”μΆœν•  수 μžˆλŠ”μ§€μ— λŒ€ν•˜μ—¬ ν•™μŠ΅ν•œλ‹€.

즉 필터에 λ‚΄μš©μœΌλ‘œ 어떀값이 λ“€μ–΄κ°€λ©΄ 쒋을지 ν•™μŠ΅ν•œλ‹€.

42:15

λ°˜μ‘ν˜•

'πŸ–₯ Computer Science > Computer Vision' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Computer Vision] Transform  (0) 2021.09.16
[Computer Vision] Filter - Part 2  (0) 2021.09.15
[Computer Vision] Histogram - Part 2  (0) 2021.09.09
[Computer Vision] Histogram - Part 1  (0) 2021.09.08
[Computer Vision] Color  (0) 2021.09.07