本發(fā)明涉及二維碼處理技術(shù)領(lǐng)域,尤其涉及一種基于機器學習的二維碼定位方法及系統(tǒng)。
背景技術(shù):
二維碼定位是二維碼識別中的重要過程。傳感器獲取的二維碼圖像周圍經(jīng)常會包含噪聲和無關(guān)的背景信息,降低二維碼的識別效率與準確度。傳統(tǒng)的二維碼定位方法通過灰度變換與形態(tài)學的組合實現(xiàn)圖像中的二維碼區(qū)域提取。由于不同二維碼碼型,如or碼,datamatrix,pdf417等,在圖形上存在許多共性,如都具有復雜的邊緣信息,都由黑白模塊構(gòu)成等。這些共性使得某種二維碼的定位程序可以很方便的修改成另一個碼的定位程序。然而在實際應用中,用戶更需要設(shè)備能同時識別多種碼型,此時傳統(tǒng)方法便顯得雖然能通過增加判斷條件等方式來兼容多種二維碼定位,但隨著系統(tǒng)需要識別的碼型數(shù)目的增加,此方法的定位穩(wěn)定性也隨之降低。同時,算法復雜度的提高會妨礙后續(xù)的功能擴展。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于機器學習的二維碼定位方法及系統(tǒng),可以增加定位的穩(wěn)定性,模型在通過不斷學習,提高定位準確度。
為了解決上述技術(shù)問題,本發(fā)明實施例提供了一種基于機器學習的二維碼定位方法,所述方法包括:
采用圖像傳感器獲取二維碼圖像信息;
對所述二維碼圖像信息進行分塊、標注和向量化預處理,獲取二維碼圖像信息的分塊、標注和向量化信息;
采用訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行定位處理,根據(jù)定位處理結(jié)果確定二維碼在所述二維碼圖像信息的區(qū)域。
優(yōu)選地,所述對所述二維碼圖像信息進行分塊、標注和向量化預處理,包括:
讀取所述二維碼圖像信息;
對所述二維碼圖像信息進行定位處理,獲取二維碼圖像信息定位結(jié)果;
對所述二維碼圖像信息定位結(jié)果進行分塊及標注處理;
對分塊及標注后的二維碼圖像信息進行圖像向量化處理,輸出處理結(jié)果。
優(yōu)選地,所述訓練模型的訓練學習步驟包括:
讀入待學習的二維碼圖像信息的分塊、標注和向量化信息;
調(diào)整訓練參數(shù),使訓練模型采用所述訓練參數(shù)收斂到局部最優(yōu)
采用所述訓練參數(shù)多所述待學習的二維碼圖像信息的分塊、標注和向量化信息進行訓練學習,輸出學習后的訓練模型。
優(yōu)選地,所述采用訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行定位處理,根據(jù)定位處理結(jié)果確定二維碼在所述二維碼圖像信息的區(qū)域,包括:
讀入待定位二維碼圖像信息的分塊、標注和向量化信息;
采用所述訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行分類,用1標識含有二維碼分塊,用0標識非二維碼塊;
將標識為1的分塊按順序重組圖像塊,獲取完整二維碼圖像區(qū)域;
對所述完整二維碼圖像區(qū)域進行形態(tài)學處理,去除多與區(qū)域與填充殘缺二維碼圖像區(qū)域,獲取二維碼區(qū)域圖像信息;
將所述二維碼區(qū)域圖像信息輸出,作為定位結(jié)果。
本發(fā)明實施例還提供了一種基于機器學習的二維碼定位系統(tǒng),所述系統(tǒng)包括:
采集模塊:用于采用圖像傳感器獲取二維碼圖像信息;
預處理模塊:用于對所述二維碼圖像信息進行分塊、標注和向量化預處理,獲取二維碼圖像信息的分塊、標注和向量化信息;
定位模塊:用于采用訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行定位處理,根據(jù)定位處理結(jié)果確定二維碼在所述二維碼圖像信息的區(qū)域。
優(yōu)選地,所述預處理模塊包括:
信息讀取單元:用于讀取所述二維碼圖像信息;
定位單元:用于對所述二維碼圖像信息進行定位處理,獲取二維碼圖像信息定位結(jié)果;
分塊及標注單元:用于對所述二維碼圖像信息定位結(jié)果進行分塊及標注處理;
量化處理單元:用于對分塊及標注后的二維碼圖像信息進行圖像向量化處理,輸出處理結(jié)果。
優(yōu)選地,所述訓練模型的訓練學習步驟包括:
讀入待學習的二維碼圖像信息的分塊、標注和向量化信息;
調(diào)整訓練參數(shù),使訓練模型采用所述訓練參數(shù)收斂到局部最優(yōu)
采用所述訓練參數(shù)多所述待學習的二維碼圖像信息的分塊、標注和向量化信息進行訓練學習,輸出學習后的訓練模型。
優(yōu)選地,所述定位模塊包括:
信息讀入單元:用于讀入待定位二維碼圖像信息的分塊、標注和向量化信息;
預處理單元:用于采用所述訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行分類,用1標識含有二維碼分塊,用0標識非二維碼塊;
圖像重組單元:用于將標識為1的分塊按順序重組圖像塊,獲取完整二維碼圖像區(qū)域;
形態(tài)學處理單元:用于對所述完整二維碼圖像區(qū)域進行形態(tài)學處理,去除多與區(qū)域與填充殘缺二維碼圖像區(qū)域,獲取二維碼區(qū)域圖像信息;
結(jié)果輸出單元:用于將所述二維碼區(qū)域圖像信息輸出,作為定位結(jié)果。
在本發(fā)明實施例中,通過一種機器學習訓練模型的方式對二維碼圖像進行定位,可以增加定位的穩(wěn)定性,模型在通過不斷學習,提高定位準確度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見的,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實施例中的基于機器學習的二維碼定位方法的方法流程示意圖;
圖2是本發(fā)明實施例中的分塊、標注和向量化預處理的流程示意圖;
圖3是本發(fā)明實施例中的二維碼定位的流程示意圖;
圖4是本發(fā)明實施例中的基于機器學習的二維碼定位系統(tǒng)的系統(tǒng)結(jié)構(gòu)組成示意圖;
圖5是本發(fā)明實施例中的定位模塊的結(jié)構(gòu)組成示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1是本發(fā)明實施例中的基于機器學習的二維碼定位方法的方法流程示意圖,如圖1所示,所述方法包括:
s11:采用圖像傳感器獲取二維碼圖像信息;
s12:對所述二維碼圖像信息進行分塊、標注和向量化預處理,獲取二維碼圖像信息的分塊、標注和向量化信息;
s13:采用訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行定位處理,根據(jù)定位處理結(jié)果確定二維碼在所述二維碼圖像信息的區(qū)域。
對s11作進一步說明:
二維碼圖像信息采集可以通過圖像傳感器進行,如采用攝像頭等設(shè)備進行采集,獲取到二維碼圖像。
參照圖2是本發(fā)明實施例中的分塊、標注和向量化預處理的流程示意圖,如圖2所示,對s12作進一步說明:
s121:讀取所述二維碼圖像信息;
讀取s11中獲取到的二維碼圖像信息。
s122:對所述二維碼圖像信息進行定位處理,獲取二維碼圖像信息定位結(jié)果;
采用投影法對二維碼定進行定位;首先采用邊緣檢測算子檢測二維碼圖像信息的邊緣,如采用sobel算子或者canny算子;在水平和垂直方向上對圖像進行投影,即分別求二維碼圖像信息的行向量與列向量的和;然后考慮到二維碼圖像信息具有豐富的邊緣信息,搜素行向量與列向量和大于閾值的區(qū)間,從而得到一個矩形區(qū)域,即為二維碼圖像信息區(qū)域。
s123:對所述二維碼圖像信息定位結(jié)果進行分塊及標注處理;
對二維碼圖像進行分塊處理,處理中,每個圖像塊的大小為16*16,在進行標注處理時,根據(jù)分塊的先后,采用數(shù)字1到n來進行標注。
s124:對分塊及標注后的二維碼圖像信息進行圖像向量化處理,輸出處理結(jié)果。
將分塊及標注和的二維碼圖像塊進行向量化處理,采用向量對二維碼圖像塊進行表示。
對s13作進一步處理:
在s13訓練模型訓練學習步驟如下:
讀入待學習的二維碼圖像信息的分塊、標注和向量化信息;
調(diào)整訓練參數(shù),使訓練模型采用所述訓練參數(shù)收斂到局部最優(yōu)
采用所述訓練參數(shù)多所述待學習的二維碼圖像信息的分塊、標注和向量化信息進行訓練學習,輸出學習后的訓練模型。
在s13中,通過上述學習步驟可以對新獲取到的圖像信息進行學習,這樣可以使得訓練模型在對二維碼圖像信息定位的時候,可以實現(xiàn)對待定位的二維碼圖像信息的更精確定位。
圖3是本發(fā)明實施例中的二維碼定位的流程示意圖,結(jié)合圖3對s13作進一步說明:
s131:讀入待定位二維碼圖像信息的分塊、標注和向量化信息;
在定位過程中,首先讀入待定位的二維碼圖像信息的分塊、標注和向量化信息。
s132:采用所述訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行分類,用1標識含有二維碼分塊,用0標識非二維碼塊;
采用上述的訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行分類,其中是根據(jù)分塊中是否含有二維碼塊為區(qū)別進行分類,若含有二維碼塊的則采用1進行標識,否則采用0進行標識。
s133:將標識為1的分塊按順序重組圖像塊,獲取完整二維碼圖像區(qū)域;
根據(jù)上述s132中獲取標識為1的二維碼塊,獲取這些二維碼塊中的標注信息,根據(jù)標注信息中的從小到大的順序重新組合在一起,重新形成完整的二維碼圖像區(qū)域。
s134:對所述完整二維碼圖像區(qū)域進行形態(tài)學處理,去除多與區(qū)域與填充殘缺二維碼圖像區(qū)域,獲取二維碼區(qū)域圖像信息;
采用形態(tài)學的處理方式對二維碼區(qū)域圖像進行處理,主要是去除多與區(qū)域與填充殘缺二維碼圖像區(qū)域,獲取到僅僅含有二維碼區(qū)域圖像信息。
s135:將所述二維碼區(qū)域圖像信息輸出,作為定位結(jié)果。
將獲取到的二維碼區(qū)域圖像信息進行輸出,即可實現(xiàn)對二維碼進行定位。
圖4是本發(fā)明實施例中的基于機器學習的二維碼定位系統(tǒng)的系統(tǒng)結(jié)構(gòu)組成示意圖,如圖4所示,所述系統(tǒng)包括:
采集模塊11:用于采用圖像傳感器獲取二維碼圖像信息;
預處理模塊12:用于對所述二維碼圖像信息進行分塊、標注和向量化預處理,獲取二維碼圖像信息的分塊、標注和向量化信息;
定位模塊13:用于采用訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行定位處理,根據(jù)定位處理結(jié)果確定二維碼在所述二維碼圖像信息的區(qū)域。
優(yōu)選地,所述預處理模塊12包括:
信息讀取單元:用于讀取所述二維碼圖像信息;
定位單元:用于對所述二維碼圖像信息進行定位處理,獲取二維碼圖像信息定位結(jié)果;
分塊及標注單元:用于對所述二維碼圖像信息定位結(jié)果進行分塊及標注處理;
量化處理單元:用于對分塊及標注后的二維碼圖像信息進行圖像向量化處理,輸出處理結(jié)果。
優(yōu)選地,所述訓練模型的訓練學習步驟包括:
讀入待學習的二維碼圖像信息的分塊、標注和向量化信息;
調(diào)整訓練參數(shù),使訓練模型采用所述訓練參數(shù)收斂到局部最優(yōu)
采用所述訓練參數(shù)多所述待學習的二維碼圖像信息的分塊、標注和向量化信息進行訓練學習,輸出學習后的訓練模型。
圖5是本發(fā)明實施例中的定位模塊的結(jié)構(gòu)組成示意圖,如圖5所示,優(yōu)選地,所述定位模塊13包括:
信息讀入單元131:用于讀入待定位二維碼圖像信息的分塊、標注和向量化信息;
預處理單元132:用于采用所述訓練模型對所述二維碼圖像信息的分塊、標注和向量化信息進行分類,用1標識含有二維碼分塊,用0標識非二維碼塊;
圖像重組單元133:用于將標識為1的分塊按順序重組圖像塊,獲取完整二維碼圖像區(qū)域;
形態(tài)學處理單元134:用于對所述完整二維碼圖像區(qū)域進行形態(tài)學處理,去除多與區(qū)域與填充殘缺二維碼圖像區(qū)域,獲取二維碼區(qū)域圖像信息;
結(jié)果輸出單元135:用于將所述二維碼區(qū)域圖像信息輸出,作為定位結(jié)果。
在本發(fā)明實施例中,通過一種機器學習訓練模型的方式對二維碼圖像進行定位,可以增加定位的穩(wěn)定性,模型在通過不斷學習,提高定位準確度。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(rom,readonlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁盤或光盤等。
另外,以上對本發(fā)明實施例所提供的一種基于機器學習的二維碼定位方法及系統(tǒng)進行了詳細介紹,本文中應采用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。