馬 深 王 睿 南楚希 吳 靜 黃 驥
智慧資產管理平臺App端設計
馬 深 王 睿 南楚希 吳 靜 黃 驥
(無錫科技職業學院,江蘇 無錫 214028)
為優化傳統管理資產方式,提高資產管理效率,人們一般采用前后端分離的方式搭建智慧資產管理平臺。該平臺分為基于uni-app框架開發的App端、基于element-ui框架開發的前端和基于Flask框架開發的后端。相較于傳統的資產管理方式,智慧資產管理平臺可以記錄資產從買入到報廢的全生命周期,使資產管理員節省更多的時間和精力。另外,該平臺的App端還設計了基于人臉識別的登錄、基于門牌和條形碼識別的資產清查等功能,為用戶減少了手動輸入的繁瑣,體現了該平臺具有一定的智能性。
前后端分離;系統設計;人臉識別;門牌識別
近年來,隨著企事業單位資產數量的迅速增長,資產管理工作變得更加復雜。如何高效地完成資產的管理工作成為企事業單位關注的重要問題之一。
當前企事業單位仍然存在使用紙質方式記錄資產管理的情況。隨著資產數量的日益增多,繼續使用傳統的管理方式容易出現錯誤和混亂。即使企事業單位已經通過一定的信息化手段進行資產管理,也仍有可能會因為采用陳舊技術開發或無人維護資產管理系統而在使用時遇到新的問題,導致資產管理工作不能順利開展。
針對上述情況,利用目前主流的uni-app框架、element-ui框架和Flask框架,采用前后端分離方式搭建智慧資產管理平臺,該平臺有利于企事業單位更有效地進行資產管理,可以記錄資產從入庫、借還、轉移到報廢的全生命周期情況。另外,該平臺實現了使用人臉識別登錄、使用門牌識別和條形碼識別進行資產清查等功能,進一步優化了資產管理工作。
uni-app是一個由DCloud公司使用Vue.js(構建用戶界面的漸進式框架)開發的跨平臺移動開發框架,同一套代碼可發布到iOS(由蘋果公司開發的移動操作系統)、Android(一種開放源代碼的操作系統)、Web(全球性的信息網絡)等平臺,支持條件編譯,可針對不同的平臺進行差異化編譯[1-2]。該框架也是高職院校技能大賽移動應用開發賽項(市級、省級和國家級)支持使用的開發框架之一,能夠取得接近于安卓原生開發的交互效果。
element-ui是由餓了么前端團隊推出的基于Vue封裝的UI組件庫,提供PC端組件,簡化了常用組件的封裝,降低開發難度。
由Flask官方文檔可知,Flask是一個基于Werkzeug(一個工具包)和Jinja2(模板引擎)的Python(一種面向對象的解釋型計算機程序設計語言)微框架,其框架核心較小且具備可擴展性,可以幫助用戶快速開發一個網站或Web服務[3]。在前后端分離開發理念盛行的當下,Flask-Restful擴展可以方便開發人員設計出若干基于Resource基礎類的自定義接口類,這些自定義接口類繼承的get、post、put、delete等方法僅返回RESTful風格的JSON格式響應,使前后端開發工作更加純粹[4]。
由于Flask框架基于Python開發,而不少圖像處理算法框架(如OpenCV、Pillow、scikit-image、Mahotas等)、機器學習算法框架(如Caffe、Tensorflow、MXNet、scikit-learn等)都有相應的Python版本可供選擇,因此在Flask后端程序中加入該類算法設計可以使系統平臺的功能更加智能,在一定程度上為用戶降低了業務數據的輸入難度[5]。
從本質上來說,圖像是一種單通道或者多通道的三維矩陣,具有寬度、高度和通道3個維度。除人工合成外,圖像的產生一般來源于成像設備,因此此類圖像普遍具有冗余、復雜、帶噪聲等特點。為了優化圖像,往往會采用去噪聲、特征提取、圖像增強、圖像壓縮等方法進行加工處理的過程,該過程即為圖像處理[6]。為了確保圖像處理的實時性,一般需要優化圖像處理算法的時間復雜度。由開源的深度學習框架(如Caffe、Tensorflow等)可知,如果設備條件允許,那么還可以將CPU上已經實現的算法遷移至GPU(圖形處理單元)、TPU(張量處理單元),進一步加快算法的執行速度[7]。
機器學習起源于20世紀50年代,是人工智能領域的一個分支,在圖形圖像處理、自然語言處理、語音處理、人機交互、醫療、交通、金融、社交媒體等領域得到了廣泛的應用。
機器學習可以從多種角度來劃分。從學習能力方面來分,機器學習可以分為淺層學習和深度學習;從學習方式方面來分,機器學習可以分為監督學習、半監督學習、非監督學習和強化學習。
機器學習算法過程分為訓練和預測階段。在訓練階段,以訓練數據為輸入,算法通過迭代、梯度下降等方法的組合進行目標函數優化,當目標函數收斂時得到的預測模型將作為已訓練的預測模型。在預測階段,輸入測試數據,使用已訓練的預測模型進行預測,得到預測結果。
為了實現圖像的識別,圖像處理需要通過實驗來確定預測規則,雖然具有一定的可解釋性,但識別率普遍存在較大的優化空間。機器學習可以通過優化目標函數得到最佳的預測模型,但存在識別率普遍較高,可解釋性略有欠缺的情況[7-8]。
本智慧資產管理平臺分為后端、前端和App(手機軟件)端。其中,后端采用Flask框架編寫RESTful風格的接口程序用于前端和App端的接口請求訪問。關系型數據庫MySQL主要存儲一些訪問頻率相對較高或更新頻率相對較低的結構化數據(如用戶信息、資產數據等)。非關系數據庫LevelDB主要存儲一些訪問頻率相對較低或更新頻率相對較高的非結構化數據(如用戶令牌、人臉識別模型、門牌識別模型等)[7];前端采用element-ui框架布局,vue-router插件進行路由控制,vuex插件進行狀態管理;App端采用uni-app框架進行構建,為了美化用戶交互界面引入uView UI的UI界面框架。與前端相比,App端顯然更適用于手動輸入量較少的應用場景。
如圖1所示,本平臺的App端共包含5個模塊,前端共包含11個模塊,其中前端和App端共同包含3個公用模塊(個人中心、統計報表、用戶登錄)。App端的資產管理模塊相當于前端的資產入庫、資產借還、資產轉移、資產報廢4個模塊的疊加,但由于App端和前端的用戶體驗和適用場景不同,造成設計師在App端和前端設計的UI界面和業務邏輯也會有所不同,因此這里不作為公用模塊劃分。

