基于皮肤影像的线上辅助诊疗系统转让专利

申请号 : CN202110615272.2

文献号 : CN113053524B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张靖张伟张育崔涛

申请人 : 杭州咏柳科技有限公司

摘要 :

本发明涉及一种基于皮肤影像的线上辅助诊疗系统,该系统包括:系统包括:数据获取模块、人体部位获取模块、用户属性确定模块、标注模块、分析模块、结果确定模块;数据获取模块,用于获取皮损数据;人体部位获取模块,用于获取皮损数据对应的人体部位;用户属性确定模块,用于确定皮损数据对应的用户属性;标注模块,用于将人体部位和用户属性作为标注内容标注在皮损数据上;分析模块,用于对标注后的皮损数据进行分析;结果确定模块,用于基于分析结果得到辅助问诊结果。本发明的系统对皮损数据进行标注,对标注后的皮损数据进行分析,基于分析结果得到辅助问诊结果,提供了一种远程医疗辅助实现方案。

权利要求 :

1.一种基于皮肤影像的线上辅助诊疗系统,其特征在于,所述系统包括:数据获取模块、人体部位获取模块、用户属性确定模块、标注模块、分析模块、结果确定模块;

数据获取模块,用于获取皮损数据;

人体部位获取模块,用于获取皮损数据对应的人体部位;

用户属性确定模块,用于确定皮损数据对应的用户属性;

标注模块,用于将所述人体部位和所述用户属性作为标注内容标注在所述皮损数据上;

分析模块,用于对标注后的皮损数据进行分析;

结果确定模块,用于基于分析结果得到辅助问诊结果;

其中,所述人体部位为如下的一种:头颈类部位、躯干类部位、上肢类部位、下肢类部位;

所述头颈类部位具体为如下的一种:额面、颈前、头顶、颈后、右耳、左耳;

所述躯干类部位具体为如下的一种:胸腹部、背部、会阴部;

所述上肢类部位具体为如下的一种:右臂前、左臂前、左臂后、右臂后、双手手掌、双手手背;

所述下肢类部位具体为如下的一种:大腿前、大腿后内、臀、小腿前外、小腿后、双足足背、双足足底;

所述确定皮损数据对应的用户属性,具体包括:S103‑1,获取皮损数据所属用户的标识、历史皮损数据;

S103‑2,根据所述历史皮损数据,得到所述人体部位获取模块获取的人体部位的权重,所述权重用于表征该人体部位得皮肤病的可能性;

S103‑3,所述标识与所述权重均确定为用户属性;

获取的历史皮损数据满足如下预设关系:对于任一获取的历史皮损数据D1,D1所属人体部位与人体部位获取模块获取的人体部位相同,同时,满足0.8

所述权重根据所述历史皮损数据中皮损面积和皮损涉及的各像素点的灰度值获得,或者,所述权重根据历史皮损数据中皮损面积、皮损涉及的各像素点的灰度值以及皮肤病确诊结论获得。

2.根据权利要求1所述的系统,其特征在于,所述S103‑2具体包括:确定各历史皮损数据中皮损面积,皮损涉及的各像素点的灰度值;

根据所有的皮损面积和所有的灰度值确定权重。

3.根据权利要求2所述的系统,其特征在于,所述根据所有的皮损面积和所有的灰度值确定权重,包括:

计算每一个历史皮损数据的灰度指标;

将所有历史皮损数据按采集时间从前至后排序,得到排序序列;

从所述排序序列第一个历史皮损数据开始,计算其与排序在其后的第一个历史皮损数据之间的面积差以及灰度指标差;

根据面积差、灰度指标差确定权重。

4.根据权利要求3所述的系统,其特征在于,所述根据面积差、灰度指标差确定权重,具体包括:

将权重确定为(面积差的最大值/|所有面积差的均值‑所述排序序列中最后一个历史皮损数据的皮损面积|)*(所有历史皮损数据中皮损面积的均值/所述皮损数据中皮损面积)*(|所述皮损数据的灰度指标‑最后一个历史皮损数据的灰度指标|/灰度指标差的均值)。

5.根据权利要求1所述的系统,其特征在于,所述S103‑2具体包括:确定各历史皮损数据中皮损面积,皮损涉及的各像素点的灰度值,皮肤病确诊结论;所述皮肤病确诊结论为无皮肤病,或者所患皮肤病的名称;

将对应同一皮肤病确诊结论的历史皮损数据归为一类;

根据所有的皮损面积和所有的灰度值确定与每类对应的权重,形成权重向量,所述向量中每一个元素为一个对应关系,该对应关系为类对应的皮肤病确诊结论与类对应的权重之间的对应关系;

将所述权重向量作为所述人体部位获取模块获取的人体部位的权重。

6.根据权利要求5所述的系统,其特征在于,所述根据所有的皮损面积和所有的灰度值确定与每类对应的权重,包括:针对每一类,

计算该类中,每一个历史皮损数据的灰度指标;

将所有历史皮损数据按采集时间从前至后排序,得到排序序列;

从所述排序序列第一个历史皮损数据开始,计算其与排序在其后的第一个历史皮损数据时间的面积差以及灰度指标差;

将该类对应的权重确定为(该类中历史皮损数据的数量/历史皮损数据的总数量)*(面积差的最大值/|所有面积差的均值‑所述排序序列中最后一个历史皮损数据的皮损面积|)*(所有历史皮损数据中皮损面积的均值/所述皮损数据中皮损面积)*(|所述皮损数据的灰度指标‑最后一个历史皮损数据的灰度指标|/灰度指标差的均值)。

