사전 훈련된 신경망을 사용하여 모바일 기기의 카메라에서 수집한 이미지 분류하기
모바일 기기 설정하기
이 예제에서는 딥러닝을 사용하여, 모바일 기기의 카메라에서 수집한 이미지를 분류하는 방법을 보여줍니다.
모바일 기기에 MATLAB® Mobile™을 설치하고 설정합니다. 그런 다음 MATLAB Mobile 설정에서 MathWorks® Cloud에 로그인합니다. 자세한 내용은 기기에 MATLAB Mobile 설치하기 및 클라우드에 로그인하기 항목을 참조하십시오.
기기에서 MATLAB Mobile을 시작합니다.
모바일 기기의 카메라에 대한 연결 만들기
명령 화면에서 mobiledev
객체 m
을 만듭니다.
m = mobiledev
m = mobiledev with properties: Connected: 1 AvailableCameras: {'back' 'front'} Logging: 0 InitialTimestamp: '' AccelerationSensorEnabled: 0 AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0 OrientationSensorEnabled: 0 PositionSensorEnabled: 0 Supported functions
AvailableCameras
속성은 이 기기에 'back'
카메라와 'front'
카메라가 있음을 나타냅니다. 'back'
카메라에 대한 연결을 만듭니다.
cam = camera(m,'back')
cam = Camera with properties: Name: 'back' AvailableResolutions: {'640x480' '1280x720'} ZoomRange: [1 121.8750] Resolution: '640x480' Zoom: 1 Flash: 'off' Autofocus: 'on'
카메라 속성은 이미지 해상도, 자동 초점, 플래시 설정에 대한 정보를 제공합니다.
사전 훈련된 신경망을 불러오고 이미지 수집하기
명령 화면에서 Deep Learning Toolbox™를 사용하여 사전 훈련된 GoogLeNet 신경망을 불러옵니다.
nnet = googlenet;
snapshot
함수를 사용하여 카메라에서 수동 셔터 모드로 이미지를 하나 수집합니다. 카메라 미리보기가 열리면 모바일 기기를 움직여 원하는 구도를 잡을 수 있습니다. 이 예제에서는 분류하려는 사물의 이미지를 캡처합니다. 준비가 되면 셔터 버튼을 눌러 이미지를 수집합니다.
img = snapshot(cam,'manual');
신경망의 입력 크기와 일치하도록 이미지의 크기를 조정합니다. GoogLeNet의 입력 크기는 224x224입니다. MATLAB Mobile에서 image
를 사용하여 이미지를 미리 봅니다.
img = imresize(img,[224,224]); image(img)
수집한 이미지 분류 및 표시하기
Deep Learning Toolbox의 classify
를 사용하여, 수집한 이미지에 있는 사물을 분류합니다.
label = classify(nnet,img)
label = categorical coffee mug
사물은 커피잔으로 분류됩니다. 레이블을 Figure 제목으로 사용하여 이미지를 미리 봅니다.
image(img) title(char(label));
이미지를 분류하는 함수 작성하기
MATLAB Mobile에서 이미지를 분류하는 앞의 모든 단계를 수행하는 함수를 작성할 수 있습니다.
파일 화면에서 MATLAB Drive™ 폴더에 새 스크립트를 만듭니다. 파일의 이름을 camnet.m
으로 지정합니다. camnet
함수를 다음과 같이 정의하고 파일을 저장합니다.
function value = camnet(cam,nnet) img = snapshot(cam,'manual'); pic = imresize(img,[224,224]); value = classify(nnet,pic); image(pic) title(char(value)) end
명령 화면에서 mobiledev
객체를 만듭니다. 그런 다음 camera
객체를 만듭니다.
m = mobiledev;
cam = camera(m,'front');
nnet = googlenet;
camnet
함수를 호출합니다.
label = camnet(cam,nnet)
모바일 기기에서 카메라 미리보기가 열립니다. 분류하려는 사물을 향하도록 모바일 기기 카메라를 움직입니다. 셔터 버튼을 눌러 이미지를 캡처합니다. 이미지를 캡처한 후에는 Figure를 볼 수 있습니다. Figure 제목에 사물의 예측된 레이블이 표시됩니다.