圖1 智慧資產管理平臺框圖
本平臺的用戶包括管理員和超級管理員,其中管理員的功能權限分布在App端和前端,而超級管理員功能權限僅分布在前端。如圖2所示,除用戶登錄模塊和資產管理模塊外,本平臺共有11個模塊,各模塊均有若干項功能,其中用斜體標注的功能權限僅限于超級管理員,用下劃線標注的功能權限僅限于管理員,其余功能則由管理員和超級管理員獲得權限。另外,本文對用戶登錄模塊、資產管理模塊和圖2中帶“*”標注的模塊進行了功能創新,進一步提升了用戶體驗。

圖2 智慧資產管理平臺總體功能
本智慧資產管理平臺App端的創新功能體現在增加了人臉識別、門牌識別和條形碼識別功能,減少了資產管理員需手動輸入的操作,適用于用戶登錄、資產清查等模塊。
一般情況下,用戶登錄需要系統平臺根據“用戶名+密碼”的驗證方式進行,要求用戶正確記憶自己的用戶名和密碼。雖然不少系統平臺已經加入了類似于找回密碼的模塊,但是仍然需要用戶記得相關的細節。如今,系統平臺的驗證方式已經多樣化,人臉識別就是其中的一種。對于用戶來說,人臉識別的優勢在于用戶無需記憶用戶名和密碼;對于研發人員來說,人臉識別的優勢在于人臉具有一定的區分度,雖然人臉識別技術日趨成熟,開發難度已經有所降低,但仍然具有一定的科研價值。
用戶在App端“登錄”頁面中選擇“人臉識別”按鈕進入“人臉識別”頁面。由于光照、遮擋、相對位移、圖像噪聲等因素會干擾人臉識別結果,因此為了提高人臉識別功能的成功率,當新頁面中出現光照強度較適中、光線較均勻且完整無遮擋的正面人臉時,用戶自主點擊“開始識別”按鈕,并使用戶人臉和移動設備維持3~5 s的相對靜止。此時,App端向后端發起人臉識別登錄的請求,該請求中包含了單幀人臉圖像數據。后端接收該請求后,將調用OpenCV等第三方庫實現的人臉識別算法,若能找到與之匹配的用戶則完成登錄并跳轉至主頁,否則就在原頁面中顯示報錯提示。本文的人臉識別算法流程如圖3所示。

