一种服药监测方法和装置与流程
本发明涉及机器视觉领域,特别是指一种服药监测方法和装置。
背景技术:
美沙酮又名盐酸美沙酮、美散痛、阿米酮,是阿片受体激动剂,属麻醉性镇痛药,是二战期间德国合成的替代吗啡的麻醉性镇痛药。20世纪60年代初发现此药具有治疗海洛因依赖脱毒和替代维持治疗的药效作用,是目前我国“阿片类物质成瘾者社区药物维持治疗”所采用的药物,用于吸毒成瘾病人的脱毒治疗。
目前,美沙酮门诊内的各个环节监管流程十分严格,主要包括从库房取药、受治者申请、受治者服药等。库房取药包括:每日晨8:30时由门诊分药处工作人员、保安及办公室库房管理人员一起,由库房管理人员开库房门,门诊分药处工作人员和库房管理人员分别开锁;库房管理人员按需要取美沙酮,门诊分药处工作人员和库房管理人员分别在美沙酮出入库登记册上签字确认;保安和门诊分药处工作人员携带药品出库,库房管理人员确认库房内无人,则锁门;保安和门诊分药处工作人员携带药品到门诊,保安和门诊分药处工作人员核实药品并在药品使用登记册上签字。
受治者服药流程:医生处方→资料录入、领取治疗剂量卡→发药室领取药品→看服,并要求饮用一杯以上饮用水→候诊室观察、接受健康教育→确认无不良反应后自行离开。
上述的各个流程需要人工处理,十分繁琐,特别是在取药过程,易出错、因此,市场上出现一种自助式给药设备,设置有验证系统、ic卡读卡器、供药装置和控制主机等,通过验证系统用于验证戒毒人员身份,ic卡读卡器用于读取戒毒人员所持ic卡,供药装置用于为戒毒人员供药,供药装置包括发放饮药杯的饮药杯发放组件、能够输送饮药杯的传送组件、储存药液的药液储存容器、将药液储存容器中的药液泵入饮药杯中供戒毒人员从药液供应口处获取药液的药液蠕动泵,能实现自助式、后端集中化治疗服务,为戒毒人员的药物维持治疗提供便利,降低治疗费用。但是,这种自助式给药设备,需要携带ic卡,且不能监控服药人员是否当场将药液服用完毕,存在监管漏洞。
技术实现要素:
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种服药监测方法和装置,智能监控整个服药流程,有效降低了人力成本,提高监管水平。
本发明采用如下技术方案:
一种服药监测方法,其特征在于,包括如下步骤:
1)实时采集服药人员的图像信息,对图像信息进行肢体检测得到关键点位置;
2)根据关键点位置判断服药人员其中一只手是否执行指定动作,若是,控制出药机出药,进入步骤3),若否,则判定异常并进入步骤5);
3)根据关键点位置判断服药人员另一只手是否执行服药动作,且其中一只手是否保持指定动作,若是,则进入步骤4),若否,则判定异常并进入步骤5);
4)判断是否服药完毕,若是,则结束;若否,则判定异常并进入步骤5);
5)异常处理。
优选的,所述步骤1)中,采集的服药人员的图像信息包括有至少两个方向的图像信息。
优选的,所述步骤1)中关键点位置包括有手腕位置、肘部位置、肩部位置、颈部位置、脸部五官位置中的一种或多种组合。
优选的,所述步骤1)中,还包括先根据肢体检测判断服药人员数量是否大于0,若否则重复本步骤;若是则判断服药人员数量是否等于1,若否则判定为多人异常并进入步骤5),若是则获取关键点位置进入步骤2)。
优选的,所述步骤2)或步骤3)中,所述指定动作为保持其中一只手位于指定位置,根据关键点位置判断服药人员其中一只手是否执行指定动作是指根据关键点位置判断其手腕是否处于指定位置的预设区域内。
优选的,所述步骤2)中,出药机出药后,还判断药杯内是否检测到药液,若否,则判定为出药异常并进入步骤5),若是,则进入步骤4)。
优选的,所述步骤3)中,所述服药动作包括握杯和将药杯送至嘴边;通过手腕位置是否检测到药液来判定是否握杯,通过关键点位置是否满足共线条件和角度条件来判断是否将药杯送至嘴边。
优选的,所述共线条件是指若干个关键点位置处于同一条直线上;所述角度条件是指以其中两关键点位置连线为边,手腕位置与该边一端的夹角的角度变化为由正变负。
优选的,所述步骤4)中,先通过关键点位置划定嘴部区域,再判断在该嘴部区域内药杯的药液是否从有到无,若是,则服药完毕。
优选的,通过检测药杯中,特定颜色目标是否存在来判断药杯是否有药液。
优选的,所述步骤4)中,服药完毕后,还包括检测药杯是否残留药液,若是,则进入步骤5),若无则结束。
优选的,所述步骤4)中,先判断服药人员是否将药杯举到指定位置,再检测药杯是否残留药液。
一种服药监测装置,其特征在于,包括
图像采集模块,用于实时采集服药人员的图像信息;
肢体检测模块,用于对图像信息进行肢体检测得到关键点位置;
服药判断模块,根据关键点位置判断服药人员其中一只手是否执行指定动作、另一只手是否执行服药动作、判断是否服药完毕及发送异常信息;
异常模块,用于根据异常信息执行异常处理。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
1、本发明的方法,通过关键点位置依次判断服药人员其中一只手是否执行指定动作,服药人员另一只手是否执行服药动作及是否服药完毕,通过智能监控和无接触式自助式服药,监测、识别、跟踪整个服药流程,实现服药流程规范化、有效降低了人力成本。
2、本发明的方法,通过肢体检测识别关键点位置,包括有手腕位置、肘部位置、肩部位置、颈部位置、脸部五官位置中的一种或多种组合等,不同位置组合可实现不同功能识别需求。
3、本发明的方法,采集的服药人员的图像信息包括有至少两个方向的图像信息,以便于通过不同角度识别用户及药液等,识别结果更为准确。
4、本发明的方法,本发明通过肢体检测判断服药人员数量,避免多人操作,干扰服药流程,造成监管漏洞。
5、本发明的方法,通过使服药人员保持其中一只手位于指定位置或者比划指定手势等,使得该手不能对服药过程进行干扰,实现无接触方式固定一只手,更为安全和便于操作。
6、本发明的方法,通过动作分解,结合关键点位置判断是否握杯,通过满足共线条件和角度条件来判断是否将药杯送至嘴边,进一步判断是否执行服药动作,算法简单、准确率高。
8、本发明的方法,先通过关键点位置划定嘴部区域,再判断在该嘴部区域内药杯的药液是否从有到无,能准确分辨出服药过程中存在的异常情况,例如嘴部残留药液,中途倒掉药液等。
附图说明
图1为本发明装置模块图;
图2为本发明方法主流程图;
图3为图像采集模块判断流程图;
图4为肢体检测流程图;
图5为肢体检测示意图(多人);
图6为肢体检测示意图(单人);
图7为左手位于指定位置判断流程图;
图8为镜面示例图;
图9为左手位置示意图;
图10为出药机出药流程图;
图11为是否握杯判断流程图;
图12为检测药液流程图;
图13为识别将药杯送至嘴边流程图;
图14为举杯过程示意图;
图15为共线条件和角度条件示意图;
图16为检测是否服药完毕流程图;
图17为检测是否药物残留流程图。
以下结合附图和具体实施例对本发明作进一步详述。
具体实施方式
以下通过具体实施方式对本发明作进一步的描述。
本发明提出一种服药监测装置,参见图1,包括如下主要模块:图像采集模块、肢体检测模块,服药判断模块和异常模块。图像采集模块用于实时采集服药人员的图像信息。为了获取不同方向的图像信息,本发明可架设至少两个摄像头,可安装于不同位置。例如,其中一个为前置摄像头安装于服药人员正前方约60cm处,高度约为1.8m,视角朝向服药人员上半身。另一个摄像头架设于服药人员正上方离地约2.4m处,视角朝下,可实时获取服药人员的前方、上方的画面。前置摄像头同时兼有镜子功能,服药人员通过显示屏可以看到自己的一举一动。镜面示例如图8所示,方便服药人员查看和执行服药过程中的指定动作。
该模块工作时,先判断正前方的摄像头是否打开,若否,发送插入前置摄像头的提醒。在成功打开前置摄像头的前提下,判断上方摄像头是否打开,如果没有打开,发送插入上方摄像头的提醒。在两个摄像头都打开的前提下,从两个摄像头读取实时图像帧,并进行图像预处理,该预处理为降采样。
肢体检测模块用于对图像信息进行肢体检测得到关键点位置。服药判断模块用于根据关键点位置判断服药人员其中一只手是否执行指定动作、另一只手是否执行服药动作、判断是否服药完毕及发送异常信息。异常模块用于根据异常信息执行异常处理。
参见图2,本发明还提出一种服药监测方法,其包括如下步骤:
1)实时采集服药人员的图像信息,对图像信息进行肢体检测得到关键点位置。
该步骤中,采集的服药人员的图像信息包括有至少两个方向的图像信息,例如正面视图、俯视图、侧视图等常见视图中的两种,优选的,为正面视图和俯视图。该步骤中,对采集的图像信息进行降采样,得到的处理后的图像包括正面图像fim(frontimage),上方的图像记为uim(upperimage)。
该步骤中,采用的肢体动作识别技术是通过视频采集人体图像进而对肢体进行识别、跟踪的技术,可以实时检测到摄像头画面中的每个人的各肢体部位。通过该肢体检测得到的关键点位置包括有手腕位置、肘部位置、肩部位置、颈部位置、脸部五官位置中的多种组合,其中脸部五官位置可以是鼻子、嘴巴、眼睛、耳朵和眉毛中的至少一种,参见图4。
具体的,采用正面图像fim检测肢体,检测到人员数量为1后,获取的关键点位置包括有左手腕(leftwrist)位置表示为lw,左肘部(leftelbow)位置表示为le,左肩处(leftshoulder)位置表示为ls,右手腕(rightwrist)位置表示为rw,右肘部(rightelbow)位置表示为re,右肩处(rightshoulder)位置表示为rs,颈部(neck)位置表示为nc,鼻子(nose)位置表示为ns。
参见图6,图像中坐标系原点设置为图像左上角,向右为x轴正方向,向下为y轴正方向。在后文中,位置变量加上横、纵坐标后缀用来表示各自方向上的坐标值,如lw_x表示左手腕关键点位置的x坐标值。
本发明方法只允许一个人单独服药,周围不能有其他人出现。因此,在该步骤中,先根据肢体检测判断服药人员数量是否大于0,若否则重复本步骤;若是则判断服药人员数量是否等于1,若否则判定为多人异常并进入步骤5),若是则获取关键点位置进入步骤2)。
2)根据关键点位置判断服药人员其中一只手是否执行指定动作,若是,控制出药机出药,进入步骤3),若否,则判定异常并进入步骤5)。本发明的出药机可采用现有的出药设备,其可根据命令输出具有定量药液的药杯。
本发明中,设定其中一只手执行指定动作的目的是要求另一只手握杯,因此这只手不能对服药过程进行干扰,且实现无接触方式固定手。指定动作为保持这只手位于指定位置,根据关键点位置判断服药人员其中一只手是否执行指定动作是指根据关键点位置判断其手腕是否处于指定位置的预设区域内。依据大部分人的习惯,以下以左手执行指定动作,右手握杯为例,实际应用中,不限于此,可对调。指定动作不限于此,还可以其它方式,例如左手握住特定部件或左手比划特定手势等。
具体地,参见图8,服药人员可在出药机的显示屏上看到前置摄像头采集到的实时画面。
该步骤所需要的关键点位置为左手腕位置信息lw。如图9所示,图中左边矩形区域为指定位置,边长为hw,(h_x,h_y)表示fim中指定位置中心的位置。设定条件为:左手腕关键点位置lw_x,lw_y,位于矩形区域正下方,预设区域中心在矩形区域的下边界中点,宽为t_x,长为t_y,则所需满足条件描述为:
|lw_x-h_x|<t_x,|lw_y-(h_y+hw/2)|<t_y(1)
该步骤中,可引入状态变量lpc,指示左手是否放到位置,lpc初始化为false,表示未在指定位置。如果左手腕位置lw满足公式(1)所示条件,说明左手腕位于预设区域,则将lpc置为true,表示位于指定位置。
参见图7,如果公式(1)所示条件不满足,还需判断是左手固定后又移开还是一直没有固定好。即在公式(1)所示条件不满足的前提下,若lpc为false,说明一直没有固定,此时直接读取下一帧图像继续判断;如果lpc为true,说明左手固定后又移开,则判定为左手移开异常。在没有异常的情况下,检测到左手放到指定位置后,发送出杯请求。
参见图10,该步骤中,出药机根据出杯请求出药,出杯成功后还判断药杯内是否检测到药液,若否,则判定为出药异常并进入步骤5),若是,则进入步骤3)。具体的,通过上方摄像头获取的图像uim进行检测药液。
3)根据关键点位置判断服药人员另一只手是否执行服药动作,且左手是否保持指定动作,若是,则进入步骤4),若否,则判定异常并进入步骤5)。
该步骤中,服药动作包括先握杯,再将药杯送至嘴边;通过手腕位置是否检测到药液来判定是否握杯,通过关键点位置是否满足共线条件和角度条件来判断是否将药杯送至嘴边。
参见图11,对于检测是否握杯,采用前置摄像头获取的图像fim进行识别,需要使用关键点位置是右手腕位置信息rw,以rw为基点,划定握在右手中杯子的位置范围,截取该范围对应的图像,记为rwim,接下来在rwim中检测是否存在药液。
设置参数rwnum,用来记录跟随手腕连续检测到药液的次数。该参数在完成一次服药流程(包括报告异常后重新进入服药流程)后重置为0。设置状态参数rws,rws为true时对应右手握住有药液的杯子,该值初始化为false。设置状态参数rwns,rwns为true时对应服药后右手握着的杯子里没有药液,该值初始化为false。
如果右手腕区域检测到药液,说明右手握着有药液的杯子,此时计数参数rwnum增加1,如果增加到超过阈值rwthresh,则将rws置为true,并进入下个阶段。这里设置阈值的主要原因是从右手举杯到送到嘴边有一定时间量,该阈值对应这个时间内处理的前置摄像头的帧数。
在右手腕区域没有检测到药液的前提下,有两种可能的情况:一是右手尚未抓到杯子;二是药液已经被服用或被倒掉,杯子里没有药液。第一种情况下rws为false,第二种情况下rws为true,所以当rws为false时继续读取下一帧图像进行识别,为true时将rwns置为true,则服药完毕或药被倒掉,通过后续步骤进一步判断。
对检测是否将药杯送至嘴边,采用肢体关键点位置之间的相对位置特征来识别。共线条件是指若干个关键点位置处于同一条直线上;角度条件是指以其中两关键点位置连线为边,手腕位置与该边一端的夹角的角度变化为由正变负。可通过前置摄像头获取的图像fim进行识别,需要使用的多个关键点位置可包括右手腕位置信息rw,右肘re,右肩rs和鼻子ns等。
当右手举杯到嘴巴周围时,腕、肘和鼻子基本在一条直线上,而且腕、肘肩之间的夹角由正转负。只有共线条件和角度条件都满足的情况下,才认为右手举杯到嘴巴附近。为了增加鲁棒性,减少误检,设置变量lcnum,记录连续满足这两个条件的次数,当达到一定次数时才认为满足肢体条件。该变量在完成一次服药流程(包括报告异常后重新进入服药流程)后重置为0。
下面分别给出共线条件和角度条件。右手举杯的分解动作如图14所示,其中(a)是刚举杯的的姿势,(b)是举杯到临近嘴巴部位的姿势,(c)是举杯到嘴巴的姿势。
共线规律:注意右手腕、肘和鼻子三个关键点的相对位置,刚举杯时,这三个点没在一条直线上,随着杯子被举起送到嘴边,手腕和肘的关键点逐渐调整位置,当杯子被举到嘴边是这三个点基本处在同一条直线上。这一过程如图15(a)所示,rw是右手腕关键点位置,ns是鼻子位置,re是右肩位置,箭头方向描述了右手腕关键点移动方向。三点位置关系的变化,可以用以肘为顶点,到腕和颈的连线为边的角度β来描述,当它们共线时,β变为0。
角度变化规律:观察以肘为顶点,到腕和肩的连线为边的角度变化,如图15(b)所示,规定以肘到肩的边为参考线,逆时针方向为正向,则随着杯子被举起送到嘴边,这个角度逐渐减小,直至变为0然后变为负数,即如图15(b)所示的角度α由正逐渐减小到0然后再转为负数。转负后角度绝对值较小,不超过某个阈值。
基于以上规律,提出右手举杯到嘴边的条件为:
共线条件:rw,re和ns共线,即β为0°,也即cosβ=1。
角度条件:肘为顶点,到腕和肩的连线为边的角由正变负,且绝对值较小,也即cosα逐渐增大到1,然后减小到接近1的值。
以上条件均用到角度计算问题,给定顶点p0,在参考边上的点p1,以及另外一个点p2,则夹角θ的余弦计算公式如下:
本发明中,通过检测药杯中,特定颜色目标是否存在来判断药杯是否有药液,即通过rgb彩色图像中检测特定颜色目标是否存在。参见图12所示流程:首先将图像信息由rgb颜色模型转换到hsv颜色空间中,得到三个通道的图像h、s和v,其中h对应色度通道,s对应饱和度通道,v对应亮度通道。
设定目标颜色的hsv值范围,三个分量的最大、小值分别为:h_m,h_m,s_m,s_m,v_m,v_m。针对每个像素(x,y),设定条件:
h_m<h(x,y)<h_m,s_m<s(x,y)<s_m,v_m<v(x,y)<v_m(2)
构建二值图像b,构建方式为:
如果在(x,y)处满足条件(2),b(x,y)=1;否则b(x,y)=0。
然后对二值图像b做开运算,其中结构元素为半径是14的圆盘,这一步的目的是去除小目标,防止噪声干扰。开运算之后的二值图像如果是纯黑图像,说明没有目标,否则说明存在目标。其中,判断是否纯黑图像的方法有很多,简单的方法是将二值图像的所有像素的灰度值加起来,如果和为0则是纯黑图像。
4)判断是否服药完毕,若是,则结束;若否,则判定异常并进入步骤5);
先通过关键点位置划定嘴部区域,再判断在该嘴部区域内药杯的药液是否从有到无,若是,则服药完毕。
具体的,设置参数mnum,用来记录跟随嘴巴连续检测到药液的次数。该参数在完成一次服药流程(包括报告异常后重新进入服药流程)后重置为0。设置参数mnnum,用来记录跟随嘴巴连续检测不到药液的次数。该参数在完成一次服药流程(包括报告异常后重新进入服药流程)后重置为0。设置状态参数mns,mns为true对应嘴巴周围检测不到药液,该值初始化为false。设置状态参数ms,初始化为false,当嘴巴周围检测到目标时ms置为true,表示右手举杯到嘴巴时有药液。
该步骤通过前置摄像头获取的图像fim完成,需要使用左手腕位置信息ns和颈部位置信息nc,以ns和nc为基点,划定杯子被举到嘴边的位置范围,截取该范围对应的图像,记为mim,接下来在mim中检测药液,检测药液采用图12所示流程。
若检测到药液则mnum加1,若连续检测到药液即mnum>mthresh,mthresh为预设的阈值,则ms置为true,否则获取下一帧图像继续检测。
在没有检测到药液的情况下,有两种可能:一是杯子尚未举到嘴边;二是已经喝完。第一种情况对应ms的值为false,此时获取下一帧图像继续检测。第二种情况对应ms的值为true,即表示杯子已经被举到嘴巴周围,则mnnum加1。在多次检测到喝完的状态后,即mnnum>mthresh,则将mns置为true。
为了防止服药人员在将药液放到嘴边时故意遮挡药液,导致误判为服药完成,在服药完毕后,还包括检测药杯是否残留药液,若是,则进入步骤5),若无则结束。或者先判断服药人员是否将药杯举到指定位置,再检测药杯是否残留药液。
具体的,参见图17,获取状态变量rws、rwns、ms和mns,如果rws为假,说明尚未举杯,发送提醒使用右手拿杯。如果rws为真,说明已经拿起药杯。当rwns、ms和mns均为真时,表示药杯举到嘴边,并喝完。
为了进一步检查是否有残留,也避免恶意遮挡,要求服药人员将药杯举到指定位置,具体位置如图8所示的右边矩形区域。获取右手腕位置信息rw。判定方式类与左手位于指定位置的判断方法相同。如果右手没有放到指定位置,发送右手举杯到指定位置的提醒,否则在上置摄像头获取的图像uim中检测药液。如果检测不到药液,说明没有残留,发送服药完成消息。如果检测到药液,说明尚有残留,判定为药物残留。
如果rwns、ms和mns不同时为真,则出现异常,直接转到异常处理步骤进行异常处理。各状态变量取值对应的状态参见表1。
表1
5)异常处理。该步骤中,异常处理包括终止流程、记录或提醒。具体的,来自前述步骤的异常信息及对应的处理方式参见表2。
其中出药异常来自步骤2)的出药机出药过程,详情见图10。左手位置异常来自于步骤2)的左手指定动作判断过程,详情见图7。多人异常来自步骤1)的肢体检测过程,详情见图5。药物残留来自步骤4)服药是否完毕判断过程,详情见图17。其余三种异常,由状态变量来判断。
表2
上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除