本发明涉及图像处理技术领域,具体涉及一种利用区域搜索和像素值抑制的安检图像伪影去除方法。
背景技术:
近年来,国际安全形势日益严峻,机场、车站等人员密集场所的入口均安排了更加严格的安全检查。由于毫米波成像技术的不断完善以及国内对安检产品规范的出台,毫米波人体安检有巨大的应用前景。根据毫米波能穿透衣物的特点,隐藏在身体上的危险品能通过毫米波成像和模式识别技术显示并识别出来。然而,由于电磁波在人体上的多次散射会在成像结果中引入明显的伪影,主要存在于人体双腿之间、手臂躯干之间等,这严重影响了人体安检图像的显示效果及危险品识别结果。伪影去除的主要任务是在成像后对图像中的伪影进行抑制或去除,保证安检图像显示的准确性。
消除人体安检图像的伪影信息通常利用三种方式,第一,利用极化特性消除二次反射伪影。美国pnnl公司通过收发毫米波的极化状态来消除二次反射伪影,安检仪的发射天线采用左旋极化,而接收天线采用右旋极化,根据单次反射会改变圆计划方向而二次反射不改变圆极化方向的特点,通过极化特性消除二次反射引起的伪影;第二,规范被检人员姿势消除伪影。由于伪影是由于两物体近距离的多次反射造成的,因此要求被检人员在安检时应按照固定姿势进行检查,双脚分开,双手离躯干有一定距离;第三,基于图像处理的伪影去除方法。以安检图像为基础,通过滤波或抠图等方法去除图像上的伪影。
针对基于图像处理的ct图像伪影去除方法主要包括两大类,包括基于ct图像校正和基于正弦图的伪影去除方法。wup.等利用基于ct图像校正的方法去除伪影,该方法针对ct图像的环状伪影,将图像从直角坐标系转换到极坐标系下,环状伪影则变换为直线,再通过全局滤波或局部滤波对直线伪影进行去除,最后再将坐标系转换到直角坐标系下,恢复ct图像。该类方法需要多次变换坐标系,使用的插值算法影响图像分辨率且计算量大;ashrafuzzamana.等针对ct图像中的环状伪影,以投影正弦图为基础,由于环状伪影在正弦图中表现为直线或曲线,通过滤波方法进行伪影去除,在将投影的正弦图转换为正常的ct图像。
与ct图像不同,人体安检图像不存在环状伪影,伪影形状多为直线或曲线,存在于手臂躯干之间和双腿之间,伪影的强度和形状取决于被检人员的姿态。现有伪影去除方法大多基于ct图像的,而基于ct图像的伪影去除方法很难直接应用在人体安检图像中,因此需要专门研究人体安检图像的伪影去除方法。
总之现有技术存在的问题是:
1.基于极化特性的伪影去除方法,目前只能消除二次反射引起的伪影,不能完全消除图像中的伪影;
2.基于规范被检人员姿态的伪影去除方法,由于人的形态不同以及安检姿态无法严格限制,通过规范被检人员姿态的方法也不能完全消除伪影;
3.基于图像处理的伪影去除方法,该类方法大多集中在ct图像的伪影去除方面,对人体安检图像的伪影去除参考价值较小。
技术实现要素:
为了解决上述问题,本发明提出了一种利用区域搜索和像素值抑制的安检图像伪影去除方法,包括以下步骤:
计算人体头部中心行坐标:
在设定的头部先验搜索区域内对所有行像素的像素值进行累积求和,将累积和中大于阈值的行坐标作为头部行坐标,取头部行坐标的均值作为人体头部中心行坐标;
判决双腿间伪影像素:
确定双腿间伪影先验搜索区域,通过第一多重阈值方法判断双腿间伪影先验搜索区域内的像素是否为双腿间伪影像素,从而得到双腿间伪影像素坐标;所述双腿间伪影先验搜索区域的行搜索区域根据头部中心行坐标和身体比例计算得到,所述双腿间伪影先验搜索区域的列搜索区域通过将腿部区域图像中心线列坐标向左右扩展固定列个像素获得,所述安检图像腿部中心线列坐标通过翻转平移差分法求得;
判决手臂躯干间伪影像素:
根据头部中心行坐标和身体比例确定左右手臂躯干间伪影的先验搜索区域,通过第二多重阈值方法和第三多重阈值方法分别判断左右手臂躯干间伪影的先验搜索区域内的像素是否为手臂躯干间伪影像素,得到手臂躯干间伪影像素的坐标;
对伪影像素的像素值进行抑制:
取出每个伪影像素及其所在行的像素邻域序列,构建伪影抑制函数进行伪影抑制,再将抑制后的像素序列替换原先的像素序列,得到去除伪影的安检图像;所述伪影像素包括双腿间伪影像素和手臂躯干间伪影像素。
进一步地,所述翻转平移差分法具体为,将腿部区域图像进行循环移位和左右翻转后做差,并对做差后的图像差累计求和,得到不同移位数的图像差累积和向量,通过向量中最小值对应的移位数计算腿部区域图像中心线列坐标。
进一步地,所述双腿间伪影先验搜索区域的行搜索区域为[lrowbgn,nrow],其中,nrow为安检图像的行数,lrowbgn为双腿间伪影的起始行坐标,lrowbgn=round(nrow-(nrow-hrowctr)·ρ),round表示四舍五入,hrowctr人体头部中心行坐标,ρ为安检图像中腿长与身高的比例;
所述双腿间伪影先验搜索区域的列搜索区域为[lcolctr-lwidth,lcolctr+lwidth],其中,lwidth为安检图像腿部中心线列坐标lcolctr向左右两边邻域扩展的像素列的个数;
所述腿部图像对称轴列坐标lcolctr的计算公式为:
其中,round表示四舍五入,arcmin表示使f(·)取得最小值的n数值;
f(n)为翻转平移差分函数值,其具体计算公式为:
f(n)=sum(abs(circshift(ileg,n)-fliplr(circshift(ileg,n))))
其中,circshift表示横向循环移位操作,fliplr表示左右翻转操作,sum表示累积求和,abs表示求绝对值操作,n取值范围是[-nshift,nshift]中的整数,则f(n)为包含2nshift+1个数值的一维向量,f(n)中最小值对应的移位数n能够表示腿部区域图像对称轴与安检图像列中心线的偏离情况,nshift表示预设的第一偏移量;
所述第一多重阈值判决方法具体为,如果双腿间伪影先验搜索区域内像素的像素值ileg(x,y)同时满足以下三个条件,则像素值ileg(x,y)所对应的像素为双腿间伪影像素:
(1)像素值ileg(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(2)ileg(x,y)>thartifact;
(3)ileg(x,y)>vsmoothleft+thartifact/3且ileg(x,y)>vsmoothright+thartifact/3;
其中,x,y分别表示像素行坐标和列坐标,其取值范围满足双腿间伪影先验搜索区域的坐标范围;thartifact为设定的伪影像素阈值;vsmoothleft和vsmoothright为双腿间伪影先验搜索区域左右两边的平滑区域的均值,左右平滑区域的行坐标范围与双腿间伪影先验搜索区域的行搜索区域相同,左右平滑区域的列坐标范围分别为[lcolctr-lwidth-lsmooth,lcolctr-lwidth-1]和[lcolctr+lwidth+1,lcolctr+lwidth+lsmooth],lsmooth为预设的第二偏移量。
进一步地,所述手臂躯干间伪影先验搜索区域的行坐标区间为[hrowctr+srowup,hrowctr+srowdown],左右两侧手臂躯干间伪影先验搜索区域的列坐标区间分别为
所述第二多重阈值判决方法具体为,如果左手臂躯干间伪影先验搜索区域内像素的像素值iarmleft(x,y)同时满足以下三个条件,则像素值iarmleft(x,y)所对应的像素为手臂躯干间伪影像素:
(1)像素值iarmleft(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(2)iarmleft(x,y)>thartifact;
(3)iarmleft(x,y)>v′smoothleft+thartifact/3且iarmleft(x,y)>v′smoothrig+thartifact/3;
其中,x,y分别表示像素行坐标和列坐标,其取值范围满足左手臂躯干间伪影先验搜索区域的坐标范围;v′smoothleft和v′smoothright为左手臂躯干间伪影先验搜索区域左右两边的平滑区域的均值,左右平滑区域的行坐标范围与左手臂躯干间伪影先验搜索区域的行搜索区域相同,左右平滑区域的列坐标范围分别为[lcolctr-lwidth-lsmooth,lcolctr-lwidth-1]和[lcolctr+lwidth+1,lcolctr+lwidth+lsmooth];
所述第三多重阈值判决方法具体为,如果右手臂躯干间伪影先验搜索区域内像素的像素值iarmright(x,y)同时满足以下三个条件,则像素值iarmright(x,y)所对应的像素为手臂躯干间伪影像素:
(1)iarmright(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(2)iarmright(x,y)>thartifact;
(3)像素值iarmright(x,y)满足iarmright(x,y)>v″smoothleft+thartifact/3且
iarmright(x,y)>v″smoothright+thartifact/3。
进一步地,所述伪影像素的坐标集合为m,m={(xartifact(i),yartifact(i))|i=1,2,3,...,m},其中,xartifact(i),yartifact(i)分别表示第i个伪影像素的行坐标和列坐标,m表示伪影像素总数;
所述伪影像素所在行的像素邻域序列的列坐标的取值范围为[yartifact(i)-lwidth-lsmooth,yartifact(i)+lwidth+lsmooth],
通过对双腿间伪影,手臂躯干间伪影像素的判决,得到伪影像素坐标的集合m,表达式为m={(xartifact(i),yartifact(f))|i=1,2,3,...,m},其中,xartifact(i),yartifact(i)分别表示第i个伪影像素的行坐标和列坐标,m表示伪影像素总数。针对每个伪影像素(xartifact(i),yartifact(i)),取出其所在行的像素邻域序列,像素邻域序列,像素邻域序列包括伪影区域和平滑区域,设第i个伪影像素的像素邻域序列为
进一步地,所述伪影抑制函数的具体公式为:
其中,f(t)为伪影抑制函数,t∈[-lwidth-lsmooth,+lwidth+lsmooth],t取整数,a表示幅度,σ为高斯分布标准差,
规定幅度a的数值为
第i个伪影像素经过伪影抑制后的像素邻域序列
其中,
最终获得以序列
(1)根据人体安检时的固定姿势,利用区域搜索方法在固定区域内搜索双腿间伪影和手臂躯干间伪影,有利于节省计算机资源和搜索时间,提高伪影搜索效率;
(2)利用多重阈值判决方式判断搜索区域内的像素是否为伪影,有利于精确判断伪影位置,同时能减少误判;
(3)利用像素值抑制方法对伪影像素值抑制,使伪影像素值与其邻域像素值有自然的过渡,避免因为数值改变过大导致图像质量下降。
附图说明
图1人体安检图像伪影抑制方法流程图。
图2人体安检原始成像结果图。
图3人体安检图像标记伪影区域图。
图4计算头部中心行坐标示意图。
图5安检图像中标记双腿间伪影先验搜索区域图。
图6腿部区域图像经过翻转平移差分法后的累积和曲线图。
图7标记腿部区域列中心线的安检图像。
图8标记双腿间伪影像素的安检图像。
图9标记手臂躯干间伪影先验搜索区域的安检图像。
图10标记手臂躯干间伪影像素的安检图像。
图11经过伪影抑制的安检图像。
具体实施方式
以下结合附图对本发明的一种利用区域搜索和像素值抑制的安检图像伪影去除方法的具体实施方式做详细说明,如图1所示,具体包括以下步骤:
1.人体头部中心行坐标计算
图2为原始的安检图像,图3中白色虚线框标记出来的为伪影区域,包括上方的手臂躯干间伪影和下方的双腿间伪影。由于人体身高存在差异,而人体安检图像的尺寸比例与人体比例相同,因此安检图像中人体头部和躯干的行坐标信息也各不相同。在合作式安检过程中,要求被检人员的姿势为手臂与躯干分开、双脚分开站立,不同人员的安检图像均具有相同姿态模式。为确定伪影位置,须通过计算头部在图像中的位置和人体各部位的固定比例来确定伪影搜索区域。
为减少计算量并增加检测精度,确定人体头部的先验搜索区域,要求覆盖不同身高人体的头部信息,假设头部先验搜索区域的起始行坐标为hrowup、终止行坐标为hrowdown,起始列坐标为hcolleft、终止列坐标为hcolright,将该区域内每行像素累积求和,得到一条行累积投影向量,在投影向量中找出大于阈值thhead的行坐标,并将这些行坐标求平均得到头部中心的行坐标hrowctr,利用此坐标信息能够计算出被检人员身高,并依据身体的尺寸比例计算出手臂躯干间伪影和双腿间伪影的先验搜索区域。如图4所示,图4中白色虚线框为先验搜索区域,先验搜索区域右侧曲线为将该区域内每行像素累积求和后得到的行累积投影。
本实施例中所述行列以安检图像坐标系为基准进行计算,所述安检图像坐标系为以安检图像左上角的起始点为坐标中心,以坐标中心向右为列坐标轴的正方向,以坐标中心向下为行坐标轴的正方向而形成的坐标系。
2.双腿间伪影像素判决
双腿之间的伪影形状为竖直直线,伪影长度和强度与人体身高和站姿有关。理论上伪影的行坐标区间为腿部所在区域的所有行,伪影的列坐标在两腿对称轴上。但在实际情况中,双腿间伪影会随着双腿间距离的增大而逐渐减弱最后消失,且由于站姿不标准存在被检人员不在成像场景中心的情况。所以,在确定伪影先验搜索区域时,行坐标区间仍按照腿部所在行区间计算,而两腿中心线的列坐标通过翻转平移差分方法计算得到。得到先验搜索区域后,利用第一多重阈值判决方法获得双腿间伪影像素的具体坐标。
a.双腿间伪影像素行区间的计算
假设人体安检图像的行数和列数分别为nrow和ncol,安检图像中腿长与身高的比例为ρ,则根据头部中心行坐标计算出双腿间伪影的起始行坐标为lrowbgn=round(nrow-(nrow-hrowctr)·ρ),终止行坐标为nrow,其中round表示四舍五入。
b.双腿间伪影像素列区间的计算
由于人员安检时需要站立3至5秒,所得到的安检图像是近似左右对称的,双腿间伪影就在对称轴线上,但对称轴存在偏离图像列中心线的情况,因此获取安检图像腿部中心线位置即完成双腿间伪影列坐标的计算。
本发明利用翻转平移差分法求取安检图像腿部中心线列坐标,该方法包括横向循环移位、左右翻转、图像求差和累积求和四个步骤。设腿部区域图像为ileg(如图5中虚线框所示),循环移位数为n,则计算得到翻转平移差分函数值为:
f(n)=sum(abs(circshift(ileg,n)-fliplr(circshift(ileg,n))))(1)
其中,circshift表示横向循环移位操作,fliplr表示左右翻转操作,sum表示累积求和,abs表示求绝对值操作,n取值范围是[-nshift,nshift]中的整数(其中,nshift表示预设的第一偏移量),则f(n)为包含2nshift+1个数值的一维向量,f(n)中最小值对应的移位数n能够表示安检图像腿部中心线与安检图像列中心线的偏离情况。在移位区间内得到图像差绝对值和的曲线如图6所示。
计算安检图像腿部中心线列坐标列坐标为:
如图7所示,白色线条标记出的为安检图像腿部中心线;其中,round表示四舍五入,arcmin表示使f(·)取得最小值的n数值。由于伪影像素存在一列或为多列情况,因此在lcolctr左右两边邻域再扩展lwidth列个像素作为伪影列坐标的搜索区域(即lwidth为安检图像腿部中心线列坐标lcolctr向左右两边邻域扩展的像素列的个数)。至此,双腿间伪影先验搜索区域的行坐标范围为:[lrowbgn,nrow],列坐标范围为:[lcolctr-lwidth,lcolctr+lwidth]。
c.伪影像素判决
确定先验搜索区域后,利用阈值来判决区域内的像素是否为伪影像素,设伪影像素阈值为thartifact。在确定的伪影区域的列坐标范围[lcolctr-lwidth,lcolctr+lwidth]再向左右两侧分别扩展lsmooth列个像素(其中,lsmooth为预设的第二偏移量),并假设伪影区域两侧的各lsmooth列个像素为平滑区域,计算左右两边平滑区域的均值分别为vsmoothleft和vsmoothright。假设双腿间伪影先验搜索区域的像素值表示为ileg(x,y),其中x,y分别表示像素行坐标和列坐标,其取值范围满足伪影先验搜索区域的坐标范围。遍历先验搜索区域内的每个像素,如果ileg(x,y)同时满足以下条件则被认为是伪影像素:
(a)像素值ileg(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(b)像素值大于伪影阈值ileg(x,y)>thartifact;
(c)像素值ileg(x,y)满足ileg(x,y)>vsmoothleft+thartifact/3且ileg(x,y)>vsmoothright+thartifact/3。
记录伪影像素的坐标信息,如图8所示,图8中白点标记的为双腿间的伪影像素。
3.手臂躯干间伪影像素判决
手臂躯干间伪影形状为竖直直线或曲线,伪影长度和强度与人体手臂的摆放位置有关。首先,根据头部中心行坐标和人体比例信息确定先验搜索区域的行区间信息和列区间信息,其次利用第二和第三多重阈值判决方法对搜索区域内每个像素进行判决,得到伪影像素坐标。
a.先验搜索区间确定
根据人体手臂与头部位置的固定关系,假设手臂躯干间伪影的起始和终止行坐标与头部中心行坐标hrowctr的距离分别为srowup和srowdown,则手臂躯干间伪影先验搜素区域的行坐标区间为[hrowctr+srowup,hrowctr+srowdown]。规定安检图像中左侧手臂为人体右手臂,图像中右侧手臂为人体左手臂。根据人体手臂位置与安检图像尺寸的固定比例信息,确定人体左右两侧手臂躯干间伪影先验搜索区域的列坐标区间分别为
b.伪影像素判决
确定搜索区域后,利用第二多重阈值方法来判决区域内的像素是否为伪影像素。与双腿间伪影的判决方式类似,假设左手臂躯干间伪影像素iarmleft(x,y)的列区间为[y-lwidth,y+lwidth],在左右两侧再扩展lsmooth列个像素用来表示平滑区域,左右两边平滑区域的像素值均值分别v′smoothleft为和v′smoothright。同样地,右手臂躯干间伪影像素iarmright(x,y)的左右两边平滑区域的像素值均值分别为v″smoothleft和v″smoothright。
遍历先验搜索区域内的每个像素,如果左侧手臂先验搜索区域内像素的像素值iarmleft(x,y)同时满足以下条件则被认为是伪影像素:
(a)像素值iarmleft(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(b)像素值大于伪影阈值iarmleft(x,y)>thartifact;
(c)像素值iarmleft(x,y)满足iarmleft(x,y)>v′smoothleft+thartifact/3且iarmleft(x,y)>v′smoothrigh+thartifact/3。
同样地,根据第三多重阈值方法,如果右侧手臂先验搜索区域内像素iarmright(x,y)满足以下条件则被认为是伪影像素:
(a)像素值iarmright(x,y)在其所在行的邻域内为最大值,邻域列坐标范围为[y-lwidth,y+lwidth];
(b)像素值大于伪影阈值iarmright(x,y)>thartifact;
(c)像素值iarmright(x,y)满足iarmright(x,y)>v″smoothleft+thartifact/3且iarmright(x,y)>v″smoothright+thartifact/3。
记录左右手臂伪影像素的坐标信息,图10中用白点标记出来的像素为手臂躯干间伪影像素。
4.伪影像素值抑制
通过对双腿间伪影,手臂躯干间伪影像素的判决,得到伪影像素坐标的集合m,表达式为m={(xartifact(i),yartifact(i))|i=1,2,3,...,m},其中,xartifact(i),yartifact(i)分别表示第i个伪影像素的行坐标和列坐标,m表示伪影像素总数。针对每个伪影像素(xartifact(i),yartifact(i)),取出其所在行的像素邻域序列,像素邻域序列列坐标的取值范围为[yartifact(i)-lwidth-lsmooth,yartifact(i)+lwidth+lsmooth],像素邻域序列包括伪影区域和平滑区域,设第i个伪影的像素邻域序列为
构建伪影抑制函数f(t),其表达式为:
其中,t∈[-lwidth-lsmooth,+lwidth+lsmooth],t取整数,a表示幅度,σ为高斯分布标准差,
伪影像素经过抑制后的像素邻域序列
其中,
经过伪影抑制后的安检图像如图11所示。
本发明与现有技术相比,其显著优点为:
(1)根据人体安检时的固定姿势,利用区域搜索方法在固定区域内搜索双腿间伪影和手臂躯干间伪影,有利于节省计算机资源和搜索时间,提高伪影搜索效率;
(2)利用多重阈值判决方式判断搜索区域内的像素是否为伪影,有利于精确判断伪影位置,同时能减少误判;
(3)利用像素值抑制方法对伪影像素值抑制,使伪影像素值与其邻域像素值有自然的过渡,避免因为数值改变过大导致图像质量下降。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。