圖3 人臉識別算法流程
將App端傳來的人臉圖像轉成base64編碼,將base64編碼后的結果作為后端調用人臉識別算法接口的輸入。為了減少圖像處理的運算量,通常的做法是減少圖像的通道數量,即將輸入的三通道的RGB圖像轉為單通道的灰度圖像。
使用OpenCV庫自帶的Haar級聯分類器進行人臉檢測。如果能夠檢測到人臉,則記錄圖像中檢測到的人臉位置,并提取人臉ROI(感興趣區域)圖像,否則提前結束本流程。
提取人臉ROI圖像的圖像特征,通過匹配算法與存儲在LevelDB數據庫中的人臉圖像特征數據進行匹配,匹配算法中的識別模型通過機器學習訓練得到,旨在能夠較準確地識別出相應的用戶[8]。如果能夠與數據庫中的人臉匹配成功,則更新識別模型以適應最新的應用場景,否則提前結束本流程。
最后以RESTful風格的JSON格式返回人臉識別結果。
在待查資產真實存在的前提下,資產清查需要進一步關注其最新的存放地點。在資產清查過程中,往往以存放地點為單位開展清查。當待查資產已經不在原先登記的存放地點時,資產管理員應當在資產清查后及時更新。
為了減少資產存放地點等信息的手動輸入,常規的設計原則之一是使用下拉選擇框代替文本輸入框,雖然可以避免手動輸入,但是一旦下拉選擇框內的選項數量過多時,用戶將不得不從大量選項中尋找目標選項,從而導致用戶體驗降低。針對該情況設計了資產清查界面,該界面中包含的模塊之一為門牌識別模塊。該模塊的使用方法如下:在App端“資產清查”頁面中點擊“門牌識別”按鈕,App端界面拍攝存放地點的門牌,自動調用門牌識別算法,識別結果將顯示在“存放地點”的文本框中。為了提高門牌識別功能的正確率,門牌圖片需要確保門牌與其周圍背景有一定的顏色區分度,且光照強度較適中、光線盡量均勻。當完成門牌識別時,就意味著資產管理員將在該地點開展資產清查工作。
本文的門牌識別算法流程如圖4所示。

