boostcampaitech3 / final-project-level3-cv-17

[2022.05.16 ~ 2022.06.10] 🌤️미세먼지 없는 맑은 사진📷 - 부스트캠프 AI Tech 3기 최종 프로젝트
13 stars 3 forks source link

[Metric] Reference 및 Github 공유 #9

Open Dongwoo-Im opened 2 years ago

Dongwoo-Im commented 2 years ago

Background

Image Quality 평가에 주로 사용되는 것으로 보이는 Metric을 사용해보기 위함

Content

아직 돌려보진 않았지만 공유 목적으로 작성

  1. PSNR, SSIM, VIF, NIQE : https://github.com/aizvorski/video-quality
  2. SSIM, MS-SSIM : https://github.com/VainF/pytorch-msssim
  3. TMQI : https://github.com/dvolgyes/TMQI
  4. FSIM, FSIMc : https://github.com/mikhailiuk/pytorch-fsim
  5. 종합 패키지 (TMQI, FSIMc, FADE 없음) : https://github.com/chaofengc/IQA-PyTorch

제일 많은 metric을 제공하는 5번이 좋아보이네요. 다음은 5번에서 요구하는 환경인데 참고하셔요. image

Details

Reference

  1. Haziness Degree Evaluator: A Knowledge-Driven Approach for Haze Density Estimation https://www.mdpi.com/1424-8220/21/11/3896
  2. Single Image Haze Removal from Image Enhancement Perspective for Real-Time Vision-Based Systems https://www.mdpi.com/1424-8220/20/18/5170
Dongwoo-Im commented 2 years ago

논문에 등장하는 No-reference metric인 NIQE, BRISQUE, NIMA 점수를 각 Data 별로 확인해봤습니다. Metric이 높다고 해서 Dehazing이 잘 되었다고 말할 수는 없지만, 적어도 Hazy / GT 이미지를 비교했을 때 GT를 더 좋게 평가하는 것은 확인할 수 있었습니다.

Dataset Hazy / GT NIQE(mean) BRISQUE(mean) NIMA(mean)
BeDDE Hazy-208 3.5260 12.3602 4.5155
GT-23 3.2264 8.7503 4.7943
MRFID Hazy-800 4.4131 27.3835 3.6742
GT-200 3.8146 27.0171 4.3899
NH_HAZE Hazy-55 2.6302 11.6208 4.3549
GT-55 2.3255 15.8625 5.3036
O_HAZE Hazy-45 3.5666 17.9051 3.0988
GT-45 2.9128 16.0417 4.7248
RESIDE_SOTS_OUT Hazy-500 2.8590 13.9426 4.3984
GT-500 2.7478 13.3347 4.9188
Crawling Hazy-21 5.5614 36.2983 3.5467
GT-20 4.0765 28.0238 4.2770

이번에는 MRFID dataset을 활용하여 hazy-density에 따른 metric을 비교해봤습니다. 전체적으로 hazy-density가 높아질수록 metric도 이 경향을 반영하는 것으로 파악됩니다. 다만 BRISQUE metric의 경우 완전히 선형적이지는 않은 것으로 보아, 그 중요도를 조금 낮게 생각해도 될 것 같습니다.

Dataset Hazy / GT NIQE(mean) BRISQUE(mean) NIMA(mean)
MRFID Hazy-800 4.4131 27.3835 3.6742
GT-200 3.8146 27.0171 4.3899
Hazy(1)-200 3.9805 26.5771 4.0757
Hazy(2)-200 4.1188 26.2194 3.8640
Hazy(3)-200 4.4585 27.1286 3.5524
Hazy(4)-200 5.0947 29.6089 3.2048
Dongwoo-Im commented 2 years ago

CLAHE.py 기본 parameter는 clip_limit & grid_size = (3, 16)입니다. clip_limit과 grid_size를 각각 바꿔보면서 metric을 계산해보았습니다만, 큰 차이는 없어보이네요.

흥미로운 점은 BRISQUE score의 경우 Hazy 이미지가 더 좋은 값을 갖습니다. 이전 실험과 종합해보면 BRISQUE는 이미지의 전반적인 balance를 평가하는 metric인 것으로 생각됩니다.

  1. Clip_limit 변경
Dataset Hazy / GT_CLAHE clip_limit & grid_size NIQE(mean) BRISQUE(mean) NIMA(mean)
RESIDE_RTTS Hazy-4322 4.5515 30.6603 4.4456
GT_CLAHE-4322 2 & 16 3.9563 30.6674 4.8423
GT_CLAHE-4322 3 & 16 3.9287 32.3417 5.0415
GT_CLAHE-4322 4 & 16 3.9340 33.7649 5.1875
  1. Grid_size 변경
Dataset Hazy / GT clip_limit & grid_size NIQE(mean) BRISQUE(mean) NIMA(mean)
RESIDE_RTTS Hazy-4322 4.5515 30.6603 4.4456
GT_CLAHE-4322 3 & 8 3.9491 32.2447 5.0105
GT_CLAHE-4322 3 & 16 3.9287 32.3417 5.0415
GT_CLAHE-4322 3 & 32 3.9063 32.3889 5.0679
Dongwoo-Im commented 2 years ago

data 구성을 바꿔보는 여러 실험을 진행해보면서 gt_clahe의 quality가 중요할 것으로 생각헀습니다. 그리고 CLAHE.py로 만든 gt 이미지 중 하늘에 검은 얼룩(이전에 제가 집중하고 있다고 말한 현상)이 있는 경우를 적지 않게 볼 수 있는데, 이 현상의 개선에도 효과가 있을 것으로 기대하고 있습니다.

Dataset Hazy / GT clip_limit & grid_size NIQE(mean) BRISQUE(mean) NIMA(mean)
RESIDE_RTTS Hazy-4322 4.5515 30.6603 4.4456
GT_CLAHE-4322 2 & 16 3.9563 30.6674 4.8423
GT_CLAHE-4322 2 & 32 3.9323 30.5675 4.8657
GT_CLAHE-4322 2 & 64 3.8944 30.3324 4.9018
GT_CLAHE-4322 2 & 128 3.9079 30.4523 4.9432
Dataset Hazy / GT clip_limit & grid_size NIQE(mean) BRISQUE(mean) NIMA(mean)
RESIDE_RTTS Hazy-4322 4.5515 30.6603 4.4456
GT_CLAHE-4322 1 & 64 3.9983 28.6047 4.6587
GT_CLAHE-4322 2 & 64 3.8944 30.3324 4.9018
GT_CLAHE-4322 3 & 64 3.8726 32.2374 5.1055

Grid_size=64이며 Clip_limit 별로 이미지를 첨부하겠습니다. 전체적인 balance를 고려해서 1 또는 2를 사용할 것 같습니다. hazy | clip_limit=1 | clip_limit=2 | clip_limit=3 image image

Dongwoo-Im commented 2 years ago

아래 순서대로 실행 시간입니다. PSD PSNR PSD SSIM pyiqa PSNR pyiqa SSIM 저는 시간이나 신뢰도 측면에서 pyiqa거로 쓰려고 합니다! image