- 지난번에 올린 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 학습이야기 였습니다.
'수학적 영상처리' 카테고리의 다른 글
[OpenCV] 직선검출 함수의 파라미터를 마우스로 최적화하기 (0) | 2024.10.16 |
---|---|
그림에서 직선이 모두 몇개 일까요? (6) | 2024.10.11 |
[magick] 폴더속 이미지들 중 truncated 이미지만 찾아내는 imagemagick 명령어 (5) | 2024.09.26 |
torchaudio를 사용해 text로 오디오를 만든후 spectrogram을 그리기 (7) | 2024.09.23 |
[파이썬] Notch Filtering 으로 모아레 패턴 제거하기 (1) | 2024.09.12 |