ο£Ώ Apple Lover Developer & Artist

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

πŸ–₯ Computer Science/Computer Vision

[Computer Vision] Filter - Part 2

singularis7 2021. 9. 15. 10:40
λ°˜μ‘ν˜•

Convolution Neural Network μ—μ„œ μ»¨λ³Όλ£¨μ…˜ ν•„ν„°λ₯Ό μ”Œμš°κΈ°μ „μ— μ˜μƒ 주변에 0값을 λ„£μ–΄ padding을 μ€€λ‹€. μ™œλƒν•˜λ©΄ ν•„ν„°λ₯Ό μ”ŒμšΈλ•Œ μ˜μƒ 밖을 λ‚˜κ°€λŠ” μ˜μ—­μ— λŒ€ν•΄μ„œλ„ μš°λ¦¬κ°€ μ›ν•˜λŠ” 값을 μ–»κΈ° μœ„ν•΄μ„œμ΄λ‹€.

μ»¨λ³Όλ£¨μ…˜ 연산이 진행될 λ•Œ μœˆλ„μš°λ₯Ό λͺ†μΉΈμ”© 움직일지λ₯Ό κ²°μ •ν•  수 있으며 stride라고 λΆ€λ₯Έλ‹€. 예λ₯Ό λ“€μ–΄ strideκ°€ 1인 κ²½μš°λŠ” μœˆλ„μš°λ₯Ό ν•œμΉΈμ”© μ΄λ™μ‹œν‚€λŠ” 것이닀. 

주어진 μ˜μƒμ— padding, stride, ν•„ν„°μ˜ 크기에 따라 μ˜μƒμ˜ 크기가 λ‹¬λΌμ§ˆ 수 μžˆλ‹€. μš°λ¦¬κ°€ μ˜μƒμ²˜λ¦¬λ₯Ό μˆ˜ν–‰ν•  λ•Œμ— μ˜μƒμ˜ 크기가 λ°”λ€Œμ§€ μ•Šλ„λ‘ ν•œλ‹€.

주어진 μ˜μƒμ— λŒ€ν•΄μ„œ μ»¨λ³Όλ£¨μ…˜μ„ μˆ˜ν–‰ν•œ ν›„μ—λŠ” poolingμ΄λΌλŠ” 과정을 κ±°μΉœλ‹€. 주어진 μ˜μƒμ—μ„œ νŠΉμ •ν•œ 값을 뽑아 차원을 μ€„μ΄κ²Œ λœλ‹€.

  • max pooling은 주어진 λ²”μœ„ λ‚΄μ—μ„œ μ΅œλŒ€κ°’μ„ λ½‘μ•„μ„œ 차원을 쀄인닀.
  • AVG pooling은 주어진 곡간 λ‚΄μ—μ„œ κ°’λ“€μ˜ ν‰κ· μœΌλ‘œ ν•˜λ‚˜μ˜ 값을 ν‘œν˜„ν•œλ‹€.

λ‹€μ‹œ μ˜μƒμ²˜λ¦¬λ‘œ λŒμ•„μ™€λ³΄μž! 주어진 μ˜μƒμ— ν•„ν„°λ₯Ό μ”Œμ›Œμ„œ λ‹€μ–‘ν•œ 효과λ₯Ό λ‚Ό 수 있으며 ν•„ν„°μ˜ λͺ¨μ–‘에 따라 효과λ₯Ό λ‹€λ₯΄κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.

  • λ°•μŠ€ ν•„ν„° : 주어진 값에 λŒ€ν•΄μ„œ μ „λΆ€ 1/9둜 λ‚˜λˆˆκ°’μ„ λ”ν•΄μ„œ κ³„μ‚°ν•˜κΈ° λ•Œλ¬Έμ— μ£Όλ³€ ν”½μ…€λ“€μ˜ ν‰κ· κ°’μœΌλ‘œ λ°”κΏ”μ£ΌλŠ” 것이닀. (μŠ€λ¬΄λ”©)
  • 샀프닝 ν•„ν„° : λ‚΄ 픽셀에 λŒ€ν•΄μ„œλŠ” 5λ°°(κ°•μ‘°), 4-λ°©ν–₯μ„±μ˜ 픽셀값은 λ§ˆμ΄λ„ˆμŠ€ μ—°μ‚°(μ€„μ—¬μ€Œ) 경계λ₯Ό 더 λšœλ ·ν•˜κ²Œ λ§Œλ“€μ–΄μ€€λ‹€. (샀프닝)
  • μˆ˜ν‰ 에지 : μ„Έλ‘œ λ°©ν–₯으둜 λ³€ν™”κ°€ μžˆλŠ” μ˜μ—­μ„ μΆ”μΆœν•œλ‹€.
  • 수직 에지 : κ°€λ‘œ λ°©ν–₯으둜 λ³€ν™”κ°€ μžˆλŠ” μ˜μ—­μ„ μΆ”μΆœν•œλ‹€.
  • λͺ¨μ…˜ ν•„ν„° : μ˜μƒμ„ μ›€μ§μž„μ΄ μžˆλŠ” 것 처럼 ν‘œν˜„μ‹œμΌœμ€€λ‹€.

