【深度学习:构建医学图像】如何构建医学图像的 QA 工作流程

在这里插入图片描述

【深度学习:构建医学图像】如何构建医学图像的 QA 工作流程

    • 第 1 步:选择并划分数据集
    • 第 2 步:准备使用多个盲注进行注释
    • 第三步:建立图像标注协议
    • 第 4 步:在少数样本上练习医学图像注释
    • 第 5 步:发布第一批图像以在注释工具中进行标记
    • 第6步:发布剩余数据进行标注并实施持续标注监控
    • 构建医学注释工具意味着了解医学专业人员

在构建任何计算机视觉模型时,机器学习团队需要带有高质量注释的高质量数据集,以确保模型在各种指标上表现良好。

然而,当涉及到为医疗保健用例构建人工智能模型时,风险就更大了。这些模式将直接影响个人的生活。他们需要对由没有太多空闲时间的高技能医疗专业人员注释的数据进行训练。他们还必须遵守较高的科学和监管标准,因此为了将模型从开发阶段投入生产,机器学习团队需要使用尽可能最佳的数据和最佳注释对其进行训练。

这就是为什么每个计算机视觉公司——尤其是那些构建医疗诊断模型的公司——应该有一个用于医疗数据注释的质量保证工作流程。

构建图像注释的质量保证工作流程需要制定适当的流程,以确保标记的图像具有尽可能高的质量。当涉及医学图像注释时(无论是放射学模式还是任何其他用例),在构建 QA 工作流程时还需要考虑一些其他因素。如果您在构建工作流程时考虑到这些注意事项,并在开始注释过程之前准备好工作流程框架,那么您将在模型开发的后期阶段节省时间。

由于医学图像注释需要医疗专业人员,因此注释可能是构建医学人工智能模型的一个成本高昂的部分。在开始模型开发之前拥有用于图像注释的 QA 工作流程可以帮助公司相应地进行预算,并减少浪费注释者时间而导致公司损失的风险。

第 1 步:选择并划分数据集

医学模型需要对大量数据进行训练。您的公司需要获取高质量的训练数据,同时仔细考虑模型在指定任务上表现良好所需的数据量和类型。例如,某些肿瘤比其他肿瘤更罕见。然而,如果模型“在野外”遇到罕见肿瘤,则需要能够对它们进行分类,因此源数据必须包含足够的这些肿瘤的示例,以学会准确地对它们进行分类。

在开始构建 QA 工作流程之前,需要将部分数据从收集的总数据中分离出来。这一部分成为测试数据——您将在训练和验证阶段之后使用从未见过的数据来确定您的模型是否满足发布到临床环境所需的性能阈值。机器学习或数据工程团队中的任何人都不应实际访问这些数据,因为当获得监管部门批准时,公司将必须进行临床研究,而这样做将需要使用未曾见过的未触及的数据由模型或任何从事模型工作的人。理想情况下,这些测试数据将被复制到单独的硬盘驱动器上并保存在单独的物理位置,以便减轻在监管审批过程中显示合规性的负担。

在构建医学成像模型时,您还需要仔细考虑训练模型所需的注释的数量和类型。例如,对于那些罕见的肿瘤,您需要决定需要标记多少个示例、注释者标记它们的频率以及注释者如何对它们进行分类。

您的公司可能会获取数百万张乳房 X 光检查或 CT 扫描,但实际上,医疗专业人员没有足够的时间来标记所有这些数据,因此您必须决定如何安排注释过程。

为此,您必须确定代表性数据的数量,并将该数据分为训练集和验证集。但是,在分割数据之前,您还需要决定每条数据将被标记多少次。通过计算共识,您可以确保您不是对单个注释器进行建模。

第 2 步:准备使用多个盲注进行注释

在医学成像中,单一标记是不够的。这些图像需要由不同的贴标机进行多个标签,就像临床实践中扫描需要由多个医生读取一样。在大多数欧洲和北美国家,双重读取是标准做法:每张医学图像由至少两名放射科医生读取。

至少,您的验证集需要进行双重标记。这意味着不同的注释者需要标记同一条数据。此外,您可能希望让注释者多次标记相同的数据。通过这样做,您可以计算读取器内部和内部的一致性。当然,拥有多个注释者的成本很高,因为这些注释者是医疗专业人员(通常是放射科医生),具有丰富的经验。

大部分数据(例如 80%)将属于训练数据集。与医学图像注释相关的成本和时间限制通常意味着训练数据通常仅是单标记的,这使得模型能够以更低的成本更快地开始训练。

