Académique Documents
Professionnel Documents
Culture Documents
Requerimientos
Para poder llevar a cabo este tutorial en tu totalidad es importante
tener lo siguiente en nuestra computadora.
1. Python 3.6
2. Tensorflow
3. Numpy
4. Pandas
5. Matplotlib
6. Tarjeta de gráficos (Recomendada para poder hacer un
entrenamiento de manera rápida, aunque es posible hacerlo sin
GPU, puede llegar a tardar horas o días sin una tarjeta de gráficos
NVIDIA)
Pasos a seguir
Estos son los pasos que seguiremos en este tutorial, no te
preocupes si algo no queda claro, más adelante lo veremos a
detalle.
1.
1. Preparación de la data
Prediccion
1.
1. Dar imágenes a nuestro programa para que detecte los objetos
dentro de la misma
Preparación de la data
Antes de empezar necesitamos preparar los datos con los que
entrenaremos a nuestro programa. Para esto necesitaremos tener
un monton de imagenes, como mínimo recomendaria tener 200
imágenes por cada uno de los objetos que queremos detectar (si en
una imagen tenemos 3 de los objetos que queremos aprender a
detectar, esto podria contar como tres imágenes).
Al etiquetar nuestras imágenes le diremos a nuestro programa en
que coordenadas de nuestras imágenes puede encontrar cada uno
de los objetos que queremos que nuestro programa pueda detectar,
esta puede ser una tarea algo tediosa, pero usaremos una
herramienta que nos facilitara hacerlo y aparte la recompensa al
final será grande.
IMPORTANTE:
https://github.com/tzutalin/labelImg
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
Para Windows:
cd C:\Users\jasua\Downloads\deteccion-de-objetos
Luego ir a la carpeta slim con el comando cd (estando en la
deteccion-de-objetos) y ejecutar el siguiente comando:
Creacion de archivos
Entrenamiento
Elegir modelo a entrenar
Antes de empezar, debemos decidir que modelo es el que
querremos entrenar, algunos nos ofrecen detecciones más veloces,
sacrificando certeza o viceversa. Para ver todos los modelos
podemos ingresar a esta liga. En este tutorial usaremos el
modelo faster_rcnn_resnet101_coco (dar clic para descargar) el
cual nos brinda predicciones más veloces. A su vez tambien
descargaremos un archivo tipo config que coincida con el modelo
que vamos a entrenar (faster_rcnn_resnet101_coco.config), desde
esta liga:
(https://github.com/tensorflow/models/tree/master/research/object_d
etection/samples/configs)
Al descargarlo encontraremos varios archivos, los que nos interesan
para entrenar un modelo desde cero son:
item {
id: 1
name: 'Auto'
item {
id: 2
name: ‘Semaforo’
item {
id: 3
name: 'Paso Peatonal'
Labels.txt
null
Auto
Semaforo
Paseo Peatonal
Configuración de entrenamiento
(faster_rcnn_resnet101_coco.config)
model {
faster_rcnn {
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 600
max_dimension: 1024
...
train_config: {
batch_size: 1
gradient_clipping_by_norm: 10.0
fine_tune_checkpoint: "modelo/model.ckpt"
from_detection_checkpoint: true
# Note: The below line limits the training process to 200K steps,
which we
num_steps: 200000
data_augmentation_options {
random_horizontal_flip {
}
}
train_input_reader: {
tf_record_input_reader {
input_path: "TFRecords/entrenamiento.record"
label_map_path: "configuracion/label_map.pbtxt"
eval_input_reader: {
tf_record_input_reader {
input_path: "TFRecords/test.record"
label_map_path: "configuracion/label_map.pbtxt"
shuffle: false
num_readers: 1
num_epochs: 1
}
Entrenar
python object_detection/export_inference_graph.py --
input_type image_tensor --pipeline_config_path
modelo/faster_rcnn_resnet101_coco.config --
trained_checkpoint_prefix train/model.ckpt-684 --
output_directory modelo_congelado
Prediccion
Listo, hemos llegado al final, espero que todos hayan llegado hasta
aquí sin problemas. Ahora es momento de generar predicciones.
Para esto solo tenemos que poner las imágenes en las que
queremos generar detección de objetos en la carpeta llamada
‘img_pruebas’ y correremos el siguiente comando, el resultado lo
obtendremos en una nueva carpeta llamada output.
python object_detection/object_detection_runner.py