BookmarkSubscribeRSS Feed

[SAS 프로그래밍] SVD를 이용한 이미지 노이즈 제거(denoising an image)

Started ‎06-18-2020 by
Modified ‎06-18-2020 by
Views 376

 

 안녕하세요이번시간에는 SVD를 사용하여 이미지의 노이즈를 제거하는 법에 대해 알아보겠습니다저번에 다뤘던 SVD를 이용한 이미지 압축의 원리와 비슷한 방법으로 특이값이 줄어들수록즉 낮은 순위로 근사할수록 이미지가 가지고 있는 가장 큰 특징만 남는 점을 이용하는 것입니다.

 

 

 

노이즈를 제거하기 위한 과정을 보여주기 위해 숫자정보를 담고 있는 이미지파일을 만들고

의도적으로 노이즈를 만들어 보겠습니다.

 

ChTEEIACBhwn8C_Q87Jn2JhdRAAAAAElFTkSuQmCC.jpg

 

9k_.jpg

‘1213’이라는 숫자정보를 CALL HEATMAPCONT문을 이용하여 이미지로 만든 결과입니다.

 

 

 

 

9pneZwMMjwRqrvWvkX4vs2hUXC6dAFvfZNecKxG29S3I4hBR6naGJdyHWtpseUeNoZ3rSduCkYtnNhVtSuBpqnF6bGFzYQbE_9_J.jpg

 

Z.jpg

노이즈를 만들기 전, 노이즈가 제거 되는 과정의 다양한 예를 보기 위해 원본 이미지를 4개를 붙여보았습니다이렇게 만든 이미지에 IML RANDFUN함수를 이용하여 평균=0, 표준편차=0.25의 분포를 따르는 임의의 숫자를 더하여 의도적으로 노이즈를 입혀보았습니다.

기존에 비밀번호를 모르는 상태라면 노이즈를 입힌 이미지로 비밀번호를 파악하기가 쉽지 않아보입니다.

 

 

 

 

이런 상태의 노이즈 이미지에 SVD를 사용하여 노이즈를 줄여보겠습니다우선 CALL SVD문으로 특이값 분해를 한 뒤 특이값의 순서에 따라 값의 크기 변화를 그래프로 확인해보겠습니다.

 

dqh1DZjhT6tsHmWV5G0Je7m6vVRoscGCmf4Il7JmweyZ80VMdZ3LtZ5fFvUV1F1fxDEY3hTVJblYQCkYsRfVsKyRy3nlChHFzTKW.jpg

 

Z (1).jpg

두번째 특이값과 다섯번째 특이값에서 그래프가 꺾이는 지점이 발생하고 있습니다.

그래프가 꺾이는 지점을 기준으로 그지점까지의 각각의 특이값들이 이후의 특이값들보다 유의성있는 큰 값을 가지고 있다고 할 수 있습니다.

 

 

 

 

Rank=2에서 Rank=5까지의 낮은 순위 근사를 하여 노이즈를 제거하는 과정을 보이겠습니다.

 

PAU4AAEIQGA5AbR_OWIGgAAEIHA5AbT_8hTgAAQgAIHlBND65YgZAAIQgMDlBP4LBMRs_JXM5FIAAAAASUVORK5CYII_.jpg

 

Z (2).jpg

Rank=2

 

 

 

 

9k_ (1).jpg

Rank=3

 

 

 

 

2Q__.jpg

Rank=4

 

 

 

 

9k_ (2).jpg

Rank=5

 

 

 

낮은 순위 근사를 하며 이미지의 노이즈를 제거해보았습니다하지만 SVD를 이용한 낮은 순위 근사는 전체적인 특징을 남기는 것이기 때문에 순위가 낮아 질수록 노이즈 제거는 잘되지만 이미지를 식별하기 위한 정보의 손실도 동시에 야기합니다따라서 원본 이미지가 가지고 있는 유의한 정보는 유지하면서 식별이 가능 할 정도로 노이즈를 제거할 수 있는 순위를 정하는 것이 중요합니다.

 

 

이번에 사용한 데이터의 경우에는 Rank=4에서 가장 이상적으로 노이즈가 제거 된 것으로 판단됩니다.

좀더 확실한 비교를 위해 노이즈를 제거하기 전 이미지와 Rank=4로 낮은 순위 근사를 하여 노이즈를 제거한 이미지를 비교해보겠습니다.

 

Z (3).jpg

노이즈 이미지

 

 

 

 

Z (4).jpg

Rank=4 이미지

 

한눈에 보기에도 확실히 노이즈가 확실히 줄어들었고 동시에 원본 이미지가 가지고 있던 숫자정보 또한 상당부분 보존하고 있는 것을 확인하였습니다.

SVD의 특이값의 개수를 조절하는 낮은 순위 근사를 이용해서 원본이미지의 정보는 유지하면서 노이즈를 제거했습니다.

 

 

 

 

 

 

 

마치며

오늘은 저번시간에 이어 SVD의 낮은 순위 근사를 이용하여 이미지의 노이즈를 제거하는 방법에 대해 간략히 알아보았습니다.

 

 

 

 

 

Reference

 https://blogs.sas.com/content/iml/2017/08/30/svd-low-rank-approximation.html

Version history
Last update:
‎06-18-2020 02:53 AM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Labels
Article Tags