本發(fā)明涉及圖像處理領域,具體而言,涉及一種識別集裝箱箱號的方法和裝置。
背景技術:
目前,集裝箱被廣泛的應用于交通運輸中,為了方便對集裝箱的識別,每個集裝箱都有一個集裝箱箱號和集裝箱ISO號,以方便記錄集裝箱在運輸過程中的狀態(tài)。在港口作業(yè)中,為了減少人工成本、提升工作效率、杜絕人工抄錄錯誤,圖像識別技術被用于對采集到的集裝箱圖像進行處理,從而自動識別出集裝箱箱號和集裝箱ISO號。
現(xiàn)有技術中,已經有一些關于集裝箱箱號識別的方法被提出來。
(1)關于箱號定位,現(xiàn)有技術是采用圖像濾波、二值化、形態(tài)學方法對采集到的集裝箱圖像進行處理,從而得到箱號字符串定位塊,如果成像條件穩(wěn)定,上述對箱號進行提取的方法可能會起到一定的效果。但是,實際情況中集裝箱可能會有一定的傾斜,且由于受不同光照環(huán)境、相機曝光參數(shù)差異的影響,采集到的集裝箱圖像的對比度、平均亮度均會有較大的變化,從而影響對集裝箱箱號的定位,如果在箱面存在污損的情況下,甚至可能造成箱號定位失敗。
(2)在完成集裝箱箱號定位后,需要識別箱號,現(xiàn)有的方法主要有兩種,一是基于傳統(tǒng)的單隱層神經網(wǎng)絡訓練分類器來實現(xiàn)箱號識別,其缺點是采用傳統(tǒng)的神經網(wǎng)絡分類器進行訓練需要花費較長的時間;另外就是采用多類支持向量機的識別算法來實現(xiàn)箱號識別,在識別時采用的特征多為二值化圖像,其缺點是二值化圖像信息簡單,如果二值化閾值選擇不合適,會直接影響識別結果,且在使用多類支持向量機的方法進行箱號識別時,在參數(shù)選擇上難以取到最優(yōu)值參數(shù),且進行預測時計算量相對較大,計算時間較長。
針對現(xiàn)有技術中對集裝箱箱號的識別率低的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種識別集裝箱箱號的方法和裝置,以解決對集裝箱箱號的識別率低問題。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種識別集裝箱箱號的方法,該方法包括:采集集裝箱的箱面的待識別圖像的第一灰度圖;基于預設筆劃 庫檢測第一灰度圖中的筆劃區(qū)域,并合并檢測到的筆劃區(qū)域得到字符區(qū)域,其中,預設筆劃庫包括集裝箱箱號的筆劃樣本,每個筆劃樣本中包含部分或全部筆劃;基于字符區(qū)域得到各個字符的字符圖像塊;對字符圖像塊進行識別,得到各個字符的識別結果,組合識別結果得到待識別圖像的集裝箱箱號。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的另一方面,提供了一種識別集裝箱箱號的裝置,該裝置包括:采集模塊,用于采集集裝箱的箱面的待識別圖像的第一灰度圖;第一檢測模塊,用于基于預設筆劃庫檢測第一灰度圖中的筆劃區(qū)域,并合并檢測到的筆劃區(qū)域得到字符區(qū)域,其中,預設筆劃庫包括集裝箱箱號的筆劃樣本,每個筆劃樣本中包含部分或全部筆劃;第一處理模塊,用于基于字符區(qū)域得到各個字符的字符圖像塊;第一識別模塊,用于對字符圖像塊進行識別,得到各個字符的識別結果,組合識別結果得到待識別圖像的集裝箱箱號。
采用本發(fā)明,通過使用預設筆劃庫檢測采集到的集裝箱的箱面的待識別圖像中的筆劃區(qū)域,并將獲取到筆劃區(qū)域合并得到字符區(qū)域,然后對基于字符區(qū)域獲取的各個字符的字符圖像塊進行字符識別,得到各個字符的識別結果,并將識別結果進行組合得到集裝箱箱號。采用本發(fā)明,利用預設筆劃庫和梯度直方圖特征來檢測集裝箱箱號,解決了現(xiàn)有技術中對集裝箱箱號的識別率低的問題,達到了對集裝箱箱號的快速且準確識別的效果。
附圖說明
構成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的識別集裝箱箱號的方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的一個可選地識別集裝箱箱號的流程圖;
圖3是根據(jù)本發(fā)明實施例的筆劃正樣本的示意圖;
圖4是根據(jù)本發(fā)明實施例的待檢測圖像的示意圖;
圖5是根據(jù)本發(fā)明實施例的經過筆劃檢測分類器識別的圖像的示意圖;
圖6是根據(jù)本發(fā)明實施例的經過筆劃檢測分類器處理的圖像的示意圖;
圖7是根據(jù)本發(fā)明實施例的經過組合之后的圖像的示意圖;
圖8是根據(jù)本發(fā)明實施例的從字符圖像塊提取梯度直方圖特征的流程圖;以及
圖9是根據(jù)本發(fā)明實施例的識別集裝箱箱號的裝置的示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
首先,在對本發(fā)明實施例進行描述的過程中出現(xiàn)的部分名詞或術語適用于如下解釋:
集裝箱箱號:集裝箱箱號作為唯一標識集裝箱的ID(IDentity)符號,集裝箱箱號采用國際標準ISO6346(1995)標準定義,由4位英文字母(箱主號)和7位數(shù)字(箱體注冊碼)組成。
集裝箱ISO號:使用UN/ISO標準代碼,由于4位號碼組成,表示集裝箱的尺寸、箱型和功能。
HOG:英文全稱是Histogram of Oriented Gradient,中文名稱是方向梯度直方圖,是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子。它通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構成特征。
LBP:英文全稱是Local Binary Pattern,中文名稱是局部二值模式,是一種用來描述圖像局部紋理特征的算子,它具有旋轉不變性和灰度不變性等顯著的優(yōu)點,用于紋理特征提取,而且,提取的特征是圖像的局部的紋理特征。
Adaboost:是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。
線性分類器:在機器學習領域,分類的目標是指將具有相似特征的對象聚集。而一個線性分類器則透過特征的線性組合來做出分類決定,以達到此種目的。對象的特征通常被描述為特征值,而在向量中則描述為特征向量。
本發(fā)明實施例提供了一種識別集裝箱箱號的方法。圖1是根據(jù)本發(fā)明實施例的識別集裝箱箱號的方法的流程圖。如圖1所示,該方法包括步驟如下:
步驟S102,采集集裝箱的箱面的待識別圖像的第一灰度圖。
步驟S104,基于預設筆劃庫檢測第一灰度圖中的筆劃區(qū)域,并合并檢測到的筆劃區(qū)域得到字符區(qū)域,其中,預設筆劃庫包括集裝箱箱號的筆劃樣本,每個筆劃樣本中包含部分或全部筆劃。
步驟S106,基于字符區(qū)域得到各個字符的字符圖像塊。
步驟S108,對字符圖像塊進行識別,得到各個字符的識別結果,組合識別結果得到待識別圖像的集裝箱箱號。
采用本發(fā)明,通過使用預設筆劃庫檢測采集到的集裝箱的箱面的待識別圖像中的筆劃區(qū)域,并將獲取到筆劃區(qū)域合并得到字符區(qū)域,然后對基于字符區(qū)域獲取的各個字符的字符圖像塊進行字符識別,得到各個字符的識別結果,并將識別結果進行組合得到集裝箱箱號。采用本發(fā)明,利用預設筆劃庫和梯度直方圖特征來檢測集裝箱箱號,解決了現(xiàn)有技術中對集裝箱箱號的識別率低的問題,達到了對集裝箱箱號的快速且準確識別的效果。
下面結合如圖2詳細介紹上述實施例,如圖2所示,該方法可以通過如下步驟實現(xiàn):
步驟S202,采集集裝箱的箱面的待識別圖像的第一灰度圖。
步驟S204,基于預設筆劃庫檢測第一灰度圖中的筆劃區(qū)域,并合并檢測到的筆劃區(qū)域得到字符區(qū)域。
其中,預設筆劃庫包括對預先得到的集裝箱箱號進行劃分得到的筆劃樣本,每個筆劃樣本中包含部分或全部筆劃。
步驟S206,基于字符區(qū)域的尺寸和排列順序組合字符區(qū)域得到字符串塊。
步驟S208,對字符串塊進行圖像分割得到單個字符的字符圖像塊。
步驟S210,從各個字符圖像塊中提取各個字符的梯度直方圖特征。
步驟S212,采用字符識別分類器對各個字符的梯度直方圖特征進行字符識別,得到各個字符的識別結果。
其中,字符識別分類器為預先訓練的線性分類器。
步驟S214,組合識別結果,得到待識別圖像的集裝箱箱號。
通過使用預設筆劃庫檢測采集到的集裝箱的箱面的待識別圖像中的筆劃區(qū)域,并將獲取到筆劃區(qū)域合并得到字符區(qū)域,然后根據(jù)字符區(qū)域的尺寸和排列順序將其組合為字符串塊,并對字符串塊進行圖像分割得到單個字符的字符圖像塊,使用單個字符圖像塊的梯度直方圖特征進行字符識別,得到各個字符的識別結果,并將識別結果進行組合得到集裝箱箱號。采用本發(fā)明,利用預設筆劃庫和梯度直方圖特征來檢測集裝箱箱號,解決了現(xiàn)有技術中對集裝箱箱號的識別率低的問題,達到了對集裝箱箱號的快速且準確識別的效果。
具體地,通過使用預設筆劃庫檢測圖像中的筆劃信息,得到與筆劃相關的圖像目標(筆劃區(qū)域),然后對筆劃區(qū)域進行組合,形成字符或字符串(字符區(qū)域),再對可能為字符的區(qū)域進行組合,即按照集裝箱箱號的排列規(guī)則組成箱號字符串(字符串塊),得到箱號字符串后,對字符串塊進行圖像分割,得到單個字符圖像塊,最后在分割結果的灰度圖上提取字符圖像的HOG特征(梯度直方圖特征),采用預先進行過字符識別分類器訓練的線性分類器實現(xiàn)字符識別,最后組合識別到的字符結果,得到集裝箱箱號。
通過上述實施例,利用基于筆劃檢測的集裝箱箱號檢測方法對集裝箱箱號在待識別圖像中的位置的進行定位,然后采用基于灰度圖像的特征提取方法提取HOG特征(梯度直方圖特征),并利用線性分類器實現(xiàn)集裝箱箱號字符識別,達到了對集裝箱箱號的高效識別的效果。
在上述實施例中,基于預設筆劃庫檢測第一灰度圖中的筆劃區(qū)域可以包括:基于預設筆劃庫中的筆劃樣本訓練筆劃檢測分類器;使用筆劃檢測分類器按預設尺寸的窗口以預設步長滑動檢測待識別圖像的第一灰度圖,其中,若當前檢測的窗口中第一灰度圖的圖像特征的分類結果為筆劃,則標記當前檢測的窗口為筆劃區(qū)域;若當前檢測的窗口中第一灰度圖的圖像特征的分類結果不為筆劃,則標記當前檢測的窗口為非筆劃區(qū)域,得到第二灰度圖;其中,預設步長小于預設尺寸。
具體地,基于預設筆劃庫檢測待識別圖像中的筆劃區(qū)域可以通過如下步驟實現(xiàn):基于預設筆劃庫中的筆劃樣本訓練筆劃檢測分類器;通過待識別圖像的第一灰度圖計算待識別圖像的局部二值化LBP特征;使用筆劃檢測分類器采用滑動窗口檢測方法對LBP特征進行筆劃特征類別判斷,以檢測出筆劃區(qū)域,若檢測結果為非筆劃區(qū)域,則標記當前檢測的窗口為非筆劃區(qū)域,從而得到包含檢測標記的第二灰度圖。
可選地,在本實施例中,采用分類器技術來實現(xiàn)筆劃檢測,具體采用的是筆劃檢測分類器,在使用筆劃檢測分類器前需要對其進行訓練以提高其識別率,訓練樣本越大其識別率越高,為了提高其識別率,需要整理一個容量較大的筆劃樣本庫,由于本發(fā)明的目的是檢測集裝箱字符(集裝箱箱號、集裝箱ISO號),因此在搜集正樣本時, 是將集裝箱上的字符樣本進行分塊劃分,并將劃分得到的筆劃區(qū)域作為正樣本。部分筆劃正樣本如圖3所示,每個樣本中都包含了一部分筆劃,負樣本則是采用不包含筆劃的圖像,正樣本和負樣本共同構成了本實施例的預設筆劃庫。筆劃檢測分類器的訓練方法是首先提取目標特征,然后選擇分類模型進行離線訓練,從而使其具有識別集裝箱上特定的圖案或者符號的功能。具體地,目標特征可以是LBP特征,分類模型可以是Adaboost分類器。
可選地,提取的目標特征也可以是HOG特征、Haar特征(哈爾特征)、EGL特征等其它描述目標紋理的特征,分類模型也可以采用SVM分類器(支持向量機,該向量機為類分類器)、隨機森林分類器等其它結構的分類模型。
在訓練完筆劃檢測分類器之后,即可利用筆劃檢測分類器來進行筆劃檢測。在本實施例中,采用滑動窗口檢測的方法,也即在待檢測圖像中,按多尺度的窗口以一定步長進行滑動,提取每個檢測窗口中的圖像特征,然后采用筆劃檢測分類器的分類模型對窗口進行判斷,如果判斷出該窗口內“筆劃”,則對該窗口進行標注,得到筆劃區(qū)域。在本實施例中,目標特征為LBP特征,為了節(jié)省計算時間,可以先求整個待檢測圖像的第一灰度圖,然后在積分圖上快速計算LBP特征,再用級聯(lián)Adaboost分類器對該特征進行類別判斷。在完成檢測待檢測圖像中所有尺度的位置遍歷滑動后,在圖像平面上會獲得一些被筆劃檢測分類器識別為正樣本的區(qū)域,即檢測出筆劃區(qū)域。
在上述實施例中,合并檢測到的筆劃區(qū)域得到字符區(qū)域可以包括:刪除第二灰度圖中的非筆劃區(qū)域,得到第三灰度圖;根據(jù)第三灰度圖中相鄰的筆劃區(qū)域之間的空間幾何位置判斷相鄰的筆劃區(qū)域是否屬于同一個字符;若相鄰的筆劃區(qū)域屬于同一個字符,則合并相鄰的筆劃區(qū)域,得到字符區(qū)域。
可選地,合并檢測到的筆劃區(qū)域得到字符區(qū)域可以包括:根據(jù)相鄰的筆劃區(qū)域之間的空間幾何位置判斷相鄰的筆劃區(qū)域是否屬于同一個字符;若相鄰的筆劃區(qū)域屬于同一個字符,則合并相鄰的筆劃區(qū)域,得到字符區(qū)域。
具體地,空間幾何位置包括空間重疊區(qū)域,其中,根據(jù)第三灰度圖中相鄰的筆劃區(qū)域之間的空間幾何位置判斷相鄰的筆劃區(qū)域是否屬于同一個字符可以包括:判斷相鄰的筆劃區(qū)域之間的空間重疊區(qū)域是否大于預設重疊閾值;若相鄰的筆劃區(qū)域之間的空間重疊區(qū)域大于預設重疊閾值,則判斷出相鄰的筆劃區(qū)域屬于同一個字符。
下面結合圖4至圖6詳述本發(fā)明的實施例。
圖4是待檢測圖像,通過筆劃檢測分類器識別到的正樣本(即上述實施例中的筆劃區(qū)域)可以以矩形框的形式體現(xiàn)出來,如圖5中的多個矩形框(圖中僅對其中的一個作了標注說明)。由于字符(英文字母和阿拉伯數(shù)字)都是由連續(xù)的筆劃構成的,因 此,在得到如圖5所示的檢測結果后,可以對檢出矩形框按上述的合并條件進行合并,在本發(fā)明中采用的合并條件是根據(jù)各個筆劃區(qū)域之間的空間幾何位置關系判斷兩個筆劃區(qū)域是否屬于同一個字符來進行合并,若兩個矩形框之間的空間重疊區(qū)域大于預設重疊閾值,則判斷出這兩個矩形框屬于同一個字符,則合并這兩個矩形框,得到如圖6所示的字符區(qū)域(圖6中示意性的標注了字符區(qū)域)。
通過上述實施例,可以快速識別筆劃區(qū)域,并將識別出來的筆劃區(qū)域進行合并得到字符區(qū)域。
需要進一步說明的是,集裝箱箱號和集裝箱ISO號都是由英文字母和阿拉伯數(shù)字組成的,且集裝箱箱號和集裝箱ISO號都是按照一定規(guī)則排列的,同一字符的不同筆劃區(qū)域之間會有一定的重疊,所以可以通過判斷兩個筆劃區(qū)域的重疊的量來判斷兩個筆劃區(qū)域是否屬于同一字符。
通過上述實施例,提供了一種簡單實用的識別不同的筆劃區(qū)域是否屬于同一字符的方法,該方法可適應多種不同成像環(huán)境下的集裝箱箱號定位,可以快速確定集裝箱箱號和集裝箱ISO號的位置。
在上述實施例中,基于字符區(qū)域得到各個字符的字符圖像塊可以包括:基于字符區(qū)域的尺寸和排列順序組合字符區(qū)域得到字符串塊;對字符串塊進行圖像分割得到各個字符的字符圖像塊。
具體地,使用矩形框標注字符區(qū)域,其中,矩形框外接字符區(qū)域,字符區(qū)域的尺寸包括矩形框的高度;第一矩形框與第二矩形框為水平排列,若第一矩形框與第二矩形框為水平排列的高度差值小于預設高度差、水平距離小于預設距離值且垂直坐標差小于預設坐標差,則組合第一矩形框和第二矩形框得到字符串塊;第三矩形框與第四矩形框為垂直排列,若第三矩形框與第四矩形框的高度差值小于預設高度差、垂直距離小于預設距離值且水平坐標差小于預設坐標差,則組合第三矩形框和第四矩形框得到字符串塊,其中,矩形框包括第一矩形框、第二矩形框、第三矩形框以及第四矩形框。
集裝箱箱號字符串在圖像中有兩種排列形態(tài),一種是水平方向排列,一種是垂直方向排列,且集裝箱箱號字符串中各個字符的寬度、高度都有一定的相似性,所以可以通過上述特征判斷不同的字符區(qū)域是否屬于同一個字符串塊。
在得到筆劃聚類的組合結果(字符區(qū)域)后,每個字符區(qū)域都使用矩形框標注出來,再根據(jù)圖像平面內各個矩形框的排列、尺寸大小,分別將水平方向和垂直方向上排列的矩形框組合起來,形成字符串塊。具體地,若兩個矩形框在水平方向上高度相當、水平距離相近,且垂直坐標位置相當?shù)木匦慰?,則會被組合成一個字符串(字符 串塊);若兩個矩形框在垂直方向上高度相當,垂直距離,且水平坐標相當?shù)木匦慰颍瑒t會被組合成一個字符串(字符串塊)。圖7示意性地標注出了圖6中字符區(qū)域組合得到的字符串塊。
對字符串塊進行圖像分割得到各個字符的字符圖像塊可以包括:計算第二灰度圖的前景點的第一灰度分布和背景點的第二灰度分布;獲取第一灰度分布的第一峰值與第二灰度分布的第二峰值;基于第一峰值和第二峰值確定二值化閾值;使用二值化閾值對第二灰度圖進行二值化處理,得到二值化圖像;對二值化圖像進行字符分割,得到各個字符的字符圖像塊。
具體地,對字符串塊進行圖像分割得到各個字符的字符圖像塊可以通過如下步驟來實現(xiàn):計算各個字符串塊的筆劃區(qū)域的前景點在第二灰度圖中的第一灰度分布,并計算各個字符串塊的筆劃區(qū)域的背景點在第二灰度圖中的第二灰度分布;獲取第一灰度分布的第一峰值與第二灰度分布的第二峰值;基于第一峰值和第二峰值確定二值化閾值;使用二值化閾值對第二灰度圖進行二值化處理,得到二值化圖像;對二值化圖像進行字符分割,得到各個字符的字符圖像塊。
具體地,從字符串塊中把每個字符切割出來,得到獨立的單字符塊。大多數(shù)字符都能分開,但是在實際應用時,由于運動模糊或曝光時間過長等原因,會造成兩個距離較近的字符粘連在一起,為了避免這種情況帶來的字符分割失敗,可以根據(jù)第二灰度圖得到字符分割的二值化閾值,然后根據(jù)二值化閾值來實現(xiàn)對單個字符的分割。如在一個字符串塊中,以筆劃檢測結果作為MASK(掩膜,也即筆劃檢測結果),將筆劃區(qū)域作為前景點,其余的作為背景點,分別統(tǒng)計前景點和背景點在字符串塊第二灰度圖中對應點的灰度分布,根據(jù)前景點和背景點的分布選擇最佳的二值化閾值,然后根據(jù)二值化閾值對第二灰度圖進行二值化處理,把字符串塊中每個不同的字符分割開,從而得到單個字符的字符圖像塊。
可選地,基于第一峰值和第二峰值確定二值化閾值可以為:將第一峰值和第二峰值的平均值作為二值化閾值。
進一步地,從各個字符圖像塊中提取各個字符的梯度直方圖特征可以通過如圖8所示的實施例實現(xiàn),如圖8所示,可以包括如下步驟:
步驟S802,把識別區(qū)域的大小規(guī)則化成W*H大小。
其中,W為識別區(qū)域的寬度,H為識別區(qū)域的高度,將各個識別區(qū)域的大小設置為W*H大小,對于同一待檢測圖像的不同識別區(qū)域的W和H的值可以相同,其中的識別區(qū)域可以為各個字符圖像塊。
步驟S804,把規(guī)則化尺寸后的識別區(qū)域分類為m*n個c*c的單元小格。
其中,m、n以及c為自然數(shù),c小于m,c小于n。
步驟S806,在每個單元小格內求梯度直方圖,將系統(tǒng)直方圖量化為b個方向。
在圖像平面內,系統(tǒng)直方圖的梯度方向的范圍是[0,360)(即從0度至360度,但不包含360度),把360個方向(即上述梯度方向的范圍)平均分為b等份,從而得到b個方向。
步驟S808,梯度直方圖的歸一化處理。
將相鄰的2*2個單元小格聯(lián)合成一個塊,然后進行歸一化,放到最終的特征向量中,由于相鄰塊之間重疊一個單元小格,所以總共可以得到(m-1)*(n-1)個塊。
如,規(guī)則化尺寸后的識別區(qū)域的尺寸為3*3,則可以設置m和n為3,c*c=2*2,則可以將規(guī)則化尺寸后的識別區(qū)域分為4個單元小格。
遍歷圖像,重復上述步驟S802至步驟S808,把每個字符圖像塊的特征歸一化聯(lián)合直方圖依次排列成一個向量,最終可以得到(m-1)*(n-1)*c*c*b維的HOG特征(梯度直方圖特征)向量。
需要進一步說明的是,采用梯度直方圖可以很好的描述圖像的紋理信息,而分塊梯度直方圖又能對目標的不同結構進行描述,因此在本發(fā)明中選擇HOG特征(梯度直方圖特征)作為字符特征進行提取。
在完成梯度直方圖特征的提取之后,采用字符識別分類器對各個字符的梯度直方圖特征進行字符識別,即可得到各個字符的識別結果。
這里需要補充說明的是,字符識別分類器為線性分類器。在本實施例中的每個字符樣本都可以用一個(m-1)*(n-1)*c*c*b維的HOG特征來進行描述,所以對字符識別分類器進行訓練時可以直接用該特征對目標進行分類模型訓練,在特征維數(shù)較高且特征對樣本的描述能力足夠強的時候,為了節(jié)約訓練時間,直接采用簡單的線性分類器來實現(xiàn)目標分類可以提高效率。
可以用下列公式來描述線性分類器的輸入與輸出之間的關系,如果輸入的特征向量是實數(shù)向量則輸出的函數(shù)為:其中,是由權重元素組成的權重向量,表示由特征元素組成的特征向量,權重向量和特征向量均由多個元素組成,j表示特征序號,xj表示特征序號為j的特征元素,wj表示特征序號為j的權重元素,而是一個函數(shù),該函數(shù)描述了一個可將不同類別的樣本在高維特征空間中分開的超平面,權重向量是從帶標簽的訓練樣本集合中所學到的。在多類 分類問題中,得到的是一維向量,該向量中最大元素對應的元素序號即為該類的識別結果。
需要進一步說明的是,在本實施例中訓練了三個字符分類線性分類器,分別為:10類數(shù)字分類器、26類字母分類器、36類字符分類器。采用26類字母分類器可以實現(xiàn)對4位箱主號的識別,10類數(shù)字分類器可以實現(xiàn)對6位箱體注冊碼及校驗碼的識別,36類字符分類器可以實現(xiàn)對4位箱體ISO號的識別。
通過本發(fā)明的上述實施例,采用最快速的線性分類器作為集裝箱箱號字符分類方法,達到了對箱號字符的實時識別的效果。
可選地,在組合識別結果得到待識別圖像的集裝箱箱號之后,識別集裝箱箱號的方法還可以包括:基于數(shù)字分類器識別的集裝箱箱號中的第一校驗碼;按照預設編碼信息計算集裝箱箱號的第二校驗碼;若第一校驗碼與第二校驗碼一致,則確定識別出的集裝箱箱號正確;若第一校驗碼與第二校驗碼不一致,則確定識別出的集裝箱箱號有誤,并生成箱號核對信息。
本發(fā)明的上述實施例可以通過如下步驟實現(xiàn):比較計算出的集裝箱箱號的第二校驗碼和識別出的集裝箱箱號的第一校驗碼,可以得到二者是否一致的校驗結果;若第一校驗碼不同于第二校驗碼,則說明集裝箱箱號有誤,則生成箱號核對信息。
具體地,根據(jù)箱號識別結果,對箱號進行自動校驗,根據(jù)校驗結果,在箱號識別錯誤的情況下生成箱號核對信息,提示用戶對誤識的箱號進行人工核對,可有效地避免誤識別帶來的損失。
通過上述實施例,可以提示用戶對誤識的箱號進行處理,為用戶減少不必要的損失。
在上述實施例中,采集集裝箱的箱面的待識別圖像的第一灰度圖可以包括:采集集裝箱的至少兩個箱面的待識別圖像的第一灰度圖;在組合識別結果得到待識別圖像的集裝箱箱號之后,識別集裝箱箱號的方法還可以包括:讀取從集裝箱的至少兩個箱面的待識別圖像的第一灰度圖中識別出的集裝箱箱號及其識別置信度;將最大的識別置信度對應的集裝箱箱號作為集裝箱的箱號。
具體地,在集裝箱上,共有前后、上下、左右共6個面,一般在集裝箱的6個面上都有集裝箱箱號。在本發(fā)明中,對6個面采集的圖像都進行一次箱號識別,每個面都會給出一個箱號識別結果及對應的識別置信度。最后綜合各個面的識別結果及識別置信度,給出一個置信度最高的結果,作為本方案最終的識別結果。
可選地,基于數(shù)字分類器識別的集裝箱箱號中的第一校驗碼,按照預設編碼信息 計算集裝箱箱號的第二校驗碼,將第一校驗碼和第二校驗碼進行比較得到一個校驗結果,校驗結果中包括集裝箱箱號的識別置信度,得到校驗結果之后,讀取從集裝箱的各個箱面的待識別圖像中識別出的集裝箱箱號及其識別置信度,將最大的識別置信度對應的集裝箱箱號作為集裝箱的箱號。
通過本發(fā)明的上述實施例,綜合多個面識別結果的方法能夠有效地提升識別準確率,即只需要6個面中的一個面能識別正確,則能獲得正確的識別結果。
本發(fā)明實施例還提供了一種識別集裝箱箱號的裝置。需要說明的是,本發(fā)明實施例的識別集裝箱箱號的裝置可以用于執(zhí)行本發(fā)明實施例所提供的識別集裝箱箱號的方法,本發(fā)明實施例的識別集裝箱箱號的方法也可以通過本發(fā)明實施例所提供的識別集裝箱箱號的裝置來執(zhí)行。
圖9是根據(jù)本發(fā)明實施例的識別集裝箱箱號的裝置的示意圖。如圖9所示,該裝置包括:采集模塊10、第一檢測模塊30、第一處理模塊50以及第一識別模塊70。
其中,采集模塊,用于采集集裝箱的箱面的待識別圖像的第一灰度圖;第一檢測模塊,用于基于預設筆劃庫檢測第一灰度圖中的筆劃區(qū)域,并合并檢測到的筆劃區(qū)域得到字符區(qū)域,其中,預設筆劃庫包括集裝箱箱號的筆劃樣本,每個筆劃樣本中包含部分或全部筆劃;第一處理模塊,用于基于字符區(qū)域得到各個字符的字符圖像塊;第一識別模塊,用于對字符圖像塊進行識別,得到各個字符的識別結果,組合識別結果得到待識別圖像的集裝箱箱號。
采用本發(fā)明,通過使用預設筆劃庫檢測采集到的集裝箱的箱面的待識別圖像中的筆劃區(qū)域,并將獲取到筆劃區(qū)域合并得到字符區(qū)域,然后對基于字符區(qū)域獲取的各個字符的字符圖像塊進行字符識別,得到各個字符的識別結果,并將識別結果進行組合得到集裝箱箱號。采用本發(fā)明,利用預設筆劃庫和梯度直方圖特征來檢測集裝箱箱號,解決了現(xiàn)有技術中對集裝箱箱號的識別率低的問題,達到了對集裝箱箱號的快速且準確識別的效果。
通過上述實施例,利用基于筆劃檢測的集裝箱箱號檢測方法對集裝箱箱號在待識別圖像中的位置的進行定位,然后采用基于灰度圖像的特征提取方法提取HOG特征(梯度直方圖特征),并利用線性分類器實現(xiàn)集裝箱箱號字符識別,達到了對集裝箱箱號的高效識別的效果。
在本發(fā)明的上述實施例中,第一檢測模塊可以包括:訓練模塊,用于基于預設筆劃庫中的筆劃樣本訓練筆劃檢測分類器;第二檢測模塊,用于使用筆劃檢測分類器按預設尺寸的窗口以預設步長滑動檢測待識別圖像的第一灰度圖,其中,若當前檢測的窗口中第一灰度圖的圖像特征的分類結果為筆劃,則標記當前檢測的窗口為筆劃區(qū)域; 若當前檢測的窗口中第一灰度圖的圖像特征的分類結果不為筆劃,則標記當前檢測的窗口為非筆劃區(qū)域,得到第二灰度圖,其中,預設步長小于預設尺寸。
可選地,在本實施例中,采用分類器技術來實現(xiàn)筆劃檢測,具體采用的是筆劃檢測分類器,在使用筆劃檢測分類器前需要對其進行訓練以提高其識別率,訓練樣本越大其識別率越高,為了提高其識別率,需要整理一個容量較大的筆劃樣本庫,由于本發(fā)明的目的是檢測集裝箱字符(集裝箱箱號、集裝箱ISO號),因此在搜集正樣本時,是將集裝箱上的字符樣本進行分塊劃分,并將劃分得到的筆劃區(qū)域作為正樣本。部分筆劃正樣本如圖3所示,每個樣本中都包含了一部分筆劃,負樣本則是采用不包含筆劃的圖像,正樣本和負樣本共同構成了本實施例的預設筆劃庫。筆劃檢測分類器的訓練方法是首先提取目標特征,然后選擇分類模型進行離線訓練,從而使其具有識別集裝箱上特定的圖案或者符號的功能。具體地,目標特征可以是LBP特征,分類模型可以是Adaboost分類器。
根據(jù)本發(fā)明的上述實施例,第一檢測模塊還可以包括:刪除模塊,用于刪除第二灰度圖中的非筆劃區(qū)域,得到第三灰度圖;第一判斷模塊,用于根據(jù)第三灰度圖中相鄰的筆劃區(qū)域之間的空間幾何位置判斷相鄰的筆劃區(qū)域是否屬于同一個字符;第一確定模塊,用于若相鄰的筆劃區(qū)域屬于同一個字符,則合并相鄰的筆劃區(qū)域,得到字符區(qū)域。
具體地,空間幾何位置包括空間重疊區(qū)域,其中,第一判斷模塊可以包括:第二判斷模塊,用于判斷相鄰的筆劃區(qū)域之間的空間重疊區(qū)域是否大于預設重疊閾值;第二確定模塊,用于若相鄰的筆劃區(qū)域之間的空間重疊區(qū)域大于預設重疊閾值,則判斷出相鄰的筆劃區(qū)域屬于同一個字符。
通過上述實施例,可以快速識別筆劃區(qū)域,并將識別出來的筆劃區(qū)域進行合并得到字符區(qū)域。
需要進一步說明的是,集裝箱箱號和集裝箱ISO號都是由英文字母和阿拉伯數(shù)字組成的,且集裝箱箱號和集裝箱ISO號都是按照一定規(guī)則排列的,同一字符的不同筆劃區(qū)域之間會有一定的重疊,所以可以通過判斷兩個筆劃區(qū)域的重疊的量來判斷兩個筆劃區(qū)域是否屬于同一字符。
通過上述實施例,提供了一種簡單實用的識別不同的筆劃區(qū)域是否屬于同一字符的方法,該方法可適應多種不同成像環(huán)境下的集裝箱箱號定位,可以快速確定集裝箱箱號和集裝箱ISO號的位置。
根據(jù)本發(fā)明上述實施例,第一處理模塊可以包括:組合模塊,用于基于字符區(qū)域的尺寸和排列順序組合字符區(qū)域得到字符串塊;第一分割模塊,用于對字符串塊進行 圖像分割得到各個字符的字符圖像塊。
集裝箱箱號字符串在圖像中有兩種排列形態(tài),一種是水平方向排列,一種是垂直方向排列,且集裝箱箱號字符串中各個字符的寬度、高度都有一定的相似性,所以可以通過上述特征判斷不同的字符區(qū)域是否屬于同一個字符串塊。
可選地,第一分割模塊可以包括:第一計算模塊,用于計算第二灰度圖的前景點的第一灰度分布和背景點的第二灰度分布;獲取模塊,用于獲取第一灰度分布的第一峰值與第二灰度分布的第二峰值;第三確定模塊,用于基于第一峰值和第二峰值確定二值化閾值;第二處理模塊,用于使用二值化閾值對第二灰度圖進行二值化處理,得到二值化圖像;第二分割模塊,用于對二值化圖像進行字符分割,得到各個字符的字符圖像塊。
通過上述實施例,對二值化圖像進行字符分割,可以快速確定各個字符對應的字符圖像塊。
可選地,識別集裝箱箱號的裝置還可以包括:第二識別模塊,用于在組合識別結果得到待識別圖像的集裝箱箱號之后,基于數(shù)字分類器識別的集裝箱箱號中的第一校驗碼;第二計算模塊,用于按照預設編碼信息計算集裝箱箱號的第二校驗碼;第三識別模塊,用于若第一校驗碼與第二校驗碼一致,則確定識別出的集裝箱箱號正確;第四識別模塊,用于若第一校驗碼與第二校驗碼不一致,則確定識別出的集裝箱箱號有誤,并生成箱號核對信息。
通過本發(fā)明的上述實施例,采用線性分類器作為集裝箱箱號字符分類方法,達到了對箱號字符的實時識別的效果,同時,通過比較第一校驗碼和第二校驗碼,可以提高識別的準確度。
可選地,采集模塊可以包括:采集子模塊,用于采集集裝箱的至少兩個箱面的待識別圖像的第一灰度圖;別集裝箱箱號的裝置還可以包括:讀取模塊,用于在組合識別結果得到待識別圖像的集裝箱箱號之后,讀取從集裝箱的至少兩個箱面的待識別圖像的第一灰度圖中識別出的集裝箱箱號及其識別置信度;第四確定模塊,用于將最大的識別置信度對應的集裝箱箱號作為集裝箱的箱號。
具體地,在集裝箱上,共有前后、上下、左右共6個面,一般在集裝箱的6個面上都有箱號。在本發(fā)明中,對6個面采集的圖像都進行一次箱號識別,每個面都會給出一個箱號識別結果及對應的識別置信度。最后綜合各個面的識別結果及識別置信度,給出一個置信度最高的結果,作為本方案最終的識別結果。
通過本發(fā)明的上述實施例,綜合多個面識別結果的方法能夠有效地提升識別準確率,同時,在6個面中,只要有一個面能識別正確,則能獲得正確的識別結果。
本實施例中所提供的各個模塊與方法實施例對應步驟所提供的使用方法相同、應用場景也可以相同。當然,需要注意的是,上述模塊涉及的方案可以不限于上述實施例中的內容和場景,且上述模塊可以運行在計算機終端或移動終端,可以通過軟件或硬件實現(xiàn)。
從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術效果:
采用本發(fā)明,通過使用預設筆劃庫檢測采集到的集裝箱的箱面的待識別圖像中的筆劃區(qū)域,并將獲取到筆劃區(qū)域合并得到字符區(qū)域,然后對基于字符區(qū)域獲取的各個字符的字符圖像塊進行字符識別,得到各個字符的識別結果,并將識別結果進行組合得到集裝箱箱號。采用本發(fā)明,利用預設筆劃庫和梯度直方圖特征來檢測集裝箱箱號,解決了現(xiàn)有技術中對集裝箱箱號的識別率低的問題,達到了對集裝箱箱號的快速且準確識別的效果。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成 的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。