1. 서론
인간의 특성과 관련된 측정 항목을 나타내는 생체정보는 도난이나 분실의 염려가 없으므로 높은 신뢰성을 가진 보안 기술로서 큰 주목을 받고 있으며 홍채, 얼굴, 정맥, 지문 등이 있다. 그중 지문은 사람들의 신분을 인식하거나 본인인증에서 더 나아가 범죄 수사, 미아 찾기, AFIS(Automated Fingerprint Identification System) 등의 방면에서도 활약하고 있다 [1]. AFIS에서 지문의 특징점 추출 알고리즘을 정상적으로 적용해도 지문에 새로운 주름이 생긴 경우나 상처가 있는 경우 신원을 정확하게 파악하지 못하는 문제가 생긴다. 이러한 문제를 해결하는 방법은 지문 이미지의 질을 높이는 방법과 매칭 대상의 후보군을 줄여주는 전처리단계로 구분할 수 있다. AFIS에서는 입력된 지문 이미지를 사용해 신원을 판별하는 작업을 한다. 판별을 위한 작업으로는 입력한 지문의 특징과 비슷한 지문을 주민등록 데이터베이스에서 추려내는 후보군 추출을 진행한다. 후보군 추출을 진행한 후 실제 지문을 통해 신원을 파악하기 위해서는 추려진 후보군 중 가장 유사한 지문에 대한 정보를 지문 감정관들이 육안으로 확인하며 선별하는 작업을 수행한다. 2004년에는 신원 파악 의뢰를 받은 19,577건 중 8,460건으로 43.2%의 성공률을 보였지만, 2014년 19,632건 중 11,494건(58.5%)까지 성공률을 높였다[2]. 그러나 해당 작업은 현재까진 낮은 성공률을 보이므로 시스템의 개선이 필요한 상황이다. 따라서 AFIS의 후보군을 보다 세부적으로 좁혀 전처리를 진행한 지문을 지문 감정관들에게 제공한다면 기존의 성공률보다 좋은 결과를 기대할 수 있다.
지문에 상처나 새로운 주름이 생긴 경우, 사람의 신분을 인식하거나 본인 인증을 수행하는 단계에서 지문의 특징점이 다르게 나타나기 때문에 정확한 신분 인식과 본인 인증의 오류가 발생한다. 이러한 지문의 상처와 주름에 대한 전처리 알고리즘은 많은 연구가 진행되었지만, 지문 감정관들이 직접 상처나 주름이 생긴 경우를 판별하고 난 뒤에 처리 알고리즘을 사용하기 때문에 많은 시간과 비용이 소모될 수 있다.
따라서 본 논문에서는 상처나 새로운 주름의 여부를 판별하는 인공지능 소프트웨어를 만들어 지문 이미지를 활용해 신원의 판별을 기존보다 간결하게 진행할 수 있도록 돕는 연구를 진행하였다.
2. 관련연구
2.1 상처 지문의 기준
본 연구의 목적은 상처와 주름이 있는 지문 이미지의 판별이기 때문에, 지도학습을 위한 지문 데이터베이스 라벨링이 필요하므로, 상처와 주름이 있는 지문에 대한 기준을 세워 데이터베이스에 라벨링을 수행해야 한다. 우리는 다양한 연구 결과를 기반으로 상처와 주름에 대한 기준을 설정하였으며, 전문가의 소견을 통해 데이터 라벨링을 진행하였다.
Khan et al. 은 지문에 존재하는 흉터나 상처를 백그라운드 균질화, 이진 마스크 이미지 계산, 오리엔테이션 이미지 구성 및 보간을 통해 곡선 경로를 추적 후 흉터 부위를 채우는 전처리과정에 관해 설명한다 [3]. 그들은 지문 이미지에서 융선과 노이즈, 흉터를 기반으로 상처가 난 지문 이미지의 기준을 설명한다. Luo et al. 은 이미지 향상을 위해 bridge, breaks, blur, scar 등의 여러 가지 지문 전처리방법에 대해 설명하였으며, 상처가 난 지문의 기준을 손가락의 표피가 벗겨질 때 생긴 흉터 중 지역 내 융선이 깨지면서 생기는 문제를 지문에 상처가 난 기준으로 정의했다 [4]. 본 논문에서는 Khan과 Luo가 정의한 지문에 상처가 있는 기준을 기반으로 지문 데이터베이스의 라벨링을 진행했다.
2.2 지문과 딥러닝
CNN(Convolutional Neural Network)은 딥러닝에서 주로 영상 분류에 사용되며 평면화 과정을 공간의 유실 없이 진행할 수 있어서 효율적으로 높은 정확도를 도출해낼 수 있다. CNN은 데이터의 특징을 추출하는 합성곱 레이어(Convolution layer), 1차원 특징 맵(Feature map) 추출을 도와주는 풀링 레이어(Pooling layer), 결과를 도출하기 위한 전결합 레이어(Fully Connected layer)들의 조합으로 구성된다. 그림 1은 CNN의 구조를 설명한다.
(그림 1) CNN의 구조
(Figure 1) CNN structure
과거에는 컴퓨팅 파워의 부족으로 활용할 수 없었지만 최근 기술의 발전으로 성능이 향상되어 많은 연구가 진행되고 있으며, 이는 사람의 인식 방법보다 좋은 성능을 보인다. Yuan et al. 은 기존에 지문 위조 방지 기술에서 사용되는 FLD(Fingerprint Liveness Detection)를 개선하기 위해 DCNNISE(Deep Convolutional Neural Network with image Scale equalization)기반의 텍스쳐의 정보를 보호하면서 이미지의 해상도를 변경하지 않고 학습을 진행하는 새로운 프레임워크를 제안했다 [5]. Ouyang et al. 은 faster R-CNN을 기반으로 pose estimation을 통해 지문에 노이즈가 있거나 불완전할 때 더 높은 성공률을 보인다 설명했다[6]. 그 외에도 Yani el al. 은 저품질 지문의 특징점을 추출하고 이를 딥러닝 방법으로 학습해 손상된 지문을 분류해 지문인식의 성능 비교를 진행했다. 하지만 딥러닝 학습이나 손상된 지문 분류를 하려면, 지문에서 특징점을 추출을 필수로 수행해야 하는 문제점이 있다[7]. 본 논문에서는 각 사례를 통해 지문 학습에 필요한 지문 전처리 방법과 분류에 주로 사용되는 CNN 적용 방법을 참고해 연구를 진행했다 [8-9].
3. 딥러닝 기반 상처와 주름 분석
3.1 지문 데이터 전처리
딥러닝을 적용하기 위해서는 정답을 알고 있는 많은 지문 데이터 셋을 보유해야 한다. 하지만 지문은 가장 민감한 개인정보로 알려져 있으므로 지문을 수집하고 데이터베이스화를 수행하기에 어려움이 있다. 본 연구에서는 데이터의 문제를 해결하기 위해 데이터 공유 플랫폼 Kaggle에 연구용으로 공유되고 있는 Sokoto 오픈 데이터 셋의 아프리카 일반인 600명의 지문[10], 캄보디아 왕립대학교와의 연구협약을 통해 취득한 1,010명의 지문을 기반으로 데이터베이스를 구축했다. 이때 한 사람의 열 손가락에 대한 지문 이미지를 추출했으며 지문에 대한 다양한 정보를 데이터베이스화했다. 결과의 신뢰성을 위한 검증 데이터 셋의 구축을 위해 국내에서 개인정보 수집 및 이용 동의서를 받아 총 98명의 지문을 추출했다. 그림 2는 본 연구진이 구축한 지문 이미지 중 상처나 주름이 없는 지문 중 일부이다.
(그림 2) 수집한 지문 데이터 샘플
(Figure 2) Fingerprint data collection sample
지문의 이미지는 딥러닝 네트워크 학습에 사용하기 적절한 크기인 224*224픽셀 사이즈로 변환했다. 이후 상처나 주름이 있는 경우를 분석해 어노테이션 작업을 진행했다. 트레이닝 데이터셋과 테스트 데이터셋은 캄보디아의 데이터, Sokoto 데이터로 구성하였으며 비율을 8:2로 설정했다. 그림 3은 본 논문에서 진행한 이미지 전처리과 정을 설명한다.
(그림 3) 이미지 전처리 과정
(Figure 3) Image preprocessing process
본 논문에서는 지문에 상처나 주름이 있는 기준을 정해 받아온 지문 데이터 셋에서 상처나 주름이 있는 경우를 판별했다. 상처나 주름이 있는 경우는 대부분 지문에 특정한 패턴을 가진 모양이 나타났으며, 이를 분석한 결과 융선이 3개 이상 끊어진 경우를 상처나 주름이 있는 상황으로 기준을 세워 어노테이션 작업을 진행했다. 그림 4는 정상지문과 상처나 주름이 있는 지문, 잘못 찍힌 지문의 샘플이다.
(그림 4) 좌상:정상지문 우상:잘못 찍힌 지문 하단: 상처 지문
(Figure 4) Top left:Normal Top right:MissPrinted Bottom : Scar
그림4와 같이 3가지 클래스로 어노테이션 작업을 진행해 17,080개의 지문을 모두 라벨링을 진행한 결과 캄보디아 왕립대학교 데이터 중 총 10,100장 중 3,081장이 상처가 있는 경우, 408장이 잘못 찍힌 지문, 나머지 6,611장이 정상지문으로 판별했으며 Sokoto 오픈 데이터셋은 총 6,000장 중 1,896장이 상처가 있는 경우, 142장이 잘못 찍힌 지문, 나머지 3,962장이 정상지문으로 판별했다. 국내 980장의 데이터 중에서는 279장이 상처가 있는 경우, 나머지 701장의 정상지문으로 판별했다[11-13]. 다음 표1은 본 논문에서 모은 데이터베이스의 구분별 데이터 수다.
3.2 이미지 분류용 CNN(Convolutional Neural Network) 모델
본 장에서는 ILSVRC(ImageNet Large Scale Visual Recognition Competition)에서 뛰어난 성능을 보인 CNN모델을 기반으로 만들어진 AlexNet, Resnet50, VGG-16과 실시간 물체 검출에 좋은 성능을 보이는 YOLO v3의 구조를 설명한다 [14-18]. 본 논문에서는 각 CNN 모델별로 설명된 구조를 그대로 따르며 결과를 도출하는 Fully-Connected layer만을 결과를 2개의 클래스에 맞게 수정해 학습에 사용했다. 표 2는 본 논문에서 사용한 네트워크들의 구조다.
(표 2) 사용한 네트워크 모델들의 pipeline
(Table 2) Network models pipeline
본 논문에서는 가장 일반적인 구조를 가진 Classic CNN을 가장 먼저 학습해 지문에서 상처나 주름의 판별 여부를 먼저 확인했고, 이후 다른 CNN모델을 추가하면서 상처나 주름을 판별하는데 어떤 모델이 가장 좋은 성능을 보이는지 확인했다.
4. 실험
4.1 실험 환경
본 논문에서는 Python을 기반으로 Tensorflow와 Keras를 활용해 CNN모델을 기반으로 한 네트워크들을 구현했다. 표1에서 지문 데이터베이스의 경우 정상지문의 데이터가 상처나 주름이 있는 지문 데이터보다 2배 이상으로 많아 그림 4의 정상지문 데이터를 일부 제거해 상처나 주름이 있는 지문의 데이터 수와 같게 설정해 학습을 진행했다. 또한, 가장 성능이 좋은 네트워크를 찾아내기 위해 데이터 셋과 학습 환경을 동일하게 설정했다. 딥러닝 학습 환경은 Windows 10 pro 운영체제, Intel (R) Xeon (R) W-2155 CPU @ 3.30Ghz, 8GB RAM, NVIDIA Quadro P4000에서 학습을 진행했으며 모든 학습 데이터는 224*224의 크기를 가지며 학습률은 0.001로 설정했고 배치 사이즈를 16, Dropout을 0.5로 설정해 학습을 진행했으며 Epoch에 따른 결과의 차이를 통해 결과를 도출했다. 그림 5는 딥러닝 학습 시스템을 간략하게 설명한다.
(표 1) 지문의 종류별 데이터의 수
(Table 1) Number of data by type of fingerprint
(그림 5) 딥러닝 학습 시스템 구조
(Figure 5) Deep learning system structure
4.2 실험 결과
학습 데이터는 상처나 주름이 있는 지문 4,977장과 정상지문 4,977장을 합한 9,954장의 지문 데이터로 학습을 진행했으며 2,000장을 테스트 데이터로, 7,954장을 학습 데이터로 구성했으며 검증 데이터 셋으로 국내에서 채취한 지문 중 상처나 주름이 있는 지문 279장, 정상지문 279장을 구성해 사용했다. 표3은 각 구성한 데이터베이스를 기반으로 진행한 각 네트워크별 학습 결과를 Epoch별로 정리한 결과 테이블이다.
학습 결과 Classic CNN의 경우 200 Epoch가 넘어가면 예측율이 점차 떨어지는 모습을 보여 최고로 높은 수치가 60.01%로 도출되었고 AlexNet은 1,000 Epoch까지 순차적으로 예측률이 올라가 72.68%의 성능을 보였다. VGG-16에서는 예측률이 현저히 떨어지며 정상지문을 상처나 주름이 있는 경우로 판별하는 경우가 많아 상처를 구별해내지 못했으며 ResNet50과 Yolo v3의 경우 예측률이 점차 올라가는 모습을 보이며 Yolo v3는 80.95%, ResNet50은 81.51%의 가장 높은 결과를 보이며 상처나 주름이 있는 경우와 정상지문의 경우를 판별했다.
(표 3) 사용한 CNN모델의 Epoch별 결과
(Table 3) Epoch Results by CNN Models
5. 결론
본 논문은 딥러닝 중 CNN모델을 기반으로 지문 데이터에서 상처나 주름이 있는 경우의 기준을 설정하고 CNN모델이 지문 데이터에서 상처나 주름의 판별 여부의 가능성을 연구했다. CNN모델을 기반으로 한 신뢰성 있는 다양한 네트워크 환경에서 실험을 진행했으며 가장 낮은 예측률로 VGG-16이 53.50%의 결과를, 가장 높은 예측률로 ResNet50이 81.51%의 결과를 도출했으며 CNN모델로 지문 데이터에서 상처나 주름의 여부를 구분할 수 있었다. 향후 더 고도화된 CNN모델로 학습을 진행해 예측률을 더 높이는 방안을 연구하고 상처나 주름 외에도 다른 특징들의 판별 가능 여부에 관한 연구를 진행할 예정이다.
References
- Komarinski and Peter, "Automated fingerprint identification system (AFIS)" Elsevier, 2005.
- http://www.joongboo.com/news/articleView.html?idxno=1076318
- Khan, M. A., Khan, T. M., Balley, D. G. and Kong Y, "A spatial domain scar removal strategy for fingerprint image enhancement", Pattern Recognition, Vol. 60, pp. 258-274, 2016. https://doi.org/10.1016/j.patcog.2016.05.015
- Luo X., and Tiam, J., "Knowledge Based Fingerprint Image Enhancement", Proceedings 15th International Conference on Pattern Recognition. ICPR-2000, vol. 4, pp. 783-786, 2000. https://doi.org/10.1109/ICPR.2000.903034
- Yuan, C., Xia, Z., Jiang, L., Cao, Y., Wu, Q. J. and Sun, X., "Fingerprint liveness detection using an improved CNN with image scale equalization", IEEE Access, Vol. 7, pp. 26953-26966, 2019. https://doi.org/10.1109/ACCESS.2019.2901235
- Ouyang, J., Feng, J., Lu, J., Guo, Z. and Zhou, J., "Fingerprint pose estimation based on faster R-CNN", IEEE International Joint Conference on Biometrics (IJCB), pp. 268-276, 2017. https://doi.org/10.1109/BTAS.2017.8272707
- Yani Wang, Zhendong Wu, Jianwu Zhang, "Damaged fingerprint classification by Deep Learning with fuzzy feature points", IEEE(CISP-BMEI), pp. 280-285, 2016. https://doi.org/10.1109/CISP-BMEI.2016.7852722
- Nokwon Jeong, SoosunCho, "Instagram image classification with Deep Learning", Journal of Internet Computing and Services, Vol. 15, No. 5, pp. 61-67, 2017. https://doi.org/10.7472/jksii.2017.18.5.61
- Myunggeun Ji, Junchul Chun, Namgi Kim, "An Improved Image Classification Using Batch Normalization and CNN", Journal of Internet Computing and Services, Vol. 19, No. 3, pp. 35-42, 2018. https://doi.org/10.7472/jksii.2018.19.3.35
- Shehu, Y. I., Ruiz-Garcia, A., Palade, V. and James, A., "Sokoto coventry fingerprint dataset", arXiv preprint arXiv:1807.10609, 2018. https://arxiv.org/abs/1807.10609
- Daniel Michelsanti, Andreea-Daniela Ene, Yanis Guichi, Rares Stef, Kamal Nasrollahi, Thomas B. Moeslund, "Fast Fingerprint Classification with Deep Neural Networks", VISIGRAPP(5: VISAPP), pp.202-209, 2017 https://doi.org/10.5220/0006116502020209
- P. Gnanasivam, R. Vijayarajan, "Gender classification from fingerprint ridge count and fingertip size using optimal score assignment", Complex & Intelligent Systems, pp.343-352, 2019. https://doi.org/10.1007/s40747-019-0099-y
- Rodrigo Frassetto Nogueira, Roberto de Alencar Lotufo, Rubens Campos Machado, "Fingerprint Liveness Detection Using Convolutional Neural Networks", IEEE, Vol.11, No.6, pp.1206-1213, 2016. https://doi.org/10.1109/TIFS.2016.2520880
- Krizhevsky, A., Sutskever, I. and Hinton, G. E., "Imagenet classification with deep convolutional neural networks", Advances in Neural Information Processing Systems, pp. 1097-1105, 2012. https://doi.org/10.1145/3065386
- He, K., Zhang, X., Ren, S. and Sun, J., "Deep residual learning for image recognition", Proceedings of the IEEE Conference on Computer Vision and Pattern recognition, pp. 770-778, 2016. https://doi.org/10.1109/CVPR.2016.90
- Simonyan, K. and Zisserman, A., "Very deep convolutional networks for large-scale image recognition", International Conference on Learning Representations, 2014. https://arxiv.org/abs/1409.1556
- Redmon, J. and Farhadi, A., "Yolov3: An incremental improvement", CoRR, abs/1804.02767, 2018. http://arxiv.org/abs/1804.02767
- Mu, R. and Zeng, X., "A Review of Deep Learning Research", TIIS, Vol. 13, No. 4, pp. 1738-1764, 2019 https://doi.org/10.3837/tiis.2019.04.001