IDNEO engineers developed image processing, computer vision, and machine learning algorithms in MATLAB and then generated code for the production Android implementation of the MDmulticard reader with Embedded Coder®.
The core image analysis algorithm, developed with MATLAB and Image Processing Toolbox™, performs color equalization and white balancing, converts the image to the CIELUV color space, computes color differences, and then locates fiducial markers on the card indicating band patterns in the image. The IDNEO team added band analysis to the core algorithm, creating a binary version of the image and then applying morphological operations to obtain skeleton images for each band on the card.
Next, they implemented a linear regression classifier trained with features extracted from the skeleton images. The classifier detects solid bands (classified as positive), the absence of bands (classified as negative), and mixed-field bands (classified as doubtful), which can occur when a patient has had a previous blood transfusion.
After testing the algorithms on the images provided by Grifols, the engineers designed a user interface with MATLAB App Designer. They used MATLAB Compiler™ to produce a standalone MATLAB app that Grifols engineers and selected hospital staff could use without installing MATLAB.
The IDNEO team generated production C code from the core image analysis algorithms with Embedded Coder. They tested the C code by comparing the results it produced with the results produced by the original MATLAB algorithms, using MATLAB Profiler to measure code coverage.
The team integrated the generated code into an Android app that provides a touch-screen interface to the Grifols MDmulticard reader.
To comply with the customer’s tight schedule, the IDNEO team used the Scrum process framework and continuous integration throughout development. MATLAB supported this workflow, with Jenkins jobs testing the code generated with Embedded Coder against a database of card images.
A fully validated, preproduction prototype of the card reader is undergoing usability testing at various hospitals in Spain. Meanwhile, IDNEO engineers continue to improve the accuracy of their algorithms, using the Classification Learner app in Statistics and Machine Learning Toolbox™ to evaluate support vector machines and other machine learning models.