然而,构成验证集的剩余数据将在完成训练后用于评估模型的性能。大多数公司应该致力于为验证数据提供额外的标签。让五个左右的注释者标记每个图像将提供足够的意见以确保模型的预测是正确的。您拥有的意见越多,模型对特定放射科医生意见的偏见就越少,并且可以更好地概括未见过的数据。

这种分工应该在设置注释管道时确定。注释者不知道一条数据被标记了多少次,理想情况下标记总是盲目完成的。他们不应该互相交谈或讨论。在医院环境中工作时,这种保密性并不总是得到保证,但当与分散的放射科医生小组一起工作时,双盲保持完整且不受影响。

第三步:建立图像标注协议

现在您已经收集并划分了数据,您需要为放射科医生建立标签协议。

标签协议提供了注释图像中“感兴趣的结构”(肿瘤、钙化、淋巴结等)的指南。标记这些结构的正确方法并不总是简单的,并且在临床常规中所做​​的事情和训练机器学习所需的事情之间通常需要进行权衡。

例如,假设您有一个肿块——例如乳房就是一个致密区域。该质量可以是圆形的,但也可以是星形的。注释者需要知道他们是否应该圈出质量或紧贴轮廓。该决定取决于人工智能系统在临床环境中需要做什么。如果您正在训练一个只需检测质量是否存在的系统,那么松散的注释可能就足够了。然而,如果系统试图区分不同形状的物体,那么您可能需要按照其精确的轮廓来非常仔细地对其进行分割。通常,不规则形状的肿块往往是更具侵袭性的癌症的迹象,因此机器肯定需要能够识别它们。

另一个例子是医学成像中的钙化,它看起来像医学图像上的椒盐噪声。那应该怎么注释呢?一个盒子里装满了所有的谷物?每个颗粒周围都有一个圆圈?大的边界框意味着机器学习的妥协,因为它既包含钙化点,也包含正常组织,但要求医生注释数百个小点也是不合理的。您需要在标签协议中详细说明注释者在这种情况下应该做什么。在扫描中遇到其他物体(例如起搏器和乳房植入物)也是如此。如果注释者需要标记这些对象,那么您必须指示他们这样做。

机器学习团队的成员和具有临床背景的人员应该一起制定标签协议,因为不同的主题专家对这些事情的看法不同。请记住,医生不会考虑区分起搏器和肿瘤。他们拥有多年的经验和批判性思考的能力,因此对他们来说,有人将起搏器误认为是癌性肿瘤,这似乎很荒谬。然而,模型无法推理:它们只会了解医学图像中标签特别向它们指出的内容。通常,机器学习团队需要向放射科医生解释这一点。否则,医生可能无法理解为什么他们不标记起搏器或在一张图像中圈出不规则形状的肿块并在下一张图像中勾勒出它的轮廓。

尽可能明确和详尽。注释是一项乏味且耗时的任务,因此标记者会寻找捷径,除非您指示他们不要这样做,这是可以理解的。为他们提供一份准确但不过长的标签协议手册。包括一些好的注释和差的注释的图片作为应该做什么和不应该做什么的示例。然后通过网络研讨会让他们参与其中,您可以在其中分享示例并演示注释平台,以便贴标者知道会发生什么以及如何在平台内进行注释。

如果没有详细的标签协议,贴标机可能会产生不一致的标签。一个常见的错误是当要求注释特定结构时混淆左右,例如“标记左肺。”松散的注释——圈出而不是遵循大纲——通常只是出于习惯。

第 4 步:在少数样本上练习医学图像注释

DICOM 图像包含丰富的信息,可以对患者进行最佳诊断。然而,标记体积图像(例如 CT 或 MRI 扫描)具有挑战性。

Encord 的 DICOM 注释工具是与医疗专业人员密切合作设计的,因此与其他现有 DICOM 查看器不同,它允许无缝注释和构建数据管道以确保数据质量。大多数现有数据管道工具无法表示 CT 和 MRI 扫描所需的像素强度,而我们的平台提供准确、真实的 DICOM 显示。虽然我们的一些竞争对手将 DICOM 转换为其他格式(例如 PNG、视频),但我们允许用户直接在 DICOM 上工作,因此转换过程中不会丢失任何内容。通过为注释器提供自定义窗口和最大强度投影等功能,我们使它们能够像在临床实践中所习惯的那样工作,以便它们能够准确地评估图像,而不会受到数据质量变化的干扰。

在这里插入图片描述

DICOM 元数据

