Skip to content

Case study

Counting pipe at the gate with edge computer vision

A tubular goods distributor running three storage yards in Texas for oilfield and construction customers now gets a pipe count back in under a second at the gate, from a detection model trained on its own footage and running on hardware in the yard.

Named only with client approval Figures marked are illustrative Reply within one business day

Vision - line 3 camera

streaming

Warehouse detector v4 - 640x640 - centre aisle

pallet 0.97
forklift 0.93
person 0.99
pallet
97%
forklift
93%
person
99%

38ms

Inference

24/s

Frames read

1,284

Objects tracked

The engagement, in short

OlDevs built an automated pipe counting system for a tubular goods distributor running three storage yards in Texas for oilfield and construction customers.About 40,000 pipe ends from the client's own gate footage were labelled in CVAT with an active learning loop, then a detection model was fine tuned for the lighting and stacking patterns at each yard and exported to TensorRT to run on NVIDIA Jetson units at the gate. Counts return in under a second without depending on yard Wi-Fi, queueing locally and syncing to the inventory system when the link returns. The distributor reports −63% miscounted loads and −41% gate check time per truck across 3 yards running edge inference.

Key facts

01Client
Tubular goods distributor with three storage yards in Texas
02Industry
Industrial distribution, oilfield and construction supply
03Services
Computer vision, AI development
04Duration
5 months
05Platforms
NVIDIA Jetson at the gate, TensorRT inference, CVAT labelling
06Outcome
−63% miscounted loads, 3 yards running edge inference

The challenge

Two counts for every truck, and they rarely agreed

Every inbound truck was counted by hand at the gate, then counted again in the yard, and the two numbers regularly disagreed. Disputes over short loads were settled from memory and blurry phone photos, while yard crews lost hours a day to recounts instead of moving stock. Peak season made the backlog worst at exactly the wrong moment.

01

Counted twice, agreed once

Every inbound truck was counted by hand at the gate and counted again in the yard, and the two numbers regularly disagreed. Neither count carried any evidence with it, so a difference of a few joints turned into a conversation rather than a correction.

Manual counting · Data quality

02

Short load disputes settled from memory

When a hauler and the yard disagreed about a load, the argument was settled from memory and blurry phone photos. Nobody could produce a recorded count of what actually came off the truck, so the outcome depended on who pushed hardest.

Disputes · No audit trail

03

Crews recounting instead of moving stock

Yard crews lost hours a day to recounts, which is time not spent moving pipe or loading outbound trucks. The work was tedious, error prone and had to be repeated whenever a number was questioned, so the same load could be counted more than twice.

Labour cost · Throughput

04

Peak season made it worse

The backlog grew fastest exactly when the yards were busiest, because more trucks meant more counts, more disagreements and longer queues at the gate. The manual process failed hardest in the weeks the business could least afford it.

Peak load · Gate queues

What we built

A model trained on the client's own footage, running at the gate

We labelled about 40,000 pipe ends from the client's own gate footage in CVAT, with an active learning loop that returned only uncertain frames for review, then fine tuned a detection model for the lighting and stacking patterns at each yard. The model runs on NVIDIA Jetson units at the gate, exported to TensorRT so a count comes back in under a second with no dependence on yard Wi-Fi. Results queue locally and sync to the inventory system when the link returns.

01

A labelled dataset from real gate footage

About 40,000 pipe ends were labelled in CVAT from the client's own gate footage, so the model learned the stacks, bundles and camera angles it would actually meet rather than a tidy version of them from somewhere else.

CVAT · Dataset

02

Active learning loop for review time

Rather than labelling everything, an active learning loop returned only the frames the model was uncertain about for human review. Review effort went to the hard cases, which is how the dataset got to a useful size within the schedule.

Active learning · Annotation

03

Detection model tuned per yard

One detection model was fine tuned for the lighting and stacking patterns at each of the three yards, because glare at one gate and the way pipe is bundled at another are different problems even though the object is the same.

Fine tuning · Per site tuning