μ˜μƒμ— λ°•μŠ€ ν•„ν„°λ₯Ό μ μš©ν–ˆμ„λ•Œ μ–΄λ–€ νš¨κ³Όκ°€ μžˆλŠ”μ§€ 연산과정을 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄μž!

λ°•μŠ€ ν•„ν„°λŠ” μ£Όλ³€κ°’λ“€μ˜ 평균을 κ³„μ‚°ν•˜λ‹ˆ 3x3의 경우 1/9, 5x5인 경우 1/25, 7x7인 경우 1/49둜 ν•„ν„°κ°€ μƒμ„±λœλ‹€.

주어진 μ˜μƒμ— gν•„ν„°λ₯Ό μ»¨λ³Όλ£¨μ…˜ μˆ˜ν–‰ν•  λ•Œ, gλ₯Ό λ’€μ§‘μ–΄μ„œ 주변값듀에 1/9λ₯Ό κ³±ν•˜μ—¬ λ”ν•œκ°’μ„ μƒˆλ‘œμš΄ ν”½μ…€κ°’μœΌλ‘œ κ²°μ •ν•œλ‹€. 주변값을 κ³ λ €ν•˜κΈ° λ•Œλ¬Έμ— 원본 μ˜μƒμ—μ„œ 픽셀값이 0μ΄μ—ˆμ„μ§€λΌλ„ μƒˆλ‘œμš΄ μ˜μƒμ—μ„œλŠ” 픽셀값이 μƒκΈ°λŠ” κ²½μš°κ°€ μ‘΄μž¬ν•œλ‹€.

λ°•μŠ€ν•„ν„°λ₯Ό λͺ¨λ‘ μ μš©ν•œ κ²°κ³Ό 값은 λ‹€μŒκ³Ό κ°™λ‹€.

기쑴의 μ˜μƒμ—μ„œλŠ” λͺ…μ•” 차이가 ν™•μ—°ν•˜κ²Œ λ°œμƒν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ ν•„ν„°κ°€ 적용된 μƒˆλ‘œμš΄ μ˜μƒμ€ μ£Όλ³€κ°’μ˜ 평균을 κ³ λ €ν•˜κΈ° λ•Œλ¬Έμ— μ˜μƒμ΄ smoothν•˜κ²Œ λ³€ν™˜μ‹œμΌœμ£ΌλŠ” νš¨κ³Όκ°€ μžˆλ‹€.

λͺ¨μžμ΄ν¬ μ²˜λ¦¬ν•˜λŠ” 방법 쀑 ν•˜λ‚˜λ‘œ λ°•μŠ€ ν•„ν„°κ°€ μ‚¬μš©λ˜κΈ°λ„ ν•œλ‹€.

λ‹€λ₯Έ ν•„ν„° νš¨κ³Όλ„ μ‚΄νŽ΄λ³΄μž!

μœ„ ν•„ν„°μ˜ 경우 μžμ‹ μ˜ 픽셀값을 κ·ΈλŒ€λ‘œ κ°€μ Έμ˜€κΈ° λ•Œλ¬Έμ— μ•„λ¬΄λŸ° λ³€ν™”κ°€ μ—†κ²Œ λœλ‹€.

μœ„ ν•„ν„°μ˜ 경우 원본 이미지λ₯Ό μ™Όμͺ½μœΌλ‘œ 평행이동 μ‹œν‚€λŠ” κΈ°λŠ₯을 μˆ˜ν–‰ν•œλ‹€. ν˜„μž¬ 픽셀값을 κ²°μ •ν•˜κΈ° μœ„ν•΄ ν•œ ν”½μ…€ μ˜†μ˜ 값을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