体积图像包含许多切片,需要花费大量时间进行研究。 Encord 的工具还支持最大强度投影,用户可以将多个切片折叠成一个平面层,从而为他们提供从不同角度查看图像的机会 - 这一角度可能会揭示否则会错过的发现。所有这些功能以及更多功能应该可以帮助注释者更好地掌握标记协议并更有效地生成高质量的医学图像注释。

提供正确的工具将帮助您的注释者在最短的时间内完成最好的工作。然而,无论使用什么工具,在部署训练数据进行注释之前,您都应该为每位放射科医生提供一些要注释的样本,然后以小组或单独的形式与他们举行会议,讨论他们的想法。

与临床专家合作审查少量样本,以确定标签是否达到训练机器学习模型和算法所需的高质量。将数据样本相互比较,以确定一个注释器的表现是否明显优于其他注释器或差于其他注释器。考虑这样的问题:一个注释者标记的结构是否比其他注释者少?另一个会绘制松散的边界框吗?预计会有一些差异,但如果一位注释者与其他注释者存在显着差异,您可能需要私下与他们会面以调整期望。

即使有了标签协议,在发布太多数据之前,仔细审查这少数样本对于发现思维偏差也至关重要。请记住,医生像医生一样思考。如果患者的扫描显示肝脏中有 13 个癌性肿瘤,医生可能只会圈出 7 个,因为在临床环境中,这足以知道患者患有癌症并需要治疗。然而,机器学习团队需要确保医生标记所有 13 个标签,因为模型将遇到这额外的 6 个标签,并因缺少标签而受到惩罚。遗漏的注释将导致无法估计真实的模型性能,因此机器学习团队需要帮助医生理解为什么他们需要进行详尽的标记,这更加耗时,并且与他们的常规临床工作不同。

不同的注释者对于他们认为应该注释的内容有不同的阈值,因此您需要临床合作伙伴的输入来确定应该注释的内容。医学图像评估中始终存在不确定性,因此您需要校准注释器,告诉它们在阈值中或多或少敏感。

第 5 步:发布第一批图像以在注释工具中进行标记

一旦所有放射科医生都了解了标签期望,就可以发布第一批图像进行注释了。对于第一批,释放大约三分之一的需要标注的数据。

设置完成注释的时间表。时间表将取决于您公司的时间限制。例如,如果您打算参加会议,您需要尽早训练模型,并且您需要缩短注释的时间。

机器学习团队和临床合作伙伴的人员应该监督和审查注释过程。这意味着您需要留出时间进行质量控制。审查注释需要时间,理想情况下,您将记录每个注释者的标记质量,以便您每月或每周的统计数据显示每个放射科医生与真实情况或共识相比对图像的标记程度。

当涉及医学图像注释时,建立基本事实需要找到有关患者结果的信息,这可能很棘手。例如,如果三名医生将肿块的图像解读为非癌性,但随后的活检显示该肿块是癌性的,那么该图像的基本事实实际上是“癌性的”。理想情况下,当您收集数据时,您将收到临床数据以及 DICOM 图像,该图像提供有关患者治疗和扫描后结果的信息,从而可以根据现实世界的结果建立基本事实。

由于 Encord 平台支持 DICOM 元数据,如果临床医生和放射技师已经收集了这些元数据,那么使用 Encord 将使您能够无缝访问有关患者医疗状况、病史和结果的重要信息。

在没有此类临床信息的情况下,从注释中得出的共识将不得不作为基本事实的代理。当一组放射科医生阅读相同的扫描结果并通常通过多数投票就结果达成一致时,就会达成共识。然后,该发现将成为数据的基本事实。

然而,在临床环境中,医生会采取不同的方法来达成共识。这就是 Encord 平台提供各种功能来帮助计算共识的原因。它包括为任意数量的注释者进行成熟度投票的模板。它还具有加权功能,因此经验丰富的医疗专业人员的注释会比初级医疗专业人员的注释得到更多考虑。当对图像出现分歧时,Encord 的平台会启用一个仲裁小组,将图像发送给另一位更有经验的专业人士来决定共识。平台中内置多种方法对于监管审批特别有用,因为不同地区会希望公司使用不同的方法来确定共识。

在 QA 工作流程的这一部分中,您还应该构建评估者内部可靠性测试,其中每个审阅者都会收到一组多次包含相同图像的数据。目标是确保评估者在一段时间内表现一致。对评估者的持续监控回答了一些重要问题,例如:评估者早上和晚上的表现是否一样好?与工作日相比,审稿人在周末的表现是否较差?

将模型发布到临床环境的监管流程需要有关评估者内部可靠性以及评估者间可靠性的数据,因此从一开始就将此测试纳入流程和预算中非常重要。

