IV. 실험 및 결과
4.2 실험 환경 설정
4.2.1 개발 프레임워크
본실험에서딥러닝모델개발은텐서플로(TensorFlow)[5]를기반으 로하였다.텐서플로는구글에서개발한딥러닝라이브러리로딥러닝모 델개발을 위한API(Application Programming Interface)와사전학습된모 델(pre-trained model)을제공하고있다.
텐서플로기반으로학습한모델을모바일기기에서실행하기위해사 용한변환도구는퀄컴(Qualcomm)에서제공하는SNPE SDK(Snapdragon
Neural Processing Engine Software Development Kit)[27]를사용하였다. SNPE SDK는구글의텐서플로(TensorFlow)[5],텐서플로라이트(Tensor- Flow Lite)[5],마이크로소프트의ONNX(Open Neural Network Exchange) 와페이스북의카페2(Caffe2)[6]와 같은다양한 프레임워크를 지원한다. 다양한딥러닝프레임워크로개발된모델파일을SDK에서제공하는변 환도구를이용하여DLC(Deep Learning Container) 파일로변환하면스 마트폰에서직접실행하거나모바일애플리케이션에서실행할수있다.
Deep Learning Framework (e.g., TensorFlow)
SNPE SDK
Dataset Model Building
& Training Model
Evaluation
SNPE Model (.dlc file)
Save Model file
Model Conversion
Tools
Model Optimization
(optional) Run Model
Off-line, on development host (Linux Workstation) On Device
그림16:스냅드래곤NPE SDK를이용한모델개발순서
스냅드래곤NPE SDK는개선사항이반영된새로운버전이주기적 으로배포되고있음으로SDK를실행하기전에각버전의시스템요구사 항및 변경사항확인이필요하다. 본실험에서는v1.49.0버전을사용하
였으며, Ubuntu 18.04리눅스환경에서아나콘다플랫폼을 이용하여가상
환경을구축하고 개발언어는Python 3.6.10을사용하였다.아나콘다(Ana-
conda)는Python기반의데이터분석에필요한오픈소스를제공하는개발
플랫폼으로가상환경관리자와패키지관리자를제공하여개별가상환경
을구축하고,패키지간의 의존성을확인하여효율적인패키지설치를할 수있다.실험환경에세부정보는표[1]과 같다.
표1:실험환경정보 세부사양
SNPE SDK 1.49.0
서버운영체제 Ubuntu 18.04
그래픽카드 GeForce RTX 2080 Ti
병렬컴퓨팅플랫폼 CUDA 11.2
가상환경 Anaconda 4.10.1
개발언어 Python 3.6.10
딥러닝프레임워크 Tensorflow 1.15 Tensorflow 2.3.0
4.2.2 실험 데이터 세트
실험에사용한데이터세트는컴퓨터비전및기계학습연구에널리 사용되는이미지데이터세트중하나인CIFAR-10 (Canadian Institute For Advanced Research)[28]을사용하였다.
그림17: CIFAR-10학습샘플이미지
CIFAR-10은 32x32픽셀의 60,000개컬러이미지로 구성된데이터 세트이다. 10개의클래스로나눠져있고,각클래스는비행기,자동차,새, 고양이,사슴,개,개구리,말,배 및트럭이 있으며각클래스마다6,000개 의 이미지로구성되어있다. 60,000개이미지 중에서50,000개는학습용 데이터세트로, 10,000개는테스트데이터세트로사용하였다.
4.2.3 실험 비교 모델 선정
본연구에서제안한ELP-NAS모델과성능을비교하기위해대표적
으로 많이 사용하는 이미지 분류 모델 중에서 MobileNet V2[9], Incep- tion V3[1], Resnet V1 50[10], EfficientNet-lite0[29]를선정하였다.각모
델별로CIFAR-10에대한정확도평가 결과가없어서전이학습을진행
하여모델을생성하고평가를진행하였다.
MobileNet V2, Inception V3그리고Resnet V1 50모델은Tensorflow- Slim라이브러리[30] 에서제공하는사전 학습된모델을 기반으로 전이
학습을하였다. 각모델별로동일하게처음에는CIFAR-10을 위해 새로
추가한분류층만10,000번학습하고,모델의성능을높이기위해기존학
습결과를기반으로다시10,000번학습을진행하였다.그중MobileNet V2학습을 위해설정한파라미터정보는표[2]같다.
표2: Mobilenet-V2학습파라미터정보
Fine-Tune Step only the new layers All layers
dataset name cifar10 cifar10
model name mobilenet v2 mobilenet v2
checkpoint exclude scopes MobilenetV2/Logits trainable scopes MobilenetV2/Logits
max number of steps 10000 10000
batch size 32 32
learning rate 0.01 0.001
optimizer rmsprop rmsprop
weight decay 0.00004 0.00004
EfficientNet[29]은 이미지 분류 모델 중에서 기존보다 적은 파라미 터수로더욱좋은성능을내서State-Of-The-Art(SOTA)를달성한모델로 알려져있으며, 모바일/IoT기기를위해EfficientNet-Lite 모델을제공하 고 있다. EfficientNet-Lite 의 경우 입력 크기에 따라 Lite0(224x224)부
터 Lite4(300x300) 까지 있는데, 본 실험에서는 입력 크기가 가장 작은
EfficientNet-Lite0를 대조군으로 선정하였다. EfficientNet-Lite0 모델 학 습을 위해서텐서플로라이트모델메이커(TensorFlow Lite Model Maker)
라이브러리를사용하였다.모델메이커라이브러리를이용하면텐서플로 허브(TensorFlow Hub)에서제공하는모델의기본설정을사용할수있으 며, 사전의훈련된 네트워크에서 전이 학습이 가능하다는 장점이 있다. 그리고미세조정을 위해텐서플로허브에서 제공하는 네트워크와 새로 추가된분류층을함께학습하였다. EfficientNet-Lite0학습을 위한설정한 파라미터정보는표[3]와같다.
표3: Efficientnet-Lite0학습파라미터정보
Arguments Value
model spec efficientnet lite0
batch size 64
epochs 15
train whole model True
shuffle False
use augmentation False use hub library True
do train True
4.2.4 실험 모바일 기기 선정
실험에사용한모바일기기는LG G8 ThinQ(LG G8씽큐) 로LG전 자에서2019년에출시한안드로이드스마트폰이다.주요특징으로전면 디스플레이의노치부분에탑재된ToF센서를이용하여세계최초로정맥 인식기능을지원하며, ToF센서로물체의거리를미세하게측정할수있 기때문에3D얼굴인식및모션인식기능을탑재했다.스마트폰의주요 사양은아래와같다.
표4: LG G8 ThinQ사양 구성 사양
프로세서 퀄컴스냅드래곤855모바일플랫폼
CPU
퀄컴Kryo 485프라임싱글코어(2.84GHz) 퀄컴Kryo 485고성능트리플코어(2.42GHz) 퀄컴Kryo 485저전력쿼드코어(1.8GHz) GPU 퀄컴Adreno 640 (585MHz)
디스플레이 QHD+ (3120 x 1440)
RAM 6G LPDDR4x
메모리
내장메모리 128GB UFS2.1
전면카메라 일반카메라800만화소 Z카메라(ToF센서) 카메라
후면카메라
일반카메라1,200만화소 망원카메라1,200만화소 초광각카메라1,600만화소
배터리 3,500mAh
운영체제 안드로이드9 Pie
4.2.5 측정 방법
실험을 위해딥러닝모델의지연시간과소비전력을측정해야한다. 지연 시간 측정은 SNPE SDK에서 제공하는 snpe bench(벤치마크 프로 그램)을 이용하고,소비전력측정은몬순솔루션(Monsoon Solution Inc) 사의파워모니터(Power Monitor)를사용하였다.
파워모니터는파워툴(PowerTool)소프트웨어를이용하여모바일기 기및임베디드디바이스의구동전력을모니터링하고성능을분석하여 설계를최적화할수있다.그림18와같이실험에사용한스마트폰(LG G8
ThinQ)의배터리를 분리하고전원단자와파워모니터를연결하여소비
전력을측정하였다.
그림18:파워모니터를이용한소비전력측정방법
실험에적합한전압값을찾기위해입력전압대비배터리용량(State of Charge, SoC)을확인하였다.파워모니터에서 설정가능한2.1∼4.5V 전압구간별로배터리용량을측정하였으며, WIFI, Bluetooth, GPS, NFC 와같은기능은모두끄고측정하였다.측정결과는그림19과 같다.
그림19:입력전압대비배터리용량
입력전압에따른스마트폰동작과배터리용량을확인해보면,입력
전압이3.2V보다낮은구간에서는전원이켜지지않거나화면에0%로표
시되며충전기를연결해달라는아이콘이표시되었다.그다음3.5V보다 낮은구간에는스마트폰이켜지다가꺼지는현상이발생하였다.입력전 압을3.6V로설정했을때정상적으로전원이켜졌지만,배터리용량이2%
로표시되고배터리부족알림과함께배터리절전모드로동작하여화면 밝기가자동으로0%로설정되었다.그리고입력전압과배터리용량이같 이증가하다가4.3V에서배터리용량이100%로표시되었다.실험결과를 바탕으로입력전압은배터리용량이약70%정도되는4V로설정하여 실험을진행하였다.