λ‚΄κ°€ κ°–κ³  μžˆλŠ” κ°’μ—μ„œ 평균을 λΉΌλ©΄ ν˜„μž¬ 픽셀값이 ν‰κ· μœΌλ‘œλΆ€ν„° μ–Όλ§ŒνΌ λ³€ν™”ν•˜μ˜€λŠ”μ§€ μ•Œ 수 μžˆλ‹€. ν˜„μž¬ 픽셀은 κ°•μ‘°ν•˜κ³  주변값듀은 더 λͺ…암값을 μ€„μ—¬μ„œ ν˜„μž¬κ°’κ³Ό μ£Όλ³€κ°’μ˜ λͺ…μ•”κ°’ 차이λ₯Ό ν‚€μš°κ²Œ λœλ‹€. κ²°κ³Ό μ΄λ―Έμ§€λŠ” 샀프닝 필터와 λ™μΌν•œ κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 

κ°€λ‘œ ν˜Ήμ€ μ„Έλ‘œ λ°©ν–₯으둜 λͺ…μ•” 차이가 큰 경우λ₯Ό λ½‘μ•„λ΄„μœΌλ‘œμ¨ 'Edge'λ₯Ό μΆ”μΆœν•  수 μžˆλ‹€.

λ¦¬λ‹ˆμ–΄ν•œ ν•„ν„°λŠ” μ„ ν˜•μ μΈ νŠΉμ„±μ„ μœ μ§€ν•  수 μžˆλ‹€. 

μ˜μƒμ„ ν•©μ³μ„œ ν•œκΊΌλ²ˆμ— 효과λ₯Ό μ μš©ν•˜λ˜κ°€ λ‚˜λˆ μ„œ λ”°λ‘œ 효과λ₯Ό μ μš©ν•œ 후에 효과λ₯Ό μ μš©ν•˜λ˜μ§€ 같은 κ²°κ³Όλ₯Ό 보인닀.

Shift νš¨κ³Όλ„ μˆœμ„œκ°€ λ°”λ€Œμ–΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό 보인닀,

ν•„ν„°λ₯Ό μ‚¬μš©ν•˜λŠ” μˆœμ„œκ°€ λ°”λ€Œμ–΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό λ‚Έλ‹€.

뢄배법칙, μƒμˆ˜λ°° λͺ¨λ‘ λ™μΌν•˜κ²Œ μ„ ν˜•μ  νŠΉμ„±μ„ λ”°λ₯Έλ‹€.

λ‹€μŒμ€ μ’€ μ€‘μš”ν•˜λ‹€! κ°€μš°μ‹œμ•ˆ ν•„ν„°!!!

λ°•μŠ€ν•„ν„°μ—μ„œ 쒀더 ν™•μž₯λ˜μ–΄μžˆλŠ” κ°œλ…μ΄λ‹€. 즉, μŠ€λ¬΄λ”© 효과λ₯Ό κ΅¬ν˜„ν•˜κΈ°μœ„ν•΄ 많이 μ‚¬μš©λœλ‹€. 예λ₯Όλ“€μ–΄ 5x5 크기 ν•„ν„°λ₯Ό μ„€μ •ν•œλ‹€. 내뢀에 값은 μœ„μ™€ 같은 뢄포λ₯Ό κ°–κ³  μžˆμ–΄μ„œ μ€‘μ‹¬μœΌλ‘œλΆ€ν„° λ©€μ–΄μ§ˆ 수둝 픽셀값이 μž‘μ•„μ§€λŠ” νŠΉμ„±μ„ κ°–κ³  μžˆλ‹€.

이전 λ°•μŠ€ ν•„ν„°λ₯Ό μ‚¬μš©ν•  λ•Œμ—λŠ” 좜λ ₯ μ˜μƒμ— 격자 λ¬΄λŠ¬κ°€ λ°œμƒν•˜λŠ” 단점이 μžˆμ—ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ°€μš°μ‹œμ•ˆ ν•„ν„°λŠ” κ²©μžλ¬΄λŠ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠμœΌλ©° λΈ”λŸ¬ 효과λ₯Ό μ μš©ν•΄μ€„ 수 μžˆλ‹€.

