Truck Parts Identification App

A mobile app that identifies truck parts from photos and asks when it is unsure

About the project

  • Client: a supplier of heavy-truck parts (name not disclosed)
  • Industry: Commercial vehicles and spare parts
  • Part types: air springs, disc brake pads, brake camshafts
  • Technologies: Flutter, FastAPI, LangGraph, PostgreSQL, Docker, Claude API
  • Status: working system, checked on real parts

We built a truck parts identification app that names a part from photos. A specialist stands in a workshop with the part in hand, and the question is simple: which catalog item is it?

However, heavy-truck parts make the answer hard, and a general image classifier does not cope. So our app also knows when the photos are not enough. In that case it asks a question instead of guessing.

The AI only observes. Fixed rules decide, so the same photos always give the same answer.

The key idea of truck parts identification: the AI observes, rules decide

Instead of asking one model "which part is this?", we split the work in two. First, a vision model only describes what it sees: the construction, the number of mounts, the ports, the outline and any printed numbers. Each observation carries a confidence level and a source.

Then fixed rules in code decide which catalog item fits. The model that describes the part never sees the catalog, so it cannot fit its description to an expected answer. As a result, the same photos always lead to the same decision. In addition, we can test every rule automatically, without paid model calls.

How it works for the user

In the truck parts identification app, the user first takes one to eight photos. Before each shot, the camera checks the light, the framing and a steady hold. Then the app uploads the set and shows the stages: part type, preparation, features, questions, catalog and decision. A scan usually takes 25 to 50 seconds.

If the photos are enough, the app shows the part with its specification and interchangeable numbers. Otherwise, it moves on to a short question.

Questions instead of guesses

In truck parts identification, a wrong guess means an ordered wrong part, so the system asks when it is unsure. When several candidates remain, it asks about what actually separates them. It calculates which question removes the most uncertainty and asks at most three at a time. For example, it asks how many mounts the top plate has, or it asks for a length in millimetres or inches.

Because "Not sure" is always a valid answer, nobody has to guess. Moreover, the user can answer later, straight from the result screen. In that case the app repeats only the comparison, so it makes no new paid model call.

Honest results

The result is always one of three states. Identified means the evidence is verifiable: a printed number, a known marking, or measurements the user confirmed. Close matches shows several candidates, what matched and what differs. Not identified says so plainly and suggests what to do next.

An incomplete result never passes for "no such part". Likewise, the app never shows its internal score as a percentage, because a score only orders the candidates and proves nothing.

Truck parts identification: three part types, three kinds of evidence

What turned out to be hard

  • Unstable reading. The model can describe the same photos slightly differently between runs, for example one air spring's bottom mount. So we added a confirmation step.
  • Poor source photos. Photos of a laptop screen make printed codes hard to read. Therefore two codes of one pad now count as identification, while a single low-confidence reading only suggests.
  • Cardboard backgrounds. A pad shot face-on on cardboard gave a wrong leader in one case out of four. For that reason such outlines now only rank candidates.
  • Indistinguishable parts. Two camshafts differ in length by less than the tolerance. The app says so and returns a family of equivalent parts, not a false certainty.
  • Gaps in the data. Plate dimensions exist for four pad families out of thirteen. We treat the rest as unknown, not as non-matching.

Speed and cost

The first version of the truck parts identification pipeline spent paid model calls on steps that plain code can do alone. So we moved those steps out of the model, one by one. A separate, cheaper model now detects the part type and never sees the catalog. Code compares pads and camshafts. A second model step runs only for the few air-spring pairs that code cannot separate.

As a result, the eighth version of the pipeline cuts the time per scan by 53 percent and the cost by 59 percent. A first scan of one part now costs about $0.3 to $0.5. These are internal measurements on our test photos.

−53%
time per scan
−59%
cost per scan
22/22
part types detected correctly
$0.3–0.5
for a first scan of one part

How we check the quality of truck parts identification

  • About 335 automated tests for the recognition agent, plus 45 for the media service and 19 for the catalog
  • 138 tests for the mobile app, all against a fake backend
  • Offline replays of saved model observations, so a rule change cannot silently break a correct result
  • Paid scans only with explicit permission, and a live scan confirms a result but never serves for debugging
  • A check on real parts: four brake pads, two air springs and three camshafts

Result and what's next

Today the truck parts identification system names parts of three types on the real photos we tested. It either names the part or narrows the choice to a family of equivalents, and it always explains why. In addition, the catalog shows 1,200 parts with specifications and interchangeable numbers.

Next, we plan to extend the recognition data to more part families and to decide on reading stamps on camshafts once legible photos are collected. After that comes a release build with user accounts and a scan history on the server.

Looking for similar work? See our mobile development services or read how we built a taxi fleet platform.

Need a truck parts identification app or a similar product? Tell us about your task.

SEE MORE OUR CASE STUDIES

Contact us



Please fill out the form, and we will get back to you once your request has been processed.

You can also send your request directly to our email: info@24gen.space
We will respond as soon as possible after receiving your message.
 






    PDF, DOC, DOCX, JPG, GIF, PNG — up to 20 MB