軟件開發(fā)
室內(nèi)定位APP開發(fā)
基于OCR技術(shù)的室內(nèi)定位APP開發(fā)
隨著我國經(jīng)濟(jì)的不斷發(fā)展、人民生活水平的日益提高,各種室內(nèi)場(chǎng)所也趨向于大型化、復(fù)雜化,例如圖書館、醫(yī)院、大型超市、高鐵站、地下車庫等,在大型室內(nèi)環(huán)境下的定位需求也隨之產(chǎn)生。不同于GPS、北斗衛(wèi)星定位系統(tǒng)等室外定位系統(tǒng),室內(nèi)定位系統(tǒng)是移動(dòng)應(yīng)用領(lǐng)域的一大挑戰(zhàn)。
基于OCR技術(shù)的室內(nèi)定位系統(tǒng),是通過建立室內(nèi)的標(biāo)志物上的文字信息與其對(duì)應(yīng)坐標(biāo)的數(shù)據(jù)庫,使得用戶在GPS信號(hào)弱的室內(nèi),也可以享受較為精確的定位服務(wù)。通過手機(jī)上的APP對(duì)室內(nèi)標(biāo)志物的文字信息進(jìn)行拍照,如店鋪名、路牌、展品介紹等,APP中接入的OCR識(shí)別引擎會(huì)識(shí)別圖中的文字信息,然后傳輸?shù)椒?wù)器,在數(shù)據(jù)庫中對(duì)文字信息進(jìn)行檢索和匹配,匹配成功后返回坐標(biāo),并在APP上以地圖和坐標(biāo)點(diǎn)的形式顯示位置。
一、室內(nèi)定位APP的系統(tǒng)分析
1.1定位APP系統(tǒng)架構(gòu)
軟件的架構(gòu)需要UI組件、UI處理組件、百度OCR引擎、高德地圖SDK、數(shù)據(jù)訪問組件等。UI組件用來顯示用戶界面,百度OCR引擎提供文字識(shí)別服務(wù),高德地圖提供地圖源,軟件通過數(shù)據(jù)訪問組件和數(shù)據(jù)庫交換信息。此外,還需考慮到通信、運(yùn)行管理以及系統(tǒng)安全性等方面的問題。軟件架構(gòu)如圖1所示。
1.2室內(nèi)定位APP主要功能模塊
室內(nèi)定位APP主要包括6大功能模塊。
(1)注冊(cè)模塊:注冊(cè)方式為手機(jī)號(hào)或者郵箱注冊(cè),點(diǎn)擊獲取驗(yàn)證碼來驗(yàn)證手機(jī)號(hào)或者郵箱的正確性,防止惡意注冊(cè)或錯(cuò)誤注冊(cè)。驗(yàn)證成功后需要設(shè)置登錄密碼,填寫兩次且兩次密碼相同才算注冊(cè)成功,然后自動(dòng)登錄系統(tǒng),無需再次輸入賬號(hào)和密碼,同時(shí)系統(tǒng)將注冊(cè)信息傳輸?shù)椒?wù)器端,插入用戶表中。
(2)登錄模塊:用戶需要輸入賬號(hào)和密碼,如果不記得密碼的話可以點(diǎn)擊“忘記密碼”,驗(yàn)證手機(jī)號(hào)或者郵箱后可以重置密碼。點(diǎn)擊登錄后,登錄信息會(huì)傳輸?shù)綌?shù)據(jù)庫中進(jìn)行比對(duì),完全正確才能進(jìn)入主界面。
(3)設(shè)置模塊:在主界面中點(diǎn)擊齒輪圖標(biāo)后會(huì)進(jìn)入設(shè)置界面,可以在設(shè)置中選擇修改密碼、地圖管理、是否允許管理員進(jìn)行消息推送、是否允許WiFi下自動(dòng)下載最新版本軟件、清除緩存以及退出登錄等功能。其中,地圖管理是指可以下載指定城市的地圖,這樣可以節(jié)省流量,不必每次打開軟件后都要聯(lián)網(wǎng)接收地圖資源。
(4)OCR識(shí)別模塊:點(diǎn)擊頂部搜索欄右側(cè)的相機(jī)圖標(biāo)后,軟件會(huì)打開系統(tǒng)相機(jī)進(jìn)行拍照,然后自動(dòng)調(diào)用百度OCR引擎進(jìn)行識(shí)別,識(shí)別出的文字顯示出來后,用戶可以選擇手動(dòng)修改文字,修改好后上傳至服務(wù)器,或者直接上傳。
(5)地圖模塊:使用高德提供的地圖,根據(jù)服務(wù)器返回的坐標(biāo)信息,在地圖上顯示當(dāng)前位置。
(6)歷史記錄模塊:在主界面點(diǎn)擊時(shí)鐘圖標(biāo)后會(huì)進(jìn)入歷史記錄界面,可以看到用戶定位的記錄,包括時(shí)間、地點(diǎn)和OCR識(shí)別的文字信息。
1.3定位APP系統(tǒng)流程
打開軟件后點(diǎn)擊搜索框右側(cè)的相機(jī)圖標(biāo),打開手機(jī)相機(jī),拍攝照片后,系統(tǒng)會(huì)調(diào)用百度OCR引擎識(shí)別照片中的文字,識(shí)別失敗會(huì)提示用戶重新拍攝清晰的照片,識(shí)別成功后系統(tǒng)會(huì)將識(shí)別出的文字顯示出來,讓用戶檢查是否正確,若有錯(cuò)誤可以選擇手動(dòng)修改文字,無錯(cuò)誤則直接上傳至服務(wù)器,然后在數(shù)據(jù)庫中進(jìn)行查詢和匹配,匹配失敗就會(huì)返回到拍照界面,提示用戶重新選擇標(biāo)志物,匹配成功則會(huì)返回坐標(biāo)值,然后系統(tǒng)調(diào)用高德地圖源,顯示室內(nèi)地圖和坐標(biāo)點(diǎn),一次室內(nèi)定位完成。
二、APP設(shè)計(jì)的主要技術(shù)
2.1數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)在服務(wù)器端的MySQL數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫表,根據(jù)不同的數(shù)據(jù)格式,將數(shù)據(jù)分為用戶登錄數(shù)據(jù)、用戶行為數(shù)據(jù)以及位置坐標(biāo)數(shù)據(jù)3大類進(jìn)行存儲(chǔ)。用戶登錄數(shù)據(jù)包括用戶的登錄賬號(hào)和密碼等信息,由于這類數(shù)據(jù)相當(dāng)重要,不應(yīng)以明文的方式存儲(chǔ)在數(shù)據(jù)庫中,通過使用MySQL的AES_ENCRYPT函數(shù)加密數(shù)據(jù),因?yàn)榧用芎蟮臄?shù)據(jù)比較難看,所以再使用to_base64函數(shù)轉(zhuǎn)碼數(shù)據(jù),將加密后的用戶信息存儲(chǔ)在數(shù)據(jù)庫中。
用戶行為數(shù)據(jù)包括用戶使用該軟件進(jìn)行室內(nèi)定位的時(shí)間、OCR識(shí)別出的文本、用戶修改后的文本以及定位后的位置坐標(biāo)。該數(shù)據(jù)內(nèi)容供用戶在歷史記錄中查看,用戶可自行刪除。
位置坐標(biāo)數(shù)據(jù)包括室內(nèi)環(huán)境下特征物上的文字信息以及對(duì)應(yīng)的坐標(biāo)值。通過匹配用戶上傳的字符串,返回坐標(biāo),用于在手機(jī)客戶端顯示當(dāng)前所在位置并在地圖上進(jìn)行標(biāo)注。
2.2調(diào)用OCR接口
該軟件使用百度的OCR進(jìn)行文字識(shí)別,百度的OCR服務(wù)免費(fèi),不過每天有次數(shù)的限制,但對(duì)于學(xué)生項(xiàng)目來說夠用。首先,在百度AI開放平臺(tái)中進(jìn)入控制臺(tái),找到文字識(shí)別的產(chǎn)品服務(wù),創(chuàng)建應(yīng)用后填寫相關(guān)信息,獲得AK、SK。然后,下載license文件,在項(xiàng)目中如果直接用AK、SK明文調(diào)用百度的OCR,很不安全,可能會(huì)被別人反編譯之后獲得用戶的AK、SK,而license文件集成了AK、SK,放在項(xiàng)目中可以防止別人破解。之后,再下載百度OCR的Android SDK,添加進(jìn)項(xiàng)目中。準(zhǔn)備工作完成后就可以開始調(diào)用百度的OCR接口了。在需要進(jìn)行識(shí)別的頁面所在的文件中創(chuàng)建根據(jù)License文件初始化OCR實(shí)例的函數(shù),并在onCreate()方法中調(diào)用。接下來新建一個(gè)可以存放OCR的識(shí)別方法的類RecognizeService,在onActivityResult方法中,調(diào)用剛剛新建的類的recAccurateBasic方法,此方法接收3個(gè)參數(shù),分別是context、拍照獲取的圖片路徑和在RecognizeService類中定義的監(jiān)聽接口,在onResult方法中,返回的result字符串即為識(shí)別結(jié)果的json字符串,只需要對(duì)JSON進(jìn)行解析就能得到識(shí)別結(jié)果。
2.3獲取室內(nèi)地圖服務(wù)
該軟件使用高德提供的地圖服務(wù)。在高德開放平臺(tái)中進(jìn)入控制臺(tái),創(chuàng)建應(yīng)用,獲取API KEY,下載Android平臺(tái)下的地圖SDK文件,將解壓后的jar包導(dǎo)入工程中。開發(fā)環(huán)境配置好后,在工程的“AndroidManifest.xml”文件中添加用戶KEY和所需要的權(quán)限,在布局xml文件中添加地圖控件,創(chuàng)建地圖Activity,管理地圖生命周期。
總結(jié)
本文基于Android平臺(tái)設(shè)計(jì)并開發(fā)了基于OCR技術(shù)的室內(nèi)定位APP,為室內(nèi)定位提供了一個(gè)新的解決方案?,F(xiàn)階段比較成熟的室內(nèi)定位方案,是需要基礎(chǔ)設(shè)施的,比如室內(nèi)部署密集的接入點(diǎn)或者基站,例如各種傳感器,信號(hào)接收裝置,信號(hào)發(fā)射器等,成本較高,且需要維護(hù)設(shè)備。而基于OCR技術(shù)的室內(nèi)定位方案的成本是很低的,并不需要各種用來定位的設(shè)備,較為麻煩的只是第一步,建立坐標(biāo)庫。將室內(nèi)標(biāo)志物上的文字信息提取出來,并建立坐標(biāo)庫。這的確是不小的工作量,但是隨著OCR技術(shù)和人工智能技術(shù)的發(fā)展,未來可能只需用無人機(jī)將室內(nèi)所有場(chǎng)景拍攝下來,然后系統(tǒng)便可以自動(dòng)整理出圖片并匹配其對(duì)應(yīng)的坐標(biāo),導(dǎo)入數(shù)據(jù)庫中,這樣就可以大大降低工作量,甚至可以打開攝像頭,通過錄像的方式來實(shí)現(xiàn)室內(nèi)的實(shí)時(shí)定位。作為一種無需傳感器的室內(nèi)定位方案,它可以給我們提供更多的創(chuàng)新想法和研究方向。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于OCR技術(shù)的室內(nèi)定位APP開發(fā)技術(shù)。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗(yàn),可以盡快評(píng)估開發(fā)周期與IC價(jià)格,也可以核算PCBA報(bào)價(jià)。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計(jì)與軟件開發(fā)能力。涵蓋了電路設(shè)計(jì)、PCB設(shè)計(jì)、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號(hào)開發(fā)、語音識(shí)別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計(jì)、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計(jì)、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
- 返回頂部