Challenge

The client worked with P&IDs from multiple EPCs, each using different symbology sets for inline instruments like flow transmitters, pressure indicators, and control valves. Their goal was to automate inline instrument detection, but off-the-shelf models failed to deliver:

  • Generic object detection models gave 60–70% accuracy at best
  • Custom symbols like dual-sensor transmitters were not recognized at all
  • False positives in dense P&IDs created more cleanup than manual annotation

“We needed a model that knew the difference between a pressure switch and a pump tag.”

Solution

Storm Consulting proposed building a custom-trained object detection model, tuned specifically to the symbology used across the client’s active projects.

Key actions included:

  • Collecting ~400 labeled samples per instrument class from their historical drawings
  • Preprocessing and augmenting images (contrast, skew, blur, invert, rotation)
  • Using YOLOv5 architecture for speed and lightweight deployment
  • Running inference locally inside their existing annotation app

Implementation Highlights

  • Achieved 92% detection accuracy on the validation set within 10 epochs
  • Average inference time: ~20ms per element, making it suitable for batch use
  • Detection results exported as bounding box + class for downstream annotation
  • Model wrapped in a Python module, callable from both desktop and console apps
  • Added confidence-based filtering to minimize false positives in busy layouts

Results

MetricGeneric ModelStorm’s Custom Model
Detection accuracy~68%92.4%
Required training imagesN/A~1,600 (across 4 classes)
Time to deployNot usable4 business days
False positives (per 100 tags)~15< 4
Inference speed (per symbol)~300ms (cloud)~20ms (local)

“This was the first AI model we didn’t have to ‘work around.’ It actually understood our symbology.” — Process Engineering Consultant, Client Team

Why It Worked

  • A project-specific training dataset eliminated the mismatch seen with public models
  • YOLOv5 provided a balance of accuracy and runtime performance
  • Lightweight integration made the model usable from both CLI and UI interfaces
  • Confidence scoring allowed the client to review only ambiguous detections
  • The model required zero re-training after initial delivery

Share

Like this? Share it with your network!