胸部CT肺结节检测

本文介绍图像分析处理(imageprocess)类目下的胸部CT肺结节检测DetectLungNodule的语法及示例。

功能描述

胸部CT肺结节检测能力可以对输入的胸部常规CT形成的DICOM影像(如5mm的单个序列,API仅接受单序列),进行肺结节的辅助诊断。针对每一个结节,主要通过以下方式进行描述:

  • 结节的坐标(coordX,coordY,coordZ)、直径(diameter_mm)。
  • 结节在肺叶的位置,例如左肺或右肺,以及肺叶分段(左肺上下叶、右肺上中下叶),通过lung和lobe两个参数共同确定。
  • 结节分类及概率。
说明
  • 您可以进入在线咨询获取在线人工帮助。
  • 当前能力可在视觉智能开放平台有完整的免费产品体验,您可以单击立即试用对该能力进行更直观试用以及在线购买。
  • 阿里云视觉智能开放平台视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。

接入指引

1. 注册阿里云账号:打开阿里云官网,在阿里云官网右上角,单击立即注册,按照操作提示完成账号注册。

2. 开通能力:请确保您已开通图像分析处理,若未开通服务请立即开通

3. 创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权

4. 在线调试(可选):您可以通过OpenAPI Explorer在线调试能力,查看完整的调用示例代码及SDK依赖信息,也可以下载完整的工程。

5. 开发接入步骤:

  • SDK总览中选择您要接入使用的SDK语言。
  • 在对应语言的SDK文档中找到AI类目为图像分析处理(imageprocess)的SDK包进行安装。
  • 参考文档中提供的示例代码进行适当修改后调用。

6. 示例代码:该能力常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码

7. 客户端直接调用:该能力常用的客户端调用方式包括以下几种。

输入限制

  • 影像格式:DICOM。
  • 影像分辨率:小于等于512×512像素。
  • 单张DICOM影像大小不超过1 MB。
  • 输入最少20张,最多600张。
  • URL中不能包含中文字符。

计费说明

关于胸部CT肺结节检测的计费方式及报价,请参见计费介绍

说明 下方调试接口为付费接口,如需免费体验调试请前往体验中心

调用步骤

该能力为异步能力,需分两步进行调用。

第一步调用DetectLungNodule接口提交任务,请求成功后,得到一个任务ID。

第二步调用GetAsyncJobResult接口查询结果,根据任务ID查询任务执行状态和结果。如果任务还在处理中,可稍等一段时间后再进行查询。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String DetectLungNodule

系统规定参数。取值:DetectLungNodule

DataFormat String DICOM

图像格式:DICOM。

OrgName String weiyi

数据来源机构名称。

OrgId String 0001

数据来源机构代码。

URLList.N.URL String https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/000001.dcm

DICOM影像的图像URL地址。长度小于600。推荐使用上海地域的OSS链接,对于文件在本地或者非上海地域OSS链接的情况,请参见文件URL处理

说明 URLList.N.URL中的N为该图像URL在当前List中的顺序(从1开始)。当直接使用API请求时,输入URLList的填充会以URLList.1.URL=url1,URLList.2.URL=url2,......的方式指定参数和参数值,参数对以&连接,其中url1、url2、......等具体值请根据实际情况进行替换;当使用SDK填充URLList时,可直接使用SDK提供的相应的方法。
Threshold Float 0.60

结点阈值。默认取值0.60,取值范围(0,1],取值越低,输出结节越多,仅取小数点后两位。

返回数据

名称

类型

示例值

描述

RequestId String 9889ef5b-b973-4dd0-9f26-3b9cc489c436

请求ID。

Data Object

返回的结果数据内容。

该数据需要在异步任务执行成功后,通过调用GetAsyncJobResult接口,对其Result字段进行JSON反序列化之后得到。

Series Array of Serie