04

Edge inference that survives bad Wi-Fi

The model runs on NVIDIA Jetson units at the gate, exported to TensorRT so a count comes back in under a second. Results queue locally and sync to the inventory system when the link returns, so a weak yard signal never stops a truck.

NVIDIA Jetson · TensorRT · Offline first

Process

How the engagement ran.

  1. Footage and conditions

    We started from the client's own gate footage, looking at how pipe is stacked and how the light changes across the three yards, before deciding what the model would have to handle.

  2. Dataset and labelling

    About 40,000 pipe ends were labelled in CVAT from the client's own footage, with an active learning loop sending only uncertain frames back for human review.

  3. Model fine tuning

    A detection model was fine tuned for the stacking and lighting patterns at each yard, with a working version to look at every week rather than a status update.

  4. Edge deployment

    The model was exported to TensorRT and deployed on NVIDIA Jetson units at each gate, with local queueing so counts survive a dropped link to the inventory system.

  5. Rollout and handover

    We rolled the gates out yard by yard, then handed over the models, datasets, code and accounts so the client owns the whole system outright.

Stack

What it was built with.

Vision modelling

Object detection modelPer yard fine tuningSub second inference at the gate

Data and labelling

CVATActive learning loopClient gate footageAbout 40000 labelled pipe ends

Edge runtime

NVIDIA JetsonTensorRTGate camerasLocal result queue

Integration

Inventory system syncSync on reconnectA recorded count per inbound truck

−63%

Miscounted loads

−41%

Gate check time per truck

3

Yards running edge inference

Outcomes

What changed for the client.

01

Miscounts largely gone

−63% miscounted loads. The count on the ticket and the count in the yard now come from the same source, so a difference is an exception to investigate rather than the normal state of things.

02

Faster trucks through the gate

−41% gate check time per truck. A count returns in under a second at the gate, which shortens the queue behind it and stops peak season turning into a backlog.

03

Disputes have a recorded count behind them

Short load conversations with haulers now start from the count the system recorded at the gate and synced to the inventory system, instead of memory and phone photos, so they finish quickly or do not start at all.

04

Crews back on yard work

3 yards run edge inference, and the hours crews used to spend recounting are back in moving stock and loading outbound trucks. The work that remains is checking exceptions rather than repeating counts.

In their words

The client on the result.

The count on the ticket now matches the count in the yard, so the arguments with haulers have stopped.
AT

Yard operations lead, industrial pipe distributor

Industrial distribution

FAQ

Questions about work like this.

Because yards do not look alike. Lighting, camera angle, how pipe is bundled and how trailers are loaded all change what the model sees, and a model trained somewhere else fails on exactly those differences. Labelling about 40,000 pipe ends from the client's own gate footage is what made the counts hold up at all three yards.

It would if everything had to be reviewed. We used an active learning loop that returned only the frames the model was uncertain about, so human review went to the genuinely hard cases and not to thousands of easy ones. That is how the dataset reached a useful size inside a five month engagement.

Nothing stops. The model runs on NVIDIA Jetson units at the gate rather than in a data centre, so a count comes back in under a second whether or not the yard Wi-Fi is up. Results queue locally and sync to the inventory system when the link returns, which means the gate keeps working during an outage.

Because anything slower puts the truck, and the trucks behind it, into a queue. The count has to land while the driver is still at the gate for it to replace the manual check rather than sit beside it, which is why the model was exported to TensorRT and deployed on hardware in the yard instead of being called over a network.

Yes, and the pattern is the same. A new yard needs footage from its own gate and a round of fine tuning for its lighting and stacking, then the same edge deployment. The client owns the models, the datasets and the deployment code, so this can be done by their own team or with us, whichever suits.

Still have a question? Ask us when you request a quote

Let’s connect

Have a problem like this one?

Tell us what is not working. We’ll reply within one business day with how we would approach it and a tailored quote.

We’ll only use your details to prepare your quote. No lists, no spam.

Call us Request a quote