Clasificar imágenes desde la cámara de un dispositivo móvil utilizando una red preentrenada
Configurar un dispositivo móvil
Este ejemplo muestra cómo utilizar deep learning para clasificar imágenes obtenidas con la cámara de su dispositivo móvil.
Instale y configure MATLAB® Mobile™ en su dispositivo móvil. A continuación, inicie sesión en MathWorks® Cloud desde la Configuración de MATLAB Mobile. Para obtener más información, consulte Instalar MATLAB Mobile en su dispositivo y Iniciar sesión en la nube.
Inicie MATLAB Mobile en su dispositivo.
Crear una conexión con la cámara de un dispositivo móvil
En la pantalla Comandos, cree un objeto 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
La propiedad AvailableCameras
indica que este dispositivo tiene cámara 'back'
y 'front'
. Cree una conexión con la cámara 'back'
.
cam = camera(m,'back')
cam = Camera with properties: Name: 'back' AvailableResolutions: {'640x480' '1280x720'} Resolution: '640x480' Flash: 'off' Autofocus: 'on'
Las propiedades de la cámara proporcionan información sobre la configuración de la resolución de la imagen, el enfoque automático y el flash.
Cargar una red preentrenada y obtener una imagen
Desde la pantalla Comandos, cargue una red preentrenada de GoogLeNet utilizando Deep Learning Toolbox™.
nnet = googlenet;
Obtenga una sola imagen desde la cámara utilizando la función snapshot
con el modo de obturador manual. Después de que se abra la vista previa de la cámara, puede mover su dispositivo móvil para capturar el campo de visión deseado. En este ejemplo, capture una imagen del objeto que desea clasificar. Cuando tenga la vista deseada, presione el botón del obturador para obtener la imagen.
img = snapshot(cam,'manual');
Cambie el tamaño de la imagen para que coincida con el tamaño de entrada de la red. El tamaño de entrada para GoogLeNet es 224 por 224. Previsualice la imagen en MATLAB Mobile utilizando image
.
img = imresize(img,[224,224]); image(img)
Clasificar y mostrar la imagen obtenida
Clasifique el objeto de la imagen obtenida utilizando classify
de Deep Learning Toolbox.
label = classify(nnet,img)
label = categorical coffee mug
El objeto se clasifica como una taza de café. Previsualice la imagen utilizando la etiqueta como el título de la figura.
image(img) title(char(label));
Escribir una función para clasificar una imagen
Puede escribir una función en MATLAB Mobile que realice todos los pasos anteriores para clasificar imágenes.
En la pantalla Archivos, cree un nuevo script en su carpeta de MATLAB Drive™. Asigne el nombre camnet.m
al archivo. Defina la función camnet
de la siguiente manera y guarde el archivo.
function value = camnet(cam,nnet) img = snapshot(cam,'manual'); pic = imresize(img,[224,224]); value = classify(nnet,pic); image(pic) title(char(value)) end
En la pantalla Comandos, cree el objeto mobiledev
. A continuación, cree el objeto camera
.
m = mobiledev;
cam = camera(m,'front');
nnet = googlenet;
Llame a la función camnet
.
label = camnet(cam,nnet)
La vista previa de la cámara se abre en su dispositivo móvil. Mueva la cámara de su dispositivo móvil para apuntar al objeto que desea clasificar. Presione el botón del obturador para capturar la imagen. Una vez capturada la imagen, puede ver la figura. El título de la figura muestra la etiqueta predicha del objeto.