κ°€μš°μ‹œμ•ˆ ν•„ν„°λŠ” μ£Όλ³€μ˜ νŠ€λŠ” 값듀을 μ •λ¦¬ν•΄μ„œ μ˜μƒμ„ μ’€ 더 λΆ€λ“œλŸ½κ²Œ λ§Œλ“€μ–΄μ€€λ‹€.

2차원 κ°€μš°μ‹œμ•ˆ 필터이기 λ•Œλ¬Έμ— 2개의 1차원 κ°€μš°μ‹œμ•ˆ ν•„ν„°λ‘œ λ‚˜λˆ„μ–΄μ„œ 생각할 수 μžˆλ‹€

μ§€μˆ˜ ν•¨μˆ˜μ΄κΈ° λ•Œλ¬Έμ— 두 1차원 κ°€μš°μ‹œμ•ˆ ν•¨μˆ˜λ‘œ 뢄리해낼 수 있으며 xμΆ•μ—μ„œ λ¨Όμ € κ°€μš°μ‹œμ•ˆ 효과λ₯Ό μ μš©ν•œ 뒀에 y좩에 λŒ€ν•˜μ—¬ κ°€μš°μ‹œμ•ˆμ„ μ μš©ν•΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό 보인닀.

2차원 ν•„ν„°λ₯Ό ν•œλ²ˆμ— μ”Œμš°λ©΄ μ²˜λ¦¬μ‹œκ°„μ΄ 였래걸리기 λ•Œλ¬Έμ— 이와 같은 λΆ„ν•  방법을 μ‚¬μš©ν•˜μ—¬ κ°€μš°μ‹œμ•ˆ μŠ€λ¬΄λ”© 효과λ₯Ό κ΅¬ν˜„ν•œλ‹€.

μœ„μ—μ„œ μ•Œμ•„λ³Έ ν•„ν„°λŠ” λͺ¨λ‘ μ„ ν˜•μ—°μ‚°μ΄μ—ˆμ§€λ§Œ λΉ„μ„ ν˜• 연산도 μ‘΄μž¬ν•œλ‹€.

λ©”λ””μ•ˆ ν•„ν„°κ°€ λΉ„μ„ ν˜• μ—°μ‚°μ˜ μ˜ˆμ‹œμ΄λ‹€. λ©”λ””μ•ˆμ€ μ€‘μœ„κ°’μ„ μ˜λ―Έν•œλ‹€. λ©”λ””μ•ˆ ν•„ν„°λŠ” 주어진 μ˜μƒλ“€μ„ 3x3으둜 μ›€μ§μ—¬λ‚˜κ°€λ©΄μ„œ 9개 값을 일렬둜 μ •λ ¬ν•œ ν›„ 쀑앙값을 λ½‘μ•„μ†Œ 픽셀값을 κ²°μ •ν•œλ‹€. 

λ©”λ””μ•ˆ ν•„ν„°μ˜ μž₯점은 주어진 μ˜μƒμ—μ„œ 작음(salt(흰색) and pepper(검은색) noise(작음))이 λ“€μ–΄λ‚  λ•Œ ν•„ν„° λ‚΄μ—μ„œ 0μ΄λ‚˜ 255κ°’ λŒ€μ‹ μ— μ€‘μ•™κ°’μœΌλ‘œ μ±„μ›Œμ§€κΈ° λ•Œλ¬Έμ— noise λ₯Ό μž‘μ„ 수 μžˆλ‹€

λ°˜λŒ€λ‘œ κ°€μš°μ‹œμ•ˆ ν•„ν„°λŠ” 평균값을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— κ°€μš°μ‹œμ•ˆ ν•„ν„°λŠ” 큰 효과λ₯Ό λ³΄μ΄μ§€λŠ” λͺ»ν•œλ‹€. ν•„ν„°μ˜ νŠΉμ„±μ— 따라 μ–΄λŠ λ•Œμ— μ–΄λ–€ ν•„ν„°λ₯Ό μ‚¬μš©ν•΄μ•Όν• μ§€ ꡬ뢄할 수 μžˆμ–΄μ•Ό ν•œλ‹€.

λ°˜μ‘ν˜•

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

[Computer Vision] Morphology  (0) 2021.09.17
[Computer Vision] Transform  (0) 2021.09.16
[Computer Vision] Filter - Part 1  (0) 2021.09.14
[Computer Vision] Histogram - Part 2  (0) 2021.09.09
[Computer Vision] Histogram - Part 1  (0) 2021.09.08