李宗耀 潘海斌 戰(zhàn)婷婷
(1.上海遠(yuǎn)行物流服務(wù)有限公司 上海市 200072 2.德銀天下投資控股有限公司 上海市 200072)
隨著商用車市場規(guī)模的不斷擴大,為應(yīng)對同行業(yè)廠商、經(jīng)銷商各個維度的營銷競爭,以歷史產(chǎn)銷數(shù)據(jù)為依據(jù),通過大數(shù)據(jù)分析,提前開展車輛排產(chǎn),完成車輛下線,在營銷中以實地展車、實時交車等作為搶占市場的有力手段。庫存作為商用車銷售管理信息體系中成本管控的重要目標(biāo),實時掌握車輛庫存信息,是開展采購和排產(chǎn)計劃的重要數(shù)據(jù)支持,也是企業(yè)整合內(nèi)部資源開展市場拓展重要的經(jīng)濟支撐之一。數(shù)字圖像識別技術(shù)由于其在圖像的文字識別、數(shù)字提取中的準(zhǔn)確性和可靠性,在信息化建設(shè)中,引入數(shù)字圖像識別技術(shù),在移動端配置線上盤點模塊,針對商用車車體唯一識別碼自動完成車輛信息識別和庫存盤點校驗,生成盤點庫存報表。通過互聯(lián)網(wǎng)信息化技術(shù),解決商用車分散存放的跨區(qū)域盤點難題和人員操作誤差,實現(xiàn)商用車庫存盤點的及時性、準(zhǔn)確性。
傳統(tǒng)車輛盤點工作,基于盤點人員的現(xiàn)場查勘、比對、登記,最終形成盤點材料,上報總部車輛管理人員,再經(jīng)審核、校驗信息無誤后,形成盤點報告和庫存報表,耗時耗力,商用車庫存數(shù)據(jù)的準(zhǔn)確性和實時性,難以保障?;跀?shù)字圖像識別技術(shù)的車輛出廠編碼自動識別,實現(xiàn)車輛的庫存盤點功能,此功能以商用車銷售管理信息系統(tǒng)為基礎(chǔ),采取B/S(Browser/Server)即瀏覽器-服務(wù)器的Web 技術(shù)架構(gòu),在手機APP 中實現(xiàn)實時拍照、GPS 定位功能,有效避免傳統(tǒng)盤點流程中漏盤、錯盤等操作。在上傳數(shù)據(jù)中,定位信息作為圖像附屬信息,完成拍照即上傳至服務(wù)后臺,完成上傳圖像、定位數(shù)據(jù)存儲,同時流轉(zhuǎn)至數(shù)字圖像識別模塊,識別結(jié)果與盤點車輛信息進行實時對比,并將盤點結(jié)果返回移動端盤顯示,系統(tǒng)架構(gòu)圖如圖1所示。
本文WEB 服務(wù)端應(yīng)用采用SpringBoot 框架技術(shù),以BS 架構(gòu)實現(xiàn)移動端(iOS, Android)的業(yè)務(wù)操作和車輛信息校驗。SpringBoot 是由Pivotal 團隊提供的全新框架,基于約定優(yōu)于配置的思想,采用特定的默認(rèn)配置,解放SSM、SSH 框架中繁雜的配置,大大提高開發(fā)效率,縮短項目周期。同時以MVC 的分層設(shè)計理念,按照功能形成統(tǒng)一的數(shù)據(jù)API 接口控制層、業(yè)務(wù)邏輯處理層、數(shù)據(jù)存儲層,全局配置算法模塊和返回數(shù)據(jù)封裝。持久層采用MyBatis框架,是一款一流的支持自定義SQL、存儲過程和高級映射的持久化框架,能夠使用簡單的XML 格式或者注解來配置映射基本數(shù)據(jù)元素,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的Java 對象)映射成數(shù)據(jù)庫中的記錄。
圖1:庫存車輛自動盤點結(jié)構(gòu)圖
圖2:灰度化效果圖
圖3:直方圖均衡化前后的圖像效果比較
Tesseract 是一個開源的OCR 引擎,目前由 Google 贊助,最新的穩(wěn)定版本是4.1.1,已于2019年12月26日發(fā)布,它支持60 種以上的語言,具有很高的精確度和靈活性,且提供了一個字符庫訓(xùn)練方法,可以讓用戶自定義的去訓(xùn)練所需語言或應(yīng)用場景的字符,能夠大幅提高識別正確率。Tess4J 則是Tesseract 在Java PC 上的應(yīng)用,使用Tess4J 時只需要下載相關(guān)Jar 包,導(dǎo)入項目,即可調(diào)用相關(guān)接口,實現(xiàn)文字識別功能,可移植性比較好。
針對車輛出廠編碼的字符識別,即采用數(shù)字圖像識別的技術(shù),將移動端采集到的彩色圖片,進行圖像灰度化處理-圖像增強-區(qū)域分割等圖像預(yù)處理,再調(diào)用Tesseract 文本識別接口,進行圖像連通域分析、區(qū)域檢測、字符分裂、文本識別等一系列的圖像識別,完成車輛編碼字符識別的過程。
由于手機采集到的是真彩圖像,即RGB 圖像,為減少在圖像處理過程中的計算量,一般圖像處理之前,首先要將RGB 圖像轉(zhuǎn)換為灰度圖像,本文采用加權(quán)平均法,根據(jù)RGB 和YUV 顏色空間的變化關(guān)系,建立亮度Y 與R、G、B 三個顏色分量的對應(yīng)表達(dá)式:
表1
圖4:銳化后圖像
圖5:不同閾值下的效果圖
用此函數(shù)對出廠編碼圖像進行灰度化處理,得到出廠編碼的灰度圖像如圖2所示。
圖像拍攝過程中,由于拍攝位置、角度、天氣陰晴等外在因素,導(dǎo)致拍攝的圖像的灰度級不均勻,字符編碼對比度不明顯、圖像對焦不準(zhǔn)、景物相對移動和采樣不良等,因此圖像識別接口接收到的圖片除了噪聲因素外,圖像一般都要變得模糊,圖像增強能夠?qū)⒃瓉聿磺逦膱D像變得清晰,或者通過抑制圖像的某些特征,增強另外一些特征,使處理后的圖像質(zhì)量得到改善,增強視覺效果。
2.2.1 直方圖均衡化
由于光線等因素導(dǎo)致圖像出現(xiàn)灰度級不均勻和對比度不明顯的情況,直接影響車輛編碼的識別,因此需要對車輛編碼灰度圖像進行對比度增強的處理。直方圖均衡化是一種使輸出圖像直方圖近似服從均勻分布的變換算法。直方圖均衡化通常是對圖像灰度值進行歸一化的一個非常好的方法,并且可以增強圖像的對比度。對商用車車輛編碼灰度化后的字符圖像圖2(b)進行處理,均衡化后的效果對比如圖3所示,可以看出,經(jīng)過直方圖均衡化后,圖像的細(xì)節(jié)成分更清晰,圖像的視覺效果得到了明顯改善。
2.2.2 采用拉氏算子進行圖像銳化處理
圖像銳化處理通過增強圖像中紋理,邊緣部分,以補償圖像的輪廓,使圖像較清晰。此外,在人或機器分析圖像時,常常需要突出目標(biāo)邊界和灰度細(xì)節(jié)。本文采用空間域圖像銳化法中的拉氏算子來實現(xiàn)圖像的銳化處理,進一步提升圖像對比度和突出車輛編碼字符邊界。
拉氏算子的表達(dá)式為:
對于離散函數(shù),拉氏算子定義為:
拉氏算子還可以用下面的模板來表示:
利用拉氏算子對上一步均衡化后的圖像圖3(b)進行銳化處理,設(shè)置不同的濾波孔徑,得到銳化后結(jié)果如圖4所示。
可以看出,拉氏算子運算后,圖像中文字部分得到了銳化,特別是字母與數(shù)字的形態(tài)特征效果明顯增強。
在數(shù)字圖像處理領(lǐng)域中,被處理的圖像都會有一個目標(biāo)圖像,這些目標(biāo)圖像存在于原圖像中,是原圖像的一部分,在車輛編碼目標(biāo)識別中,目標(biāo)圖像就是車輛編碼,車輛編碼識別技術(shù)的使用目的就是把車輛編碼從拍攝的出廠編碼圖像中提取出來,與噪聲、背景等分割出來,清晰地展現(xiàn)在圖片中。
閾值分割法是一種簡單有效的圖像分割技術(shù),用一個或幾個閾值將圖像的灰度級分為幾個部分,將屬于同一部分的像素視為相同的物體。閾值是指在圖像分割時,作為區(qū)分物體與背景像素的門限,大于或等于閾值的像素屬于物體,而其它像素則屬于背景。
設(shè)原始圖像為f(x,y),選取閾值T,將圖像分割為兩部分,分割后的圖像為:
對于目標(biāo)圖像,分別選取閾值為105 和145 時得到的分割后的圖像如圖5所示,從圖5中可觀察到,由于選取了不同閾值,分割后的圖像中字母與數(shù)字特征清晰度也完全不同。故選取合適的閾值便能把大部分目標(biāo)完整地從背景中分割出來,從而識別出字符特征。
本文使用Tesseract-OCR 作為圖像文字識別引擎,識別流程如下:
(1)連通區(qū)域分析;
(2)字符區(qū)域檢測(輪廓外形),以及子輪廓;
(3)文本行識別及字符單元分割;
(4)單詞分析及聚類識別;
(5)未識別/模糊字符再識別。
在SpringBoot 架構(gòu)中,引入tess4j 依賴,即可在應(yīng)用接口中調(diào)用tesseract 方法,完成圖像識別和返回結(jié)果;tesseract 對應(yīng)參數(shù)如下:
輸入:圖像文件/文本文件
輸出:文本文件,一般為輸入文件+.txt 的識別結(jié)果文件
參數(shù)說明如表1所示。
本系統(tǒng)基于JAVA 的Web 服務(wù)架構(gòu),結(jié)合移動端(iOS,Android)數(shù)據(jù)采集系統(tǒng),內(nèi)置于整車銷售系統(tǒng)移動平臺車輛庫存管理人員在平臺用戶管理中心完成賬號、身份、手機號碼等信息注冊,經(jīng)后臺管理人員審核通過后,為其設(shè)置庫存管理權(quán)限。庫存管理人員在身份合法后,即可通過手機APP 查看其庫存盤點任務(wù),并按照任務(wù)清單,進行車輛盤點操作,包括拍照,裁剪,上傳,圖像信息與位置信息經(jīng)移動端封裝后經(jīng)https 發(fā)送至整車銷售系統(tǒng)服務(wù)后臺API 接口,由API 接口完成數(shù)據(jù)接收后,將信息分類處理。
圖6:車輛盤點出廠編碼自動識別流程圖與APP 頁面
首先完成圖像、位置數(shù)據(jù)存儲;
其次將圖像文件作為參數(shù),調(diào)用圖像預(yù)處理方法,完成圖像的灰度化、均衡化、圖像分割處理等后,進入Tesseract-OCR 模塊,完成圖像文字區(qū)域分析、檢測、分割和識別,返回車輛編碼識別結(jié)果;同時將位置信息與車輛預(yù)置存放位置進行距離計算和誤差分析,返回位置識別結(jié)果;
再將字符識別結(jié)果與位置識別結(jié)果傳入盤點校驗?zāi)K,返回是否完成盤點結(jié)果。
最后將盤點結(jié)果進行后臺數(shù)據(jù)存儲,并發(fā)送數(shù)據(jù)至移動端,通知盤點人員自動校驗結(jié)果。
車輛盤點結(jié)果由系統(tǒng)通過車輛編碼識別匹配與位置計算所得,匹配成功和位置誤差在設(shè)定范圍內(nèi),即可自動識別為盤點通過,無需信息核對和二次確認(rèn)。盤點自動識別流程如圖6(左)所示。移動端頁面如圖6(右)所示,盤點人員可實時看到最新的盤點進度、盤點結(jié)果,可根據(jù)出廠編碼(車輛流水號)查詢相關(guān)數(shù)據(jù),進行精準(zhǔn)盤點和二次盤點。
本設(shè)計基于信息化手段,結(jié)合數(shù)字圖像識別技術(shù),通過WEB服務(wù)模式,提出一種針對商用車庫存分散、車輛展存場景多變、盤點人員背景復(fù)雜等多因素影響的車輛庫存盤點應(yīng)用研究,設(shè)計開發(fā)簡潔、便捷、易操作用的前端操作頁面,獲取數(shù)據(jù)來源,接入成熟的數(shù)字圖像識別應(yīng)用接口,快速、準(zhǔn)確的對車輛出廠編碼進行識別和位置范圍計算,完成車輛庫存盤點工作?;诖思夹g(shù)應(yīng)用,可大幅減輕每月庫存盤點人員的工作強度,降低庫存管理人員對上報庫存信息的校驗、審核難度,提高車輛盤點數(shù)據(jù)的準(zhǔn)確率和實時性。經(jīng)業(yè)務(wù)線上應(yīng)用,各模塊運行穩(wěn)定,有效降低了盤點工作開展中各環(huán)節(jié)人員工作強度和提升了盤點工作效率。