Giter Club home page Giter Club logo

yolo-lidc's Introduction

yolo-lidc

¿Qué permite?

  • Convertir el dataset LIDC-IDRI (imagenes .dicom + anotaciones de segmentacion de 4 radiologos) a formato YOLO, en contreto para yolov8-segmentation.
  • Realizar una validación del modelo obtenido de yolov8-segmentation bajo un criterio de intersection over union, IoU, en 3 dimensiones mediante la matriz de confusión.

imagenes y etiquetas

Usage: yolodataset.py

Revisar el yolodataset.py:

if __name__ =='__main__':
    path2newdataset='/path/to/new/dataset_yolo'
    path2olddataset = '/path/to/old/LIDC-IDRI_dataset'

    create_dataset(path2olddataset, path2newdataset, val=0.2, percent_include=0.2)

Parametros:

  • val: porcentaje de pacientes que iran a validation
  • percent_include: porcentaje de las imagenes que no tienen ningun nodulo etiquetado que serán consideradas.

/path/to/new/dataset_yolo debe tener esta pinta:

.
├── train
│   ├── images
│   └── labels
├── train.yaml
└── validation
    ├── images
    └── labels

y /path/to/old/LIDC-IDRI_dataset debe tener esta pinta:

.
├── LIDC-IDRI-0002
├── LIDC-IDRI-0005
├── LIDC-IDRI-0013
├── LIDC-IDRI-0055
:
└── LIDC-IDRI-0129

Ejecutar:

python3 yolodataset.py

¿Cuál es el formato de YOLO de los datasets?

Las imagenes son guardads en formato .jpg siendo cada slice de un TC de un paciente una imagen, guardadas en images.

Las etiquetas siguen formato YOLO, es decir, un .txt por cada imagen con el mismo nombre las carpetas labels. Estas siguen el formato:

n_clase x1 y1 x2 y2 x3 y3 x4 y4 x5 y5 ...

Ejemplo: 0 0.324 0.435 0.435 0.5474 0.45754 0.4456 0.45645 0.23462 0.8644 0.23423

  • n_clase = 0 ya que solo hay una clase (yolo es segmentador de instacias)

  • xi yi son puntos que perfilan el nodulo en relativo intervalo de valores.(0,1)

Para el dataset LIDC-IDRI se ha elegido el nombre de cada imagen y label con el siguiente criterio:

id_paciente+n_slice

Ejemplo:

  • Slice numero 143 del paciente con id LIDC-IDRI-0957: LIDC-IDRI-0957_143.png y LIDC-IDRI-0957_143.txt
.
├── train
│   ├── images
│   └── labels
├── train.yaml
└── validation
  ├── images
  └── labels

El train.yaml incluye:

names:
- nodulo

nc: 1

train: ./train/images/
val: ./validation/images/

Usage: matrix_3d.py

Debe ejecutarse el fichero get_metrics_3d.sh:

./get_metrics_3d.sh

Este contiene el comando:

python3 matrix_3d.py --val --model "/path/to/model.pt" --save '/path/to/metrics'  --val_path '/path/to/dataset' --threshold 0.3 --iou_threshold 0.2

El script matrix_3d.py calcula la matriz de confusión teniendo en cuenta la IoU con las etiquetas de los radiólogos.

confusion matrix

Todo ello se apoya en el software processLIDC (adaptado a yolo) el cual realiza gestión, carga, preprocesado y visualización del dataset original de LIDC.IDRI:

reconstruct body

Yolo realiza predicciones como esta: predicciones

yolo-lidc's People

Contributors

abelbedoya avatar

Stargazers

 avatar SwimmingLiu avatar

Watchers

 avatar

yolo-lidc's Issues

Solicitar un modelo entrenado o un conjunto de datos procesado,este es mi buzón: [email protected] ,Muchas gracias.

Hola, amigo, como usted, nuestro Grupo también está haciendo experimentos de detección de nódulos pulmonares basados es es en el conjunto de datos lidc de yolov8, pero nuestro modelo es muy pobre, menos del 10% se puede detectar, mañana habrá aceptación experimental, espero que nos comparta el conjunto de datos procesado o el modelo entrenado, muchas gracias, este es mi buzón: [email protected] De nuevo, Gracias.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.