蔡祺燊
(東南大學 江蘇省南京市 211189)
本文以物體辨識系統(tǒng)為主要設計對象,向其中融入了云服務器圖像處理技術(shù),連接至智能手機APP,調(diào)動設備的攝像頭,通過藍牙配置的方式調(diào)控其Wi-Fi/4G 通訊模塊,在形成穩(wěn)定的聯(lián)網(wǎng)配置關(guān)系后將采集單元對接至服務器,此后根據(jù)用戶的需求開啟攝像頭,以便快速采集圖像信息,利用Wi-Fi 模塊和4G 模塊傳輸,服務器可及時獲取完整的信息。此處深度優(yōu)化了服務器,搭建了圖像處理平臺,能夠以用戶的需求為導向執(zhí)行圖像處理操作,所得結(jié)果可完整反饋給用戶。系統(tǒng)結(jié)構(gòu)組成見圖1。
本文設計的物體辨識系統(tǒng)有別于傳統(tǒng)的嵌入式識別體系,采用了阿里云服務器作為計算中心。云服務器簡稱ECS,是近十年來新興的一類互聯(lián)網(wǎng)基礎設施服務,相對于傳統(tǒng)的服務器,云服務器具有更高的安全可靠性,計算能力可以彈性變化,在管理便捷性上也有顯著的優(yōu)勢,使用云服務器的方案能夠降低運維的難度和成本,使程序框架開發(fā)更專注于核心業(yè)務。另一方面,相比于在樹莓派中直接使用嵌入式系統(tǒng)的識別體系,云服務器模式能夠容許更強的計算能力,圖像識別的應用需要耗費大量算力,嵌入式設備由于體積等原因難以提供理想的算力,因此采用云服務器模式,犧牲少量的網(wǎng)絡傳輸延時換取更快的CPU 和GPU 計算速度,提高軟件的整體響應速度,這是十分值得的。在本文最后一部分將云服務器模式與嵌入式的圖像識別效率進行對比,結(jié)果差距明顯,證明了云服務器模式的優(yōu)越性。
本系統(tǒng)共包含四個層次,各自負責特定的功能,具體作如下分析:
(1)視圖層。打破管理系統(tǒng)與用戶相互獨立的局面,使其形成交互關(guān)系,借助Ajax 實現(xiàn)網(wǎng)頁設計。用戶以瀏覽頁面為載體,根據(jù)自身意向發(fā)送請求,盡管服務器并未完成整個響應過程,用戶依然可根據(jù)實際情況利用頁面執(zhí)行其他操作。此外,Ajax 解決了以往Web 頁面丟失概率較大的問題;在Ajax 的支持下無需再次加載頁面,僅需修改特定的響應模塊,給服務器的運行營造了良好條件,避免超負載運行的情況。此外,視圖層融入了緩存機制,特定期間內(nèi)的查詢結(jié)果可以得到保留,用戶無需重復執(zhí)行查詢操作。得益于Ajax 和緩存機制,可提高網(wǎng)頁流暢性、改善用戶體驗。
圖1:系統(tǒng)整體結(jié)構(gòu)圖
(2)業(yè)務邏輯層。整個系統(tǒng)的組成中,業(yè)務邏輯層是最為核心的部分。其中特征模塊的主要作用在于提供抽象類imfeature,采集所得圖像的各特征都繼承該抽象類,能夠達到對圖像特征完整存取的效果;特征提取器的主要作用在于提供抽象類Extractor Base,用戶可根據(jù)實際需求完成查找或上傳操作;圖片DB 的DAO 組件具有高度的系統(tǒng)性,其封裝了數(shù)據(jù)庫的各項原子操作,具體涉及到增、刪、查、改等,對于任何數(shù)據(jù)表而言,與之相匹配的持久化類都必須實現(xiàn)該DAO 接口,主要目的在于執(zhí)行類之間的解耦合,達到可靠、高效的效果。
(3)控制層。在設置好視圖層和邏輯層后,通過控制層的作用可實現(xiàn)彼此間的高效通信,具體涉及到業(yè)務邏輯轉(zhuǎn)發(fā)、翻頁請求處理等,給業(yè)務邏輯層的應用提供了正確引導,使其能夠選擇相適應的DAO 組件。
(4)模型層。此部分的基本特點在于封裝基礎類Image 和Tag,此時借助ORM 框架便可達到便捷化訪問數(shù)據(jù)庫的效果,為系統(tǒng)的運行創(chuàng)設良好通道,使其以面向?qū)ο蟮姆绞礁呔炔僮鲾?shù)據(jù)庫,保證了全程的秩序性,相關(guān)操作有條不紊推進。
數(shù)據(jù)庫是各類信息的存儲場所,其包含了特征數(shù)據(jù)庫和圖片數(shù)據(jù)庫兩部分。本系統(tǒng)主要面向數(shù)據(jù)庫做好相應的設計,保證操作和邏輯功能的合理性,以便用戶可以根據(jù)需求快速查找特征,或是對其采取新建、刪除等相關(guān)操作。
(1)數(shù)據(jù)庫需求分析。系統(tǒng)應根據(jù)圖片獲取與之相對應的Tag信息;系統(tǒng)應具有高效存儲圖片的能力,且不遺漏任何的Tag 信息。
為滿足上述需求,針對數(shù)據(jù)項加以優(yōu)化,主要內(nèi)容有:①圖片信息:涉及到的數(shù)據(jù)項包含圖片編號及其存儲路徑;②標注信息:涉及到的數(shù)據(jù)項較為豐富,具體包含標注標號、標注內(nèi)容、圖片編號等多個部分。
(2)數(shù)據(jù)庫物理結(jié)構(gòu)。以ORM 框架為依托實現(xiàn)持久層訪問。ORM 框架可完成對持久化對象的操作轉(zhuǎn)換,使其變?yōu)閿?shù)據(jù)庫的操作,經(jīng)過此流程后可實現(xiàn)持久對象向關(guān)系數(shù)據(jù)庫的映射。從組成方面來看,ORM 框架內(nèi)各對象的實例并非單獨存在,均對應至數(shù)據(jù)庫內(nèi)某特定的記錄,因此若通過應用程序操作對象實例,其本質(zhì)上指的是對數(shù)據(jù)庫記錄的操作。數(shù)據(jù)庫的操作借助DAO 模式實現(xiàn),配置的DAO 組件具有高度集成特性,其封裝了對數(shù)據(jù)庫的各項原子操作,具體包含增、刪、改等。系統(tǒng)使用了Spring,作用在于對DAO 組件提供配套化的工具類。若依據(jù)ID 查詢圖片,經(jīng)調(diào)用后可以定位到Image 的對象實例,其操作機制類似于查詢數(shù)據(jù)庫過程中所使用到的SQL 語句。若借助面向?qū)ο蟮恼Z言完成對特定項目的開發(fā)工作,此時在持久層的數(shù)據(jù)庫訪問時將發(fā)生迂回的現(xiàn)象,即再次回歸至關(guān)系數(shù)據(jù)庫,顯然該機制具有很強的繁瑣性。在此背景下,ORM 框架的應用能夠提供可靠的解決途徑,面向?qū)ο蟮某绦蛟O計工作具有便捷化、高效化的特征,充分彰顯出關(guān)系數(shù)據(jù)庫的應用優(yōu)勢。
表1:測試結(jié)果分析
本系統(tǒng)的形成建立在ISimilar 項目架構(gòu)的基礎上,因此并未涉及到對底層數(shù)據(jù)的存取操作,核心要點在于對數(shù)據(jù)庫邏輯操作展開相應的設計。
系統(tǒng)提取的特征主要為HFile 文件類型,此部分將被完整存儲在HadoopHDFS 文件系統(tǒng)上。從歸屬關(guān)系來看,Hfile 隸屬于Hadoop 的范疇,為典型的二進制格式文件,可將其視為Key Value數(shù)據(jù)的存儲格式。
3.4.1 圖像查詢、上傳模塊算法設計
系統(tǒng)運行全流程中,獲取圖片Http 流為基礎操作,對其執(zhí)行解析處理以形成圖片,作出上傳或查詢的選擇。若為上傳則將圖片加載至已創(chuàng)建的圖片數(shù)據(jù)庫內(nèi),借助JNI 調(diào)用的C 端圖片特征提取模塊,在其支持下識別圖像特征;所得的特征被完整增添至特征數(shù)據(jù)庫內(nèi),借助LSH 生成Hash 值,確定包含了生成Hash 值的特征點集合,向其中增添該特征。若作出查詢的決策,此時JNI 將調(diào)用C 端圖片特征提取模塊,在其支持下識別圖片特征;調(diào)用LSH,從而將各特征值生成相匹配的Hash 值,確定與該值相一致的特征點,對其實行SURF 加顏色距離的篩選,經(jīng)過此流程后將得到相似的特征點集合;此后,以所得的特征點為基本對象,通過其中的imageId 完成對圖片的排序投票操作,可確定相似圖片的排序。
3.4.2 數(shù)據(jù)庫管理模塊的設計
MetricSpace 類可實現(xiàn)對特征DB 的管理,具體執(zhí)行的操作形式豐富,包含新建或刪除特征DB、查找特征等。算法函數(shù)調(diào)用遵循自上而下的操作流程。提取圖像的各個特征值,借助LSH 的相關(guān)API 調(diào)用Hash 集合,對其執(zhí)行處理以及數(shù)據(jù)的轉(zhuǎn)換等相關(guān)操作,由此可求得特征所屬圖片的ID,再完整統(tǒng)計具體的票數(shù),從而得到相應的查詢結(jié)果。
3.4.3 圖像分類模塊的設計
提取圖像特征,在獲得相應的特征后對其執(zhí)行K-means 聚類操作,隨之形成編碼本,在此基礎上借助LLC 方法可以再次編碼,由此產(chǎn)生新的特征,通過SPM 的思想處理此類新增的特征,再通過LIBSVM 完成豐富的訓練以及學習操作,經(jīng)過上述流程后將返回分類結(jié)果[1]。
LLC 特征編碼的全流程中,除了LLC 編碼特征的存儲具有特殊性外,剩余都可以被歸為控制層。在針對進程的管理工作中,若指定的特征集合并未發(fā)生任何變化,此條件下extrkmeans 進程運行的次數(shù)至少達到1 次。
SPM 算法主要服務于圖像分割處理之后,將圖像的空間信息以合理的方式完整呈現(xiàn)。圖像共包含3 層,其共同之處在于各層金字塔每行的patch 個數(shù)都為2^l,其中的意義在于1 代表層次,與此同時patch 分別為{1,4,16}。在形成各個patch 后將各自的特征連成整體,將其視為圖像的基本特征。通過SPM 算法的應用可以高效呈現(xiàn)圖像的空間信息,在圖像識別方面的效果更加良好,具有高精度、高效率識別的特征。
軟件是系統(tǒng)設計中的重點對象,具體涉及到兩部分的程序編寫工作,即云服務端控制軟件和物體識別。
云服務器端控制軟件的設計建立在Win10 系統(tǒng)服務器中,借助JAVA 環(huán)境完成相應的編寫工作。該軟件采用了TCP/IP 協(xié)議,通過此方式實現(xiàn)攝像頭采集單元的高效對接,使其與手機APP 形成穩(wěn)定的通訊關(guān)系,當采集單元獲得特定的圖像后,以最快的速度執(zhí)行圖像處理操作,獲得結(jié)果后及時反饋[2]。本系統(tǒng)設計工作中高度重視物體識別腳本程序的選擇,建立了Python 環(huán)境,靈活應用了SSD+Caffe 的目標檢測方法,以達到高效率檢測視頻流的效果。
經(jīng)過上述分析后,初步提出了物體辨識體系的設計方案,為驗證其功能使用情況展開了測試。選取嵌入式機器視覺模塊OpenMv作為對比分析對象,以便更為客觀地分析所提方案的使用情況。OpenMv 嵌入式機器視覺模塊所涉及到的算法較豐富,具體包含尋找色塊、邊緣檢測等多種類型,測試時調(diào)用了其中的nn_cifar10 神經(jīng)網(wǎng)絡,在其作用下識別物體,同時將文中所提的物體辨識體系對比分析。按照上述方法重復多次試驗,完整記錄所得結(jié)果,見表1。
本文圍繞物體辨識體系的設計工作展開探討,以云服務器為主要載體,采集實時視頻流,在終端控制系統(tǒng)的支持下辨識物體圖像,產(chǎn)生的結(jié)果可及時反饋給用戶。云服務的應用優(yōu)勢在于計算資源豐富,可在短時間內(nèi)快速完成部署,處理性能大幅提升,且模塊化設計還可擴寬本產(chǎn)品的適用范圍,使其在多數(shù)場景中都具有可行性,達到縮短研發(fā)周期、減少成本以及提高效率等多重效果。