개요
- 모바일 어플리케이션에서 안면인증을 위한 얼굴사진 촬영시 블러 현상이 간헐적으로 발생한다. 블러 이미지의 경우 페이크 혹은 오류 이미지로 판단하여 인증에 사용하지 않고 있다. 블러이미지 중 개선을 통해 인증이 가능하게 된다면 인증률이 올라가거나 전체 인증시간이 단축되는 효과를 거둘 수 있다. 이에 본 연구를 진행한다.
- 최신 논문을 통해 구현된 코드와 pretrained model을 통해서 안면 블러이미지를 개선시킨 결과를 확인하고 이미지 개선이 원활한 경우 최종적으로는 스코어를 측정하여 비교하도록 하여 성능이 향상되는지 측정한다.
- 시간관계상 pretrained model이나 코드가 존재하지 않는 모델들은 시험에서 배제하였다.
검증 이미지 준비
- blurring 수준이 낮은 것부터 높은 것까지 다양한 이미지들을 준비 (9장)
- 이미지 샘플은 다음과 같다.
- 가로 크기 640
Deblurring Model 최신 모델 이미지 개선 시험🧪
연구에 사용된 최신 Deblurring Model은 다음 사이트에서 참조하였다.
시험의 효율성을 위해 해당 사이트에서 가급적 2021년 기준 5년 이내 개발된 모델이면서 Code와 Pretrained Model이 포함된 모델에 대하여서만 검증하도록 한다.
성능 시험 환경💻
- CPU i7 32GB RAM
- RTX 3070 (GPU RAM20GB)
1. DeblurGAN-v2
일반이미지 | 블러 이미지 | 개선 이미지 (Inception) | 개선 이미지 (MobileNet) |
---|
1.jpg | 87 | 89 | 89 |
2.jpg | 69 | 75 | 66 |
3.jpg | 74 | 78 | 73 |
4.jpg | 76 | 80 | 76 |
5.jpg | 73 | 77 | 72 |
6.jpg | 80 | 81 | 80 |
7.jpg | 68 | 78 | 69 |
8.jpg | 73 | 74 | 74 |
9.jpg | 22 | 34 | 25 |
추론속도⏱️
- InceptionResnetV2 Backbone 사용시 ⇒ 0.20 sec.
- 실시간 처리가 중요한 서비스에서 사용하기에 속도가 아쉬우나, 블러이미지로 탐지된 경우에 한해서만 실행하도록 하면 기존 서비스에 성능저하 현상은 거의 없도록 할 수 있을 것이다.
- MobileNet Backbone 사용시 ⇒ 0.09 sec. (2배 빠름)
개선효과📈
- InceptionResnetV2 Backbone 사용시 ⇒ 전체적으로 스코어 증가
- 평균 4.8점 증가 (최저 : 1점, 최대 : 12점)
- MobileNet Backbone 사용시 ⇒ 스토어 변화가 거의 없거나 감소함
결론☝️
- 속도가 MobileNet에 비하여는 느리지만 성능이 월등하므로 InceptionResnetV2 사용이 불가피
- 최대 12점까지 상승하므로 고무적인 개선효과를 보임
- 아직 시험 이미지 모수가 부족하므로 추가 검증이 필요
2. MPRNet
일반이미지 | 블러 이미지 (normal <-> blur) | 개선 이미지 (normal <-> deblur) |
---|
1.jpg | 87 | 82 |
2.jpg | 69 | 62 |
3.jpg | 74 | 63 |
4.jpg | 76 | 71 |
5.jpg | 73 | 58 |
6.jpg | 80 | 69 |
7.jpg | 68 | 60 |
8.jpg | 73 | 64 |
9.jpg | 22 | 20 |
결론☝️
3. UMSN-Face-Deblurring
일반이미지 | 블러 이미지 (normal <-> blur) | 개선 이미지 (normal <-> deblur) |
---|
1.jpg | 87 | 84 |
2.jpg | 69 | 70 |
3.jpg | 74 | 67 |
4.jpg | 76 | 72 |
5.jpg | 73 | 66 |
6.jpg | 80 | 70 |
7.jpg | 68 | 59 |
8.jpg | 73 | 67 |
9.jpg | 22 | 49 |
결론☝️
4. Blur Kernel Space
시험결과
5. IFAN
시험결과
- 해상도가 초고화질이 아닌 경우 정상적인 이미지가 추출되지 않음 (아래 이미지는 640x640)
최종 결론
- 최신 Deblur 모델을 시험한 결과, 얼굴인식율의 향상 효과가 있는 것은 DeblurGANv2 모델이다.
- 더 많은 모델들을 검증 시도 했으나 pretrained model이 없거나 실행이 안되는 경우가 있어 배제하였다.
- 단순히 복원되는 것만으로는 부족하고, 어떻게 복원되는가가 중요한 것으로 보인다. 얼굴의 특징점이 손실되거나 다른 특징이 추가되는 부분이 생기면 오히려 스코어가 감소하는 듯 하다. 기존 특징을 최대한 유지하면서 특징을 더욱 명확하게 드러나는 방식으로 복원되어야 하므로 대부분의 경우 좋은 성능이 나오지 않았다.
- DeblurGANv2의 경우, 스코어가 저하되는 경우가 드물어 안정적으로 보인다. 단, 512x512 이상의 크기에 대해 스코어가 잘 나왔다. 112x112 이미지로 테스트해보았을 때는 스코어가 크게 저하되었다.
python pedict.py IMAGE_NAME.jpg
했는데 왜안될까요... 추가적인predict.py를 수정해야하나요?(우분투18입니다)