For Beginners

[영상 처리] DEHAZE를 진행해봅시다 - 1 본문

2021 이전 자료들/Multimedia

[영상 처리] DEHAZE를 진행해봅시다 - 1

.log 2020. 1. 8. 16:35
728x90

* 이 부분은 사실 검증되지 않았고, (아직 데이터를 내는 중입니다.)

내 머리와 구글로만 진행하는 것이므로,

교수님 및 연구실 사람들의 세미나를 통해서 2차 검증이 필요한 항목임을 밝힙니다.

따라서 함부로 따라 진행하실 분들은 석사 1년차-2년차가 되어가는 제 글 보다는

전문적인 다른 문헌들과 보다 검증이 된 박사 이상 급의 연구원분들이 진행한 내용을 참고해주시길 바랍니다.

 

먼저 오늘 진행할 내용은 오픈 소스 코드를 변경하여 네트워크에 들어갈 인풋 값을 바꾸어서 학습 모델을 변경하는 것입니다.

쉽게 설명하자면, 학습 데이터를 변경하는 일이 되겠군요.

 

아래 접은 글은 그냥 사설입니다. 읽으실 분만 읽으시길

더보기

뭐 이 글을 보고 다른 사람들이 따라할 수 있겠다는 생각도 드는데,

제가 더 먼저 논문 낼꺼니까 제 논문 인용하셔야 할 겁니다!ㅎㅎ

애초에 출처와 연구 윤리를 지키는 선량한 분들만 제 블로그를 읽으실 거라고 생각하기 때문에

큰 걱정은 없습니다^^

(저 또한 참고한 내용이면 참고 링크-가급적이면-를 달고, 아닌 경우에도 제 아이디어인지 아닌지를 달아놓습니다.)

먼저 제가 준비한 코드는 다음과 같습니다.

테스트로 진행한 사진은 이거입니다.

이 사진은 dehaze 논문 코드 중에

https://github.com/MayankSingal/PyTorch-Image-Dehazing/tree/master/test_images

 

MayankSingal/PyTorch-Image-Dehazing

PyTorch implementation of some single image dehazing networks. - MayankSingal/PyTorch-Image-Dehazing

github.com

여기서 test_images 폴더에 있는 친구를 데려왔습니다.

dehaze 논문에서 자주 등장하는 친구이지요.

이거는 다른 분의 코드를 제가 변형한 것인데,

HSI histogram 이라고 치면 stackoverflow 에 답변으로 달아놓은 코드를 이용하였습니다.

제가 테스트하는 영상의 RGB 최소값만을 담은 채널 필터입니다.

뭔가 신비해졌죠.

이거를 grayscale화 하는 게 맞는지는 모르겠는데,

저는 파이썬에서 RGB값을 분리한 이후에 가장 작은 값을 넣는 코드를 사용하였더니, 이렇게 나왔습니다.

height = image.shape[0]
	width = image.shape[1]
	min_channels = np.ones((height, width))
	for y in range(0, height):
		for x in range(0, width):
			min_channels[y,x] =min(image[y,x,0],image[y,x,1],image[y,x,2])
	print(min_channels)

코드는 그냥 제가 써둔 코드에서 복붙을 해서 띄어쓰기가 이상하게 될 수 있다는 점 참고해주세요.

이렇게 atmospheric light를 구해서 transmission map을 생성합니다.

그러면 이렇게 atmospheric light가 제거된 결과값을 얻을 수 있습니다.

printscreen으로 했더니 듀얼모니터라서 엄청 깨지네요.

대략 분위기만 육안으로 확인하였을 때도 아래쪽이 안개가 없는 영상에 가깝다는 것을 알 수 있습니다.

그러면 이제 이 안개가 없는 영상들로 학습 데이터를 만들어보겠습니다.

(성능이 좋을지 안좋을지는 가설로만 세워서 잘 모르겠습니다.)

 

다음 글은 여러 데이터들을 한 번에 영상 처리를 해서 안개있는거 -> 안개 없어진 거 로 바꾸는 방법을 써보겠습니다.

파일 읽는 것이 가능할지 모르겠습니다^^ 일단 해봐야죠

Comments