圖4 門牌識別算法流程
首先,進行與人臉識別類似的操作,即將App端傳來的門牌圖像進行base64編碼,將base64編碼后的結果作為門牌識別算法接口的輸入。將輸入的RGB圖像轉為灰度圖像以減少圖像處理運算量。
其次,根據門牌文本的灰度值將該圖像進行水平和豎直方向的投影,以此來確定圖像中門牌的ROI。由于門牌在圖像中的姿態可能會導致字符的錯誤識別,也不利于字符的切分,所以需要調用校正算法實現門牌ROI部分圖像的校正。
再次,將校正后的門牌ROI部分的圖像進行二值化,分離出每個字符[9],依次調用字符分類算法進行識別,該算法中的字符分類模型通過機器學習訓練得到,旨在能夠較準確地識別出26個英文大寫字母和10個阿拉伯數字。
最后,以RESTful風格的JSON格式返回門牌識別結果。
在資產清查過程中,往往會面臨資產數量較大、存放地點較為分散等情況。一般傳統的清查方式是在提前準備好的資產清單中手動勾選已查到的資產。在資產已經貼上帶條形碼標簽的前提下,使用傳統的清查方式依然不夠便捷,而且容易出現錯選、漏選已查到資產的情況。如果待查資產的擺放位置不便于觀察,即肉眼無法遠距離看清待查資產標簽上的信息(如掛壁式空調、吊頂式投影儀、吊扇等),那么就會加大資產清查工作的難度。
基于uni-app框架開發的App端項目可以調用uni-app框架自帶的掃碼模塊進行遠距離識別條形碼,其結果只有準確識別出條形碼內容和識別不出條形碼內容兩種情況,即沒有任何出錯的可能性,極大地方便了資產管理員進行資產清查工作。
因此,App端“資產清查”頁面中列出了所有待清查的資產信息,初始清查狀態為“未清查”,用戶在該頁面中點擊“掃描資產條形碼”按鈕,如果掃描到的資產條形碼可以識別出結果,那么該頁面將快速準確自動更新相應資產的清查狀態和存放地點,從源頭避免出錯,達到事半功倍的效果。以資產編號為“2022110003”、原登記存放地點為“M502”、清查狀態為“未找到”的資產為例,資產管理員在存放地點為“M505”的場地找到該項資產并掃描其資產標簽上的條形碼后,該項資產的存放地點將自動變更為“M505”,清查狀態將自動變更為“已找到”,無需資產管理員進行任何的手動更改。
下一步的工作包括以下4個方面。
(1)封裝通用UI組件。從前端項目和App端項目中尋找結構相似、功能相似,或出現頻率較高的UI布局,根據Vue框架的特點,總結這些UI布局的共性,封裝成通用的UI組件(包括事件和屬性)。開發前端項目和App端項目時直接調用已封裝的通用UI組件,減少重復的代碼,進一步提高開發效率。
(2)新增創新功能模塊。在資產入庫中加入單據識別的功能,即通過定位單據中的相關字段來識別對應的字段值,從而通過單據圖像便能完成資產的入庫,避免手動輸入大量待入庫資產的信息。
(3)改進資產清查功能。一般來說,資產編號與實物數量的關系是一對一的,但也有一對多的可能,比如計算機(主機和顯示器)。原則上資產編號對應的所有實物全部存在才能認定沒有丟失。目前本平臺只能處理一對一的情況,而在資產編號為同一個的前提下,若要完成屬于一對多情況的實物的清查工作,則需要在優化業務邏輯的同時考慮采用基于視圖的物體識別算法實現。
(4)改進智能識別算法。將從抗噪聲、去光照等角度進一步提升人臉識別、門牌識別算法的準確率。原先用戶需要在受限情況下才能正常使用此類功能,今后有望在不受限制的場景下也可以成功率較高地使用此類功能。
對于用戶來說,本智慧資產管理平臺緊跟時代發展潮流,通過記錄資產的入庫、借還、轉移、報廢等一系列常規操作,對資產進行科學有效的全生命周期管理,其創新功能進一步優化用戶體驗,大大減少企事業單位資產管理的壓力和工作量。
對于開發團隊來說,本文從企事業單位的實際需求出發,對基于uni-app框架、element-ui框架和Flask框架開發的智慧資產管理平臺的UI界面和功能模塊進行了合理規劃,并著重開發了創新功能,前端項目、后端項目和App端項目都能夠實現快速交付。由于本平臺自身功能的特殊性,涉及的用戶數量、存放地點數量都相對不多,因此本文目前沒有采用當下流行的深度學習算法。
隨著時間的推移,企事業單位的資產管理方式在進步,人工智能算法也在不斷發展。開發團隊要及時跟進用戶需求,陸續引入并改進新的功能模塊及人工智能算法,使智慧資產管理平臺的功能模塊更加完善、智能。
[1] 吳家旭,吳建勝,王新元,等. 基于uni-app的果蔬配送平臺系統的設計與實現[J]. 電腦知識與技術,2022,18(16): 46-47,62.
[2] 李昂. 基于跨平臺移動開發框架的環境評估咨詢App設計[J]. 電腦知識與技術,2021,17(24): 75-77.
[3] 陳嘉發,黃宇靖. Flask框架在數據可視化的應用[J]. 福建電腦,2022,38(12): 44-48.
[4] AGGARWA S. Flask framework cookbook: Over 80 proven recipes and techniques for Python web development with Flask[M]. Birmingham: Packt Publishing, 2019.
[5] RAJYAGOR B, RAKHOLIA R. Handwritten character recognition usingdeep learning[J]. International Journal of Recent Technology and Engineering, 2020, 8(6): 5815-5819.
[6] 岳亞偉,薛曉琴,胡欣宇. 數字圖像處理與Python實現[M]. 北京: 人民郵電出版社,2022.
[7] CHEN H Y. Modeling and predictive analysis of the validity of children's behavior bbservation in preschool education based on action recognition network algorithm[C]// 2022 International Conference on Edge Computing and Applications. Tamilnadu, India: IEEE, 2022: 1045-1048.
[8] 曹偉,殷守林. 基于PCA-L1范式特征提取的大學圖書館人臉識別[J]. 安陽工學院學報,2021,20(6): 43-46.
[9] 侯艷麗,楊國勝,黃春艷. 基于字符識別的門牌號識別算法研究[J]. 河南大學學報(自然科學版),2004(1): 76-79.
Design of Smart Asset Management Platform at App Terminal
In order to optimize traditional asset management methods and improve asset management efficiency, people generally adopt a front-end and back-end separation approach to build a smart asset management platform. The platform is divided into App end based on uni-app framework, front end based on element-ui framework and back end based on Flask framework. Compared with traditional asset management methods, smart asset management platforms can record the full life cycle of assets from purchase to retirement, saving more time and energy for asset managers. In addition, the App side of the platform has also designed functions such as login based on face recognition, asset inventory based on doorplate and bar code recognition, which reduces the tedious manual input for users, reflecting that the platform has a certain degree of intelligence.
front and rear separation; system design; face recognition; doorplate recognition
TP311
A
1008-1151(2023)11-0024-04
2023-02-21
全國高等院校計算機基礎教育研究會計算機基礎教育教學研究課題(2022-AFCEC-535);未來網絡科研基金項目(FNSRFP-2021-YB-56);江蘇高校哲學社會科學研究項目(2022SJYB1072);江蘇省高等教育學會“十四五”高等教育科學研究規劃課題(YB178);第五期江蘇省職業教育教學改革研究課題(ZYB634);無錫市科學技術協會軟科學研究課題(KX-22-C155)。
馬深(2001-),男,江蘇宿遷人,無錫科技職業學院學生,研究方向為移動互聯應用技術。
黃驥(1991-),男,江蘇無錫人,無錫科技職業學院助教,碩士,研究方向為圖形圖像處理及機器學習。