本文介绍图像分析处理(imageprocess)类目下的胸部CT肺结节检测DetectLungNodule的语法及示例。
功能描述
胸部CT肺结节检测能力可以对输入的胸部常规CT形成的DICOM影像(如5mm的单个序列,API仅接受单序列),进行肺结节的辅助诊断。针对每一个结节,主要通过以下方式进行描述:
- 结节的坐标(coordX,coordY,coordZ)、直径(diameter_mm)。
- 结节在肺叶的位置,例如左肺或右肺,以及肺叶分段(左肺上下叶、右肺上中下叶),通过lung和lobe两个参数共同确定。
- 结节分类及概率。
接入指引
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,取值范围 |
返回数据
名称 |
类型 |
示例值 |
描述 |
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 | 结节分类,取值包括:
|
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小时后会被系统自动清理删除。