7.根据权利要求3或4或6权利要求所述的系统,其特征在于,任一所述皮损数据的灰度指标=E*(ave‑min)/(max‑ave);

E为任一所述皮损数据中皮损涉及的各像素点的灰度值的标准差,ave为任一所述皮损数据中皮损涉及的各像素点的灰度值的均值,min为任一所述皮损数据中皮损涉及的各像素点的灰度值的最小值,max为任一所述皮损数据中皮损涉及的各像素点的灰度值的最大值。

8.根据权利要求1所述的系统,其特征在于,所述分析模块,用于通过卷积神经网络对标注后的皮损数据进行分析。

说明书 :

基于皮肤影像的线上辅助诊疗系统

技术领域

[0001] 本发明涉及远程医疗技术领域,尤其涉及一种基于皮肤影像的线上辅助诊疗系统。

背景技术

[0002] 随着人类进步的步伐,人们赖以生存的环境也在不断改变。大气污染日益严重,导致皮肤病发病率不断提高,而皮肤病的致病因素也在不断地升级。WHO曾宣布,皮肤病将是
21世纪人类历史上发病率最高、致残率最高、传染性最强的一种疾病。皮肤病是医学上的常
见病、多发病,具有发病范围广、病情种类多、治疗时间长等特征。根据国家卫生健康委2019
年的统计数据,一个人口超过13亿国家,一年1.24亿人次皮肤科门诊量,平均3300次门诊一
个医生,而医生每天最多只能治疗50名患者。由于医疗资源有限和人口众多,皮肤病发病率
逐年激增,皮肤病慢性病管理面临挑战。医院无法有效为皮肤病患者提供慢性病治疗。

发明内容

[0003] (一)要解决的技术问题
[0004] 鉴于现有技术的上述缺点、不足,本发明提供一种基于皮肤影像的线上辅助诊疗系统。
[0005] (二)技术方案
[0006] 为了达到上述目的,本发明采用的主要技术方案包括:
[0007] 一种基于皮肤影像的线上辅助诊疗系统,所述系统包括:数据获取模块、人体部位获取模块、用户属性确定模块、标注模块、分析模块、结果确定模块;
[0008] 数据获取模块,用于获取皮损数据;
[0009] 人体部位获取模块,用于获取皮损数据对应的人体部位;
[0010] 用户属性确定模块,用于确定皮损数据对应的用户属性;
[0011] 标注模块,用于将所述人体部位和所述用户属性作为标注内容标注在所述皮损数据上;
[0012] 分析模块,用于对标注后的皮损数据进行分析;
[0013] 结果确定模块,用于基于分析结果得到辅助问诊结果;
[0014] 其中,所述人体部位为如下的一种:头颈类部位、躯干类部位、上肢类部位、下肢类部位;
[0015] 所述头颈类部位具体为如下的一种:额面、颈前、头顶、颈后、右耳、左耳;
[0016] 所述躯干类部位具体为如下的一种:胸腹部、背部、会阴部;
[0017] 所述上肢类部位具体为如下的一种:右臂前、左臂前、左臂后、右臂后、双手手掌、双手手背;
[0018] 所述下肢类部位具体为如下的一种:大腿前、大腿后内、臀、小腿前外、小腿后、双足足背、双足足底。
[0019] (三)有益效果
[0020] 对皮损数据进行标注,对标注后的皮损数据进行分析,基于分析结果得到辅助问诊结果,提供了一种远程医疗辅助实现方案。

附图说明

[0021] 图1为本发明一实施例提供的一种基于皮肤影像的线上辅助诊疗系统的结构示意图;
[0022] 图2为本发明一实施例提供的一种头颈类部位示意图;
[0023] 图3为本发明一实施例提供的一种躯干类部位示意图;
[0024] 图4为本发明一实施例提供的一种上肢类部位示意图;
[0025] 图5为本发明一实施例提供的一种下肢类部位示意图;
[0026] 图6为本发明一实施例提供的一种标注示意图;
[0027] 图7为本发明一实施例提供的第一种评分式结果示意图;
[0028] 图8为本发明一实施例提供的第二种评分式结果示意图;
[0029] 图9为本发明一实施例提供的第一种趋势式结果示意图;
[0030] 图10为本发明一实施例提供的第二种趋势式结果示意图;
[0031] 图11为本发明一实施例提供的第一种报告式结果示意图;
[0032] 图12为本发明一实施例提供的第二种报告式结果示意图;
[0033] 图13为本发明一实施例提供的系统执行结果示意图。

具体实施方式

