YOLOv5-based object detection training pipeline for OpenShift/Kubernetes with Kubeflow Pipelines.
- YOLOv5 object detection training
- CPU and GPU support with automatic fallback
- Kubeflow pipeline automation
- ONNX model conversion
- OpenShift/Kubernetes deployment ready
object-detection-notebooks/
├── model-training/
│ ├── configuration.yaml # Dataset configuration
│ ├── data_ingestion.py # Data preparation
│ ├── preprocessing.py # Data preprocessing
│ ├── model_training.py # Main training script
│ ├── model_conversion.py # ONNX conversion
│ ├── model_upload.py # Model upload
│ ├── model-training-cpu.pipeline # CPU pipeline
│ ├── model-training-gpu.pipeline # GPU pipeline
│ └── yolov5/ # YOLOv5 framework
├── sample-images/ # Sample images
├── object_detection.py # Inference script
└── requirements.txt # Dependencies
- OpenShift/Kubernetes cluster with Data Science Pipelines
- S3-compatible storage
- Place training images in
/data/images/trainand/data/images/val - Update
model-training/configuration.yamlwith your classes:nc: 1 names: ['YourObjectClass']
- Run the appropriate pipeline:
model-training-gpu.pipelinefor GPU training (with CPU fallback)model-training-cpu.pipelinefor CPU-only training
batch_size: Training batch size (default: 64)epochs: Number of epochs (default: 8)base_model: YOLOv5 variant (default: 'yolov5n')sample_count: Number of samples (default: 5000)
- Data Ingestion: Load and prepare training data
- Preprocessing: Image processing and augmentation
- Model Training: YOLOv5 training with device auto-detection
- Model Conversion: Convert to ONNX format
- Model Upload: Upload to S3 storage
- GPU Detection Error: Code automatically falls back to CPU
- Memory Issues: Reduce
batch_sizeor use CPU pipeline - Import Errors: Dependencies auto-install during pipeline run
import torch
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA devices: {torch.cuda.device_count()}")Run the pipeline through Data Science Pipelines UI or CLI.
from object_detection import detect_objects
results = detect_objects('image.jpg', 'model.pt')- Check pipeline logs for detailed errors
- Review troubleshooting section above
- Create repository issues for bugs