Como estudiante, he sido testigo de primera mano de la frustración causada por el ineficiente sistema de objetos perdidos de nuestra universidad. El proceso actual, que depende de correos electrónicos individuales para cada artículo encontrado, a menudo genera retrasos y pérdida de conexiones entre las pertenencias perdidas y sus propietarios.
Impulsado por el deseo de mejorar esta experiencia para mí y para mis compañeros de estudios, me embarqué en un proyecto para explorar el potencial del aprendizaje profundo para revolucionar nuestro sistema de objetos perdidos y encontrados. En esta publicación de blog, compartiré mi viaje de evaluación de modelos previamente entrenados (ResNet, EfficientNet, VGG y NasNet) para automatizar la identificación y categorización de elementos perdidos.
A través de un análisis comparativo, mi objetivo es identificar el modelo más adecuado para integrarlo en nuestro sistema y, en última instancia, crear una experiencia de objetos perdidos más rápida, precisa y fácil de usar para todos en el campus.
Inception-ResNet V2 es una poderosa arquitectura de red neuronal convolucional disponible en Keras, que combina las fortalezas de la arquitectura Inception con conexiones residuales de ResNet. Este modelo híbrido tiene como objetivo lograr una alta precisión en las tareas de clasificación de imágenes manteniendo la eficiencia computacional.
Conjunto de datos de entrenamiento: ImageNet
Formato de imagen: 299 x 299
def readyForResNet(fileName): pic = load_img(fileName, target_size=(299, 299)) pic_array = img_to_array(pic) expanded = np.expand_dims(pic_array, axis=0) return preprocess_input_resnet(expanded)
data1 = readyForResNet(test_file) prediction = inception_model_resnet.predict(data1) res1 = decode_predictions_resnet(prediction, top=2)
VGG (Visual Geometry Group) es una familia de arquitecturas de redes neuronales convolucionales profundas conocidas por su simplicidad y eficacia en tareas de clasificación de imágenes. Estos modelos, en particular VGG16 y VGG19, ganaron popularidad debido a su sólido desempeño en el ImageNet Large Scale Visual Recognition Challenge (ILSVRC) en 2014.
Conjunto de datos de entrenamiento: ImageNet
Formato de imagen: 224 x 224
def readyForVGG(fileName): pic = load_img(fileName, target_size=(224, 224)) pic_array = img_to_array(pic) expanded = np.expand_dims(pic_array, axis=0) return preprocess_input_vgg19(expanded)
data2 = readyForVGG(test_file) prediction = inception_model_vgg19.predict(data2) res2 = decode_predictions_vgg19(prediction, top=2)
EfficientNet es una familia de arquitecturas de redes neuronales convolucionales que logran una precisión de vanguardia en tareas de clasificación de imágenes y, al mismo tiempo, son significativamente más pequeñas y más rápidas que los modelos anteriores. Esta eficiencia se logra a través de un novedoso método de escalado compuesto que equilibra la profundidad, el ancho y la resolución de la red.
Conjunto de datos de entrenamiento: ImageNet
Formato de imagen: 480 x 480
def readyForEF(fileName): pic = load_img(fileName, target_size=(480, 480)) pic_array = img_to_array(pic) expanded = np.expand_dims(pic_array, axis=0) return preprocess_input_EF(expanded)
data3 = readyForEF(test_file) prediction = inception_model_EF.predict(data3) res3 = decode_predictions_EF(prediction, top=2)
NasNet (Red de búsqueda de arquitectura neuronal) representa un enfoque innovador en el aprendizaje profundo donde la arquitectura de la propia red neuronal se descubre a través de un proceso de búsqueda automatizado. Este proceso de búsqueda tiene como objetivo encontrar la combinación óptima de capas y conexiones para lograr un alto rendimiento en una tarea determinada.
Conjunto de datos de entrenamiento: ImageNet
Formato de imagen: 224 x 224
def readyForNN(fileName): pic = load_img(fileName, target_size=(224, 224)) pic_array = img_to_array(pic) expanded = np.expand_dims(pic_array, axis=0) return preprocess_input_NN(expanded)
data4 = readyForNN(test_file) prediction = inception_model_NN.predict(data4) res4 = decode_predictions_NN(prediction, top=2)
La tabla resume las puntuaciones de precisión declaradas de los modelos anteriores. EfficientNet B7 lidera con la mayor precisión, seguido de cerca por NasNet-Large e Inception-ResNet V2. Los modelos VGG presentan precisiones más bajas. Para mi aplicación quiero elegir un modelo que tenga un equilibrio entre tiempo de procesamiento y precisión.
Como podemos ver, EfficientNetB0 nos proporciona los resultados más rápidos, pero InceptionResNetV2 es un mejor paquete si se tiene en cuenta la precisión
Para mi sistema inteligente de objetos perdidos, decidí utilizar InceptionResNetV2. Si bien EfficientNet B7 parecía tentador por su precisión de primer nivel, me preocupaban sus demandas computacionales. En un entorno universitario, donde los recursos pueden ser limitados y el rendimiento en tiempo real suele ser deseable, sentí que era importante lograr un equilibrio entre precisión y eficiencia. InceptionResNetV2 parecía la opción perfecta: ofrece un rendimiento sólido sin ser demasiado intensivo desde el punto de vista computacional.
Además, el hecho de que esté previamente entrenado en ImageNet me da la confianza de que puede manejar la diversa gama de objetos que las personas podrían perder. ¡Y no olvidemos lo fácil que es trabajar con Keras! Eso definitivamente hizo que mi decisión fuera más fácil.
En general, creo que InceptionResNetV2 proporciona la combinación adecuada de precisión, eficiencia y practicidad para mi proyecto. ¡Estoy emocionado de ver cómo funciona para ayudar a reunir los objetos perdidos con sus dueños!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3