Nota: Este proyecto ya no se mantiene y puede no compatible con el Pytorch más nuevo (después de 0.4.0).
Esta es una implementación de Pytorch de Yolov2. Este proyecto se basa principalmente en Darkflow y Darknet.
Utilicé una extensión de Cython para el posprocesamiento y multiprocessing.Pool Pool para el preprocesamiento de imágenes. Probar una imagen en VOC2007 cuesta aproximadamente 13 ~ 20 ms.
Para obtener detalles sobre Yolo y Yolov2, consulte la página de su proyecto y el documento: YOLO9000: Mejor, más rápido, más fuerte por Joseph Redmon y Ali Farhadi .
Nota 1: Este sigue siendo un proyecto experimental. El mapa de prueba VOC07 es de aproximadamente 0.71 (entrenado en VOC07+12 Trainval, reportado por @Cory8249). Consulte el número1 y el número23 para obtener más detalles sobre la capacitación.
Nota 2: Recomiendo escribir su propio dataloader usando torch.utils.data.dataset desde multiprocessing.Pool.imap no se detendrá ni siquiera hay suficiente espacio de memoria. Un ejemplo de dataloader para Vocdataset: Issu71.
Nota 3: Actualice a Pytorch 0.4: #59
Clon este repositorio
git clone [email protected]:longcw/yolo2-pytorch.git Construya la capa Reorg ( tf.extract_image_patches )
cd yolo2-pytorch
./make.sh Descargue el modelo capacitado yolo-voc.weights.h5 (enlace actualizado) y establezca la ruta del modelo en demo.py
Ejecute la demostración python demo.py
Puede entrenar yolo2 en cualquier conjunto de datos. Aquí lo entrenamos en VOC2007/2012.
Descargue la capacitación, validación, datos de prueba y vocdevkit
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar Extraiga todos estos alquitrán en un directorio llamado VOCdevkit
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tarDebería tener esta estructura básica
$VOCdevkit / # development kit
$VOCdevkit /VOCcode/ # VOC utility code
$VOCdevkit /VOC2007 # image sets, annotations, etc.
# ... and several other directories ... Dado que el programa que carga los datos en yolo2-pytorch/data de forma predeterminada, puede establecer la ruta de datos de la siguiente manera.
cd yolo2-pytorch
mkdir data
cd data
ln -s $VOCdevkit VOCdevkit2007 Descargue el modelo DarkNet19 previamente pretrada (enlace actualizado) y establezca la ruta en yolo2-pytorch/cfgs/exps/darknet19_exp1.py .
(opcional) Entrenamiento con Tensorboard.
Para usar el TensorBoard, establezca use_tensorboard = True en yolo2-pytorch/cfgs/config.py e instale tensorboardx (https://github.com/lanpa/tensorboard-pytorch). El registro de Tensorboard se guardará en training/runs .
Ejecute el programa de entrenamiento: python train.py .
Establezca la ruta del trained_model en yolo2-pytorch/cfgs/config.py .
cd faster_rcnn_pytorch
mkdir output
python test.pyEl Pase hacia adelante requiere que suministre 4 argumentos a la red:
im_data - Datos de imagen.C x H x W , donde C corresponde a los canales de color de la imagen y H y W son la altura y el ancho respectivamente.imcv2_recolor proporcionada en utils/im_transform.py para preprocesar su imagen. Además, asegúrese de que las imágenes hayan cambiado a 416 x 416 píxelesgt_boxes : una lista de matrices numpy , donde cada uno es de tamaño N x 4 , donde N es el número de características en la imagen. Los cuatro valores en cada fila deben corresponder a x_bottom_left , y_bottom_left , x_top_right y y_top_right .gt_classes : una lista de matrices numpy , donde cada matriz contiene un valor entero correspondiente a la clase de cada cuadro limitado proporcionado en gt_boxesdontcare - una lista de listasLicencia: Licencia MIT (MIT)