일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Facial expression recognition
- Homomorphic Filter
- preprocessing
- Machine Vision
- Raspberry Pi
- VGGnet
- ARM Processor
- Embedded System
- Python
- I.MX6Q
- tf.saver()
- tf.train.string_input_producer()
- porting
- Machine learning
- cross compile
- IOT
- OpenCV
- tf.train.match_filenames_once()
- CNN
- deep-learning
- TensorFlow
- Data Load
- Today
- Total
Austin's_Lab
[Image processing] Homomorphic Filter 구현 in python 본문
[Image processing] Homomorphic Filter 구현 in python
Ausome_(Austin_is_Awesome) 2017. 7. 10. 21:35딥러닝을 이용해 병충해를 검출하는 과제를 하면서 직면한 문제 중 하나가 빛이었다. 이미지에 따라 빛이 노출되는 방향이나 세기 정도가 제각기 너무 달라서 이미지에 노출되는 빛을 normalize해야할 필요성을 느꼈다. 그에 관련해서 쓴 논문이 있는데 거기서 사용한 방법 중 하나가 Homomorphic filter이다. 이 필터는 이미지의 조명을 제거해주는 역할을 한다.
간단하게 설명하자면, 하나의 디지털 이미지는 illumination element와 reflectance element의 곱으로 표현할 수 있다. 이 중 illumination element는 이미지에 노출된 조명을 나타내고(low frequency), reflectance element는 이미지에 존재하는 object들의 edge를 나타낸다(high frequency). 그렇다면 우리는 이미지에 log를 취함으로써 곱셈을 덧셈연산으로 나눌 수가 있다. 여기에 HPF(high pass filter)를 씌우고 다시 exp 연산을 통해 log를 지워주면 조명이 제거된 이미지를 얻을 수 있다. high pass filtering은 이미지를 FFT를 수행해 frequency domain으로 가져가서 수행한 뒤 다시 iFFT를 수행해 이미지 도메인으로 넘어오도록 한다.
http://gromit2.blogspot.kr/2016/08/homomorphic-filtering.html 이 블로그에서 많이 도움을 받았다.
여기서 필요한 부분만 가져다 컬러이미지에 적용할 수 있도록 고쳐서 썼다.
결과적으로 아래 사진처럼 심하게 반사된 빛을 어느정도 감소시킨 것을 볼 수 있다. gamma값을 조절함으로써 본인의 application에 맞게 반사광을 제거할 수 있다.