第6步:发布剩余数据进行标注并实施持续标注监控

如果第一批注释的审核顺利,那么就可以将其余数据发布给注释者了。一般来说,如果有严格的时间表或具体的数据量,公司将分批发布其余数据,并规定每批标签的截止日期。否则,大多数公司将实施连续的标签流。当公司能够访问来自不同制造商的持续数据流时,连续标签流是最佳策略。

连续的标签流需要连续的标签监控,而连续的标签监控很棒,因为它提供了有关标签和数据本身的有趣且重要的见解。

Encord 的 DICOM 注释工具使机器学习团队能够访问可能对注释和机器性能产生影响的重要元数据。 DICOM 数据包含有关机器状态的信息 - 电流、X 射线照射、与患者相关的角度、周围温度等。团队还可以按国家/地区、成本和制造商细分数据。

所有这些信息都很重要,因为它有助于图像的外观,这意味着元数据对模型性能有影响。例如,如果贴标机始终错误地标记来自某个制造商或医院数据集的图像,那么机器学习团队可能会意识到该设备的图像质量不如其他来源的图像质量或在特定设备上拍摄的图像质量。一天遭遇了奇怪的设备设置。

一个制造商的图像可能与另一制造商的图像看起来非常不同。如果他们只有 10% 的图像来自西门子设备,他们就知道需要收集更多的西门子图像,以确保模型能够很好地预测该品牌设备上捕获的图像。使用新型号设备与旧设备拍摄的医学图像也是如此。

地理区域也很重要。制造商根据设备的部署位置来调整设备;例如,美国和欧洲的对比度设置不同。使用来自不同地区和制造商的图像可以帮助您避免给机器学习模型带来偏见,并确保其正确推广。

随着连续标记和连续监控的开始,我们已经完成了构建医学图像数据标记质量保证工作流程的步骤。工作流程的细节可能看起来很细致,但当没有强大的工作流程时,医学图像注释中会出现大量常见错误。

构建医学注释工具意味着了解医学专业人员

构建医学图像注释的质量保证工作流程有六个同样重要的步骤:

  1. 选择并划分数据集
  2. 准备使用多个盲注进行注释
  3. 建立标签协议
  4. 在少数样本上练习医学图像注释
  5. 发布第一批标注图像
  6. 释放剩余数据进行标注并实施持续标注监控

然而,拥有无缝融入医疗专业人员日常生活的正确工具对于构建图像注释质量保证工作流程同样重要。

Encord 的 DICOM 注释工具是与临床医生合作构建的,因此它使医疗专业人员能够像在临床工作流程中一样导航图像并与之交互。我们认识到放射科医生和其他医疗专业人员都是忙碌的人,他们花了数年时间建立某些领域的专业知识和技能。

我们的注释工具模仿并与临床经验相结合。放射科医生大部分时间都在暗室中度过,使用高分辨率灰度监视器查看数字图像。这就是为什么我们的工具支持暗模式,防止放射科医生在临床常规过程中遇到绿色或白色界面。我们还设计了一个查看器,支持使用相同的方法和处理来查看大量图像切片,以便他们可以依赖通过多年使用临床工具而形成的肌肉记忆。

这就是为什么我们也支持悬挂协议。经过多年将扫描件挂在墙上,放射科医生已经习惯了以某种方式展示它们。例如,在读取乳房X光检查时,他们希望同时查看两个乳房,以比较该特定患者的对称性和固有特征。我们没有要求放射科医生为数字时代做出改变,而是改变了工具,以对他们的职业最有意义的方式定位图像。

我们的平台、界面和鼠标手势(包括窗口!)都是根据临床经验设计的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/322634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

debug之pycharm调试:出现Collecting data......

pycharm调试时,出现Collecting data… 一直在这个界面很久,这是新版本的Pycharm的bug,通常在多线程的情况下发生。 解决方法: File->Setting->Build,Execution,Deployment->Python Debugger。把Gevent compatible勾选…

当前页面一键回关

CSDN博客关注页面当前页面一键回关所有fans代码 f12打开控制台,输入以下代码 // 获取所有的button元素,根据它们的属性进行筛选 var buttons document.querySelectorAll("button[data-v-0947769e][data-ref^li_][data-id][classattention-btn]&qu…

基于ssm的毕业生学历证明系统+vue论文

内容摘要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统毕业生学历信息管理难度大,容错率低&#…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的MySQL8.0.32的RPM包

本文适用:rhel8系列,或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期:2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

mySQL 汇总

