OpenCV built from master (4+) with video I/O support to run YOLOv4 with DNN class in C++/Python.
198
Este proyecto consiste en la utilización de IA para análisis de actividades en videos de CCTV a bordo de buques pesqueros. Se integran componentes que se mantienen en repositorios separados, para formar una cadena completa de procesamiento que se despliega como microservicios con docker-compose.

Se describe la organización de directorios para el desarrollo y ensayo de componentes y tareas intermedias: ensayos, preparación de datos etc. El objetivo de concentrar todo en un mismo repositorio es poder replicar un ambiente de trabajo en distintas PCs reduciendo al mínimo posible los pasos de configuración. El flujo de trabajo propuesto es para prototipado.
[TOC]
Componentes:
| Componente | Entrada | Salida | Descripción |
|---|---|---|---|
| data-preparation | Directorio con dataset conteniendo imagenes, video, metadatos,etc. | Directorio o .tar.gz con dataset organizado según lo requerido por el detector y por el object-tracker. | Scripts de preparación de datos. |
| object-detector-trainer | Dataset preprocesado | Pesos de YOLOv4 en formato Darknet con opción de conversión a otros formatos. | Entrenador del modelo de detección. |
| videoanalytics | - Imágenes/videos a procesar. - Configuración de cadena de procesamiento. | Reporte de detecciones. | Cadenas de procesamiento para video analítico. |
Para los componentes complejos o de propósito general se mantiene un repositorio en github separado.
Este documento describe como clonar estos repositorios en un mismo espacio de trabajo y organizar los archivos de datos y configuración.
Se prone la siguiente organización de directorios.
$WORKSPACE_PATH
|-data
|-data-preparation
|-object-detector-trainer
|-reports
|-videoanalytics
|-tmp
README.md
Convenciones:
export WORKSPACE_PATH=~/workspace/ai-for-fisheries
mkdir $WORKSPACE_PATH
git clone --recursive https://github.com/nhorro/ai-for-fisheries.git $WORKSPACE_PATH
cd $WORKSPACE_PATH
cd $WORKSPACE_PATH
source env.sh
cd $WORKSPACE_PATH
docker run --rm -p 8888:8888 -p 6006:6006 -e GRANT_SUDO=yes -e JUPYTER_ENABLE_LAB=yes -v "$PWD":/notebooks amaksimov/python_data_science jupyter notebook --NotebookApp.token='' --NotebookApp.password=''
ó
./run-jupyter-data-science.sh
Nota: este docker contiene Tensorboard en el puerto 6006. Considerar usar otro puerto si se usa en conjunto con dockers para entrenamiento.
Iniciar docker en modo interactivo.
cd $WORKSPACE_PATH/object-detector
docker run --rm -it -v $WORKSPACE_PATH/data:/data \
-v $PWD:/work \
--workdir /work \
nhorro/opencv4-python3-yolo4:cpu-latest \
/bin/bash
Procesar imagen.
python3 detect.py --input=/data/evaluation/test_data/test.jpg \
--model=/data/models/kaggle_fisheries/ \
--output=/data/evaluation/results/fisheries
Procesar video.
python3 detect.py --input=/data/evaluation/test_data/test.jpg \
--model=/data/models/kaggle_fisheries/ \
--output=/data/evaluation/results/fisheries
Procesar lote.
python3 detect.py --input=/data/evaluation/test_data/test.txt \
--model=/data/models/kaggle_fisheries/ \
--output=/data/evaluation/results/fisheries
Directorio para datasets, pesos, archivos grandes.
Crear estructura de directorios.
cd $WORKSPACE_PATH
mkdir data
mkdir data/datasets
mkdir data/inputs
mkdir data/models
mkdir data/media
mkdir data/outputs
Cuadernos Jupyter Notebook/Python de preparación de datos.
Ambiente para entrenamiento de YOLOv4 basado en docker de BMW Innovation Lab.
cd object-detector-trainer
git clone --depth=1 https://github.com/BMW-InnovationLab/BMW-YOLOv4-Training-Automation.git
cd BMW-YOLOv4-Training-Automation
sudo docker build -f docker/Dockerfile -t darknet_yolov4_gpu:1 --build-arg GPU=1 --build-arg CUDNN=1 --build-arg CUDNN_HALF=0 --build-arg OPENCV=1 --build-arg DOWNLOAD_ALL=1 .
Reportes en formato de cuadernos Jupyter Notebook con análisis y resultados de ensayos de los componentes y marco teórico. Algunos de los más importantes:
Componentes específicos para usar con la librería videoanalytics
Content type
Image
Digest
Size
894.6 MB
Last updated
about 5 years ago
docker pull nhorro/opencv4-python3-yolo4:cpu-latest