用户故事

IDNEO开发嵌入式计算机视觉和机器学习算法,用于解释血型结果

挑战

自动化医院工作人员使用的卡的视觉解释,以确定患者血抗原打字

解决方案

使用MATLAB开发,测试和生成图像分析和机器学习算法的嵌入式代码

结果

  • 超出精度要求
  • 项目完成时间减半
  • 优化系统交付

“随着使用嵌入式编码器的代码生成代码保存的时间,我们能够在MATLAB中进行新功能并完成额外的迭代,并将客户反馈纳入早期原型。”

Marc Blanch,Idneo

Grifols MDMulticard。


了解涉及医疗创伤的患者的血液抗原通常对医生提供有效治疗的必不可少。Grifols MDMulticard可以在仅需五分钟内从一滴血液中确定血液抗原。该卡采用基于免疫色谱条的横向流动技术,以显示指示关键抗原的存在或不存在的不同红条带。

为了帮助临床医生解释MDMulticard结果,Grifols聘请IDNEO开发自动读卡器。卡读卡器的软件,在Matlab开发®并在Android目标硬件上实现,包括图像处理,计算机视觉和机器学习算法,可将卡上的频带的图案和形状转化为血液抗原打字结果。

“MATLAB使我们能够迅速分析图像并改善了几个迭代的算法,”Idneo的Marc Blanch,R&D硬件主管说。“在我们开发了算法之后,Matlab可以轻松将它们部署到嵌入式系统。在C或另一种语言中这样做是更困难的,特别是在短时间内。“

挑战

MDMulticard上的红色频段有时是Messhapen或因湿度,温度,患者的输血历史而褪色,用于稀释血液样品的手动过程,或其他因素。因此,IDNEO团队需要开发能够处理带状模式和形状的显着变化的算法。该团队在项目开始时只能访问有限数量的卡片。他们需要一个支持快速迭代的工作流程,以便他们可以轻松地改金宝app进算法,因为它们收到了更多带有不同频带模式和形状的卡。

Grifols和Idneo希望尽快提供原型,以便在算法部署到生产硬件之前,临床工作人员能够在软件上提供反馈。由于该团队正在研究一项短时间,因此他们希望采用敏捷的开发方法,使他们能够将客户输入纳入并迅速反应转换要求。

解决方案

IDNEO工程师开发了MATLAB的图像处理,计算机视觉和机器学习算法,然后生成了具有嵌入式编码器的MDMulticard读卡器的生产码®

使用MATLAB和图像处理工具箱™开发的核心图像分析算法执行颜色均衡和白色平衡,将图像转换为CIELUV颜色空间,计算颜色差异,然后在卡上的卡上定位基准标记指示图像中的频带模式。IDNEO团队向核心算法添加了频段分析,创建了图像的二进制版本,然后应用了形态操作以获得卡上每个频带的骨架图像。

接下来,它们实现了由从骨架图像中提取的特征培训的线性回归分类器。分类器检测固体带(分类为正),没有带(分类为阴性)和混合场带(分类为可疑的),当患者患有先前的输血时可能发生。

在通过Grifols提供的图像上测试算法之后,工程师设计了与Matlab App Designer的用户界面。他们使用MATLAB Compiler™来生产一个独立的MATLAB应用程序,Grifols工程师和所选医院工作人员可以在不安装MATLAB的情况下使用。

IDNEO团队从带嵌入式编码器的核心图像分析算法生成生产C代码。他们通过使用原始MATLAB算法产生的结果进行比较使用MATLAB分析器来测量代码覆盖率来测试C代码。

该团队将生成的代码集成到Android应用程序中,为Grifols MDMulticard Reader提供触摸屏界面。

为了遵守客户的紧张时间表,Idneo团队在开发中使用Scrum过程框架和持续集成。Matlab支金宝app持此工作流程,Jenkins作业测试使用嵌入式编码器生成的代码,而不是卡片图像数据库。

读卡器的完全验证的预生产原型是在西班牙的各种医院进行的可用性测试。同时,IDNEO工程师继续提高算法的准确性,使用统计和机器学习工具箱™中的分类学习者应用程序来评估支持向量机和其他机器学习模型。金宝app

结果

  • 超出了精度要求。“我们的客户在识别正负乐队时,要求大于90%的准确性,”Blanch说。“我们在Matlab中开发的算法在样本数据集中产生了零误报或假否定,因此我们超过了该要求。”
  • 项目完成时间减半。“MATLAB和嵌入式编码器使我们能够减少24个月至12个月内完成项目所需的时间 - 如果没有向团队添加更多工程师,”Blanch说。“这种方法使团队成员能够专注于他们的特定角色,使我们更有效并且减少软件错误的数量。”
  • 优化系统交付“使用嵌入式编码器为设备生成C代码,使我们能够完全集中精力开发和优化我们的算法,”Blanch说。“因此,我们能够在我们的时间内提供更高质量的系统。”