基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及的是一種圖像處理方法,尤其是一種基于圖像處理的瓶裝液體雜質(zhì)及 液位檢測(cè)方法。
【背景技術(shù)】
[0002] 眾所周知,對(duì)于瓶裝液體是否含有雜質(zhì)事關(guān)食品與醫(yī)藥安全。食品安全問(wèn)題已成 為當(dāng)今社會(huì)的熱點(diǎn)話題,所以嚴(yán)格把控食品生產(chǎn)過(guò)程中的衛(wèi)生,保證食品的安全至關(guān)重要。 然而,現(xiàn)如今國(guó)內(nèi)大部分企業(yè)和產(chǎn)品生產(chǎn)車間采用傳統(tǒng)的肉眼識(shí)別,這種識(shí)別方法速度慢, 檢測(cè)人員容易疲勞,可靠性差。不論從實(shí)用性還是從企業(yè)成本需求考慮,采用原理簡(jiǎn)單、成 本低廉、易操作的圖像處理的方法來(lái)對(duì)食品進(jìn)行檢測(cè)是一種趨勢(shì)。
[0003] 圖像處理沒有固定的算法,研究圖像處理必須以實(shí)際對(duì)象和實(shí)際效果為主要準(zhǔn) 貝1J。我國(guó)傳統(tǒng)的瓶裝液體雜質(zhì)檢測(cè)技術(shù)主要有光流法和背景減除法。光流法是通過(guò)判斷是 否有異物產(chǎn)生光流場(chǎng)來(lái)判斷雜質(zhì)的存在的,這種方法計(jì)算量大,不適用于實(shí)時(shí)處理。背景減 除法分辨率極高,可以識(shí)別類如毛發(fā)這樣細(xì)小雜質(zhì)。然而,其對(duì)系統(tǒng)控制的精確度也十分 高,需要兩幀圖像的水瓶位置接近于重合,這點(diǎn)在實(shí)際應(yīng)用中由于硬件的限制很難達(dá)到。并 且由于液體運(yùn)動(dòng)產(chǎn)生的細(xì)小氣泡也會(huì)被識(shí)別成雜質(zhì)。
[0004] 至于瓶裝液體的液位檢測(cè),在已有的研究中,提出了如光電傳感器法,電容傳感器 法,超聲波法,以上檢測(cè)方法雖然檢測(cè)結(jié)果理想,但成本較高,短時(shí)間內(nèi)難以廣泛推行應(yīng)用。 基于機(jī)器視覺的檢測(cè)方法由于其原理簡(jiǎn)單、成本低廉、操作方便,不借助于外部測(cè)量?jī)x器既 能實(shí)現(xiàn)對(duì)瓶裝液體進(jìn)行實(shí)時(shí)監(jiān)測(cè)的目的,因此受到人們廣泛關(guān)注。
[0005] 鑒于以上兩種液體雜質(zhì)檢測(cè)方式在瓶裝液體檢測(cè)應(yīng)用上的不足和工業(yè)現(xiàn)場(chǎng)對(duì)原 理簡(jiǎn)單、操作方便、成本低廉及不借助于外部檢測(cè)儀器即可進(jìn)行實(shí)時(shí)檢測(cè)的要求,更為有效 的檢測(cè)算法有待進(jìn)一步開發(fā)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種可使系統(tǒng)識(shí)別直徑0. 5mm以上的雜質(zhì),并能準(zhǔn)確檢測(cè) 出液體液位的基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法。
[0007] 本發(fā)明的目的是這樣實(shí)現(xiàn)的:
[0008] a、攝像頭采集并輸入所要處理的圖像;
[0009] b、創(chuàng)建用來(lái)存儲(chǔ)每一步處理后圖像的內(nèi)存空間;
[0010]c、運(yùn)用高斯濾波對(duì)圖像進(jìn)行灰度化平滑處理;
[0011]d、運(yùn)用改進(jìn)的otsu自適應(yīng)閾值分割算法找到閾值T1;
[0012] e、對(duì)步驟d中找到的閾值進(jìn)行放大得到新的閾值Τ2;
[0013]f、用找到的閾值對(duì)高斯濾波后的圖像進(jìn)行二值化形態(tài)學(xué)處理;
[0014]g、對(duì)雜質(zhì)和液位進(jìn)行檢測(cè)并輸出結(jié)果;
[0015] h、釋放內(nèi)存空間。
[0016] 所述的d到f中運(yùn)用高斯平滑對(duì)圖像進(jìn)行高斯濾波處理后進(jìn)行otsu計(jì)算差分圖 像閾值1\的具體方法如下:計(jì)算直方圖并歸一化histogtam得到圖像灰度級(jí)及各級(jí)灰度出 現(xiàn)的概率;可得到圖像灰度均值;計(jì)算直方圖的零階和一階距并找到最大類間方差及對(duì)應(yīng) 的灰度值即為自適應(yīng)閾值;對(duì)以上得到的的閾值進(jìn)行一定比例的放大,以實(shí)現(xiàn)對(duì)傳統(tǒng)otsu 算法的改進(jìn);利用閾值T對(duì)上述處理過(guò)的圖像進(jìn)行形態(tài)學(xué)濾波處理;對(duì)處理后的圖像進(jìn)行 后續(xù)處理。
[0017] 本發(fā)明通過(guò)對(duì)當(dāng)前液體雜質(zhì)檢測(cè)的常用算法進(jìn)行實(shí)際驗(yàn)證,最終提出了改進(jìn)的 otsu閾值自適應(yīng)分割算法。
[0018] 本發(fā)明的有益效果:本發(fā)明的一種基于圖像處理的瓶裝液體的雜質(zhì)及液位檢測(cè)算 法,經(jīng)過(guò)大量實(shí)驗(yàn),對(duì)傳統(tǒng)的otsu閾值分割算法進(jìn)行改進(jìn),實(shí)現(xiàn)了閾值在一定光線范圍內(nèi) 的自適應(yīng)調(diào)節(jié),減小了傳統(tǒng)閾值分割算法固定不變的保守性,同時(shí)在雜質(zhì)及液位檢測(cè)系統(tǒng) 中成功得以應(yīng)用。實(shí)驗(yàn)結(jié)果表明該算法可使系統(tǒng)識(shí)別直徑0. 5mm以上的雜質(zhì)并能準(zhǔn)確檢測(cè) 出液體液位,對(duì)不合格產(chǎn)品進(jìn)行報(bào)警提示和剔除。
【附圖說(shuō)明】
[0019] 圖1為雜質(zhì)和液位檢測(cè)算法流程圖;
[0020] 圖2為改進(jìn)的自適應(yīng)閾值分割法流程圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。由于該發(fā)明僅介紹了檢測(cè)系統(tǒng)的算法, 因此如下示意圖僅顯示與本發(fā)明有關(guān)的基本構(gòu)成。
[0022] 一種基于圖像處理的瓶裝液體的雜質(zhì)及液位檢測(cè)算法,具體算法如下:
[0023]a、攝像頭采集并輸入所要處理的圖像;
[0024] b、創(chuàng)建用來(lái)存儲(chǔ)每一步處理后圖像的內(nèi)存空間;
[0025] 在OpenCV中調(diào)用cvCreatlmage()函數(shù)創(chuàng)建用來(lái)存儲(chǔ)每一步處理后圖像的內(nèi)存。
[0026] c、運(yùn)用高斯濾波對(duì)圖像進(jìn)行灰度化平滑處理;
[0027]d、運(yùn)用改進(jìn)的otsu自適應(yīng)閾值分割算法找到閾值T1;
[0028]e、對(duì)d中找到的閾值進(jìn)行一定比例的放大得到新的閾值T2;d和e中otsu具體算 法如下:
[0029] Stepl:計(jì)算直方圖并歸一化histogtam可以得到圖像灰度級(jí)1 -M,第i級(jí)像素 &個(gè),總像素為N,則第i級(jí)灰度出現(xiàn)的概率為
[0030] Ρ;=ni/N
[0031] Step2 :計(jì)算圖像灰度均值
[0032] -
[0033]Step3:計(jì)算直方圖的零階w[i]和一級(jí)距u[i]
[0034]
[0035] _L-wLKJ
[0036] 對(duì)一級(jí)矩作以下處理:
[0037]μ〇=μ[k]/w[k],μ1= [μ-μ[k]]/[l_w[k]]
[0038]Step4:計(jì)算并找到最大的類間方差對(duì)應(yīng)此最大方差的灰度值即為要找的閾值
[0039]類間方差:〇 2 [k] =w。(μ-μ。)2+Wi(μ-μD2
[0040]即:〇2[k] = [μ·w[k]_μ[k]]2/{w[k] · [l_w[k]]}
[0041] k從1-M變化,是類間方差最大的k即為所求之最佳閾值,記為kmax。
[0042]Step5 :Step4中找到的閾值進(jìn)行一定的比例放大即a=kmax ·b(其中, 1. 22〈b〈l. 42)。
[0043] 通過(guò)對(duì)傳統(tǒng)的otsu算法的實(shí)驗(yàn)過(guò)程發(fā)現(xiàn),其并不能達(dá)到閾值自適應(yīng)的效果,甚至 不能提取出圖像雜質(zhì)的輪廓,團(tuán)隊(duì)發(fā)現(xiàn)本設(shè)計(jì)的帶有雜質(zhì)的瓶子圖像,雜質(zhì)和背景的界限 分明,傳統(tǒng)的otsu算法計(jì)算出的的閾值偏小導(dǎo)致不能正確提取出雜質(zhì),故經(jīng)過(guò)100次實(shí)驗(yàn), 提出了在St印5的基礎(chǔ)上對(duì)閾值進(jìn)行擴(kuò)大(其中放大倍數(shù)為1. 22〈b〈l. 42)的方法。
[0044] 通過(guò)St印5得出的閾值,實(shí)驗(yàn)效果良好,符合本設(shè)計(jì)的需要,完全達(dá)到了閾值自適 應(yīng)調(diào)節(jié)的效果。
[0045]f、用找到的閾值對(duì)高斯濾波后的圖像進(jìn)行二值化形態(tài)學(xué)處理;
[0046] 本設(shè)計(jì)通過(guò)對(duì)閾值分割后的圖像先進(jìn)行閉運(yùn)算再進(jìn)行開運(yùn)算處理,可以看出閉運(yùn) 算操作使得瓶子頂端的分離部分連接在一起,從而避免了后續(xù)輪廓查找的誤操作,達(dá)到了 很好的效果。
[0047]g、對(duì)雜質(zhì)和液位進(jìn)行檢測(cè)并輸出結(jié)果;其具體算法如下:
[0048]1)對(duì)輸入圖像(閾值分割圖像)進(jìn)行輪廓查找并把各個(gè)信息以鏈表的形式保存。 傳出指向這條鏈表表頭的指針;
[0049]2)進(jìn)入循環(huán)中,通過(guò)鏈表表頭指針指向當(dāng)前輪廓坐標(biāo);
[0050] 3)繪制當(dāng)前輪廓并計(jì)算當(dāng)前輪廓區(qū)域面積area;
[0051] 4)area與內(nèi)輪廓閾值進(jìn)行比較,如果area小于該閾值,則被認(rèn)定為內(nèi)輪廓即雜質(zhì) 然后計(jì)數(shù)并標(biāo)定雜質(zhì)位置;
[0052] 5)area與外輪廓閾值進(jìn)行比較,若大于該閾值,則當(dāng)前輪廓區(qū)域?yàn)橥廨喞?jì)數(shù)加 1 ;
[0053] 6)遍歷完所有存儲(chǔ)的輪廓區(qū)域之后,查看外輪廓數(shù)目,如外輪廓數(shù)目大于1,則認(rèn) 為液位不滿;
[0054]7)實(shí)時(shí)輸出結(jié)果。
[0055]h、釋放內(nèi)存空間。
[0056] 應(yīng)用OpenCV下的cvReleaseMemStorage()函數(shù)釋放內(nèi)存,并結(jié)束程序。
[0057] 以上述依據(jù)本發(fā)明的理想實(shí)施例為啟示,通過(guò)上述的說(shuō)明內(nèi)容,相關(guān)工作人員完 全可以在不偏離本項(xiàng)發(fā)明技術(shù)思想的范圍內(nèi),進(jìn)行多樣的變更或者修改。本發(fā)明的技術(shù)性 范圍并不局限于說(shuō)明書上的內(nèi)容,必須根據(jù)權(quán)利要求范圍來(lái)確定其技術(shù)性范圍。
【主權(quán)項(xiàng)】
1. 一種基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法,其特征是: a、 攝像頭采集并輸入所要處理的圖像; b、 創(chuàng)建用來(lái)存儲(chǔ)每一步處理后圖像的內(nèi)存空間; c、 運(yùn)用高斯濾波對(duì)圖像進(jìn)行灰度化平滑處理; d、 運(yùn)用改進(jìn)的otsu自適應(yīng)閾值分割算法找到閾值T1; e、 對(duì)步驟d中找到的閾值進(jìn)行放大得到新的閾值Τ2; f、 用找到的閾值對(duì)高斯濾波后的圖像進(jìn)行二值化形態(tài)學(xué)處理; g、 對(duì)雜質(zhì)和液位進(jìn)行檢測(cè)并輸出結(jié)果; h、 釋放內(nèi)存空間。2. 根據(jù)權(quán)利要求1所述的基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法,其特征是步 驟d到步驟f中對(duì)高斯濾波處理后的圖像進(jìn)行otsu計(jì)算差分圖像閾值T和形態(tài)學(xué)處理的 具體方法如下: (1) 計(jì)算直方圖并歸一化histogtam得到圖像灰度級(jí)及各級(jí)灰度出現(xiàn)的概率; (2) 由步驟(1)得到圖像灰度均值; (3) 計(jì)算直方圖的零階和一階距并找到最大類間方差及對(duì)應(yīng)的灰度值即為自適應(yīng)閾 值; (4) 對(duì)步驟(3)中的閾值進(jìn)行放大,實(shí)現(xiàn)對(duì)傳統(tǒng)otsu算法的改進(jìn); (5) 利用閾值T對(duì)上述處理過(guò)的圖像進(jìn)行形態(tài)學(xué)濾波處理; (6) 對(duì)處理后的圖像進(jìn)行后續(xù)處理。3. 根據(jù)權(quán)利要求1或2所述的基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法,其特征 是所述對(duì)雜質(zhì)和液位進(jìn)行檢測(cè)具體包括: 1) 對(duì)輸入圖像進(jìn)行輪廓查找并把各個(gè)信息以鏈表的形式保存,傳出指向這條鏈表表頭 的指針; 2) 進(jìn)入循環(huán)中,通過(guò)鏈表表頭指針指向當(dāng)前輪廓坐標(biāo); 3) 繪制當(dāng)前輪廓并計(jì)算當(dāng)前輪廓區(qū)域面積area; 4)area與內(nèi)輪廓閾值進(jìn)行比較,如果area小于該閾值,則被認(rèn)定為內(nèi)輪廓即雜質(zhì)然后 計(jì)數(shù)并標(biāo)定雜質(zhì)位置; 5)area與外輪廓閾值進(jìn)行比較,若大于該閾值,則當(dāng)前輪廓區(qū)域?yàn)橥廨喞?jì)數(shù)加1 ; 6) 遍歷完所有存儲(chǔ)的輪廓區(qū)域之后,查看外輪廓數(shù)目,如外輪廓數(shù)目大于1,則認(rèn)為液 位不滿; 7) 實(shí)時(shí)輸出結(jié)果。
【專利摘要】本發(fā)明提供的是一種基于圖像處理的瓶裝液體雜質(zhì)及液位檢測(cè)方法。a、攝像頭采集并輸入所要處理的圖像;b、創(chuàng)建用來(lái)存儲(chǔ)每一步處理后圖像的內(nèi)存空間;c、運(yùn)用高斯濾波對(duì)圖像進(jìn)行灰度化平滑處理;d、運(yùn)用改進(jìn)的otsu自適應(yīng)閾值分割算法找到閾值T1;e、對(duì)步驟d中找到的閾值進(jìn)行放大得到新的閾值T2;f、用找到的閾值對(duì)高斯濾波后的圖像進(jìn)行二值化形態(tài)學(xué)處理;g、對(duì)雜質(zhì)和液位進(jìn)行檢測(cè)并輸出結(jié)果;h、釋放內(nèi)存空間。本發(fā)明實(shí)現(xiàn)了閾值在一定光線范圍內(nèi)的自適應(yīng)調(diào)節(jié)。實(shí)驗(yàn)結(jié)果表明該算法可使系統(tǒng)識(shí)別直徑0.5mm以上的雜質(zhì)并能準(zhǔn)確檢測(cè)出液體液位,并對(duì)不合格產(chǎn)品進(jìn)行報(bào)警提示和剔除。
【IPC分類】G01N21/90, G01F23/00
【公開號(hào)】CN105334228
【申請(qǐng)?zhí)枴緾N201510676841
【發(fā)明人】韓云濤, 程章龍, 杜世通, 吳振, 張曉濤, 李偉, 強(qiáng)寶琛, 韓鵬, 劉曉晴, 王洪興
【申請(qǐng)人】哈爾濱工程大學(xué)
【公開日】2016年2月17日
【申請(qǐng)日】2015年10月15日