卡索practicos

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

挑战

自动可视化解读医院工作人员用于确定患者血液抗原分型的卡

解决方案

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

结果

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

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

马克·布兰奇,IDNEO

Grifols多功能卡片。


了解医疗创伤患者的血液抗原分型通常对医生提供有效治疗至关重要。Grifols MDmulticard可以在五分钟内从一滴血中确定血液抗原类型。该卡使用基于免疫层析条带的横向流动技术来显示不同的红色条带,指示关键抗原的存在或不存在。

为了帮助临床医生解释MDmulticard的结果,Grifols与IDNEO合作开发了一种自动读卡器。该读卡器的软件,在MATLAB中开发®并在Android目标硬件上实现,包括图像处理、计算机视觉和机器学习算法,这些算法可以将卡片上的带的模式和形状转换为血液抗原分型结果。

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

挑战

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

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

解决方案

IDNEO工程师在MATLAB中开发了图像处理、计算机视觉和机器学习算法,然后为带有嵌入式编码器的md多卡读取器的生产Android实现生成代码®

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

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

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

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

该团队将生成的代码集成到一个Android应用程序中,该应用程序为Grifols md多卡读取器提供了一个触摸屏界面。

为了满足客户紧迫的时间安排,IDNEO团队在整个开发过程中使用了Scrum过程框架和持续集成。MATLAB支金宝app持此工作流程,Jenkins工作测试与嵌入式编码器对卡图像数据库生成的代码。

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

结果

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