Nizomiddin Xalilov

Work / Smart Yard — Computer Vision for the Truck Yard

2026 · International logistics company In progress

Smart Yard — Computer Vision for the Truck Yard

Seven yard cameras, one pipeline: detect the vehicle, read its USDOT and unit numbers, check the carrier and open the gate.

Source code is private

The yard's cameras produced thousands of photos but no answers: which truck is this, who does it belong to, should the gate open? I trained a set of YOLOv11 models on our own yard footage — vehicle type, colour, USDOT and unit numbers, trailer units — and joined their outputs into one case per vehicle, checked against the FMCSA registry.

Model accuracy
82–95%

Detection, colour and number-reading models

Training images
1,500+

Labelled from our own yard cameras

Camera streams
7

Merged into one case per vehicle

Problem

Cameras that see everything and tell nothing

Seven cameras watch the yard and drop snapshots into an inbox in no particular order. One truck can produce a dozen photos from four angles, mixed with every other vehicle that passed at the same time.

The off-the-shelf smart cameras could read licence plates, but not the USDOT number or the unit number painted on the cab — the two identifiers a logistics company actually works with. Ready-made colour models also failed on our footage: low sun, shadows and dirty trailers made a grey truck look white.

Decisions & trade-offs

Several narrow models instead of one clever one

  • Vehicle detection — YOLOv11 separates truck, truck with trailer and car in real time.
  • Colour — a model trained on yard photos, because generic colour models broke on our lighting.
  • USDOT and unit reading — a detector finds the number on the cab, then the crop is read. The USDOT goes to the FMCSA API, which returns the company, its status and contact details.
  • Trailer unit reading — the new home cameras and plate cameras could not read trailer numbers, so a separate model does.
  • Case summary — everything above is joined into one case per vehicle: type, colour, USDOT, unit, plate and the photos that prove it.

Small models are easier to retrain and to debug: when a number is misread, it is obvious which stage failed.

Architecture

How it fits together

7 cameras → vehicle detection (YOLOv11) → colour model
                        ↓
        USDOT / unit / trailer-unit reading
                        ↓
     FMCSA API (company, status, contacts)
                        ↓
  case per vehicle → gate rules → open / close
                        ↓
          event log (Django + PostgreSQL)
Outcome

Where it stands

Each model reaches 82–95% accuracy, trained on more than 1,500 labelled images from the yard.

The gate logic runs on two cameras: the outside camera detects an arriving vehicle and sends the open command; the inside camera sees it pass and sends the close command. Every decision is written to an event log. Right now cars pass automatically, while trucks wait for the payment step. The next stage is letting trucks with a monthly yard subscription through without a stop.

What I'd do differently

What I would do differently

I would start collecting the hard frames — glare, rain, night, a truck half out of view — from the first day. The models improved most when those cases went into the training set, and early on I was discarding them as noise.