Embedded hardware lab bench with camera-equipped test units used for on-device object detection

Case study · Edge AI and embedded systems

On-device object detection without a cloud round-trip

A US industrial device manufacturer needed real-time object detection on its camera-equipped hardware without streaming every frame to the cloud. Brainy Neurals built an on-device inference pipeline that runs a compact detector on the board’s neural processing unit. The device now captures, detects, and renders every frame itself, with zero cloud calls.

Cloud calls per frame

0

Detection running on the device

100%

Boards from capture to render

1

Prasiddh Mori, Edge AI Engineer at Brainy Neurals

Prasiddh Mori, Edge AI Engineer.

He led this build on the board’s NPU, from the first failing port to the firmware image that ships.

Technically reviewed by Mitesh Patel, NVIDIA Certified AI Architect

Published August 2026 · Last updated August 2026 · 12 min read

01 · At a glance

At a glance

What problem did this solve?
Camera-equipped industrial devices could not run object detection in real time on their own. Cloud inference filled that gap and brought latency, bandwidth cost, and connectivity risk.
What did Brainy Neurals build?
Brainy Neurals built an on-device object detection pipeline for a US industrial device manufacturer. A compact detector runs on the board’s neural processing unit (NPU), in C.
What changed after it went live?
Detection now runs on the device, with no cloud round-trip and no per-frame bandwidth bill. A dropped connection no longer stops it, and rollout got faster.
Who else could use this?
On-device object detection fits any team shipping camera-equipped hardware where frames cannot wait for a network. Shelf cameras, dock cameras, and factory inspection stations all qualify.

Engagement facts

Industry
Industrial Internet of Things
Sub-vertical
Camera-equipped devices
Client
US industrial device manufacturer
Engagement
Edge AI inference platform
Timeline
Not disclosed
Capabilities
Computer vision, edge AI
Delivery
Project-based delivery

02 · The problem

Why couldn’t detection stay on the device?

A US industrial device manufacturer ships camera-equipped hardware into places where the network is not guaranteed. The devices had to spot objects in the frame as things happened, not a second later. But the first version sent every frame to the cloud, because on-device inference on that board had never worked.

Technician seating a network cable into a cellular gateway, the uplink cloud inference depended on
Before the on-device build, every camera depended on an uplink like this one, and a loose cable meant no detection.

Where it broke

  1. Every frame left the device, so the uplink bill rose with every camera switched on.
  2. Every detection waited on a round-trip, so an alert arrived after the moment it described had passed.
  3. Every network drop turned a smart device into a plain camera until the connection came back.
  4. Every attempt to run the model on the board’s main processor stalled below usable frame rates.
  5. Every naive port ran out of memory before it ran out of ideas.

None of this was news. A 2016 edge computing survey listed response time, battery life, and bandwidth cost as reasons to compute on the device [1].

03 · Alternatives

What do teams usually try first?

Four routes, all sensible.

Approach What it gets right Where it stops Who it still suits
Cloud inference Any model size, easy updates Latency and bandwidth on every frame Solid connections, low frame rates
CPU only No new hardware Single-digit frame rates, rising heat Snapshots, not live video
Smart camera Works out of the box Fixed classes, closed firmware Pilots with standard objects
NPU detector, our route Real-time frames on the existing board Weeks of memory and operator work Devices deciding alone, in volume
CLOUD CPU ONLY SMART CAMERA NPU ON BOARD NETWORK FRAME RATE FIXED CLASSES REAL TIME CAMERA
Three common routes each stop at a wall the fourth one does not meet.

An independent benchmark measured co-processor models running roughly ten times faster than the same models on an embedded CPU [2].

04 · The solution

How we designed the on-device pipeline

Brainy Neurals built the whole pipeline to live on one board, with camera, NPU, and display sharing one memory pool. The camera writes into a fixed ring of buffers. A compact single-pass detector runs each frame on the NPU, and the main processor draws the result.

Nothing waits on a network, because there’s no network in the loop.

Decision 01 · Where detection lives

The first decision was where detection would live. We rejected a hybrid design that offloaded hard frames, because a device that sometimes needs a network still needs one. So the detector had to run every frame locally, and a single-pass model was the only shape small enough.

Decision 02 · What the processor touches

The second decision was what the main processor would touch: capture setup and drawing, in C, nothing else per frame. Python stayed in the toolchain for conversion, calibration, and tests, never on the device at run time.

