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

挑战

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

解决方案

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

结果

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

“通过使用Embedded Coder生成代码节省的时间,我们能够试验新的功能,并在MATLAB中完成额外的迭代,结合客户对早期原型的反馈。”

马克•漂白IDNEO

的Grifols MDmulticard。


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

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

IDNEO的研发硬件主管Marc Blanch说:“MATLAB使我们能够快速分析图像,并通过多次迭代改进算法。”“在我们开发了算法后,MATLAB使其易于部署到嵌入式系统。用C语言或其他语言做这件事会困难得多,尤其是在短时间内。”

挑战

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

Grifols和IDNEO希望尽快交付原型,以便临床工作人员在算法部署到生产硬件之前提供软件反馈。由于团队的工作时间很短,他们希望采用敏捷开发方法,使他们能够结合客户的输入,并对变化的需求快速做出反应。

解决方案

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

核心图像分析算法,由MATLAB和image Processing Toolbox™开发,执行颜色均衡和白平衡,将图像转换到CIELUV颜色空间,计算颜色差异,然后在图像中指示波段模式的卡片上定位基准标记。IDNEO团队将波段分析添加到核心算法中,创建图像的二进制版本,然后应用形态学操作获得卡上每个波段的骨架图像。

接下来,他们用从骨骼图像中提取的特征来训练线性回归分类器。该分类器可检测出实带(分类为阳性)、无带(分类为阴性)和混合带(分类为可疑),这可能发生在患者以前输血时。

在对Grifols提供的图像进行算法测试后,工程师使用MATLAB App Designer设计了一个用户界面。他们使用MATLAB Compiler™生成了一个独立的MATLAB应用程序,Grifols工程师和选定的医院工作人员可以在不安装MATLAB的情况下使用。

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

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

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

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

结果

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