특성화사업참가결과보고서 작성일 2017 12.22 학과전자공학과 참가활동명 EATED 30 프로그램지도교수최욱 연구주제명 Machine Learning 을이용한얼굴학습 학번 201301165 성명조원 I. OBJECTIVES 사람들은새로운사람들을보고인식을하는데걸리는시간은 1초채되지않다고합니다. 뿐만아니라사람들의얼굴을인식하는인식률은무려 97.5% 정도의매우높은정확도를가지고있습니다. 게다가기존의알고있는사람의얼굴뿐만아니라 2명의새로운사람의얼굴을보여주더라도두사람이같은사람인지다른사람인지빠르고쉽게구별을할수있습니다. 하지만사람들은빠르고쉽게구별할수있는얼굴인식을과연기계는어떠한방법으로학습을하고구별을하며더나아가예측을하는지에대해많은궁금증이있었습니다. [ 그림1. Deep Face 의얼굴학습과정 ] ( 출처 : DeepFace: Closing the Gap to Human-Level Performance in Face Verification ) 현재이분야에대해매우뛰어난기술을가지고있는 Facebook의 Deep Face 와 google의 Face Net 가있습니다. Deep Face는인식률이 97.25% 이며 Face Net은인식률이무려 99.96% 가나왔습니다. 이처럼인간보다더높은인식률을가지고있는여러기술들이있지만이분야에대해연구를진행한이유는이번연구를하면서평소공부해
보고싶었던 Deep Learning과 OpenCV를이용한이미지처리과정에대해공부를해볼수있으며더나아가 Deep Learning기술을이용하여논문을작성하는데많은도움을받을수있으며아직배우는단계에있는저에게는기존의연구를따라해보는것만으로도큰발전이있다고생각했습니다. 그래서이번 DSP스마트디바이스인재육성사업단에서주최하는 EATED 3.0 프로그램을통해기계가사람을찾고학습하는과정에대해연구를진행하였습니다. II. TECHNICAL APPROACH 사람이새로운사람을보고인식을하는과정에는여러단계를지난다. 첫번째로는사람의얼굴의눈, 코, 입등얼굴을분석을합니다. 두번째로머릿속에기억된사람하고비교를합니다. 이러한두단계는매우빠르게인식되며매우정확합니다. [ 그림 2. 기계의얼굴인식단계 ] 기계가이미지를인식하는과정도사람과매우비슷하다. 첫번째로이미지에서사람의얼굴을찾는다. 두번째로는사람의얼굴을컴퓨터가학습을하기쉽도록회전이나축소, 확대등전처리과정을거친다. 세번째로는 Deep Learning기술중하나인 Convolution Neural Network(CNN) 구조를이용하여전처리된이미지를학습을합니다. 마지막으로새로운이미지를전처리과정을거친후입력을하면기존학습된인물중가장비슷한인물을예측합니다. 사람은얼굴을학습하는과정이매우빠르지만기계는 CPU의한계및연산과정이많기때문에전처리뿐만아니라학습하는데시간이많이걸린다. III. TECHNICAL ACCOMPLISHMENTS 1. 개발환경구축 [ 그림 3. 윈도우 cmd 창에서 spyder 실행방법 ]
[ 그림 4. spyder 의실행모습 ] 연구를진행하기위해 Anaconda 라는프로그램을사용했습니다. 그리고 Anaconda 환경에 OpenCV 와 Dlib 을설치를했고 Anaconda 의내부프로그램인 Spyder 를이용하여연구를 진행했습니다. 2. 얼굴인식 [ 그림 5. 이미지에서얼굴영역만추출하는과정 ] [ 그림 6. 얼굴추출코드 ]
이미지에서얼굴을추출하는과정을 Open Source 중하나인 OpenCV 를이용하였습니다. OpenCV 를이용하면매우복잡한처리과정을쉽게사용할수있으며매우정확합니다. 3. 전처리 3-1 Land Mark [ 그림 7. Land Mark 의포인트추출 ] ( 출처 :https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/) [ 그림 8. Dlib 을이미지에적용 ] Open Source 중하나인 Dlib 을이용하여추출된얼굴에서눈, 코, 입등특징들을 68 개의 Point 로검출을한다.
3-2 Homography Transformation [ 그림9. Homography의개념 ] Homography Transformation이란 3차원에서 3D물체를각각다른 2차원평면에투영 ( 정사영 ) 시킬때이두개의 2D이미지는일정한 Homography를갖는다. 얼굴인식단계에서이러한과정이필요한이유는 [3-1] 에서얼굴을추출하는과정에서정면을보고있는얼굴만추출하는것이아니라매우다양한방향의얼굴을추출하기때문에일정한방향으로 Transform이필요하다. [ 그림 10. Homography 를이미지에적용 ]
[ 그림 11. Homography 코드 ] 그림 9를보면입꼬리가올라가는등다소찌그러진결과를볼수있지만이러한문제는 Land Mark을이용하여 Transform을하기때문에 Point가정확한경계점을찾지못하고사람마다눈, 코, 입등의비율이다르지만일정한동양인의비율로 Transform을했기때문에약간의오차가발생했다. 하지만대체로눈, 코, 입그리고턱선이중앙으로오는것을확인할수있다. 4. 학습 4-1 Layer 의과정 [ 그림 12. 한개의 Layer 의과정 ] Deep Learning에서여러개의 Layer를지나는데한 Layer는 Filter-ReLU-Max Pooling과정을거친다. Filter는 3x3 크기의 Filter를적용했으며 ReLU는 0이하는 0으로, 0보다크면입력결과가출력으로나온다. Max Pooling은이미지에서 2x2 크기를기준으로 4픽셀중가장큰값만출력한다. 간단히말해 1개의 Layer는이미지가일정한 Filter를지나 Filter에가장잘반응한 (Max Pooling) 값들만출력한다.
4-2 CNN [ 그림 13. 학습에필요한 CNN 구조 ] [ 그림 14. CNN 코드 ] 이번연구에서는 4개의 Layer를사용했다. 그림10은이미지학습에필요한 Convolution Neural Network 구조를도식화해나타낸것이다. 이미지를학습하는과정에서각 Layer 에있는 Weight를미세하게바꾸면서해당이미지에최적화된값을찾는다. 그리고 Output Data로는 One-Hot코드로출력해주었다.
5. 예측 [ 그림 11. Test Image] [ 그림11. 예측결과 ] Test 이미지또한전처리과정을통해얼굴을추출하고, Homography Transformation을하고이를기존에만든 CNN에입력을하면기존학습된얼굴중가장비슷한얼굴을찾아낸다.
IV. REPRESENTATIVE RESULTS #1 #2 #3 #4 Training image 53 50 46 50 199 Test image 9 10 8 10 37 [ 그림12. 실험및테스트데이터 ] 이번연구에서는 4 명의이미지를총 199 장을사용하여학습을진행했으며 37 장의테스 트이미지를이용하여예측을했다. 1. Rotation Number #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 Accuracy (%) 94.59 89.19 86.49 89.19 86.49 83.78 83.78 86.49 86.49 89.19 [ 그림13. Rotation & Resize] 전처리과정에서 Homography 를사용하지않고 Rotation & Resize 만했을경우이를 10 번진행한결과 Accuracy 는약 87.568% 가나왔다. 2. Land Mark Number #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 Accuracy (%) 75.68 78.38 70.27 59.46 54.05 75.68 64.87 56.76 54.05 59.46 [ 그림14. Land Mark 학습 ] 이미지를학습하는것이아니라얼굴의특징점을학습하여이를 10 번진행한결과 Accuracy 는약 64.866% 가나왔다. 3. Homography Number #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 Accuracy (%) 91.89 97.30 86.49 97.30 97.30 89.19 94.59 97.30 83.78 83.78 [ 그림15. Homography] 앞에서설명한전처리과정 (Homography) 를사용하여학습하고이를 10 번진행한결과 Accuracy 는약 92.492% 가나왔다.
이번연구에서는전처리에따라 Accuracy가많은차이를보였다. 먼저 Rotation & Resize만했을경우는얼굴이정면을보지않기때문에눈, 코, 입등이같은인물이지만다른 Point에위치했다. 그래서 Homography를사용한결과보다 Accuracy가더낮았으며 Land Mark를사용하여학습했을경우는 Point들이각얼굴의정확한위치에찾는것이아니기때문에 Accuracy가매우낮게나왔다. 뿐만아니라학습을할때이미지에는 128*128개의정보 ( 픽셀 ) 가있지만 Land Mark의경유단 68*2개의정보로학습을하기때문에더욱 Accuracy가낮게나왔다. V. FURTHER STUDY (NEXT PLAN) 이번연구를통해 Deep Learning의기본적인개념과구조에대해공부를할수있었으며매우어렵고많은코드를요구할것같았던 Deep Learning을직접코드로구현해봄으로써이해와관심을갖게되었다. 이번연구에서성능향상을위해다양한방법으로학습을시도해보았다. 그결과학습을하는 CNN구조의디자인보다는 Input Data의영향을많이받는다는것을알게되었다. CNN구조만변경한결과 Accuracy의큰변화가없었지만위의전처리과정처럼 Rotation, Homography, Land Mark와같이이미지를어떻게처리를하고이를학습하는지에따라성능에차이가많이발생했다. 현재페이스북의 Deep Face는얼굴의포인트를가상의 3D 모델에입력을하고이를회전을한뒤다시 2D이미지로변화하기때문에아무리얼굴이뒤틀려있어도정확하고일정한얼굴이미지를추출할수있으며이러한전처리과정때문에인간의인식률과비슷한 97.25% 라는정확도를가질수있었다. 향후계획으로는이번연구를통해공부한 Deep Learning 과 OpenCV 를이용하여 2D 이 미지에서가상의 3D 모델을추출하는연구를진해할계획입니다.