수학적 영상처리

Sobel Filter를 데이타를 학습시켜서 만든다고?!

제갈티 2024. 9. 30. 08:10

- 지난번에 올린 New 이진화 기술에 이어 이번엔 Data-Driven으로 에지 필터를 학습시켜 보았습니다.

- 3x3 콘볼루션 필터의 커널 가중치를 랜덤하게 발생시킨 후 가중치를 SGD 로 조금씩 바꿔가면서 필터링한 결과와 입력된 이미지의 소벨필터 결과(Ground Truth)를 비교하여 로쓰값을 만들어 로쓰가 줄어드는 방향으로 가중치를 갱신하였습니다.

- 그렇게 epoch =5000 정도로 학습시켰더니..

이게 학습된 에지 필터의 결과 입니다.

 

요건 소벨 필터링 결과(참값)

 

필터릴용 입력 이미지

 

- 학습에 사용된 이미지는 70장 정도 였구요. Loss 계산용 이미지 비교함수는 POC(위상한정 상관)함수를 사용했지요.

- 그 외에도 커널의 가중치합이 0이 되도록 abs(sum(weights)) 로쓰도 추가했습니다.

loss = alpha * loss_poc + (1-alpha) * loss_zerosum

- 이 방식을 이용하면 Sobel 필터 같은 에지필터를 3x3이 아닌 5x5, 7x7..등 원하는 커널 사이즈로 가중치를 구할수 있겠네요.

게다가 학습시킨 이미지들의 성질에 더 부합되는 소벨필터 같은 에지필터의 생성도 가능할듯 합니다~

- 가령 제조업 이미지에 특화된 소벨필터 ..등등 말입니다. 데이터 셋만 좋으면 의외의 결과가 나올 수도 있습니다.

- 예를 들어서 내가 냥이 이미지 위에 손으로 대고 그린 나만의 에지이미지도 학습에 의해 만들어 낼수가 있는거죠. ​데이타만 많으면 요 ~ ^^

- 이런 비선형적이고 지극히 개인적인 에지 필터도 딥러닝은 만들어 낼수 가 있는 것입니다!

- 이상 딥러닝이 아닌 영상처리를 위한 Data-driven 학습이야기 였습니다.