[0034] 为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
[0035] 随着人类进步的步伐,人们赖以生存的环境也在不断改变。大气污染日益严重,导致皮肤病发病率不断提高,而皮肤病的致病因素也在不断地升级。WHO曾宣布,皮肤病将是
21世纪人类历史上发病率最高、致残率最高、传染性最强的一种疾病。皮肤病是医学上的常
见病、多发病,具有发病范围广、病情种类多、治疗时间长等特征。根据国家卫生健康委2019
年的统计数据,一个人口超过13亿国家,一年1.24亿人次皮肤科门诊量,平均3300次门诊一
个医生,而医生每天最多只能治疗50名患者。由于医疗资源有限和人口众多,皮肤病发病率
逐年激增,皮肤病慢性病管理面临挑战。医院无法有效为皮肤病患者提供慢性病治疗。
[0036] 基于此,本发明提供一种基于皮肤影像的线上辅助诊疗系统,该系统包括:获取皮损数据;对皮损数据进行标注;对标注后的皮损数据进行分析;基于分析结果得到辅助问诊
结果。
[0037] 参见图1,本实施例提供的基于皮肤影像的线上辅助诊疗系统的包括:数据获取模块101、人体部位获取模块102、用户属性确定模块103、标注模块104、分析模块105、结果确
定模块106。
[0038] 数据获取模块101,用于获取皮损数据。
[0039] 人体部位获取模块102,用于获取皮损数据对应的人体部位。
[0040] 用户属性确定模块103,用于确定皮损数据对应的用户属性。
[0041] 标注模块104,用于将人体部位和用户属性作为标注内容标注在皮损数据上。
[0042] 分析模块105,用于对标注后的皮损数据进行分析。
[0043] 结果确定模块106,用于基于分析结果得到辅助问诊结果。
[0044] 其中,人体部位为如下的一种:头颈类部位、躯干类部位、上肢类部位、下肢类部位。
[0045] 头颈类部位具体为如下的一种:额面、颈前、头顶、颈后、右耳、左耳。
[0046] 躯干类部位具体为如下的一种:胸腹部、背部、会阴部。
[0047] 上肢类部位具体为如下的一种:右臂前、左臂前、左臂后、右臂后、双手手掌、双手手背。
[0048] 下肢类部位具体为如下的一种:大腿前、大腿后内、臀、小腿前外、小腿后、双足足背、双足足底。
[0049] 具体的,通过图1所示的基于皮肤影像的线上辅助诊疗系统在执行时的具体说明如下。
[0050] S101,数据获取模块获取皮损数据。
[0051] 本步骤中会获取患者的皮损数据,其获取方法如下:
[0052] S101‑1,通过图像采集设备获取皮损部位图像,同时获取图像采集设备与皮损部位之间的距离以及图像采集设备当前的焦距。
[0053] 其中,图像采集设备可以为用户手机上的摄像头,也可以为专门的皮损数据采集装置。但该设备上需要装有距离探测传感器,用于探测图像采集设备与皮肤部位之间的距
离。
[0054] 图像采集设备当前的焦距可以通过获取图像采集设备的输出参数得到。且,当前的焦距单位为mm(毫米)。
[0055] S101‑2,根据当前的焦距确定图像采集设备的拍摄角度。
[0056] 本步骤的实现过程如下:
[0057] S101‑2‑1,在预设的标准焦距集中,确定与当前的焦距差最小的第一元素以及差次小的第二元素。
[0058] 其中,标准焦距集中的元素为15mm、17mm、20mm、24mm、28mm、35mm、55mm和58mm。
[0059] 若当前的焦距为15mm,则预设的标准焦距集中,焦距差最小的是15mm,差为0,焦距差次小的是17mm,差为2mm。那么第一元素为15mm,第二元素为17mm。
[0060] S101‑2‑2,根据预设的焦距与摄角之间的对应关系,确定第一元素对应的第一摄角以及第二元素对应的第二摄角。
[0061] 其中,预设的焦距与摄角之间的对应关系如下所示:
[0062] 焦距为15mm时,摄角为111度。
[0063] 焦距为17mm时,摄角为104度。
[0064] 焦距为20mm时,摄角为94度。
[0065] 焦距为24mm时,摄角为84度。
[0066] 焦距为28mm时,摄角为75度。
[0067] 焦距为35mm时,摄角为64度。
[0068] 焦距为55mm时,摄角为43度。
[0069] 焦距为58mm时,摄角为41度。
[0070] 仍以上面例子为例,第一元素为15mm,则第一摄角为111度,第二元素为17mm,则第二摄角为104度。
[0071] S101‑2‑3,根据当前的焦距与第一元素之间的差值、当前的焦距与第二元素之间的差值、第一摄角、第二摄角得到拍摄角度。
[0072] 具体的,
[0073] 1)若当前的焦距与第一元素之间的差值的绝对值为0,则得到拍摄角度=第一摄角。
[0074] 仍以上面例子为例,第一元素为15mm,当前的焦距与第一元素之间的差值的绝对值为0,因此,第一摄角111度为拍摄角度。
[0075] 2)若当前的焦距与第一元素之间的差值的绝对值非0,则得到拍摄角度=第一摄角‑a*[|当前的焦距与第一元素之间的差值|*|(第二摄角‑第一摄角)/(第二元素的值‑第
一元素的值)|+b]。
[0076] 其中,a为调整系数,如果当前的焦距与第一元素之间的差值为正,则a=1,若当前的焦距与第一元素之间的差值为负,则a=‑1,b为误差调整系数,b根据当前的焦距与第一元
素之间的差值、当前的焦距与第二元素之间的差值得到。
[0077] 例如,b的确定方案为:
[0078] 若当前的焦距与第一元素之间的差值为正,前的焦距与第二元素之间的差值也为正,或者,若当前的焦距与第一元素之间的差值为负,前的焦距与第二元素之间的差值也为
负,则b=当前的焦距与第一元素之间的差值/前的焦距与第二元素之间的差值。
[0079] 若当前的焦距与第一元素之间的差值为正,前的焦距与第二元素之间的差值为负,或者,若当前的焦距与第一元素之间的差值为负,前的焦距与第二元素之间的差值为
正,则b=|当前的焦距与第一元素之间的差值/第一元素与第二元素之间的差值|。
[0080] 若当前的焦距与第一元素之间的差值的绝对值为0,则可以认为已经预先定义了准确的拍摄角度,因此将第一摄角确定为拍摄角度。若当前的焦距与第一元素之间的差值
的绝对值非0,那么说明未预先定义准确的拍摄角度,只能通过定义的摄角确定最终的拍摄
角度。
[0081] 执行至此,会确定图像采集设备的当前拍摄角度,基于该拍摄角度就可以得知当前拍摄对象的大小。
[0082] S101‑3,根据拍摄角度以及距离确定皮损部位的长、宽。
[0083] 本步骤的实现过程如下:
[0084] S101‑3‑1,确定皮损部位图像中损部位的长度,将其作为初始长度值。确定皮损部位图像中损部位的宽度,将其作为初始宽度值。
[0085] S101‑3‑2,计算拍摄角度的一半,得到半拍摄角度。
[0086] S101‑3‑3,计算半拍摄角度的正切值*距离,得到比对值。
[0087] 此处的距离为S101‑1中获取的图像采集设备与皮损部位之间的距离,正切为角度的正切运算(tan)。
[0088] S101‑3‑4,根据比对值、皮损部位图像的长度、皮损部位图像的宽度、初始长度值、初始宽度值确定皮损部位的长、宽。
[0089] S101‑3‑4的实现方法很多,例如:皮损部位的长=2*比对值*初始长度值/皮损部位图像的长度。皮损部位的宽=2*比对值*初始宽度值/皮损部位图像的宽度。
[0090] 再例如:确定r=皮损部位图像的长度/皮损部位图像的宽度。若r=1,则皮损部位的长=2*比对值*初始长度值/皮损部位图像的长度。皮损部位的宽=2*比对值*初始宽度值/皮
损部位图像的宽度。若r>1,则皮损部位的长=2*比对值*初始长度值/皮损部位图像的长度。
皮损部位的宽=2*比对值*初始宽度值*r*b/皮损部位图像的宽度。若r<1,则皮损部位的长=
2*比对值*初始长度值*r*b/皮损部位图像的长度。皮损部位的宽=2*比对值*初始宽度值/
皮损部位图像的宽度。
[0091] S101‑4,将长、宽、皮损部位图像、皮损部位所属用户标识均作为皮损数据。
[0092] 相同的皮损部位被不同的患者拍摄,由于角度、图像采集设备距皮损部分远近等的不同,得到皮损部位图像(即照片)中皮损部位展示的大小差异较大,仅基于采集到的皮
损部位图像进行比较,分析,会存在不可比性。为了让不同患者采集的皮损部位图像有可比
性,通过步骤S101‑2和S101‑3可以将皮损部位的长度和宽度归一化,使得后续皮损部位图
像存在了可比性。因此,S101‑4中将长、宽、皮损部位图像、皮损部位所属用户标识均作为皮
损数据。
[0093] S102,人体部位获取模块获取皮损数据对应的人体部位。
[0094] 其中,人体部位包括但不限于如下的一种:头颈类部位、躯干类部位、上肢类部位、下肢类部位。
[0095] 头颈类部位具体为如下的一种:额面、颈前、头顶、颈后、右耳、左耳,如图2所示。
[0096] 躯干类部位具体为如下的一种:胸腹部、背部、会阴部,如图3所示。
[0097] 上肢类部位具体为如下的一种:右臂前、左臂前、左臂后、右臂后、双手手掌、双手手背,如图4所示。
[0098] 下肢类部位具体为如下的一种:大腿前、大腿后内、臀、小腿前外、小腿后、双足足背、双足足底,如图5所示。
[0099] S103,用户属性确定模块确定皮损数据对应的用户属性。
[0100] 本步骤的实现过程如下:
[0101] S103‑1,获取皮损数据所属用户的标识、历史皮损数据。
[0102] 其中,皮损数据所属用户的标识可以为皮损数据对应的患者的ID,如该患者的身份证号,或者,该患者的用户名,或者,该患者医保卡号,或者,该患者在相应医院(此处的相
应医院可以是用户设置中设置的,也可以是首次问诊时的医院,此处不做限定)中的ID号
等。
[0103] 另外,本步骤并非获取所有的历史皮损数据,而是获取满足预设关系的皮损数据,该预设关系为:对于任一获取的历史皮损数据D1,D1所属人体部位与S102中人体部位获取
模块获取的人体部位相同,同时,满足0.8<(D1中皮损面积涉及的所有像素的灰度最大值‑D1中皮损面积涉及的所有像素的灰度最小
值)/(皮损数据中皮损面积涉及的所有像素的灰度最大值‑皮损数据中皮损面积涉及的所
有像素的灰度最小值)<1.2。
[0104] 此处的皮损数据为S101中数据获取模块获取的皮损数据。
[0105] 也就是说,如果一个历史皮损数据D2,它的所标注的人体部位与S102中人体部位获取模块获取的人体部位相同(如都是右足),同时,皮损面积/皮损数据中皮损面积的值在
0.8(不含0.8)至1.2(不含1.2)之间,且(它的皮损面积涉及的所有像素的灰度最大值‑它的
皮损面积涉及的所有像素的灰度最小值)/(皮损数据中皮损面积涉及的所有像素的灰度最
大值‑皮损数据中皮损面积涉及的所有像素的灰度最小值)的值也在0.8(不含0.8)至1.2
(不含1.2)之间,那么这个历史皮损数据D2才是本步骤需要获取的皮损数据。
[0106] 通过此预设关系,选出了与S101中数据获取模块获取的皮损数据面积相似,像素值也相似的历史皮损数据。
[0107] S103‑2,根据历史皮损数据,得到S102中人体部位获取模块获取的人体部位的权重。
[0108] 本步骤中的权重用于表征该人体部位得皮肤病的可能性。
[0109] 具体的,本步骤的一种实现方式为:
[0110] 1.1确定各历史皮损数据中皮损面积,皮损涉及的各像素点的灰度值。
[0111] 1.2根据所有的皮损面积和所有的灰度值确定权重。
[0112] 其中,因为历史皮损数据在获得的时候,会得到其皮损部位的长、宽、皮损部位图像,此处可以基于长、宽得到皮损面积(如长*宽,或者,3.1415926*长*宽/4),以及皮损部位
图像中每个像素点的灰度值。
[0113] 此时,1.1根据所有的皮损面积和所有的灰度值确定权重的实现方案为:1)计算每一个历史皮损数据的灰度指标。2)将所有历史皮损数据按采集时间从前至后排序,得到排
序序列。3)排序序列第一个历史皮损数据开始,计算其与排序在其后的第一个历史皮损数
据之间的面积差以及灰度指标差。4)根据面积差、灰度指标差确定权重,如将权重确定为
(面积差的最大值/|所有面积差的均值‑排序序列中最后一个历史皮损数据的皮损面积|)*
(所有历史皮损数据中皮损面积的均值/皮损数据中皮损面积)*(|皮损数据的灰度指标‑最
后一个历史皮损数据的灰度指标|/灰度指标差的均值)。
[0114] 其中,任一皮损数据的灰度指标=任一皮损数据中皮损涉及的各像素点的灰度值的均值。或者,任一皮损数据的灰度指标=E*(ave‑min)/(max‑ave)。
[0115] 任一皮损数据可以为历史皮损数据,也可以为S101中数据获取模块获得的皮损数据。
[0116] E为任一皮损数据中皮损涉及的各像素点的灰度值的标准差,ave为任一皮损数据中皮损涉及的各像素点的灰度值的均值,min为任一皮损数据中皮损涉及的各像素点的灰
度值的最小值,max为任一皮损数据中皮损涉及的各像素点的灰度值的最大值。
[0117] 以历史数据为D2、D3、D4和D5,任一待处理数据的灰度指标=任一待处理数据中皮损涉及的各像素点的灰度值的均值为例进行说明,计算D2中皮损部位的面积(如S21)以及
各像素点的灰度值,将D2中各像素点的灰度值的均值作为D2的灰度指标(如G21)。同样,计
算D3中皮损部位的面积(如S31)以及各像素点的灰度值,将D3中各像素点的灰度值的均值
作为D3的灰度指标(如G31)。计算D4中皮损部位的面积(如S41)以及各像素点的灰度值,将
D4中各像素点的灰度值的均值作为D4的灰度指标(如G41)。计算D5中皮损部位的面积(如
S51)以及各像素点的灰度值,将D5中各像素点的灰度值的均值作为D5的灰度指标(如G51)。
[0118] 按D2、D3、D4、D5的采集顺序将其排列,如排列序列为:D5、D3、D2、D4。那么计算D5与D3的面积差S51‑S31(为了方便描述,将S51‑S31的值记为DS531),D3与D2的面积差S31‑S21
(为了方便描述,将S31‑S21的值记为DS321),D2与D4的面积差S21‑S41(为了方便描述,将
S21‑S41的值记为DS241)。计算D5与D3的灰度指标差G51‑G31(为了方便描述,将G51‑G31的
值记为DG531),D3与D2的灰度指标差G31‑G21(为了方便描述,将G31‑G21的值记为DG321),
D2与D4的灰度指标差G21‑G41(为了方便描述,将G21‑G41的值记为DG241)。
[0119] 若DS531、DS321、DS241中的最大值为DS321,最小值为DS241,均值为(DS531+DS321+DS241)/3(为方便描述记为ES1),若DG531、DG321、DG241中的最大值为DG531,最小值为
DG321,均值为(DG531+DG321+DG241)/3(为方便描述记为EG1),则权重=(DS321/|ES1‑S41
|)*(S21、S31、S41、S51的均值/皮损数据中皮损面积)*(|S101中数据获取模块获得的皮损
数据的灰度指标‑G51|/EG1)。
[0120] 其中,1)|所有历史皮损数据中皮损面积的均值‑所述排序序列中最后一个历史皮损数据的皮损面积|描述了最近的一个历史皮损数据与平均数据之间的面积差距,2)所有
历史皮损数据中皮损面积的均值/所述皮损数据中皮损面积描述了历史皮损数据中的皮损
面积与S101中数据获取模块获得的皮损数据的皮损数据面积之间的关系,3)|皮损数据的
灰度指标‑最后一个历史皮损数据的灰度指标|/灰度指标差的均值描述了S101中数据获取
模块获得的皮损数据的灰度指标与最近一次的历史皮损数据指标之间的差距与历史皮损
数据中灰度指标的平均差距之间的关系。通过上述三个指标可以反应S101中数据获取模块
获得的皮损数据与历史的皮损数据之间的相似程度,根据历史的皮损数据最终患病情况就
可以得知S101中数据获取模块获得的皮损数据患病可能性,因此,该权重可用于表征得皮
肤病的可能性。
[0121] 又由于选择历史皮损数据时,选择的是人体部位相同的历史数据,因此,该权重可用于表征该人体部位得皮肤病的可能性。
[0122] 本步骤除了上述实现方式之外,还可以通过如下方式实现,本步骤的另一种实现方式为:
[0123] 2.1确定各历史皮损数据中皮损面积,皮损涉及的各像素点的灰度值,皮肤病确诊结论。
[0124] 其中,皮肤病确诊结论为无皮肤病,或者所患皮肤病的名称。
[0125] 2.2将对应同一皮肤病确诊结论的历史皮损数据归为一类。
[0126] 2.3根据所有的皮损面积和所有的灰度值确定与每类对应的权重,形成权重向量
[0127] 其中,向量中每一个元素为一个对应关系,该对应关系为类对应的皮肤病确诊结论与类对应的权重之间的对应关系。
[0128] 2.4将权重向量作为S102中人体部位获取模块获取的人体部位的权重。
[0129] 其中,2.3中根据所有的皮损面积和所有的灰度值确定与每类对应的权重的实现过程如下:针对每一类,1)计算该类中,每一个历史皮损数据的灰度指标。2)将所有历史皮
损数据按采集时间从前至后排序,得到排序序列。3)从排序序列第一个历史皮损数据开始,
计算其与排序在其后的第一个历史皮损数据时间的面积差以及灰度指标差。4)将该类对应
的权重确定为(该类中历史皮损数据的数量/历史皮损数据的总数量)*(面积差的最大值/|
所有面积差的均值‑排序序列中最后一个历史皮损数据的皮损面积|)*(所有历史皮损数据
中皮损面积的均值/皮损数据中皮损面积)*(|皮损数据的灰度指标‑最后一个历史皮损数
据的灰度指标|/灰度指标差的均值)。
[0130] 其中,任一皮损数据的灰度指标=任一皮损数据中皮损涉及的各像素点的灰度值的均值。或者,任一皮损数据的灰度指标=E*(ave‑min)/(max‑ave)。
[0131] 任一皮损数据可以为历史皮损数据,也可以为S101中数据获取模块获得的皮损数据。
[0132] E为任一皮损数据中皮损涉及的各像素点的灰度值的标准差,ave为任一皮损数据中皮损涉及的各像素点的灰度值的均值,min为任一皮损数据中皮损涉及的各像素点的灰
度值的最小值,max为任一皮损数据中皮损涉及的各像素点的灰度值的最大值。
[0133] 以某一类的历史数据为D20、D30、D40和D50,任一待处理数据的灰度指标=任一待处理数据中皮损涉及的各像素点的灰度值的均值为例进行说明,计算D20中皮损部位的面
积(如S22)以及各像素点的灰度值,将D20中各像素点的灰度值的均值作为D20的灰度指标
(如G22)。同样,计算D30中皮损部位的面积(如S32)以及各像素点的灰度值,将D30中各像素
点的灰度值的均值作为D30的灰度指标(如G32)。计算D40中皮损部位的面积(如S42)以及各
像素点的灰度值,将D40中各像素点的灰度值的均值作为D40的灰度指标(如G42)。计算D50
中皮损部位的面积(如S52)以及各像素点的灰度值,将D50中各像素点的灰度值的均值作为
D50的灰度指标(如G52)。
[0134] 按D20、D30、D40、D50的采集顺序将其排列,如排列序列为:D50、D30、D20、D40。那么计算D50与D30的面积差S52‑S32(为了方便描述,将S52‑S32的值记为DS532),D30与D20的面
积差S32‑S22(为了方便描述,将S32‑S22的值记为DS322),D20与D40的面积差S22‑S42(为了
方便描述,将S22‑S42的值记为DS242)。计算D50与D30的灰度指标差G52‑G32(为了方便描
述,将G52‑G32的值记为DG532),D30与D20的灰度指标差G32‑G22(为了方便描述,将G32‑G22
的值记为DG322),D20与D40的灰度指标差G22‑G42(为了方便描述,将G22‑G42的值记为
DG242)。
[0135] 若DS532、DS322、DS242中的最大值为DS322,最小值为DS242,均值为(DS532+DS322+DS242)/3(为方便描述记为ES2),若DG532、DG322、DG242中的最大值为DG532,最小值为
DG322,均值为(DG532+DG322+DG242)/3(为方便描述记为EG2),则权重=(该类中历史皮损数
据的数量/S103‑1中获取的历史皮损数据的总数量)*(DS322/|ES2‑S42|)*(S22、S32、S42、
S52的均值/皮损数据中皮损面积)*(|S101中数据获取模块获得的皮损数据的灰度指标‑
G52|/EG2)。
[0136] 其中,对于任何一类,1)该类中历史皮损数据的数量/S103‑1中获取的历史皮损数据的总数量描述了该类中皮损数据量占比;2)|所有历史皮损数据中皮损面积的均值‑所述
排序序列中最后一个历史皮损数据的皮损面积|描述了最近的一个历史皮损数据与平均数
据之间的面积差距,3)所有历史皮损数据中皮损面积的均值/所述皮损数据中皮损面积描
述了历史皮损数据中的皮损面积与S101中数据获取模块获得的皮损数据的皮损数据面积
之间的关系,4)|皮损数据的灰度指标‑最后一个历史皮损数据的灰度指标|/灰度指标差的
均值描述了S101中数据获取模块获得的皮损数据的灰度指标与最近一次的历史皮损数据
指标之间的差距与历史皮损数据中灰度指标的平均差距之间的关系。通过上述三个指标可
以反应S101中数据获取模块获得的皮损数据与历史的皮损数据之间的相似程度,以及该类
患病概率,根据历史的皮损数据最终患病情况就可以得知S101中数据获取模块获得的皮损
数据患病可能性,因此,该权重可用于表征得该类所对应的皮肤病的可能性。又由于选择历
史皮损数据时,选择的是人体部位相同的历史数据,因此,该权重可用于表征该人体部位得
该类对应的皮肤病的可能性。
[0137] S103‑3,标识与权重均确定为用户属性。
[0138] S104,标注模块将人体部位和用户属性作为标注内容标注在皮损数据上。
[0139] 若人体部位为面额,则将面额、用户ID以及权重作为标注内容标注在皮损数据上。
[0140] 标注内容除了人体部位和用户属性之外,还会包括其他属性,例如标注如下三个维度的信息:
[0141] 三个维度为:图片类型、部位特征、皮损特征。
[0142] 图片类型指标分为临床大体图片、皮肤镜图片、病理图片、超声图片、其他;根据不同的疾病部位特征和皮损特征有所差异,比如银屑病(部位特征20个身体部位划分、皮损特
征4个“面积/红斑/浸润/鳞屑”),特应性皮炎(部位特征19个身体部位划分、皮损特征6个
“红斑/丘疹水肿/渗出结痂/表皮剥脱/苔藓化/皮肤干燥”)。
[0143] 例如,银屑病皮损特征指标如下所示:
[0144] 皮疹面积:
[0145] 1:1 10%~
[0146] 2:10 29%~
[0147] 3:30 49%~
[0148] 4:50 69%~
[0149] 5:70 89%~
[0150] 6:90 100%~
[0151] 红斑程度:
[0152] 0:无(无红斑可见)
[0153] 1:轻度(呈淡红色)
[0154] 2:中等度(红色)
[0155] 3:重度(深红色)
[0156] 4:极重度(红色极深)
[0157] 鳞屑程度:
[0158] 0:无(表面无可见鳞屑)
[0159] 1:轻度(部分皮损表面上覆有鳞屑,以细微的鳞屑为主)
[0160] 2:中等度(大多数皮损表面完全或不完全覆有鳞屑,鳞屑呈片状)
[0161] 3:重度(几乎全部皮损表面覆有鳞屑,鳞屑较厚成层)
[0162] 4:极重度(全部皮损表面均覆有鳞屑,鳞屑很厚成层)
[0163] 浸润程度:
[0164] 0:无(皮损与正常皮肤平齐)
[0165] 1:轻度(皮损轻微高出于正常皮肤表面)
[0166] 2:中等度(中等度隆起,斑块的边缘为圆或斜坡形)
[0167] 3:重度(皮损肥厚,隆起明显)
[0168] 4:极重度(皮损高度增厚,隆起极为明显)
[0169] 再例如,特应性皮炎皮损特征指标如下所示:
[0170] 皮损面积:
[0171] 0:无皮损
[0172] 1:1‑10%
[0173] 2:11‑20%
[0174] 3:21‑30%
[0175] 4:31‑40%
[0176] 5:41‑50%
[0177] 6:51‑60%
[0178] 7:61‑70%
[0179] 8:71‑80%
[0180] 9:81‑90%
[0181] 10:91‑100%
[0182] 红斑:
[0183] 0:未见红斑
[0184] 1:少许红斑,颜色较浅
[0185] 2:片状红斑,颜色较深
[0186] 3:红斑泛发,颜色鲜红或紫红,皮温升高
[0187] 丘疹或水肿:
[0188] 0:未见丘疹及水肿
[0189] 1:少许丘疹或轻度水肿
[0190] 2:较多数目丘疹或中度水肿
[0191] 3:丘疹泛发或水肿显著
[0192] 渗出或结痂:
[0193] 0:未见渗出或结痂
[0194] 1:轻度渗出或少许结痂
[0195] 2:渗出较明显或有一定程度结痂
[0196] 3:渗出明显或可见大面积黄痂、黑痂
[0197] 表皮剥脱:
[0198] 0:未见表皮剥脱
[0199] 1:表皮轻度剥脱
[0200] 2:表皮中度剥脱
[0201] 3:表皮重度剥脱
[0202] 苔藓样变:
[0203] 0:皮损未见苔藓化改变
[0204] 1:皮损略肥厚
[0205] 2:皮损肥厚较明显,皮纹增生,皮脊略隆起
[0206] 3:皮损明显肥厚,皮纹明显增生,皮脊隆起
[0207] 皮肤干燥:
[0208] 0:皮肤润泽
[0209] 1:皮肤略干燥
[0210] 2:皮肤较干燥,轻度脱屑
[0211] 3:皮肤明显干燥,显著脱屑
[0212] 上述三个维度的标注方式如图6所示。
[0213] 在标注时,可通过训练号的标注模型进行实现。该模型的训练过程如下:
[0214] 基于上述标注内容进行数据转换,得到模型训练所需要的历史训练数据及所需格式(training_data.csv, training_data.xml),其中包括训练图片疾病分类和皮损特征检
测所需要的标注内容。接下来,标注内容作为参数进行模型训练和调优。比如:银屑病的特
征模型训练,大体步骤为:
[0215] 1. 数据训练:将已有银屑病分类数据集(包含了相应的标注内容)xls文件格式按需转为csv/txt格式。然后根据随机打乱图片顺序抽取90%作为训练数据train.txt,其余作
为测试数据val/test.txt, 解析xls文件pd.read_excel(file_name)。
[0216] 如通过如下方式完成:
[0217] all_index = list(range(img_num))
[0218] random.shuffle(all_index)
[0219] train_index = all_index[:int(img_num * 0.9)]
[0220]  for i, img_url in zip(all_index, img_con['0']):
[0221]     if i in train_index:
[0222] setTrainSet(i)
[0223] else:
[0224] setTestSet(i)
[0225] 2. 模型预训练:选取一个已有的常见分类模型如resnet系列并确定其在imagenet上的预训练权重,得到一个baseline模型结构与训练权重。
[0226] 如通过如下方式完成:
[0227] state_dict = load_state_dict_from_url('https://download.pytorch.org/models/resnet18‑5c106cde.pth', model_dir='.')
[0228] model = torchvision.models.resnet18()
[0229] model.load_state_dict(state_dict)
[0230] 3. 模型消融调优实验:调整不同模型输入尺寸、优化方式、学习率下降方式、图片增强方式(镜像、裁剪、色域等)、不同损失(loss)计算方式等。
[0231] 如通过如下方式完成:
[0232] F.interpolate(img.unsqueeze(0), size=(416,416), mode="nearest").squeeze(0)
[0233] optimizer = torch.optim.Adam(model.parameters(), lr=lr)
[0234] transforms.Normalize(mean=[0.502236, 0.50259746, 0.5104974], std=[0.22640832, 0.18960338, 0.20399043])(img)
[0235] weight=torch.as_tensor([1,1,1,1.,1,1]).cuda() #其中这几个1替换为各个类别所占图片张数的倒数(如果数据有类别不均衡分布的话)
[0236] loss_func = torch.nn.CrossEntropyLoss(weight)
[0237] 4. 模型输出:记录第三步模型在测试集性能效果。并选择最佳效果模型。
[0238] # 每类的P R
[0239] for j in range(class_num):
[0240] tp_j[j] += (pred[pred == batch_y]==j).sum()
[0241] target_j[j] += (batch_y == j).sum()
[0242] pred_j[j] += (pred==j).sum()
[0243] print('P',tp_j[z]/ (pred_j[z]+1e‑4),'R'tp_j[z]/target_j[z]))
[0244] tp_sum = 0
[0245] for t in tp_j:
[0246] tp_sum += t
[0247] Recall = tp_sum / (class_num * len(test_loader) * (batch_x.shape[0]))
[0248] mAP=0
[0249] if Recall>best_Recall:
[0250]     # 保存模型
[0251] best_Recall = Recall
[0252] 5. 模型部署:将第4步得到的模型进行转换,大概路线有三种分别是PyTorch‑>ONNX(不依赖opencv与GPU)
[0253] model = torchvision.models.resnet18()
[0254] x = torch.randn((batch_size, 3, net_h, net_w))
[0255] onnx_file_name = "piyan_{}_{}_{}_static.onnx".format(batch_size, net_h, net_w)
[0256] torch.onnx.export(model,
[0257] x,
[0258] onnx_file_name,
[0259] export_params = True,
[0260] opset_version = 12,
[0261] do_constant_folding = True,
[0262] input_names = ["input"],
[0263] output_names = ['output'],
[0264] dynamic_axes = dynamic_axes)
[0265] with trt.Builder(TRT_LOGGER) as builder, builder.create_network(
[0266]                 EXPLICIT_BATCH) as network, trt.OnnxParser(network, TRT_LOGGER) as parser:
[0267]                 config = builder.create_builder_config()
[0268] builder.max_batch_size = 1
[0269] config.max_workspace_size = 1 << 30
[0270]                 if trt_type == '_FP16':
[0271] config.set_flag(trt.BuilderFlag.FP16)
[0272]         if trt_type == '_INT8':
[0273] config.set_flag(trt.BuilderFlag.INT8)
[0274]                 config.int8_calibrator = YOLOEntropyCalibrator(
[0275] '/home/cmv/PycharmProjects/YOLOv4‑PyTorch/data/wenyi/test', (cfg.h, cfg.w), 'calib_yolov4.bin')
[0276]         print('解析完成,正在构建TensorRT Engine {},这大概需要一会时间...'.format(engine_file_path))
[0277]          engine = builder.build_engine(network, config)
[0278]         with open(engine_file_path, "wb") as t:
[0279] t.write(engine.serialize())
[0280]          print("TensorRT Engine 构建完成")
[0281] # 根据具体部署环境得到一个最终的部署应用模型
[0282] PyTorch‑>ONNX‑>TensorRT(Nvidia GPU)、PyTorch‑>ONNX‑>OpenVINO(Intel CPU)。
[0283] S105,分析模块对标注后的皮损数据进行分析。
[0284] 例如,分析模块通过卷积神经网络对标注后的皮损数据进行分析,确定皮损数据与各皮肤病之间的关联关系,找到最相似的皮肤病,并输出该最相似的皮肤病,将其作为最
终的分析结果。
[0285] S106,结果确定模块基于分析结果得到辅助问诊结果。
[0286] 问诊结果形式可以多种多样,如图7、图8所示的评分式结果。或者图9、图10所示的趋势式结果。还可为图11、图12所示的报告式结果。
[0287] 具体实现时,本实施例提供的方案可以通过训练好的模型进行分析及诊断。
[0288] 如上传一个图片,作为S101中数据获取模块获取的皮损数据,经过人体部位获取模块、用户属性确定模块、标注模块、分析模块、结果确定模块通过训练好的模型完成S102‑
S106过程后得到最有可能的三个疾病,如图13所示,结节性红斑、扁平疣、荨麻疹,左右滑动
查看具体疾病信息,更多详细介绍了该疾病特征和诊疗案例。
[0289] 本实施例提供的系统,对皮损数据进行标注,对标注后的皮损数据进行分析,基于分析结果得到辅助问诊结果,提供了一种远程医疗辅助实现方案。
[0290] 为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发
明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理
解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0291] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0292] 本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程
和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。
[0293] 应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的
词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的
硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中
的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表
述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
[0294] 此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具
体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对
上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结
构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互
矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实
施例或示例的特征进行结合和组合。
[0295] 尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施
例以及落入本发明范围的所有变更和修改。
[0296] 显然,本领域技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之
内,则本发明也应该包含这些修改和变型在内。