发明名称 高速医药生产线上药液异物图像跟踪识别方法
摘要 本发明公开了一种高速医药生产线上药液异物图像跟踪识别方法,其特征在于,包括以下步骤:步骤1:获取多帧图像,搜寻目标,提取目标信息,初始化卡尔曼滤波器参数;步骤2:预测各个目标的下一位置;步骤3:更新卡尔曼滤波器参数;步骤4:判断当前对象是否可能是异物;步骤5:在最后一帧差分图像中,计算当前目标从初始位置到当前位置的位移矢量的幅值大小,并于当前目标的初始位移幅值大小和当前目标的平均直径进行比较,进而判断当前目标是否为异物。该高速医药生产线上药液异物图像跟踪识别方法通用性强、检测效果稳定、准确度高、自动化程度高、显著减小人工检测的劳动强度。
申请公布号 CN102024143B 申请公布日期 2013.04.24
申请号 CN201010547064.5 申请日期 2010.11.16
申请人 湖南大学 发明人 王耀南;杨双;毛建旭;张辉;刘彩苹;周博文;葛继;陈铁健;熊路;马波;侯备
分类号 G06K9/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 长沙市融智专利事务所 43114 代理人 黄美成
主权项 1.一种高速医药生产线上药液异物图像跟踪识别方法,其特征在于,包括以下步骤:步骤1:获取多帧图像,搜寻目标,提取目标信息,初始化卡尔曼滤波器参数;步骤2:预测各个目标的下一位置;步骤3:更新卡尔曼滤波器参数;步骤4:判断当前对象是否可能是异物;步骤5:在最后一帧差分图像中,计算当前目标从初始位置到当前位置的位移矢量的幅值大小,并于当前目标的初始位移幅值大小和当前目标的平均直径进行比较,进而判断当前目标是否为异物;步骤1的具体步骤为:1)获取图像:从高速医药生产线上获取某一瓶体的多帧图像,取预处理和差分后的结果图像中的第一帧图像;2)搜寻目标并提取目标信息:在经过步骤1)的处理后所获得的图像表现为大面积的黑色背景区域,只有少数分散区域由于异物或干扰的存在而呈现为白色连通域,因此运用搜寻连通域的方法搜索图像中的各个可疑目标,在搜寻到满足大于4个像素的面积条件的连通域后,以每一个连通域作为一个目标,所需要提取的目标信息包括检测到的各目标的质心坐标X<sub>i0</sub>和Y<sub>i0</sub>、每个目标的平均直径d即所检测到的连通域的平均直径以及初始位移矢量S<sub>i0</sub>=(S<sub>0</sub>,θ<sub>0</sub>),s<sub>0</sub>、θ<sub>0</sub>分别是位移矢量的幅值大小和相位角,初始状态下设定s<sub>0</sub>=0、θ<sub>0</sub>=0,其中S<sub>i0</sub>表示第i个目标的第0次位移即初始位移;3)初始化卡尔曼滤波器:在卡尔曼滤波器中定义状态方程为:X(K)=[x,vx,y,vy]<sup>T</sup>,其中,vx=x<sub>k</sub>-x<sub>k-1</sub>、vy=y<sub>k</sub>-y<sub>k-1</sub>,分别表示目标的质心在x、y方向的运动速度;状态转移矩阵为:<maths num="0001"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mi>&Delta;t</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mi>&Delta;t</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中△t=0.01,由于在拍照过程中,无外界控制量输入,因此输入U=0;输出量即需要预测和测量的值为目标的位置即坐标值,因此输出量为Z(k)=[x,y]<sup>T</sup>,因此输出矩阵为:<maths num="0002"><![CDATA[<math><mrow><mi>H</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>观测噪声协方差:<maths num="0003"><![CDATA[<math><mrow><mi>R</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>r</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>r</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>r</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>r</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>过程激励噪声协方差:<maths num="0004"><![CDATA[<math><mrow><mi>Q</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>q</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>q</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>q</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>q</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>初始状态下r=0.1,q=0.1,表示输出值和起始状态量都会作用于预测值,q、r分别为Q、R的对角元素,决定了噪声对输入输出的影响大小;步骤2的具体步骤为:建立更新方程:时间更新方程为:<maths num="0005"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>=</mo><mi>A</mi><mover><msub><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>^</mo></mover><mo>+</mo><msub><mi>w</mi><mi>k</mi></msub></mtd></mtr><mtr><mtd><msubsup><mi>P</mi><mi>k</mi><mo>-</mo></msubsup><mo>=</mo><msub><mi>AP</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><msup><mi>A</mi><mi>T</mi></msup><mo>+</mo><mi>Q</mi></mtd></mtr></mtable></mfenced></math>]]></maths>测量更新方程为:<maths num="0006"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>K</mi><mi>k</mi></msub><mo>=</mo><msubsup><mi>P</mi><mi>k</mi><mo>-</mo></msubsup><msup><mi>H</mi><mi>T</mi></msup><msup><mrow><mo>(</mo><msubsup><mi>HP</mi><mi>k</mi><mo>-</mo></msubsup><msup><mi>H</mi><mi>T</mi></msup><mo>+</mo><mi>R</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup></mtd></mtr><mtr><mtd><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>=</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>+</mo><msub><mi>K</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>-</mo><mi>H</mi><msubsup><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>P</mi><mi>k</mi></msub><mo>=</mo><mrow><mo>(</mo><mi>I</mi><mo>-</mo><msub><mi>K</mi><mi>k</mi></msub><mi>H</mi><mo>)</mo></mrow><msubsup><mi>P</mi><mi>k</mi><mo>-</mo></msubsup></mtd></mtr><mtr><mtd></mtd></mtr></mtable></mfenced></math>]]></maths>其中<img file="FDA00002695805000025.GIF" wi="58" he="83" />表示对第k时刻状态的先验估计值,<img file="FDA00002695805000026.GIF" wi="80" he="77" />表示第k-1时刻状态的后验估计值,<img file="FDA00002695805000027.GIF" wi="48" he="46" />表示k时刻先验估计误差的协方差,P<sub>k</sub>为k时刻后验估计误差的协方差,w<sub>k</sub>是过程激励噪声,其中有:<maths num="0007"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>P</mi><mi>k</mi></msub><mo>=</mo><mi>E</mi><mo>[</mo><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>)</mo></mrow><msup><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>)</mo></mrow><mi>T</mi></msup><mo>]</mo></mtd></mtr><mtr><mtd><msubsup><mi>P</mi><mi>k</mi><mo>-</mo></msubsup><mo>=</mo><mi>E</mi><mo>[</mo><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>)</mo></mrow><msup><mrow><mo>(</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi><mo>-</mo></msubsup><mo>)</mo></mrow><mi>T</mi></msup><mo>]</mo></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>根据上述方程计算估计每个目标在下一帧图像中的位置,得到预测值<img file="FDA00002695805000029.GIF" wi="53" he="76" />用作下一次估计的先验估计值;步骤3的具体步骤为:首先在第二帧差分图像中各目标的预测位置附近搜寻目标,即取以各目标预测位置为中心的3*3区域为搜索区域,这时可能有两种情况:I.若在预测位置附近搜索到目标,则计算当前目标的此次位移量与前一次位移量的偏差,记此次目标位移量为S<sub>i1</sub>=(S<sub>1</sub>,θ<sub>1</sub>),则此次位移与前一次位移的幅值偏差Δ|S|和相角偏差Δθ分别为:<maths num="0008"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>&Delta;</mi><mo>|</mo><mi>S</mi><mo>|</mo><mo>=</mo><mo>|</mo><msub><mi>s</mi><mn>1</mn></msub><mo>-</mo><msub><mi>s</mi><mn>0</mn></msub><mo>|</mo><mo>=</mo><msqrt><msup><mrow><mo>(</mo><mi>x</mi><mn>1</mn><mo>-</mo><mi>x</mi><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mi>y</mi><mn>1</mn><mo>-</mo><mi>y</mi><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mtd></mtr><mtr><mtd><mi>&Delta;&theta;</mi><mo>=</mo><mo>|</mo><msub><mi>&theta;</mi><mn>1</mn></msub><mo>-</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>|</mo><mo>=</mo><mi>arctan</mi><mo>[</mo><mrow><mo>(</mo><mi>y</mi><mn>1</mn><mo>-</mo><mi>y</mi><mn>0</mn><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><mi>x</mi><mn>1</mn><mo>-</mo><mi>x</mi><mn>0</mn><mo>)</mo></mrow><mo>]</mo></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>其中x1、y1分别表示目标本次的质心坐标值;x0、y0分别表示目标上一次质心的坐标值;提取目标的坐标值,并更新输出量z1=[x1,y1],利用测量更新方程分别计算本次状态变量的后验估计值<img file="FDA00002695805000032.GIF" wi="49" he="76" />和后验估计误差的协方差P<sub>1</sub>,将计算得到的<img file="FDA00002695805000033.GIF" wi="48" he="76" />代入时间更新方程计算下一次的估计值;设置q=0.1,r=0.1,表示当前模型参数合适,预测准确,为下一次预测作准备;II.若在预测位置附近没有搜索到目标,则这时有两种可能:目标被遮挡或目标消失;a).当目标运动到瓶壁上的刻字或裂痕后面时,此时由于裂痕或刻字灰度值较高且所占区域较大,因此会遮挡住异物;此时在图像上的表现为连通区域的面积远远大于异物的可能面积;b).当异物由于旋转而远离镜头时,可能导致异物与背景区分不明显,此时就检测不到异物,表现在图像上为搜索区域均为背景区域因此搜索不到连通区域;针对上述a)、b)两种情况,均设置r=0、q=1,即观测噪声协方差矩阵为0矩阵,同时过程激励噪声协方差矩阵的各对角元素为1,即表明上一次的实际位置不影响此次结果,而只是将上一次的预测结果即设置为当前实际输出结果,并利用此结果作为校正下一次预测的输出值;步骤4的具体步骤为:首先判断目标的运动轨迹是否符合异物运动规律:药液中异物的运动规律为:a)运动方向基本始终如一,即第k次相角偏差△θ<sub>k</sub>≈0;b):异物在两帧图像间的运动幅度基本一致;即△s<sub>k</sub>≈0且s<sub>k</sub>>&gt;d,s<sub>k</sub>表示当前目标的第k次位移的幅值;根据上述运动规律对判断后的异物分别进行处理;若符合异物运动规律,说明此目标可能是异物,需要继续跟踪以确定,因此进一步判断当前帧是否是最后一帧,若不是,则更新卡尔曼滤波器参数进行预测,重复步骤2、步骤3和步骤4,继续识别异物,若是最后一帧,说明此目标有极大可能是异物,进入步骤5;若不符合异物运动规律,即不满足前述的约束条件,说明此目标是干扰项,放弃此目标,继续处理下一个目标;步骤5的具体步骤为:计算当前目标的最终位移矢量即从初始位置到当前位置的位移幅值偏差,即△s<sub>n-1</sub>=s<sub>n-1</sub>-s<sub>0</sub>,n为差分图像的总帧数;判断△s<sub>n-1</sub>&gt;d是否成立,若成立说明当前目标是异物,否则说明当前目标不是异物;对所有的目标分别完成判断,异物检测过程完成。
地址 410082 湖南省长沙市岳麓区麓山南路2号