Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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');

Image of coffee cup

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));

Image showing coffee mug in MATLAB with thumbnail

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');
Cargue la red GoogLeNet preentrenada.

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.

Image of a wallet displayed in MATLAB

Consulte también

| |