本次影像分析的分序列的结果,只支持单序列,故该jsonArray的长度为1。数组元素为单个序列的检测结果,由analysisResult和seriesInstanceUid构成。

SeriesInstanceUid String 1.3.6.1.4.1.14519.5.2.1.6279.6001.179049373636438705059720603192

本次分析影像的序列ID。

Elements Array of Element

结节描述。

Z Float -46.81608170781766

结节在物理坐标系中的z轴坐标值。

Lobe String up

肺叶分段。取值包括:up(上叶)、middle(中叶)、down(下叶)及unknown(未知)。

MeanValue Float 261.37589112119247

平均CT值,单位为HU。

ImageZ Float 20.434030793471255

结节在图像坐标系中的z轴坐标值。

Lung String left

结节在肺叶的位置。取值包括:left(左肺)、right(右肺)及unknown(未知)。

Confidence Float 0.7012705768508907

结节分类的置信度。

SOPInstanceUID String 1.3.6.1.4.1.14519.5.2.1.6279.6001.261151233960269013402330853013

结节中心位置所在帧的ID标识。

ImageX Float 308.9676976455463

结节在图像坐标系中的x轴坐标值。

Y Float -32.23147700784307

结节在物理坐标系中的y轴坐标值。

Category String 1

结节分类,取值包括:

  • 0:ggo(磨玻璃影)
  • 1:part-solid(部分实性)
  • 2:solid(实性)
  • 3:unknown(未知)
  • 4:calc(钙化)
Volume Float 10959.220491175074

结节体积,单位为mm³。

ImageY Float 198.3552282631497

结节在图像坐标系中的y轴坐标值。

Diameter Float 9.730626493692398

结节的直径。

X Float 51.24291240631416

结节在物理坐标系中的x轴坐标值。

RecistSOPInstanceUID String 1.3.6.1.4.1.14519.5.2.1.6279.6001.468208655866166788627471660948

结节最大径位置所在帧的ID标识。

MajorAxis Array of Float [178,212,185,217,6.0]

start_x, start_y, end_x, end_y, len五元组,其中start和end为图像坐标系下长径的起止点,len为长径长度(mm)。

MinorAxis Array of Float [184,213,181,218,4.0]

start_x, start_y, end_x, end_y, len五元组,其中start和end为图像坐标系下短径的起止点,len为长径长度(mm)。

Risk Float 0.173

结节为恶性的置信度。取值范围0~1。

Origin Array of Float [-166.0,-171.6999969482422,-340.0]

图像坐标系原点在物理坐标系中的位置。

Report String 肺部见1个实性结节,直径约为25.60mm,体积为11512.06mm³,平均CT值为-6.90HU。

该DICOM序列经过AI分析后AI服务给出的参考报告。

Spacing Array of Float [0.703125,0.703125,14.34782600402832]

每个像素的实际距离间隔。

Message String 该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。

提交异步任务后的提示信息。

查询结果

该接口为异步接口,当前并未返回真实的请求结果,您需要通过返回的RequestId调用GetAsyncJobResult接口来获取该接口的真实请求结果。详情请参见GetAsyncJobResult

SDK参考

阿里云视觉AI图像分析处理类目下的胸部CT肺结节检测能力推荐使用SDK调用,支持多种编程语言,调用时请选择AI类目为图像分析处理(imageprocess)的SDK包,文件参数通过SDK调用可支持本地文件及任意URL,具体可参见SDK总览

示例代码

该能力常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码

示例

请求示例

http(s)://imageprocess.cn-shanghai.aliyuncs.com/?Action=DetectLungNodule      //更多关于访问域名(Endpoint)信息,请参见:https://help.aliyun.com/document_detail/143103.html
&DataFormat=DICOM
&OrgId=0001
&OrgName=weiyi
&URLList.1.URL=https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/000001.dcm
&URLList.2.URL=https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/000002.dcm
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<DetectLungNoduleResponse>
    <RequestId>9889ef5b-b973-4dd0-9f26-3b9cc489c436</RequestId>
    <Message>该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。</Message>
</DetectLungNoduleResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "9889ef5b-b973-4dd0-9f26-3b9cc489c436",
  "Message" : "该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。"
}

返回示例补充说明

 //查询结果:请求示例
http(s)://videoenhan.cn-shanghai.aliyuncs.com/?Action=GetAsyncJobResult
&JobId=E75FE679-0303-4DD1-8252-1143B4FA8A27
&<公共请求参数>

//查询结果:返回示例
{
  "RequestId" : "43A0AEB6-45F4-4138-8E89-E1A5D63200E3",
  "Data" : {
    "Status" : "PROCESS_SUCCESS",
    "JobId" : "186AC396-0EEC-46F1-AAA1-BF3585227427",
    "Result" : {\"Series\":\"SeriesInstanceUid\":\"1.3.6.1.4.1.14519.5.2.1.6279.6001.179049373636438705059720603192\",\"Elements\":\"Z\":-46.81608170781766,\"Lobe\":\”up\",\"MeanValue\":261.37589112119247,-90,\"ImageZ\":20.434030793471255,\"Lung\": \"left\",\"0.7012705768508907\",\"SOPInstanceUID\":\"1.3.6.1.4.1.14519.5.2.1.6279.6001.261151233960269013402330853013\",\"ImageX\":308.9676976455463,\"Y\":-32.23147700784307,\"Category\":\"1\",\"Volume\":10959.220491175074,\"ImageY\":198.3552282631497,\"Diameter\":9.730626493692398,\"X\":51.24291240631416,\"RecistSOPInstanceUID\" : \"1.3.6.1.4.1.14519.5.2.1.6279.6001.468208655866166788627471660948\",\"MajorAxis\" : [178,212,185,217,6.0],\"MinorAxis\" : [184,213,181,218,4.0],\"Risk\" : 0.173,\"Origin\":[-166.0,-171.6999969482422,-340.0],\"Report\":\"肺部见1个实性结节,直径约为25.60mm,体积为11512.06mm³,平均CT值为-6.90HU。\",\"Spacing\":[0.703125,0.703125,14.34782600402832]}"
  }
}

//Result反序列化
{
    "Series" :  [ {
      "SeriesInstanceUid" : "1.3.6.1.4.1.14519.5.2.1.6279.6001.179049373636438705059720603192",
      "Elements" : [ {
        "Score" : 0.99,
        "Z" : -46.81608170781766,
        "Lobe" : "up",
        "MeanValue" : 261.37589112119247,
        "ImageZ" : 20.434030793471255,
        "Lung" : "left",
        "Confidence" : 0.7012705768508907,
        "SOPInstanceUID" : "1.3.6.1.4.1.14519.5.2.1.6279.6001.261151233960269013402330853013",
        "ImageX" : 308.9676976455463,
        "Y" : -32.23147700784307,
        "Category" : "1",
        "Volume" : 10959.220491175074,
        "ImageY" : 198.3552282631497,
        "Diameter" : 9.730626493692398,
        "X" : 51.24291240631416,
        "RecistSOPInstanceUID" : "1.3.6.1.4.1.14519.5.2.1.6279.6001.468208655866166788627471660948",
        "MajorAxis" : [178,212,185,217,6.0],
        "MinorAxis" : [184,213,181,218,4.0],
        "Risk" : 0.173
        } ]
      "Origin" : [-166.0,-171.6999969482422,-340.0],
      "Report" : "肺部见1个实性结节,直径约为25.60mm,体积为11512.06mm³,平均CT值为-6.90HU。",
      "Spacing" : [0.703125,0.703125,14.34782600402832]
    } ]
}

错误码

关于胸部CT肺结节检测的错误码。详情请参见常见错误码

安全声明

  • 请确保上传的图片或文件来源符合相应的法律法规。
  • 通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除。