컴퓨터 비전 3장 - Images

Coding_Holic·2021년 10월 22일
0

컴퓨터 비전

목록 보기
1/5
post-thumbnail

-> 잔상이 남게된다! discrete하지만 연속적인 영상을 만들어 낼 수 있게된다,resize? 그 방법 중 subsampling

  • subsampling
    -예를 들어 홀수번째 pixel만 뽑아내면 작아질 것이다!(discrete하니까)
    but 이 영상을 확대하면 손실이 일어나게 된다.
    그래서 filtering을 취해준다.

subsampling한 것 vs filtering 후 subsampling한 것

  • filtering
    -filtering하면 정보를 버리고, 정보를 더 없애게 된다. 하지만 더 자연스러워진다.(즉 효과를 취해준게된다)

이미지에서 위치를 계산하거나, 세기를 계산할 때, function f(x,y)를 통해 이미지를 다루게 된다. 이때 함수는 빛이 얼마나 도달했는가에 대한 값이고, 독립적이다. 하지만 이것도 완벽하게 mapping하는 것은 불가능하다.

(why?digital camera-> cell, cmos sensor ccd sensor, 공정상... 구조상 실제 인식하는 photodiode가 인식하고 실제 photosensitive area는 50%도 안된다.)

SNR (signal to noise ratio)

데이터(light)를 많이 모으면 sensor noise은 작아져서, 즉 snr은 커지게된다

snr은 크면 좋은거임!

빛을 많이 얻는 방법
1.bigger sensors -> sensor size가 클수록 좋다, 그래서 카메라 작을 수록 노이즈 크다!
2.Larger fill factor ->fill factor:태양전지 충전율
3.Minimize off time(shutters) -> 셔터측면에 꺼져있는 시간 최소화?
4.Long exposures(HDR) -> (노출 시간을 늘린다!)

hdr -> high dynamic range 빛의 밝기 범위 넓게!, 픽셀하나가 받아들일 수 있는 범위가 넓다

Cmos sensor vs CCD sensor

  • mosaic filter, fabrication 제작

ccd->제작과정 복잡하다 12단계-> large fill factor, image read out하기 어렵다, 더 비싸다, 하나의 셔터타임
(셔터 측면): 서터 필요하다, 데이터가 읽히지 않을때 노출 멈춘다

cmos->
제조단가가 낮으므로, 대형센서 제작에 유리, pixel에 대해서 임의로 접근한다. rolling shutter technique을 이용
Lower fill factor로 인해 ccd에 비해 snr이 낮다
buuuuuuut.... 대량 제작이 가능하므로, 많이쓰이고 기술이 발전한다 그래서 최근에는 ccd보다 snr이 좋다!!!!
(셔터측면): rolling shutter이기 때문에 항상 노출된다 새로운 artifacts를 불러일으킨다

sampling

analog에서 digital로 신호를 바꿀 때, 해야되는 처리과정이 있는데 그 중 하나가 sampling이다. + quantization
->연속적인 것을 discrete하게 만든다!
->원래 신호모양을 완전히 복원하기 위해서는 nyquist sampling frequency 를 따라야한다

얼마나 빼곡히 해야할까?

alias 문제 발생

  • 샘플링 했을 때 원래 신호와 다르게 해석되는 문제 <- sampling 간격에 따른 문제

=> nyquist rate 필요!

nyquist rate

입력 신호의 최고 주파수의 2배이상의 속도로 균일한 간격으로 표본화 하는 것!

'>=two samples per cycle'

신호는 sine wave의 합으로 표현가능하다=decompose(분해)

Fourier transform

any signal or image 를 sine and cosines의 weighted sum으로 decompose 가능하다

To avoid aliasing(nyquist rate이용)

sampling rate>= 2*max frequency

+low pass filtering(=antialias filter, blurring filter)
고주파수는 막고, 저주파수는 통과하도록 한다!<- cmos sensor에서 쓰임

quantization

양자화는 샘플링 한 아날로그 형태로 되어있는 신호나 정보를 디지털화하는 작업을 의미한다.
=>셀 수 있을 만큼의 간격으로 만들어서, 유의미한 정보만을 사용하는 것 적절한 level 설정
32.12313->32.1

back to image resizing

=> 최종적으로 앞에서 말한 antialiasing기법은 low pass filtering을 통해서 low frequency 만 남기도록 subsampling을 진행하여 resizing을 수행하면 sampling으로 생기는 alias는 없다고 볼 수 있다.
물론 정보는 잃어버리지만...=>quality 굿


F[x,y]-> discrete function, integer column/indice

f(x,y)-> continuous function, float

  • F[x,y]가 pixel의 중간 값을 준다
  • f(x,y)=F[x,y] if x,y == integer 의 조건에서..
    그림상에서 (x',y')=(-1/2,-1/2) + scale*(x+1/2,y+1/2) 이다

border은 어떻게 할까?

즉 boundary의 값이 없는 곳은 어떻게할까...
1. don't evaluate borders of G
2. pad F를 붙인다(padding)
-> 여러 option, zero,clamp(쭉 연결),mirror(거울 반사),wrap(일정한 기준 없나?)

cross-correlation filtering and convolution

참고:https://begamedeveloper.tistory.com/8

convolutiond은 cross-correlation filtering이 뒤집히지 않도록 수정!

mean filtering

말 그대로, 필터 값에 평균 취함!

gaussian filtering

가우시안 필터를 취한다

mean vs gaussian

mean filtering의 경우 일정한 격자무늬의 패턴이 생기게된다.
gaussian 은 smoothing!!

ex1: why does mean filtering look "boxy"?

ex2: filtering an impulse

-> flipping, result flips horizontally and vertically!
뒤집혀도 똑같으면 상관없다, symmetric하면 but asymmetric이면?

up-resizing

->image 크게

debayering

픽셀에서 부족한 rgb값을 어떻게 채울까? interpolate(보간)해야한다 -> called debayering

resize, resample -> how to interpolate?(어떻게 보충할까?)
nearest neighbor로 부터

Bilinear interpolation

-> filtering을 통해 값을 구하는 것과 같다.

2D interpolation filters

Bicubic interpolation

more better

  • 주변 pixel들에 대해 3rd degree polynomial surface 에 적합
  • convolution filter에 의해 구현가능

https://darkpgmr.tistory.com/117
https://eehoeskrap.tistory.com/99

high pass filter

highpass(F)=F-HxF (x:xor)
low pass filter로 구할 수 있음
저주파 성분을 차단시킨다. sharpening효과가 있다!
<흐려진 영상을 첨예화> 하는 효과

image gradient

The sobel operator

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=roboholic84&logNo=220482877717

profile
안녕하세용 개발에 미치고 싶은 초보 개발자입니다:)

0개의 댓글