登录MySQL winR 打开查询命令 输入 cmd 输入net start MySQL 打开mysql 报错:系统错误,拒绝访问 (没权限!) 解决办法:搜索栏查询‘cmd’ 使用管理员身份运行 (或鼠标右键‘开始’,windows po…

RoSA: 一种新的大模型参数高效微调方法

随着语言模型不断扩展到前所未有的规模,对下游任务的所有参数进行微调变得非常昂贵,PEFT方法已成为自然语言处理领域的研究热点。PEFT方法将微调限制在一小部分参数中,以很小的计算成本实现自然语言理解任务的最先进性能。 (RoSA)是一种新的P…

预约上门按摩系统概述

预约上门按摩系统是一种基于H5或者APP的服务平台,为用户提供预约上门按摩服务。该系统通过集成用户端、技师端、渠道商端、城市代理端、分销商端、总后台管理端,实现了用户与技师之间的快速连接,提供在线预约、支付、评价等服务。 1.用户通过…

中国数据库市场的领军黑马——亚信安慧AntDB数据库

自2008年问世以来,亚信科技AntDB数据库一直在中国国产数据库市场中崭露头角,尤其在信创政策的大力支持下,成为这一领域的一匹黑马。经过多次迭代,AntDB已经发展到了7.0版本,为超高强度和密度的业务需求提供了强有力的解…

Java多线程并发篇----第十五篇

系列文章目录 文章目录 系列文章目录前言一、偏向锁二、分段锁三、锁优化四、线程基本方法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、偏向锁 Hotspot 的…

实时云渲染与离线渲染的区别是哪些?

实时云渲染是通过把3D渲染过程放到云端完成,从而打破用户设备限制的方式,它与离线渲染有着显著差异。 1、渲染过程 实时云渲染是在云服务器上进行的渲染,它能生成实时画面,方便用户访问和操作,而离线渲染不用响应用户操…

保障系统稳定,中电金信混沌工程再结硕果

在为金融行业提供优质服务的同时,中电金信积极参与行业标准制定。今年,公司先后参与了由中国信通院牵头发起的《一云多芯稳定性度量评估模型》、中国通信标准化协会牵头发起的《分布式系统稳定性成熟度模型》和《证券基金期货重要系统稳定性保障模型》的…

继承、修饰符、工具类、jar包

目录 1.继承 2.修饰符 3.工具类 4.jar包的制作与使用 1.继承 是什么 1.面向对象的三大特征之一(封装、继承、多态) 2.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。 继承的格式 public class F…

一文详解JAVA的File类,FileInputStream和FileOutputStream

目录 一、File类介绍 二、FileInputStream类 三、FileOutputStream类 一、File类介绍 Java的File类是用于操作文件和目录的类。它提供了一组方法来创建、删除、重命名、复制、移动文件和目录,以及查询文件和目录的属性。 File类的常用方法有: exis…

QT上位机开发(知识产权ip保护)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 大部分看我们文章的网友,本身就是搞技术出身的,很少是做生意,或者是做销售的。但是技术本身,它又是…

一款 StarRocks 客户端工具,支持可视化建表、数据编辑

什么是 StarRocks? StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。 为了…

代码随想录 Leetcode383. 赎金信

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月15日&#xff09;&#xff1a; class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> v(26);for(auto letter : magazine) {v[letter - a];}for(auto letter : ransomNote…

腾讯云价格怎么这么便宜?

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

Jmeter 压测 —— 性能调优5大注意!

性能调优主要涉及这些方面&#xff1a; 代码、数据库、网络、硬件、系统构架 1、代码 ①缓存 缓存是典型的空间换时间&#xff0c;在软件项目中&#xff0c;用的最多的是redis缓存&#xff0c;第一次查询的时候&#xff0c;将查询数据存储到缓存中。后面每次查询&#xff0…

圆通单号查询,圆通速递物流查询,用表格导出详细物流信息

大多数平台的物流信息只能在线查看&#xff0c;无法直接导出。而我们【快递批量查询高手】软件在支持批量查询多个快递单号物流信息的同时&#xff0c;还提供了强大的信息导出功能。你可以选择导出信息的表格格式&#xff0c;如CSV、Excel等&#xff0c;方便你在其他地方进行查…

目标检测中的数据增强

整个代码参考:bubbliiiing/object-detection-augmentation。 random_data.py import cv2 import numpy as np from PIL import Image, ImageDrawdef rand(a=0, b=1):return np.random.rand()*(b-a) + adef get_random_data(annotation_line, input_shape, jitter=.3, hue=.1…