La clásica serie RCNN de redes de detección de objetivos se divide en dos pasos: propuesta de objetivos y clasificación de objetivos. En Faster-RCNN, la propuesta de objetivos y la clasificación de objetivos se generan por separado como dos ramas de una red, lo que acorta en gran medida el tiempo de cálculo. La serie Yolo omite estas dos ramas y utiliza solo una red para generar la ubicación y clasificación del objetivo al mismo tiempo.
Entrada: una imagen
Salida: divida cada imagen en cuadrados SxS y genere una matriz dimensional B * 5 + C para cada cuadrado. Entre ellos, B es el número de cuadros predichos en esta cuadrícula, incluidos (x, y, w, h, s), s representa la confianza del cuadro y C representa el número de categorías que deben predecirse.
En YOLO, S=7, B=2, PASCAL VOC tiene 20 categorías, por lo que C=20, B*5+C=30.
La estructura de la red YOLO se divide principalmente en dos partes. La primera parte es la red de extracción de características, que se utiliza principalmente para extraer las características generales de los objetos. La segunda generalmente se entrena previamente en ImageNet; La parte es la red de posprocesamiento. El propósito es devolver las coordenadas y la categoría del objeto a detectar.
La primera versión de la red de extracción de características de YOLO tiene 24 capas convolucionales y 2 capas completamente conectadas. La estructura de la red es como se muestra a continuación.
Se puede ver que esta red utiliza principalmente convolución 1x1 seguida de convolución 3x3.
La red de extracción de características utiliza las primeras 20 capas convolucionales, más una capa de agrupación promedio y una capa completamente conectada para clasificar ImageNet2012. La tasa de precisión de las 5 principales es del 88% y la resolución de entrada es 224x224. .
Durante la detección, cambie la resolución de entrada a 448x448. Debido a que la estructura de la red es completamente convolucional, la resolución de entrada se puede cambiar. Toda la salida de la red es un tensor dimensional de 7x7x30.
A continuación, nos centraremos en esta función de pérdida.
Es difícil devolver directamente las coordenadas de los objetos utilizando la red. Aquí, se realizan algunas transformaciones en las coordenadas de los objetos a devolver. La longitud w y el ancho h del cuadro de objeto se dividen por la longitud y el ancho de la imagen respectivamente; las coordenadas xey representan respectivamente el desplazamiento de las coordenadas del cuadrado correspondiente, divididas por la longitud y el ancho del cuadrado respectivamente; ambos entre 0 y 1 .
La función de pérdida se divide en varias partes:
Entre ellas, i representa el i-ésimo cuadrado y j representa el j-ésimo cuadro predicho por el cuadrado. El cuadro real que representa el objeto obj tiene una relación correspondiente con el i-ésimo cuadrado, es decir, el centro de obj cae en el i-ésimo cuadro real que representa el objeto obj y el j-ésimo cuadro predicho por el i-ésimo; cuadrado Hay una relación correspondiente, es decir, el centro de obj cae en el i-ésimo cuadrado y tiene el pagaré más grande con su j-ésimo cuadro de predicción.
Puedes ver que la función de pérdida incluye 5 partes. La primera parte son las coordenadas x, y; la segunda parte es w, h, y se utiliza el signo raíz para hacer que la pérdida de un cambio de tamaño de caja pequeño sea mayor que la pérdida de un cambio de tamaño de caja grande; la tercera parte es la confianza de la caja; pérdida, y el objetivo de la regresión es la predicción El valor del pagaré de la caja y la caja real solo se calcula cuando la caja predicha tiene una relación correspondiente con la caja real; la cuarta parte es la pérdida de confianza de la caja sin ella; objetos correspondientes, y la confianza real es 0; la quinta parte es la pérdida de clasificación. La pérdida de clasificación solo se calcula cuando existe una relación correspondiente entre el cuadrado y el objeto.
Debido a que muchos cuadrados en la imagen no contienen objetos, la puntuación de confianza del cuadro de predicción de cuadrados tiende a 0. Por lo tanto, aumente el peso de los cuadrados que contienen objetos y disminuya el peso de los cuadrados que no contienen objetos. El documento contiene.
YOLO-v2 ha realizado algunas mejoras con respecto a la versión YOLO-v1.
Utiliza principalmente la idea de NIN.
Hay 19 capas convolucionales y 5 capas de maxpooling, lo que logra una tasa de precisión entre las 1 primeras del 72,9 % y una tasa de precisión entre las 5 primeras del 91,2 %. Con una resolución de 448x448, se logró una tasa de precisión entre los primeros 1 del 76,5 % y una tasa de precisión entre los 5 primeros del 93,3 %. La estructura de la red se muestra en la siguiente figura.
Al modificar la red de detección, se eliminó la última capa convolucional y se agregaron tres capas convolucionales de 3x3x1024 y una capa convolucional de 1x1x125, entre la última capa de 3x3x512 y la segunda capa derivada. característica concat.
La tasa de aprendizaje inicial es 0,001, multiplicada por 0,1 en 60 y 90 épocas.
Además, YOLO-v2 utiliza WordTree para entrenar conjuntamente tareas de clasificación y detección. También puede predecir las cajas de objetos sin anotaciones de caja y puede predecir 9.000 conceptos en el diccionario. YOLO-v2 también se llama YOLO9000.
YOLO-v3 ha realizado algunas mejoras basadas en YOLO-v2.
Darknet-53 y Resnet-152 tienen la misma precisión, pero son el doble de rápidos.
En general, creo que el desarrollo de YOLO ha demostrado plenamente el poder de aprovechar las fortalezas de otras empresas. Todavía necesito leer más artículos, arriba.
Referencias:
[1] Redmon, Joseph, et al. "Solo miras una vez: detección de objetos unificada en tiempo real". reconocimiento de patrones 2016.
[2] Redmon J, Farhadi A. YOLO9000: mejor, más rápido, más fuerte[J] preimpresión de arXiv, 2017.
[3] Redmon, Joseph. y Ali Farhadi "Yolov3: una mejora incremental".