The object detection model is the least interesting part of this build, and everything around it made it work.

D1 · The system and its boundary

THE DEVICE 9 Cloud NOT IN THE LOOP 1 Camera sensor 8 Firmware image SHARED MEMORY 2 Buffer ring MAIN PROCESSOR, C 3 Pack and resize NPU 4 NPU detector MODEL WEIGHTS 5 Decode boxes 6 Render overlay SLOT FREED 7 Display or event out
Every stage from capture to render runs on one board, and no frame leaves it.

05 · The stack

The technology stack we used

Every layer had to earn its place on a board with a fixed power budget. We chose each one for what it does per watt. The same layers show up in our camera analytics builds, with a different board underneath.

Hardware and capture

Layer What we used Why What we ruled out
Compute board Client’s existing board, NPU included Already qualified Discrete accelerator module
Camera path Vendor capture into shared memory One copy per frame USB camera stack

Model and runtime

Layer What we used Why What we ruled out
Detection model Compact single-pass detector One pass per frame, real time Two-stage detectors
Precision Reduced numerical precision Where this NPU is fast Full precision on CPU
NPU runtime Vendor runtime, from C Operators stay on the accelerator Generic library

Application and delivery

Layer What we used Why What we ruled out
Application C for the frame loop Predictable timing Python on the device
Tooling Python for conversion, calibration, tests Fast to change, never ships Hand-kept spreadsheets
Deployment Firmware image, model baked in One artifact per device Pulling models at boot

06 · How it works

How does one frame get processed?

One frame, start to finish, in the order the device sees it.

MAIN PROCESSOR NPU FRAME N FRAME N+1 1 Capture to ring 2 Pack and resize 3 NPU inference CAPTURE PACK OVERLAP 4 Decode and drop overlaps 5 Render 6 Release slot TIME
The processor packs the next frame while the NPU works on the current one, which sets the frame rate.
  1. The camera writes a frame into the next free slot of a fixed buffer ring, so nothing is allocated mid-stream.
  2. The main processor resizes and packs that frame into the layout the NPU expects, in one pass, in C.
  3. The NPU runs the compact detector on the packed frame while the processor is already preparing the next one.
  4. The processor decodes the raw outputs into boxes and labels, and drops overlapping boxes before anything is drawn.
  5. The renderer draws the boxes onto the live frame and hands it to the display or event output.
  6. The buffer slot goes back into the ring, and the loop starts again without a single call leaving the board.

Six steps, and the network appears in none of them.

07 · Challenges

The three problems that nearly stopped us

Three things went wrong, in this order.

Compute board with a heatsink packed into a sealed enclosure, the thermal limit for edge AI inference
A sealed enclosure leaves the board no room to shed heat, which is why sustained load throttled the first build.

Failure 01

The first port ran out of memory before it ran out of frames, within seconds of starting. Camera, NPU, and processor all drew from one pool, and each copy of a frame counted three times.

Failure 02

Some layers of the detector had no NPU equivalent, which nothing in the toolchain flagged. The runtime ran them on the CPU without complaint. And the frame rate quietly collapsed.

Failure 03

Sustained load pushed the board past its power budget, and it slowed itself down to cope. Detections were still correct. They were also late, which is the same as wrong.

A 2026 benchmark on low-cost edge chips agreed: memory bandwidth, not compute, decides whether detection survives a busy board [3]. These are the weeks when clients ask about bringing in specialist engineers rather than learning it the slow way.

08 · The fix

How we fixed each of them

Each fix is short to describe. None was short to find.

Memory

We replaced every per-frame allocation with a fixed ring of buffers sized at boot. Then we rewrote the capture path so the NPU reads the camera buffer directly, one copy per frame. The crash never came back.

Fallback

We rebuilt the offending layers from operators the NPU supports and made any CPU fallback fail the build. A slow layer now fails the build before it ever reaches a device.

Power

We trimmed the model to the client’s object classes and lowered the input resolution until each frame finished with headroom. The board stopped throttling, and the timing held under sustained load, which the demo build never survived.

CAMERA WRITE NPU READ ONE COPY ALLOCATED AT BOOT IN USE NEXT FREE BEFORE
A fixed ring of buffers, allocated once at boot, replaced every per-frame allocation.

The buffer ring, incidentally, is an old trick. Audio drivers have used it for decades.

This is the work a proof of concept exists to surface, before anything is promised.

09 · Results

