劉瑞康,胡君紅,徐 甜,陳緒君
(華中師范大學物理科學與技術學院,湖北武漢 430079)
隨著互聯(lián)網(wǎng)信息時代的到來,以滿足消費者需求和提升效率為核心的智慧門店[1-5]逐漸興起。在線下場景,如何充分利用視頻圖像信息分析顧客興趣點,指導商品企劃,成為商家越來越關注的問題。目前,計算機視覺技術飛速發(fā)展,以目標檢測[6-7]技術為核心的視覺感知系統(tǒng)能夠從監(jiān)控視頻[8]信息中檢測到顧客位置,為商家制定后續(xù)服務策略提供幫助。然而,商場、超市等復雜場景下的視頻監(jiān)控質量可能受到采光因素影響,從而對后續(xù)檢測造成干擾,且對目標檢測算法的檢測精度要求較高。
針對以上問題,本文設計并實現(xiàn)了應用于智慧門店的視覺感知系統(tǒng)。系統(tǒng)采用微服務架構,確保了模塊間的獨立性與系統(tǒng)整體的可擴展性,方便系統(tǒng)根據(jù)功能需求作出調整;使用暗光增強技術對低照度圖像進行預處理,以提升圖像質量;改進YOLOv3 算法[9],并在自制商場超市場景下的人群數(shù)據(jù)集上進行訓練,以保證系統(tǒng)在智慧門店場景下具有良好的檢測表現(xiàn)。通過實驗驗證,改進后的檢測算法較原YOLOv3 算法的精確率提升了2%,召回率提升了3%。系統(tǒng)整體使用Flask 框架[10]實現(xiàn),為商家完善服務提供了便利的平臺。
目前,智慧門店逐漸興起,商家希望通過攝像頭等圖像采集設備獲取顧客圖像信息,以從中分析、挖掘出有價值的信息。因此,如何有效地從門店顧客視頻圖像中獲取關鍵信息成為商家的迫切需求。
本文根據(jù)具體應用場景對系統(tǒng)功能需求進行分析,對系統(tǒng)各個功能需求進行介紹。
(1)用戶管理功能。系統(tǒng)使用對象為商戶,用戶管理模塊需要實現(xiàn)賬戶注冊、身份驗證、系統(tǒng)登錄、修改資料等功能。
(2)圖像采集功能。圖像采集模塊需要實現(xiàn)視頻錄制與數(shù)據(jù)導出功能,幫助商家按照需要選擇不同區(qū)域的圖像采集設備,采集關注區(qū)域的視頻圖像信息。
(3)圖像預處理功能。考慮到商場超市場景的復雜性,不同區(qū)域采光條件不同,光照不足會導致采集的視頻圖像畫面較暗,圖像中關鍵信息難以辨識。因此,需要對低照度圖像進行暗光增強,以提升圖像質量,進而提高后續(xù)檢測與識別的準確性,并調整圖像格式,使之符合需求。
(4)目標檢測功能。目標檢測功能是本系統(tǒng)的核心功能,其中如何選擇合適的檢測算法尤為關鍵。本系統(tǒng)應用于智慧門店場景,該場景環(huán)境復雜,需要檢測算法能夠較快地檢測出目標,同時保證較高的檢測準確率,之后將檢測結果以可視化形式呈現(xiàn),方便商家掌握信息。
系統(tǒng)在滿足功能需求的同時,還需要滿足性能需求。根據(jù)系統(tǒng)實際應用場景,系統(tǒng)需要滿足以下4 個性能需求:
(1)精確率。系統(tǒng)檢測模塊需要對視頻圖像進行精準地檢測,精確率是評價檢測性能的重要標準??紤]到應用場景較為復雜,精確率應該在0.8 以上。
(2)實時性。在檢測過程中,由于商場、超市等復雜場景下的人群流動性大,因此系統(tǒng)檢測模塊需要有較快的檢測速度,以滿足系統(tǒng)對檢測實時性的需求。
(3)獨立性。要求系統(tǒng)各個模塊能夠獨立實現(xiàn)各自的功能,便于系統(tǒng)后續(xù)根據(jù)需求進行功能擴展。
本研究單礦物浮選試驗在XFGCII型浮選機(吉林探礦機械廠)中按圖2流程進行,主要藥劑見表2。除溫度試驗外,其他試驗都保持在25 ℃的條件下進行。浮選完成后將泡沫產(chǎn)品與槽內產(chǎn)品分別進行過濾、烘干、稱重,并計算單礦物的回收率。
(4)兼容性。系統(tǒng)用戶通過Web 瀏覽器對系統(tǒng)進行操作,因此需要系統(tǒng)能夠在不同瀏覽器上正常運行。
為確保系統(tǒng)功能模塊的獨立性,以及系統(tǒng)整體的可擴展性,使將來系統(tǒng)能夠根據(jù)需要對模塊進行擴展,系統(tǒng)使用微服務架構進行設計。系統(tǒng)微服務架構如圖1 所示,分為用戶端與服務端兩部分,實現(xiàn)系統(tǒng)前后端分離。其中,Web 服務端是用戶操作的UI 頁面。服務端根據(jù)系統(tǒng)功能劃分為用戶管理、圖像采集、圖像預處理、目標檢測4 個微服務模塊,并將各個模塊進行封裝,以接口形式提供功能服務。數(shù)據(jù)庫層存儲了各模塊相關數(shù)據(jù)以及用戶信息、設備信息、數(shù)據(jù)信息等。
Fig.1 System architecture of microservice圖1 系統(tǒng)微服務架構
根據(jù)需求分析,系統(tǒng)按照功能分為4 部分,分別為用戶管理模塊、圖像采集模塊、圖像預處理模塊、目標檢測模塊。如圖2 所示,其中用戶管理模塊功能包括用戶注冊、身份驗證、信息修改等;圖像采集模塊功能包括視頻錄制、數(shù)據(jù)導出等;圖像預處理模塊功能包括暗光增強、數(shù)據(jù)歸一化等;目標檢測模塊功能包括方法選擇、目標檢測、數(shù)據(jù)可視化等。
Fig.2 Design of system function module圖2 系統(tǒng)功能模塊設計
為了保證各個微服務模塊的獨立性,對模塊與類進行封裝,使用Flask-RESTful 對API 進行設計,后端通過接口將數(shù)據(jù)傳遞給前端。數(shù)據(jù)主要以JSON 格式進行傳輸,少部分通過URL 參數(shù)進行傳遞。為了保證代碼的整潔性與易讀性,使用駝峰命名法對接口進行命名。
受采光條件影響,低照度圖像整體效果較暗,嚴重影響了圖像信息的辨識度,而增強圖像的像素亮度能夠提升圖像整體質量[11]。在RGB 空間中,RGB 三分量既包含顏色信息,又包含亮度信息,如果只是單純地將灰度圖像增強方法應用于彩色圖像增強中,在提升亮度的同時會改變圖像顏色信息,無法達到暗光增強的要求[12]。根據(jù)RGB顏色模型特點,如果兩個像素點[R1,G1,B1]與[R2,G2,B2]滿足=λ的關系,則該兩點可能亮度信息不同,但擁有相同的顏色信息,其中λ表示亮度增益。由此可見,想要在對圖像進行亮度增強的同時不改變顏色信息,關鍵在于確定亮度增益λ。確定亮度增益λ需要提取圖像中的亮度分量[13],HSV 顏色空間實現(xiàn)了顏色與亮度的分離。圖像灰度化定義公式如下:
式(1)中,V(x,y) 表示像素點(x,y) 在HSV 顏色空間中的亮度信息,R(x,y)、G(x,y)、B(x,y) 表示像素點(x,y) 在RGB 顏色空間中分別對應的R、G、B數(shù)值信息。
通過對原始圖像HSV 空間亮度V1進行非線性變換,獲得變換后HSV 空間的亮度V2,即可獲得亮度增益λ。亮度增益λ計算公式如下:
獲取亮度增益λ后,通過更改圖像像素的RGB 值,達到增強圖像亮度而不引起色彩失真的目的。RGB 變換如下:
式(3)中,λ表示亮度增益,R1、G1、B1分別為原始圖像的RGB 值,R2、G2、B2分別為處理后圖像的RGB 值。
當使用亮度增益對圖像RGB 值進行變換時,會導致較高的RBG 值在變換后超出合理的灰度級范圍[14]。由于冪函數(shù)變換方法在極低灰度區(qū)變換幅度較大,而從中灰度區(qū)到高灰度區(qū)的變換幅度較小,根據(jù)這一特點,使用冪函數(shù)對圖像進行亮度增強不會因亮度增益過大而引起色彩失真。變換方法如下:
式(4)中,V2表示變換后圖像的HSV 空間亮度,V1表示原始圖像的HSV 空間亮度,p是一個參數(shù),可以進行調整。
由式(4)可知,V2單調遞增,當參數(shù)p取值為128、V1取最大灰度級255 時,V2值最多只能達到255,經(jīng)過變換不會超出灰度級范圍。圖像RGB 的同比增強也均在灰度級范圍內,不會引起Gamut 問題。
本文設計的視覺感知系統(tǒng)應用于智慧門店場景,使用的檢測算法需要有較高的檢測精度。針對YOLOv3 算法[9,15]在小目標檢測過程中存在漏檢的情況,本文改進YOLOv3 網(wǎng)絡,利用網(wǎng)絡4 倍降采樣輸出特征圖進行目標檢測,以獲取更多小目標的位置信息。對原網(wǎng)絡輸出的8倍降采樣特征圖進行2 倍上采樣,與Darknet-53 網(wǎng)絡的第二塊殘差塊輸出的4 倍降采樣特征圖進行融合,建立輸出為4 倍降采樣的特征融合檢測層,以提高網(wǎng)絡對小目標的檢測能力。與此同時,增加2 個殘差單元,以獲得更多的小目標位置信息。
在原YOLOv3 網(wǎng)絡中,使用3 個尺度對VOC 數(shù)據(jù)集進行預測,尺度1 對應(116,90)、(156,198)、(373,326)預測框,尺度2 對應(30,61)、(62,45)、(59,119)預測框,尺度3對應(10,13)、(16,30)、(33,23)預測框。為提高對小目標的檢測精度,用4 倍降采樣特征融合檢測層代替以上3 個尺度的輸出檢測,將原網(wǎng)絡中的6 個DBL 單元變成2 個DBL 單元加上2 個殘差網(wǎng)絡單元[16-17],如圖3 所示。
Fig.3 Improved network output structure圖3 改進的網(wǎng)絡輸出結構
改進的網(wǎng)絡結構將第二個殘差塊4 倍降采樣輸出的特征圖與經(jīng)過8 倍降采樣后又進行2 倍上采樣的特征圖進行拼接,實現(xiàn)輸出為4 倍降采樣的特征融合檢測層,以提高網(wǎng)絡對小目標的檢測性能。
為使模型在商場超市場景下有更好的檢測表現(xiàn),收集了時長共計115h 的商場超市場景人群視頻,這些視頻包含商場不同場景、不同光照、不同人群密度等情況的人群信息。借助Opencv 工具,按幀讀取圖像信息并生成10 萬張圖片,之后從中挑選2 萬張圖片。首先使用本文介紹的暗光增強技術對受到采光影響的圖片進行處理,然后對圖片進行歸一化操作,根據(jù)網(wǎng)絡輸入要求,將圖片裁剪、縮放成416×416 尺寸,接著使用labelimg 標注工具對圖片進行標注,最后將制作好的數(shù)據(jù)轉換為VOC 數(shù)據(jù)集格式,并對模型進行訓練與測試。
目標檢測模型訓練環(huán)境為:操作系統(tǒng)為Ubuntu 14.04.5 LTS;GPU 為NVIDIA GTX 1080Ti;CPU 為Intel Core i7-7700K;深度學習框架為tensorflow。
本文從20 000 份標注好的數(shù)據(jù)中選出18 000 份作為訓練集,剩余2 000 份作為測試集。將訓練集平均分為10個子集,每個子集包含1 800 份標注好的數(shù)據(jù),以10 折交叉驗證[18]方式進行模型訓練。
將Batch size 設置為100,為加快模型收斂,避免出現(xiàn)過擬合,將初始學習率設置為0.000 1,權值衰減系數(shù)設置為0.000 5,沖量常數(shù)設置為0.9。當訓練迭代次數(shù)為20 000次時,將學習率調整至0.000 01;當?shù)螖?shù)為30 000 次時,將學習率調低至0.000 001。大約經(jīng)過40 000 次迭代,損失值下降到0.2 左右,Avg IOU 穩(wěn)定在0.85 左右。
文獻[19]介紹了二分類評價方法,其采用精確率(pre?cision)與召回率(recall)指標,在二分類問題中,通常將關注的類作為正例,其它類作為負例。分類器預測時可能出現(xiàn)的4 種情況[20]如表1 所示。
Table 1 Four kinds of forecast situation of binary表1 二分類4 種預測情況
精確率(precision)是指在算法給出的所有正例中,預測正確的正例占所有預測為正例的比例,精確率計算公式如下:
式(5)中,precision 表示精確率;TP 表示樣本實際是正例,預測結果也是正例的數(shù)量;FP 表示樣本實際是負例,預測結果卻是正例的數(shù)量;TP+FP 表示預測為正例的總數(shù)。
召回率(recall)是指算法檢測出的正例占所有真實正例的比例,召回率計算公式如下:
式(6)中,recall 表示召回率;TP 表示樣本實際是正例,預測結果也是正例的數(shù)量;FN 表示樣本實際是正例,預測結果卻是負例的數(shù)量;TP+FN 表示實際為正例的樣本總數(shù)。
原YOLOv3 網(wǎng)絡與本文改進網(wǎng)絡在一份共包含1 035個目標數(shù)的測試集上的檢測結果如表2 所示。其中,XTP表示正確檢測出的目標數(shù),XFP表示錯誤檢測出的目標數(shù),XFN表示未檢測出的目標數(shù)。通過測試結果可以驗證,本文提出的改進網(wǎng)絡在商場超市場景下有更好的檢測表現(xiàn)。
Table 2 Data comparison between YOLOv3 and the network in this paper表2 原YOLOv3 網(wǎng)絡與本文網(wǎng)絡部分數(shù)據(jù)對比
本文設計的視覺感知系統(tǒng)采用Flask 框架進行后臺開發(fā),系統(tǒng)使用流程如圖4 所示。首先,新用戶需要使用郵箱注冊賬號,之后進行身份驗證并登錄系統(tǒng),可進入信息修改頁面對個人信息進行修改。然后,用戶可進入圖像采集頁面,選擇圖像采集設備對視頻進行采集,并根據(jù)需要保存采集的視頻信息。接下來,進入視覺感知頁面,可選擇圖像設備獲取視頻圖像信息,并根據(jù)場景采光條件選擇是否對圖像進行暗光增強。如果需要進行暗光增強,將頁面中暗光增強的勾選框選中,系統(tǒng)自動對圖像進行暗光增強處理。系統(tǒng)使用改進的YOLOv3 算法對視頻圖像信息進行目標檢測,根據(jù)檢測結果生成熱力圖,并對檢測結果進行直觀展示。
頁面展示效果如圖5 所示。系統(tǒng)視覺感知頁面左邊顯示帶有當前人數(shù)與預測框信息的圖像,右邊顯示根據(jù)檢測結果繪制的熱力圖,商家可直觀獲取當前人數(shù)信息與場景熱點區(qū)域。
本文設計的視覺感知系統(tǒng)旨在解決智慧門店場景下人群檢測、人群計數(shù)等問題。系統(tǒng)按照功能劃分為用戶管理、圖像采集、圖像預處理、目標檢測4 個微服務模塊,各模塊具有獨立性,系統(tǒng)整體具有可擴展性。系統(tǒng)使用暗光增強技術對圖像亮度進行增強,以提升圖像質量;改進YO?LOv3 網(wǎng)絡,并在自制商場超市場景下的人群數(shù)據(jù)集上進行訓練,以提高視覺感知系統(tǒng)在智慧門店場景下的檢測表現(xiàn)。通過實驗驗證,在自制的商場超市場景下的人群數(shù)據(jù)集上的測試結果表明,改進后的檢測算法較原YOLOv3 算法的精確率提升了2%,召回率提升了3%,在商場超市等場景下的檢測表現(xiàn)良好。系統(tǒng)根據(jù)檢測結果統(tǒng)計當前人數(shù)并生成熱力圖,可直觀展示檢測結果,便于商家獲知場景當前人數(shù)以及場景熱點區(qū)域,從而進一步提升管理服務水平,讓門店變得更加智慧。
Fig.4 System flow圖4 系統(tǒng)流程
Fig.5 Page of visual perception system圖5 視覺感知系統(tǒng)頁面