Skip to main content

03/Computer Vision · Healthcareproduction

Medical Vision Pipeline

viso.ai, 2019 to 2021

Real-time inference over medical imaging, including CT, ECG, and retinal data, built for clinical and industrial deployment.

Architecture diagram for Medical Vision Pipeline: sources feed a pipeline of Capture, Preprocess, Infer, Validate, producing a grounded answer.

Problem

In diagnostic imaging a false negative and a two-second wait are both failures. Accuracy and latency have to be optimised together, against datasets where edge cases matter more than averages.

Result

Reached 92 to 95 percent accuracy while cutting GPU inference latency from roughly two seconds to under 300 milliseconds.

Pipeline stages

  1. 01

    Capture

    Studies arrive per modality. CT, ECG, and retinal data share almost nothing in geometry or in how they fail, so each carries its own handling from here down.

  2. 02

    Preprocess

    Decode, normalise, and shape each study into the form the model was trained on. Getting this wrong degrades accuracy silently, which is worse than an error.

  3. 03

    Infer

    The model runs quantised through an optimised inference runtime. Same architecture as the trained network, roughly an order of magnitude less time on the clock.

  4. 04

    Validate

    Performance is measured against annotated ground truth on held-out data, per modality, with edge cases weighted rather than averaged away. An average over a dataset where the rare finding is the point tells you nothing.

Decisions

  • Quantisation and an optimised runtime export

    Two seconds is not a clinical wait. The model was already accurate enough, so the remaining work was in serving it rather than training it: lower precision through a runtime built for inference, which is where most of the latency went.

    Cost
    Some accuracy. How much has to be measured per modality rather than assumed negligible, because the loss does not fall evenly across them.

  • The operating point is tuned for recall

    A missed finding and a false alarm are not the same error. One is caught downstream by a person and the other is not caught at all, so the threshold sits where sensitivity is favoured.

    Cost
    More false positives, and every one of them is real work for whoever reviews the output.

Stack

  • Python
  • PyTorch
  • OpenCV
  • GPU inference
  • AWS