1.医药视觉检测机器人的安瓿瓶外观质量检测方法,其特征在于,包括如下步骤:
步骤1:图像采集以及图像预处理;
对通过网络工业CCD相机采集的安瓿瓶头部图像传输给工控机进行预处理,采用中值滤波法去除图像采集和传输过程中存在的噪声点,得到图像A;
步骤2:求图像A中安瓿瓶头部的旋转角度;
采用穿线法确定安瓿瓶的拟对称中心线L,拟对称中心线与竖直轴的夹角,即为图像A中安瓿瓶头部的旋转角度α;
穿线法是指在不同线上分别从左往右、从右往左两个方向穿越安瓿瓶,分别找到各自方向上与瓶壁的第一个交点,通过两两对称的交点连线的中点确定拟对称中心线;
步骤3:旋转图像A;
根据步骤2中求得的旋转角度α,采用基于双线性插值-累加法的图像旋转方法,旋转图像A使图像A中的头部图像关于竖直轴对称,得到图像B;
步骤4:求图像B中头部图像的对称中心点;
图像A拟对称中心线L经过旋转变换后,在图像B中L变换成对称中心线L0,对称中心线L0与图像A中安瓿瓶头部图像的交点即为对称中心点h0;
步骤5:求头部边缘点;
以对称中心线L0为基准线,在基准线两侧作与基准线平行且等间距的2n条竖线,以对称中心点h0作为第一个交点,2n条竖线与安瓿瓶瓶壁的交点作为头部的边缘点,依次为(h11,h12,h13…h1n)、(h21,h22,h23,…h2n),n取整数,n的取值范围是3~7,其中,(h11,h21)为第一对边缘点,(h1n,h2n)为第n对边缘点;
其中,所述的间距为S1/10,S1为合格安瓿瓶正置时在离头部垂直距离为S2/4处的宽度,S2为相同规格的合格安瓿瓶瓶颈至安瓿瓶顶部的高度;
步骤6:外观拉丝判断;
依次判断步骤5获得的边缘点对是否关于对称中心线L0轴对称和边缘点对的坐标变化趋势是否符合抛物线的曲线变化趋势,如果存在一对或一对以上不对称的边缘点,或者存在相邻的边缘点的坐标变化趋势不符合抛物线的曲线变化趋势,则当前安瓿瓶外观拉丝检测不合格,转入步骤9;否则,则判定当前安瓿瓶外观拉丝检测合格,进入步骤7;
步骤7:定位黑头矩形检测区域;
确定矩形检测区域图像C的四条直线边的坐标值,四条直线边分别为左边缘线L1,右边缘线L2,上边缘线L3,下边缘线L4;
左边缘线L1:左边缘距离左边瓶壁的S1/10的位置;
右边缘线L2:右边缘距离右边瓶壁的S1/10的位置;
上边缘线L3:上边缘线距离瓶头部顶点S2/10的位置;
下边缘线L4:下边缘线距离瓶头部顶点S2/3处;
步骤8:外观黑头判断;
对所述的黑头矩形检测区域,采用形态学腐蚀处理与原图差分将黑头检测区域中的异物提取出来,统计结果中黑头异物的像素个数P,与设定的阈值M进行比较,判断安瓿外观黑头质量是否合格,若P大于M,则判定为安瓿瓶外观黑头质量不合格,否则,则判定为当前安瓿瓶外观黑头质量合格;其中M取整数,其取值范围是5~10;步骤9:标定检测结果;
若外观拉丝检测结果或黑头质量判断结果不合格,则最终检测结果为不合格。
2.根据权利要求1所述的医药视觉检测机器人的安瓿瓶外观质量检测方法,其特征在于,所述步骤2中的旋转角度的计算方法步骤为:
(1)采用穿线法求拟对称中心线上的点;
由于瓶壁边缘的灰度值存在跳变,用穿线法分别从同一水平线上,穿线穿行安瓿瓶搜索灰度值突变的两个像素点为(aq1、aq2),即边缘点,所述的灰度值突变是指灰度值变化超过10以上,穿线数目为q,多条穿线对应的边缘点分别为(a11、a12),(a21、a22)…(aq1、aq2),拟对称中心线上的某一点aq0的坐标值为同一穿线上两个边缘点的坐标值之和的均值:
q的取值范围是3~7,令(xq,yq)为aq0的像素坐标;
(2)构造偏离函数;
假定拟对称中心线函数f(x;b1,b2)=b1+b2x,利用m个拟对称中心线上的像素点(xq,yq),q=1,2,...,m,m的取值范围是3~7,构造与拟对称中心线函数f(x;b1,b2)的偏离函数:
(3)求偏离函数取得最小值时,b1、b2的取值;
求函数Q(b1,b2)的最小值:
使函数Q(b1,b2)分别对b1、b2求偏导数,并令其为零,得到
其中,q=1,2,...,m,m的取值范围是3~7;
(4)旋转角度计算:
旋转角度α=90°-arctanb2。
3.根据权利要求2所述的医药视觉检测机器人的安瓿瓶外观质量检测方法,其特征在于,所述步骤3中的图像A的旋转步骤为:
(1)确定旋转公式;
采用方向旋转公式,将原图像旋转α角,使得旋转后的图像关于竖直轴成轴对称;
图像A以左上角为原点,向右为x轴、向下为y轴,点(x,y)经过旋转α角度后,坐标变成(x',y')
(2)坐标计算过程;
a)采取累加计算的方法,避免反复的乘法运算,实现快速的旋转变换;
累加法的基本原理:由于旋转角度α值在一次旋转内为常数,在完成一张图像的反向旋转变换过程中,sinα和cosα是固定值;设目标图像为f(x,y),反旋转变换的图像为f(x',y');
对于同一行内相邻的两像素点(x',y')和(x'+1,y'),如果(x',y')的对应原像素点是(x,y),则(x'+1,y')对应的原像素坐标是(x+cosα,y-sinα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一行内与之相邻的像素点的坐标值:
对于图像相邻两行的同一列处的两像素坐标(x',y')和(x',y'+1),如果(x',y')对应原像素点(x,y),则(x',y'+1)对应的原像素点的坐标是(x-sinα,y+cosα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一列内与之相邻的像素点的坐标值:
其中,X(x',y')和Y(x',y')函数分别为旋转后的图像中的横坐标和纵坐标函数;
b)采用双线性插值方法,计算像素坐标值为分数的像素点的灰度值;
令g(x′,y′)为图像中任意点(x′,y′)关于x′和y′的灰度值函数,x′的整数部分为x0′,y′的整数部分为y0′,像素(x′,y′)所在的单位像素对应的正方形四个顶点坐标分别为:左上角为(x0′,y0′),左下角为(x0′,y0′+1),右上角为(x0′+1,y0′),右下角为(x0′+1,y0′+1);
则像素坐标为分数值时,当前像素坐标对应的灰度值按下式计算:
g(x ′ ,y ′ ) = [g(x0 ′ +1,y0 ′ )-g(x0 ′ ,y0 ′ )]
x′+[g(x0′,y0′+1)-g(x0′,y0′)]y′+[g(x0′+1,y0′+1)+g(x0′,y0′)-g(x0′,y0′+1)-g(x0′+1,y0′)]x′y′+g(x0′,y0′)
其中g(x0′,y0′),g(x0′+1,y0′),g(x0′,y0′+1),g(x0′+1,y0′+1)均为整数坐标对应的像素点的灰度值,从图中直接读取灰度值信息。
4.根据权利要求3所述的医药视觉检测机器人的安瓿瓶外观质量检测方法,其特征在于,所述步骤6中外观拉丝判断的方法具体流程为:
1)对称性特征判断;
以对称中心线L0为中心线,判断所述步骤5中获得的边缘点对是否关于对称中心线L0对称;
a)i=1;
b)取第i对对称点(h1i,h2i);
c)判断h1i和h2i的横坐标差值的绝对值是否在允许的误差范围ε1以内,其中ε1为
3-5个像素,如果绝对值小于或等于ε1,则继续进行下一步,否则转到步骤e);
d)i=i+1,若i<=n,则返回步骤b),否则,结束本次判断,转入2)趋势特征判断;
e)标记当前安瓿瓶外观拉丝存在质量问题;
2)趋势特征判断;
判断所述步骤5中获得的边缘点中相邻的边缘点是否符合抛物线的曲线变化趋势;
a)i=1;
b)以对称中心点h0为起点,分别取左边缘、右边缘上的连续两个边缘点h1i、h1(i+1)和h2i、h2(i+1)的纵坐标值;
c)依次判断h1(i+1)与h1i的纵坐标差值和h2(i+1)与h2i纵坐标差值的结果,若其中任意一个结果大于ε2,其中ε2的取值范围是10-12个像素,则转步骤e),否则继续进入下一个步骤;
d)i=i+1,若i<=n-1,则返回步骤b),否则,结束本次判断判断;
e)标记当前安瓿瓶外观拉丝存在质量问题。
5.根据权利要求3所述的医药视觉检测机器人的安瓿瓶外观质量检测方法,其特征在于,所述步骤8中外观黑头判断方法的具体流程为:
设黑头检测区域的图像C为h(x',y'),选用大小为(3×3)~(5×5)的正方形结构算子,(x',y')为像素点坐标;
1)利用结构算子对图像C进行腐蚀操作得到的输出图像D,设图像D为h1(x',y')
2)将腐蚀后的图像D与图像C进行差分处理,得到差分后的图像E,记为h2(x',y'),h2(x',y')=h1(x',y')-h(x',y'),(x',y')为像素点坐标;
3)对图像E进行阈值分割,提取黑头特征:
hR(x′,y′)为阈值分割后的图像,T1为分割阈值;
式中,k、j分别为图像h(x',y')中的长、宽像素个数,即为图像C;
统计hR(x′,y′)中非零灰度值的像素个数T3,设标准阈值为T2,若T3>T2,则判定为当前安瓿瓶存在黑头问题,其中T2为整数,其取值范围为5~10。
医药视觉检测机器人的安瓿瓶外观质量检测方法\n技术领域\n[0001] 本发明属于医药工业机器视觉检测机器人技术领域,特指医药视觉检测机器人的安瓿瓶外观质量检测方法。\n背景技术\n[0002] 在制药生产过程中,安瓿瓶在封口时,采用火焰高温将安瓿瓶瓶口玻璃融化拉丝密封。然而,在玻璃融化拉丝的过程中,受拉丝钳夹瓶位置、燃烧火焰大小、瓶子转速等工艺影响,安瓿瓶顶部熔融玻璃可能出现收缩不均匀、托丝、泡头、扁头、尖头、断头、钩子头等异常产品;同时,在灌装时,不可避免地有药液滴漏的现象,滴漏在瓶口的药液被火焰高温碳化,出现黑色碳化物为焦头碳化。\n[0003] 托丝、泡泡头、钩子头等外观异常产品,在包装运输的过程中,容易破损导致药液外流,给同批次的产品带来二次污染,严重影响用药安全和生产效率。在机器异物检测时,安瓿瓶高速旋转时可以将部分黑色碳化物冲刷下来,机器只能检测出溶液中的可见异物,而部分碳化物粘结较牢,则无法在机器异物检测环节分拣出来。在运输和使用过程才出现在药液中,给患者带来伤害,也会给生产企业带来很大的风险和损失,需要对安瓿瓶中的黑头进行检测。\n[0004] 目前安瓿的机器检测产品功能都集中在药液异物检测方面,而针对外观异常产品和焦头碳化方面的缺陷只能依靠人工进行灯检。人工检测存在效率低、一致性差、漏检率高、精度低等问题。因此,为了提高医药生产线的生产效率和产品的质量水平,研制一套可靠稳定、高速的视觉检测算法具有十分重要的价值和意义。\n发明内容\n[0005] 本发明提供了医药视觉检测机器人的安瓿瓶外观质量检测方法,其目的在于克服现有技术中安瓿瓶的外观及黑头检测过程中存在人工检测效率低、一致性差和精度低的问题。\n[0006] 医药视觉检测机器人的安瓿瓶外观质量检测方法,包括如下步骤:\n[0007] 步骤1:图像采集以及图像预处理;\n[0008] 对通过网络工业CCD相机采集的安瓿瓶头部图像传输给工控机进行预处理,采用中值滤波法去除图像采集和传输过程中存在的噪声点,得到图像A;\n[0009] 步骤2:求图像A中安瓿瓶头部的旋转角度;\n[0010] 采用穿线法确定安瓿瓶的拟对称中心线L,拟对称中心线与竖直轴的夹角,即为图像A中安瓿瓶头部的旋转角度α;\n[0011] 穿线法是指在不同线上分别从左往右、从右往左两个方向穿越安瓿瓶,分别找到各自方向上与瓶壁的第一个交点,通过两两对称的交点连线的中点确定拟对称中心线;\n[0012] 步骤3:旋转图像A;\n[0013] 根据步骤2中求得的旋转角度α,采用基于双线性插值-累加法的图像旋转方法,旋转图像A使图像A中的头部图像关于竖直轴对称,得到图像B;\n[0014] 步骤4:求图像B中头部图像的对称中心点;\n[0015] 图像A拟对称中心线L经过旋转变换后,在图像B中L变换成对称中心线L0,对称中心线L0与图像A中安瓿瓶头部图像的交点即为对称中心点h0;\n[0016] 步骤5:求头部边缘点;\n[0017] 以对称中心线L0为基准线,在基准线两侧作与基准线平行且等间距的2n条竖线,以对称中心点h0为作为第一个交点,2n条竖线与安瓿瓶瓶壁的交点作为头部的边缘点,依次为(h11,h12,h13…h1n)、(h21,h22,h23,…h2n),n取整数,n的取值范围是3~7,其中,(h11,h21)为第一对边缘点,(h1n,h2n)为第n对边缘点;\n[0018] 其中,所述的间距为S1/10,S1为合格安瓿瓶正置时在离头部垂直距离为S2/4处的宽度,S2为相同规格的合格安瓿瓶瓶颈至安瓿瓶顶部的高度;\n[0019] 步骤6:外观拉丝判断;\n[0020] 依次判断步骤5获得的边缘点对是否关于对称中心线L0轴对称和边缘点对的坐标变化趋势是否符合抛物线的曲线变化趋势,如果存在一对或一对以上不对称的边缘点,或者存在相邻的边缘点的坐标变化趋势不符合抛物线的曲线变化趋势,则当前安瓿瓶外观拉丝检测不合格,转入步骤9;否则,则判定当前安瓿瓶外观拉丝检测合格,进入步骤7;\n[0021] 步骤7:定位黑头矩形检测区域;\n[0022] 确定矩形检测区域图像C的四条直线边的坐标值,四条直线边分别为左边缘线L1,右边缘线L2,上边缘线L3,下边缘线L4;\n[0023] 左边缘线L1:左边缘距离左边瓶壁的S1/10的位置;\n[0024] 右边缘线L2:右边缘距离右边瓶壁的S1/10的位置;\n[0025] 上边缘线L3:上边缘线距离瓶头部顶点S2/10的位置;\n[0026] 下边缘线L4:下边缘线距离瓶头部顶点S2/3处;\n[0027] 黑头是由于拉丝融封过程掉下来的高温残留药液掉落在瓶壁上,出现的区域不会在弧形的瓶头区域,而是在安瓿瓶头部区域下方至瓶颈的区域部分;\n[0028] 安瓿瓶瓶颈至安瓿瓶头部区域形状具有类似矩形且瓶壁边缘灰度值具有突变的特点,因此定位黑头检测区域为矩形,且定位的区域在瓶壁边缘以内;\n[0029] 所以定位黑头区域可以直接选择除去小部分弧形瓶头的安瓿瓶头部至瓶颈的矩形区域。\n[0030] 黑头区域的下边缘L4是一个常量,当检测的装量确定后,黑头检测的下边缘区域基本保持不变。\n[0031] 步骤8:外观黑头判断;\n[0032] 对所述的黑头矩形检测区域,采用形态学腐蚀处理与原图差分将黑头检测区域中的异物提取出来,统计结果中黑头异物的像素个数P,与设定的阈值M进行比较,判断安瓿外观黑头质量是否合格,若P大于M,则判定为安瓿瓶外观黑头质量不合格,否则,则判定为当前安瓿瓶外观黑头质量合格;其中M取整数,其取值范围是5~10;\n[0033] 步骤9:标定检测结果;\n[0034] 若外观拉丝检测结果或黑头质量判断结果不合格,则最终检测结果为不合格。\n[0035] 所述步骤2中的旋转角度的计算方法步骤为:\n[0036] (1)采用穿线法求拟对称中心线上的点;\n[0037] 由于瓶壁边缘的灰度值存在跳变,用穿线法分别从同一水平线上,穿线穿行安瓿瓶搜索灰度值突变的两个像素点为(aq1、aq2),即边缘点,所述的灰度值突变是指灰度值变化超过10以上,穿线数目为q,多条穿线对应的边缘点分别为(a11、a12),(a21、a22)…(aq1、aq2),拟对称中心线上的某一点aq0的坐标值为同一穿线上两个边缘点的坐标值之和的均值:\n[0038] \n[0039] q的取值范围是3~7,令(xq,yq)为aq0的像素坐标;\n[0040] (2)构造偏离函数;\n[0041] 假定拟对称中心线函数f(x;b1,b2)=b1+b2x,利用m个拟对称中心线上的像素点(xq,yq),q=1,2,...,m,m的取值范围是3~7,构造与拟对称中心线函数f(x;b1,b2)的偏离函数:\n[0042] \n[0043] (3)求偏离函数取得最小值时,b1、b2的取值;\n[0044] 求函数Q(b1,b2)的最小值:\n[0045] \n[0046] 使函数Q(b1,b2)分别对b1、b2求偏导数,并令其为零,得到\n[0047] \n[0048] 其中,q=1,2,...,m,m的取值范围是3~7;\n[0049] (4)旋转角度计算:\n[0050] 旋转角度α=90°-arctanb2。\n[0051] 所述步骤3中的图像A的旋转步骤为:\n[0052] (1)确定旋转公式;\n[0053] 采用方向旋转公式,将原图像旋转α角,使得旋转后的图像关于竖直轴成轴对称;\n[0054] 图像A以左上角为原点,向右为x轴、向下为y轴,点(x,y)经过旋转α角度后,坐标变成(x',y')\n[0055] \n[0056] (2)坐标计算过程;\n[0057] a)采取累加计算的方法,避免反复的乘法运算,实现快速的旋转变换;\n[0058] 累加法的基本原理:由于旋转角度α值在一次旋转内为常数,在完成一张图像的反向旋转变换过程中,sinα和cosα是固定值;设目标图像为f(x,y),反旋转变换的图像为f(x',y'):\n[0059] 对于同一行内相邻的两像素点(x',y')和(x'+1,y'),如果(x',y')的对应原像素点是(x,y),则(x'+1,y')对应的原像素坐标是(x+cosα,y-sinα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一行内与之相邻的像素点的坐标值:\n[0060] \n[0061] 对于图像相邻两行的同一列处的两像素坐标(x',y')和(x',y'+1),如果(x',y')对应原像素点(x,y),则(x',y'+1)对应的原像素点的坐标是(x-sinα,y+cosα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一列内与之相邻的像素点的坐标值:\n[0062] \n[0063] 其中,X(x',y')和Y(x',y')函数分别为旋转后的图像中的横坐标和纵坐标函数;\n[0064] b)采用双线性插值方法,计算像素坐标值为分数的像素点的灰度值;\n[0065] 令g(x′,y′)为图像中任意点(x′,y′)关于x′和y′的灰度值函数,x′的整数部分为x0′,y′的整数部分为y0′,像素(x′,y′)所在的单位像素对应的正方形四个顶点坐标分别为:左上角为(x0′,y0′),左下角为(x0′,y0′+1),右上角为(x0′+1,y0′),右下角为(x0′+1,y0′+1);\n[0066] 则像素坐标为分数值时,当前像素坐标对应的灰度值按下式计算:\n[0067] g(x ′ ,y ′ ) = [g(x0 ′ +1,y0 ′ )-g(x0 ′ ,y0 ′ )]\nx′+[g(x0′,y0′+1)-g(x0′,y0′)]y′+[g(x0′+1,y0′+1)+g(x0′,y0′)-g(x0′,y0′+1)-g(x0′+1,y0′)]x′y′+g(x0′,y0′)\n[0068] 其中g(x0′,y0′),g(x0′+1,y0′),g(x0′,y0′+1),g(x0′+1,y0′+1)均为整数坐标对应的像素点的灰度值,从图中直接读取灰度值信息获得。\n[0069] 所述步骤6中外观拉丝判断的方法具体流程为:\n[0070] 1)对称性特征判断;\n[0071] 以对称中心线L0为中心线,判断所述步骤5中获得的边缘点对是否关于对称中心线L0对称;\n[0072] a)i=1;\n[0073] b)取第i对对称点(h1i,h2i);\n[0074] c)判断h1i和h2i的横坐标差值的绝对值是否在允许的误差范围ε1以内,其中ε1为3-5个像素,如果绝对值小于或等于ε1,则继续进行下一步,否则转到步骤e);\n[0075] d)i=i+1,若i<=n,则返回步骤b),否则,结束本次判断,转入2)趋势特征判断;\n[0076] e)标记当前安瓿瓶外观拉丝存在质量问题;\n[0077] 2)趋势特征判断;\n[0078] 判断所述步骤5中获得的边缘点中相邻的边缘点是否符合抛物线的曲线变化趋势;\n[0079] a)i=1;\n[0080] b)以对称中心点h0为起点,分别取左边缘、右边缘上的连续两个边缘点h1i、h1(i+1)和h2i、h2(i+1)的纵坐标值;\n[0081] c)依次判断h1(i+1)与h1i的纵坐标差值和h2(i+1)与h2i纵坐标差值的结果,若其中任意一个结果大于ε2,其中ε2的取值范围是10-12个像素,则转步骤e),否则继续进入下一个步骤;\n[0082] d)i=i+1,若i<=n-1,则返回步骤b),否则,结束本次判断判断;\n[0083] e)标记当前安瓿瓶外观拉丝存在质量问题。\n[0084] 所述步骤8中外观黑头判断方法的具体流程为:\n[0085] 设黑头检测区域的图像C为h(x',y'),选用大小为(3×3)~(5×5)的正方形结构算子,(x',y')为像素点坐标;\n[0086] 1)利用结构算子对图像C进行腐蚀操作得到的输出图像D,设图像D为h1(x',y')[0087] 2)将腐蚀后的图像D与图像C进行差分处理,得到差分后的图像E,记为\nh2(x',y'),h2(x',y')=h1(x',y')-h(x',y'),(x',y')为像素点坐标;\n[0088] 3)对图像E进行阈值分割,提取黑头特征:\n[0089] \n[0090] hR(x′,y′)为阈值分割后的图像,T1为分割阈值;\n[0091] \n[0092] 式中,k、j分别为图像h(x',y')中的长、宽像素个数,即为图像C;\n[0093] 统计hR(x′,y′)中非零灰度值的像素个数T3,设标准阈值为T2,若T3>T2,则判定为当前安瓿瓶存在黑头问题,其中T2为整数,其取值范围为5~10。\n[0094] 有益效果\n[0095] 本发明公开了医药视觉检测机器人的安瓿瓶外观质量检测方法,其步骤为:(1)获取安瓿瓶图像,用中值滤波器进行预处理;(2)采用穿线法求安瓿瓶拟对称中心线,得到旋转角度α;(3)用双线性插值-累加法旋转图像;(4)用穿线法对旋转后的图像求对称中心线,对称中心线与头部的交点为对称中心点h0;(5)求头部边缘点;(6)安瓿瓶头部外曲线具有对称、呈下抛物线的变化趋势的特征,判断安瓿外观拉丝质量是否合格;(7)定位黑头检测矩形区域;(8)采用差分法判断安瓿外观黑头质量是否合格;(9)综合外观拉丝和黑头质量检测结果;通过采用穿线法求取安瓿瓶的拟对称中心线能够迅速得到旋转角度,利用双线性插值-累加法旋转图像,避免了反复计算大量乘法,节省了硬件资源,同时具有良好的实时性;该检测方法解决了人工检测效率低、一致性差、漏检率高等问题,实现了利用视觉机器人对安瓿瓶外观质量的自动检测,提高了安瓿药品生产自动化程度和产品质量。\n附图说明\n[0096] 图1为外观正常的安瓿图像;\n[0097] 图2为本发明的流程图;\n[0098] 图3为采用本发明所述的方法对采集的图像进行检测判断过程图;其中,图a为采集的安瓿瓶的外观原始图像;图b为图像预处理图;图c为对图b进行旋转后的图像;图d为定位图a中的黑头检测区域;图e为黑头检测效果图;\n[0099] 图4为采用穿线法求取安瓿瓶的边缘点及对称中心线的示意图;\n[0100] 图5为双线性插值示意图。\n具体实施方式\n[0101] 以下将结合附图和具体实施例对本发明做进一步详细说明。\n[0102] 对安瓿瓶外观进行检测的系统一旦位置固定后,安瓿瓶在系统中的成像位置也相对固定,如图1所示,为一个合格的安瓿瓶在检测系统中的成像,其中,S1为安瓿瓶头部宽度,S2为安瓿瓶顶部至瓶颈的高度,安瓿瓶头部宽度为S1所在的横截面,距离安瓿瓶顶部为S2/4;\n[0103] 建立坐标系,以图像左上角为坐标原点,x轴为图像的最上边线,y轴为图像的最左边线;\n[0104] 医药视觉检测机器人的安瓿瓶外观质量检测方法,其具体流程如图2所示,包括以下步骤:\n[0105] 步骤1:图像获取以及预处理;\n[0106] 通过网络工业CCD相机采集的安瓿头部图像传输给工控机进行预处理,由于图像在形成、传输和处理的过程中,存在不可避免的外部和内部干扰,故先对图像进行预处理,如图3中图a所示,为CCD相机采集的安瓿瓶外观图像,可以看出,原始图像中存在噪声点;\n采用中值滤波器对整幅图像进行处理,去除图像中存在的噪声点,如图3图b所示,即为图像A;\n[0107] 步骤2:求图像A中安瓿瓶头部的旋转角度;\n[0108] 采用穿线法求安瓿瓶壁拟对称中心线L,拟对称中心线与竖直轴的夹角,即为图像A中安瓿瓶头部所需旋转的角度α;\n[0109] 穿线法是指在不同线上分别从左往右、从右往左两个方向进行穿越,分别找到各自方向上与瓶壁的第一个交点;\n[0110] 如图4中的图a所示,在纵坐标为120个像素的位置,采用穿线法,各线之间距离\n15个像素,穿线条数q为5,分别得到与瓶壁边缘的交点分别为(a11、a12),(a21、a22),(a31、a32),(a41、a42),(a51、a52);拟对称中心线上的点的坐标利用穿线法得到的边缘点对的坐标均值;\n[0111] \n[0112] aq0为拟对称中心线上的点,q为穿线数目,取值为5;\n[0113] 假定拟对称中心线函数f(x;b1,b2)=b1+b2x,利用5个拟对称中心线上的像素点(xq,yq),q=1,2,...,5,构造与拟对称中心线函数f(x;b1,b2)的偏离函数:\n[0114] \n[0115] 如图4中的图b所示,采用最小二乘法确定拟对称中心线f(x);\n[0116] 然后求函数Q(b1,b2)的最小值:\n[0117] \n[0118] 确定拟合直线中b1、b2两变量的值,得出直线方程f;\n[0119] 分别对b1、b2求偏导数,并令其为零。\n[0120] \n[0121] \n[0122] 整理得:\n[0123] \n[0124] 上述方程式中xi、yi是图像中像素点的坐标,如图4图b中的点a10、a20、a30、a40、a50,m为点的数目,取值为5。经计算可得 数值。便可得出\n拟合直线方程f(x)=b1+b2·x,如图4图b所示。\n[0125] \n[0126] 所以,旋转角度α=90°-arctanb2=-3.814°,其中,q=1,2,...,m,m的取值为5;\n[0127] 步骤3:旋转图像A;\n[0128] 根据步骤2中求得的旋转角度α,采用基于双线性插值-累加法的图像旋转方法,旋转图像A使图像A中的头部图像关于竖直轴对称,如图3的图c所示,即得到图像B;\n[0129] (1)确定旋转公式;\n[0130] 采用方向旋转公式,将原图像旋转α角,使得旋转后的图像关于竖直轴成轴对称;\n[0131] 图像A以左上角为原点,向右为x轴、向下为y轴,点(x,y)经过旋转α角度后,坐标变成(x',y')\n[0132] \n[0133] (2)坐标计算过程;\n[0134] a)采取累加计算的方法,避免反复的乘法运算,实现快速的旋转变换;\n[0135] 累加法的基本原理:由于旋转角度α值在一次旋转内为常数,在完成一场图像的反向旋转变换过程中,sinα和cosα是固定值;设目标图像为f(x,y),反旋转变换的图像为f(x',y'):\n[0136] 对于同一行内相邻的两像素点(x',y')和(x'+1,y'),如果(x',y')的对应原像素点是(x,y),则(x'+1,y')对应的原像素坐标是(x+cosα,y-sinα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一行内与之相邻的像素点的坐标值:\n[0137] \n[0138] 对于图像相邻两行的同一列处的两像素坐标(x',y')和(x',y'+1),如果(x',y')对应原像素点(x,y),则(x',y'+1)对应的原像素点的坐标是(x-sinα,y+cosα),即利用一个已知的像素点坐标,通过下式进行快速计算得到同一列内与之相邻的像素点的坐标值:\n[0139] \n[0140] b)采用双线性插值方法,计算像素坐标值为分数的像素点的灰度值;\n[0141] 令g(x′,y′)为图像中任意点(x′,y′)关于x′和y′的灰度值函数,x′的整数部分为x0′,y′的整数部分为y0′,像素(x′,y′)所在的单位像素对应的正方形四个顶点坐标分别为:左上角为(x0′,y0′),左下角为(x0′,y0′+1),右上角为(x0′+1,y0′),右下角为(x0′+1,y0′+1);\n[0142] 如图5所示,图中点(x′,y′)在一个像素单位范围内的4个整数坐标点分别为H、J、K、Z,令点(x′,y′)的灰度值为g(x′,y′),点H、J、K、Z的灰度值分别为g(0,0),g(0,1),g(1,0),g(1,1):\n[0143] 1)对上端的两个顶点进行线性插值可得:\n[0144] g(x′,0)=g(0,0)+x′[g(1,0)-g(0,0)]\n[0145] 2)对于底端两个顶点进行线性插值,有\n[0146] g(x′,1)=g(0,1)+x′[g(1,1)-g(0,1)]\n[0147] 3)垂直方向的线性插值\n[0148] g(x′,y′)=g(x′,0)+y′[g(x′,1)-g(x′,0)]\n[0149] 则像素坐标为分数值时,当前像素坐标对应的灰度值按下式计算:\n[0150] g(x ′ ,y ′ ) = [g(x0 ′ +1,y0 ′ )-g(x0 ′ ,y0 ′ )]\nx′+[g(x0′,y0′+1)-g(x0′,y0′)]y′+[g(x0′+1,y0′+1)+g(x0′,y0′)-g(x0′,y0′+1)-g(x0′+1,y0′)]x′y′+g(x0′,y0′)\n[0151] 其中g(x0′,y0′),g(x0′+1,y0′),g(x0′,y0′+1),g(x0′+1,y0′+1)均为整数坐标对应的像素点的灰度值,从图中直接读取灰度值信息。\n[0152] 步骤4:求图像B中头部图像的对称中心点;\n[0153] 图像A拟对称中心线L经过旋转变换后,在图像B中L变换成对称中心线L0,对称中心线L0与图像A中安瓿瓶头部图像的交点即为对称中心点h0;\n[0154] 步骤5:求头部边缘点;\n[0155] 以对称中心线L0为基准线,在基准线两侧做与基准线平行且等间距的2n条竖线,以对称中心点h0为作为第一个交点,2n条竖线与安瓿瓶瓶壁的交点作为头部的边缘点,依次为(h11,h12,h13…h1n)、(h21,h22,h23,…h2n),n取整数4,(h11,h21)为第一对边缘点,(h14,h24)为第4对边缘点,如图3的图d所示;\n[0156] 其中,间距为S1/10,S1为相同规格的合格安瓿瓶头部宽度,S2为相同规格的合格安瓿瓶瓶颈至安瓿瓶顶部的高度,测量安瓿瓶头部宽度的位置距离安瓿瓶顶部距离为S2/4;\n[0157] 表1安瓿瓶头部边缘点纵坐标\n[0158] \n[0159] 步骤6:外观拉丝判断;\n[0160] 依次判断步骤5获得的边缘点对是否关于对称中心线L0轴对称和边缘点对的坐标变化趋势是否符合抛物线的曲线变化趋势,如果存在一对或一对以上不对称的边缘点,或者存在相邻的边缘点的坐标变化趋势不符合抛物线的曲线变化趋势,则当前安瓿瓶外观拉丝检测不合格,否则,则判定当前安瓿瓶外观拉丝检测合格;\n[0161] (1)对称性特征判断;\n[0162] 以对称中心线L0为中心线,判断所述步骤5中获得的边缘点对是否关于对称中心线L0对称;\n[0163] a)取第一对对称点(h1i,h2i),i=1;\n[0164] b)判断h1i和h2i的横坐标差值的绝对值,是否在允许的误差范围ε1以内,其中ε1为3-5个像素,如果绝对值小于或等于ε1,则继续进行下一步,否则转到步骤d);\n[0165] c)i=i+1,若i<=n,n取值为4,则返回步骤a),否则,结束本次判断;\n[0166] d)标记当前安瓿瓶外观拉丝存在质量问题;\n[0167] 当前图像中,因为|h11-h21|=|31-44|=13>4,其余各组虽然都满足要求,但只要一组超出误差范围,则该瓶的外观拉丝不对称,即当前安瓿瓶外观拉丝存在质量问题。\n[0168] (2)趋势特征判断;\n[0169] 判断所述步骤5中获得的边缘点中相邻的边缘点是否符合抛物线的曲线变化趋势;\n[0170] a)以对称中心点h0为起点,分别取左边缘、右边缘上的连续两个边缘点h1i、h1(i+1)和h2i、h2(i+1)的纵坐标值(i=1,2,…n-1);\n[0171] b)依次判断(h1(i+1)与h1i的纵坐标差值和h2(i+1)与h2i纵坐标差值的结果,若其中任意一个结果大于ε2,其中ε2的取值范围是10-12个像素,则转步骤d),否则继续进入下一个步骤;\n[0172] c)i=i+1,若i<=n-1,n取值为4,则返回步骤a),否则,结束本次判断判断;\n[0173] d)标记当前安瓿瓶外观拉丝存在质量问题;\n[0174] 当前图像中,因为|h11-h12|=|31-46|=15>10,虽然其它各组能满足要求,但只要有一组不合格,结果也为不合格,即当前安瓿瓶外观拉丝存在质量问题。\n[0175] 步骤7:定位黑头矩形检测区域;\n[0176] 求矩形检测区域图像C的四条直线边的坐标值,四条直线边分别为左边缘线L1,右边缘线L2,上边缘线L3,下边缘线L4;如图3中图e所示:\n[0177] 左边缘线L1:左边缘距离左边瓶壁的S1/10的位置,其横坐标L1=120;\n[0178] 右边缘线L2:右边缘距离右边瓶壁的S1/10的位置,其横坐标L2=160;\n[0179] 上边缘线L3:上边缘线距离瓶头部顶点S2/10的位置,其纵坐标L3=64;\n[0180] 下边缘线L4:下边缘线距离瓶头部顶点S2/3处,其纵坐标L4=134;\n[0181] 黑头是由于拉丝融封过程掉下来的高温残留药液掉落在瓶壁上,出现的区域不会在弧形的瓶头区域,而是在安瓿瓶头部区域下方至瓶颈的区域部分;\n[0182] 安瓿瓶瓶颈至安瓿瓶头部区域形状具有类似矩形且瓶壁边缘灰度值具有突变的特点,因此定位黑头检测区域为矩形,且定位的区域在瓶壁边缘以内;\n[0183] 所以定位黑头区域可以直接选择除去小部分弧形瓶头的安瓿瓶头部至瓶颈的矩形区域。\n[0184] 黑头区域的下边缘L4是一个常量,当检测的装量确定后,黑头检测的下边缘区域基本保持不变。\n[0185] 步骤8:外观黑头判断;\n[0186] 对定位的黑头区域,采用形态学腐蚀处理与原图差分将黑头检测区域中的异物提取出来,统计结果中黑头异物的像素个数P,与设定的阈值M进行比较,判断安瓿外观黑头质量是否合格,若P大于M,则判定为安瓿瓶外观黑头质量不合格,否则,则判定为当前安瓿瓶外观黑头质量合格;其中M取整数,其取值范围是5~10;\n[0187] 将图像C进行腐蚀处理得到图像D,用图像D与图像C进行差分处理得到图像E,最后对图像E进行阈值分割,得到图像F,即为黑头存在区域;阈值分割的临界阈值T1为图像E的平均灰度值;\n[0188] 设黑头检测区域的图像为h(x',y'),选用大小为(3×3)~(5×5)的正方形结构算子,(x',y')为像素坐标;\n[0189] 1)对图像C进行腐蚀操作得到的输出图像D,设图像D为h1(x',y')\n[0190] 2)将腐蚀后的图像D与图像C进行差分处理,得到差分后的图像E,记为\nh2(x',y'),h2(x',y')=h1(x',y')-h(x',y'),(x',y')为像素坐标;\n[0191] 3)对图像E进行\n[0192] 阈值分割,提取黑头特征:\n[0193] \n[0194] hR(x′,y′)为阈值分割后的图像,T1为分割阈值;\n[0195] \n[0196] 式中,k、j分别为中的长、宽像素个数,即为图像C;\n[0197] 统计hR(x′,y′)中非零灰度值的像素个数T3,设标准阈值为T2,若T3>T2,则判定为当前安瓿瓶存在黑头问题,其中T2为整数,设置为5。\n[0198] 图3中图f的黑头检测区域中的非零像素的个数为106个,大于T2,所以检测为不合格。\n[0199] 步骤9:标定检测结果;\n[0200] 当前安瓿瓶存在外观拉丝质量问题和外观黑头问题,则当前安瓿瓶存在质量问题,为不合格产品。