[Aplicación fronteriza de aprendizaje profundo] Detección de objetivos

[Aplicación fronteriza de aprendizaje profundo] Detección de objetivos


inserte la descripción de la imagen aquí


Sobre el autor : estudiante universitario, experto en Huawei Cloud Sharing, bloguero estrella de Alibaba Cloud, miembro de Tengyun Pioneer (TDP), director general del Yunxi Smart Project y del Comité Nacional de Expertos en Enseñanza y Computación Construcción de recursos de práctica industrial en colegios y universidades ( , así como los entusiastas de la programación, esperan aprender y progresar junto con todos ~TIPCC
. Página de
inicio del blog :ぃ Registro de aprendizaje de Ling Yu が
.
Columna de este artículo : inteligencia artificial
. el mar es imparable .


inserte la descripción de la imagen aquí


prefacio

1. ¿Cómo logra la computadora la detección de objetos?

Para una computadora, lo que puede "ver" es el número después de codificar la imagen, pero es difícil comprender conceptos semánticos de alto nivel, como si el objetivo que aparece en la imagen o el cuadro de video es una persona o un objeto. y es imposible localizar el objetivo que aparece en la imagen en esa zona.


2. ¿Cuál es el objetivo principal de la detección de objetos?

El objetivo principal de la detección de objetos es permitir que la computadora identifique automáticamente la categoría de todos los objetos en un cuadro de imagen o video, y dibuje un cuadro delimitador alrededor del objeto para marcar la ubicación de cada objeto.


3. ¿Cuál es el proceso de detección de objetos?

El proceso de detección de objetivos es: generar una serie de áreas que pueden contener objetos en la imagen de entrada, estas áreas se denominan áreas candidatas (se pueden generar muchas áreas candidatas en una imagen), y luego, para cada área candidata, puede tratarla. como una imagen en sí misma, y ​​use un modelo de clasificación de imágenes para clasificarla y ver a qué clase o fondo pertenece (es decir, una clase que no contiene ningún objeto).

本实验的目的是简单地演示如何使用PaddleHub工具,实现目标检测(推理过程,如何使用飞桨深度学习平台进行预训练,而微调的实验将在后面的小节介绍),本次实验平台为百度AI Studio,实验环境为Python 3.7,Paddle2.0,PaddleHub2.0


(1), cargue la imagen para ser detectada

Importar paquetes relacionados

import paddlehub as hub
import cv2
import matplotlib.image as mpimg
import matplotlib.pyplot as plt

Usando diferentes modelos previamente entrenados, detecte los objetos que se muestran en la Figura 1 a continuación:

inserte la descripción de la imagen aquí

注:使用时可能会出现版本不对应的情况,需在导入包之前,加入如下代码:

!pip uninstall paddlepaddle 
!pip install  paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple 
!pip uninstall  paddlehub 
!pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple 

(2), define la función de detección de objetivos

Dado que PaddleHub proporciona una variedad de modelos de preentrenamiento de detección de objetivos, puede intentar usar diferentes modelos de preentrenamiento para la detección y controlar el tipo de modelo de llamada a través de parámetros:

# 定义目标检测接口函数:module_name为选择的预训练模型名称
def object_detection(module_name):
    vehicles_detector = hub.Module(name=module_name)
    result = vehicles_detector.object_detection(images=[cv2.imread('motuoche2.jpg')])
    img = mpimg.imread(result[0]['save_path'])
    plt.figure(figsize=(15,15))
    plt.imshow(img)  
plt.show()


(3), detección de objetivos

Dado que la Figura 1 contiene vehículos y personas, este experimento utiliza los siguientes cuatro modelos previamente entrenados para la detección y muestra los resultados de la detección: yolov3_darknet53_pedestrian, yolov3_darknet53_vehicles, yolov3_darknet53_v1_coco2017 y más rápido_rcnn_resnet50_fpn_coco2017

object_detection('yolov3_darknet53_pedestrian')  # 行人检测

Los resultados de la detección se muestran en la Figura 2 a continuación:
#Puede detectar peatones

inserte la descripción de la imagen aquí

object_detection('yolov3_darknet53_vehicles')     # 车辆

Los resultados de la detección se muestran en la Figura 3 a continuación:
#Vehículos detectables
inserte la descripción de la imagen aquí

object_detection('yolov3_mobilenet_v1_coco2017')  # 车辆及行人

Los resultados de la detección se muestran en la Figura 4 a continuación:
#Puede detectar vehículos y peatones
inserte la descripción de la imagen aquí

object_detection('faster_rcnn_resnet50_fpn_coco2017') # 车辆及行人

Los resultados de la detección se muestran en la Figura 5 a continuación:
# Puede detectar vehículos y peatones
inserte la descripción de la imagen aquí


Resumir

El contenido de esta serie de artículos se basa en las notas e ideas relevantes de la "Práctica de aprendizaje automático" publicada por Tsinghua. El código se desarrolla en base a Baidu Fei Pao. Si hay alguna infracción o inadecuación, envíe un mensaje privado a conmigo, y cooperaré activamente. ¡Trátalo, volverás cuando lo veas! ! !

Finalmente, cito una oración de este evento como conclusión del artículo~( ̄▽ ̄~)~:

[ La mayor razón para aprender es deshacerse de la mediocridad, un día antes, una vida más maravillosa, un día después, un día más de mediocridad.

pd: Para obtener contenido más emocionante, ingrese a la columna de este artículo : inteligencia artificial , échele un vistazo, dé la bienvenida a todos para que apoyen y aconsejen ~ ( ̄▽ ̄~) ~

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_54754302/article/details/126692338
Recomendado
Clasificación