The complete end-to-end guide: collect your own dataset, annotate it, train a state-of-the-art YOLO model on a free GPU, optimise it with TensorRT, and deploy it on your Jetson — all covered step by step. This is the foundation skill that makes everything else possible.
What you will learn
- The complete ML pipeline: collect → annotate → train → evaluate → deploy
- How to collect a high-quality dataset using the Jetson camera
- How to annotate using Label Studio (pre-installed) and Roboflow
- How to train on Google Colab (free) and NVIDIA DGX (paid)
- How to evaluate with mAP, precision, recall, and confusion matrix
- How to iteratively improve a model when accuracy is not good enough
- How to export to TensorRT and deploy in under 5 minutes
The complete pipeline
Phase 1 — Data collection
cd ~/tutorials/20-custom-training
# Capture 500 images of your object/defect
python3 capture.py --output ./data/raw --count 500 --interval 0.5
Tips for good training data: vary lighting, distance, angle, and background. Include examples of your negative class (non-defects). Aim for 200+ images per class minimum.
Phase 2 — Annotation
# Start Label Studio (pre-installed)
label-studio start --port 8080 --data-dir ~/tutorials/20-custom-training/data
In Label Studio: create a project, set task type to “Object Detection with Bounding Boxes”, import your images, annotate every object, and export in YOLO format.
Phase 3 — Training on Google Colab
# In Google Colab (free T4 GPU) — open template at:
# ~/tutorials/20-custom-training/colab_training_template.ipynb
from ultralytics import YOLO
model = YOLO("yolo11s.pt") # pretrained starting point
results = model.train(
data = "/content/dataset/data.yaml",
epochs = 150,
imgsz = 640,
batch = 16,
device = 0,
patience= 20, # stop early if no improvement
augment = True, # random flips, crops, colour jitter
plots = True # save training charts
)
print(f"Best mAP50-95: {results.results_dict['metrics/mAP50-95(B)']:.3f}")
Phase 4 — Evaluate and improve
# Validate on your test set
model.val(data="data.yaml", split="test")
# Check these metrics:
# mAP50: should be > 0.85 for production use
# Precision: how often detections are correct
# Recall: how many real defects are found
If accuracy is low: add more annotated images, increase epochs, add data augmentation, or use a larger model (yolo11m instead of yolo11s).
Phase 5 — Export and deploy to Jetson
# Export to TensorRT (run on Jetson)
model = YOLO("best.pt")
model.export(format="engine", half=True, imgsz=640, device=0)
# Run your custom model
python3 ~/tutorials/01-object-detection/detect.py --model ~/my_models/best.engine --source 0 --show
Checklist: is your model production ready?
- mAP50-95 > 0.80 on a held-out test set
- False positive rate < 2% at your chosen confidence threshold
- Running at required FPS on Jetson with TensorRT
- Tested under all real-world lighting and background conditions
- Validated on 50+ real production samples not seen during training
🎉 You have completed all 20 tutorials! You now have the skills to build, train, and deploy any AI vision system on the NVIDIA Jetson. Back to the Jetson Inspection Kit →
Need help with a specific project? Contact our engineers — support is included with your kit.