YOLO11m-based car damage detector using deep learning, computer vision, and AI. This custom-trained model (trained.pt) was fine-tuned on a specialized dataset to detect and classify common vehicle body damage: dents, scratches, cracks, broken lamps, shattered glass, and flat tires. It’s high-capacity, fast-enough, and built for real-world inspection workflows.
- Architecture: YOLO11m (231 layers, ~20M parameters)
- Dataset: CarDD_COCO (custom fine-tuned version)
- Classes: dent, scratch, crack, shattered_glass, broken_lamp, flat_tire
- Training Framework: Ultralytics 8.3.117, PyTorch 2.6.0+cu124, Python 3.11.12
Class-by-class tactical breakdown:
Class | Box Precision (P) | Recall (R) | mAP50 | mAP50-95 |
---|---|---|---|---|
shattered_glass | 0.979 | 0.978 | 0.994 | 0.963 |
flat_tire | 0.943 | 0.919 | 0.959 | 0.932 |
broken_lamp | 0.826 | 0.821 | 0.895 | 0.796 |
dent | 0.832 | 0.520 | 0.692 | 0.568 |
scratch | 0.737 | 0.800 | 0.905 | 0.610 |
crack | 0.699 | 0.586 | 0.620 | 0.424 |
- Shattered Glass: Elite — nearly flawless across all metrics.
- Flat Tire: Excellent — reliable, highly precise detections.
- Broken Lamp: Very strong — high precision and consistency.
- Dent/Scratch/Crack: Weakest — fair performance, but prone to missed detections and slight localization drift (especially cracks).
This model is fully usable for visual inspection support. It is intended as an assistive tool—not a replacement—for human service advisors. It aims to accelerate visual inspections, flag overlooked damage, and ensure consistency across high-throughput intake workflows. Use for inspection workflows, damage logging, or visual diagnostics.
This model saves time, adds consistency, and helps document condition clearly before keys are handed over. It’s assistive—not autonomous. It gives advisors a head start.
- Pre-loaner vehicle inspections
- Service center damage logging
- Fleet condition audits
- Insurance pre-claim imaging
- Rental return documentation
An enhanced version of this model was developed for BMW service environments to support pre-loaner and service drive vehicle inspections.
BMW car dealerships did not have a simple, automated, and high-quality way to document the pre-existing condition of vehicles that entered their care. If the condition of vehicles was not recorded, customer disputes would often occur in regard to pre-existing damages. This problem would hurt customer relationships and cost the business significant amounts of capital.
Here’s how it works:
- Technicians or service drive cameras capture images of the vehicle exterior.
- The model runs inference and flags visible body damage.
- Detections are mapped to a standard car diagram automatically.
- Human service advisors review and finalize the report. (It’s assistive—not autonomous. It gives advisors a head start.)
This setup saves time, adds consistency, and helps document condition clearly before keys are handed over.
“Good enough” here means:
- Fewer missed issues
- Fewer false alarms
- Faster workflows
- Repeatable results across locations
trained.pt
— trained YOLO11m checkpoint
pip install ultralytics
from ultralytics import YOLO
model = YOLO("trained.pt")
results = model("your_image.jpg", save=True)
results[0].show() # Visualize output