사전 학습을 이용한 이미지 노이즈 제거

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 사전 학습을 사용하여 왜곡된 이미지의 노이즈를 제거하는 방법을 배웁니다. 우선 온라인 DictionaryLearning 과 다양한 변환 방법을 사용하여 너구리 얼굴 이미지의 노이즈가 있는 조각을 재구성하는 효과를 비교하는 예제를 사용합니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

왜곡된 이미지 생성

첫 번째 단계는 왜곡된 이미지를 생성하는 것입니다. Scipy 데이터셋을 사용하여 너구리 얼굴 이미지를 로드합니다. 속도를 높이기 위해 이미지를 다운샘플링하고 이미지의 오른쪽 절반을 왜곡합니다.

왜곡된 이미지 표시

왜곡된 이미지를 표시하여 이미지에 미치는 왜곡의 효과를 확인합니다.

참조 패치 추출

이미지의 왼쪽 절반에서 모든 참조 패치를 추출합니다. Scikit-learn 의 extract_patches_2d 함수를 사용하여 패치를 추출합니다. 평균을 빼고 표준 편차로 나누어 데이터를 정규화합니다.

참조 패치로 사전 학습

이 단계에서는 참조 패치로부터 사전을 학습합니다. Scikit-learn 의 MiniBatchDictionaryLearning 을 사용하여 사전을 학습합니다. 추출된 패치로 사전을 학습시킵니다.

노이즈 패치 추출 및 사전 기반 재구성

이 단계에서는 왜곡된 이미지에서 노이즈 패치를 추출하고 사전을 사용하여 이를 재구성합니다. 직교 매칭 추구 (Orthogonal Matching Pursuit), 최소 각도 회귀 (Least-angle Regression), 임계값 (Thresholding) 등 네 가지 다른 변환 알고리즘을 사용하여 패치를 재구성합니다. 재구성된 이미지를 표시하고 원본 이미지와 비교합니다.

요약

이 실험에서는 사전 학습을 이용하여 왜곡된 이미지의 노이즈를 제거하는 방법을 배웠습니다. Scikit-learn 의 MiniBatchDictionaryLearning 을 사용하여 사전을 학습하고 노이즈 패치를 재구성했습니다. 또한 네 가지 다른 변환 알고리즘을 사용하여 패치를 재구성했습니다.