What changed after go-live?

What Before After
Where detection runs In the cloud, after an upload On the device, on the NPU
Cloud calls per frame One round-trip per frame Zero
Behavior when the network drops Detection stops Detection continues
Cost that grows with each camera Cloud inference and bandwidth Neither
Bringing up a new device Cloud account, uplink, and provisioning One firmware image

We have not published a frame-rate, latency, or power figure, though the client reports all three improved. A number we have not measured is a number we will not print.

Day to day, a customer can switch on a device in a room with no network, and it works. Because the compute was bought once, with the board, the bill for detection stops growing with the camera count.

Rollout got faster for the same reason.

Start here

What does your device need to see?







    10 · Running today

    What is running today

    The on-device object detection pipeline runs in production on the client’s devices, on the same board the first prototype used. Each unit runs the whole loop on its own, and nothing about that changes when the network does.

    Since handover, the client has rolled the same image across more of its device line for manufacturing customers. The model rides along as one more file in that image, versioned with the firmware it belongs to. Python never made it onto the device, and that is still the rule.

    Assembler fitting a lens module into a device housing on an embedded computer vision production bench
    Each unit leaves assembly with the detector baked into its firmware, and it needs no cloud account to start working.

    11 · Lessons

    What would we do differently?

    Check operator support before choosing the model

    We picked the detector first and found the unsupported layers second. The order should have been reversed, and it cost time we hadn’t budgeted for.

    Measure memory traffic on day one

    Accelerator specs advertise compute, so that is what we profiled, and bandwidth turned out to be the real limit. We found it by crashing.

    Run the soak test before the demo

    A pipeline that holds for a demo and throttles over a shift is not done.

    We now run every candidate build hot, for hours, before anyone sees it.

    Keep Python off the device from the first commit

    It’s tempting to prototype the frame loop in Python and port it later. The port is the project, so start in C.

    12 · Where else

    Where else does on-device detection fit?

    On-device object detection finds objects in live video by running a compact detector on the camera hardware itself. It belongs wherever a frame cannot wait for a network.

    Industry The equivalent problem What changes in the build
    Retail Shelf cameras spotting gaps before shoppers do Retrain on packaging, send events on change
    Logistics Warehouse dock cameras counting pallets with no site network More pixels for small boxes, costing frame rate
    Manufacturing Inspection stations catching defects before the next part Tighter timing, a reject signal to the line
    Agriculture Field sensors watching crops on a solar budget Duty-cycled capture, a smaller model
    Fleet safety In-cab cameras flagging distraction on the move Vibration-proof mounting, strict rules on what leaves the cab
    EVENT ONLY NO VIDEO LEAVES CAMERA UNIT GAP STORE SHELF
    The same on-device pattern watching a store shelf, with events leaving and video staying.

    Porting takes a retrained detector, an operator check on the new board, and a soak test.

    13 · Questions

    Questions buyers usually ask

    How it works

    Can object detection run in real time on an embedded device?

    Yes, if the board has an accelerator and the model is built for it. A compact single-pass detector on an NPU handles live video on one board. On the CPU alone, it usually doesn’t.

    What is an NPU, and why use one instead of a GPU?

    A neural processing unit is a block of silicon built only for neural network math. It runs detection on a fraction of a GPU’s power. On a small device, that power budget is the whole argument.

    How is edge AI inference different from cloud inference?

    Edge inference runs the model on the device that captured the data, so no video leaves the site. Cloud inference ships each frame over a network and waits for the answer to come back.

    Time, cost, and rollout

    How long does it take to move a detection model onto an NPU?

    A proof of concept on your own board usually takes a few weeks. Operator support, memory layout, and thermal behavior each need a pass. A production image follows once the soak test holds.

    How much does an on-device object detection build cost?

    The cost depends on the board, the object classes, and what already exists. Brainy Neurals scopes it from a short call and a look at the hardware, then quotes a fixed price. An AI readiness assessment tells you first whether your board can carry the model.

    How do the costs of edge AI and cloud AI compare over time?

    Edge hardware is a one-time cost per device, and cloud inference is a recurring cost per frame. At low volumes the cloud is cheaper to start. Ship devices in volume for years, and on-device wins by more each year.

    14 · Services

    The services this was built from

    A proof of concept is the fastest way to test this on your board. AI consulting helps choose the hardware first. An AI readiness assessment tells you whether the model will fit, and the industries hub shows where this already runs.