張安妮 葉文青 呂洵 任予行
關(guān)鍵詞:Flutter;跨平臺(tái);OCR;記賬軟件
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)21-0058-03
0 引言
記賬是理財(cái)?shù)氖滓襟E之一,有助于控制收支情況和實(shí)現(xiàn)財(cái)富的增值保值[1]。生活中的消費(fèi)提高,國(guó)民對(duì)財(cái)務(wù)的管理更加重視, 隨著移動(dòng)端的快速發(fā)展,記賬軟件也開(kāi)始向移動(dòng)平臺(tái)轉(zhuǎn)移。由于移動(dòng)設(shè)備的便攜性和使用率,越來(lái)越多的人選擇使用手機(jī)記賬軟件,現(xiàn)在市面上手機(jī)記賬軟件功能已經(jīng)很全面,但是大多數(shù)的記賬App都需要手工錄入才能記賬[2]。此外為了提高跨平臺(tái)開(kāi)發(fā)效率和減少開(kāi)發(fā)成本,跨平臺(tái)方案被不斷提出,也引出了眾多跨平臺(tái)技術(shù),例如uni? app和Flutter等[3]。
基于此本次創(chuàng)新的將OCR技術(shù)運(yùn)用在小票識(shí)別中,使用Flutter框架實(shí)現(xiàn)跨平臺(tái)開(kāi)發(fā),實(shí)現(xiàn)一碼多用,降低開(kāi)發(fā)成本。服務(wù)端采用SpringBoot+Mybatis?plus, 實(shí)現(xiàn)前后端開(kāi)發(fā),提高開(kāi)發(fā)效率。
1 需求分析
1.1 用戶(hù)調(diào)研
本次調(diào)研首先將小組成員分為三組,針對(duì)青年(19~45歲),中年(45~60歲),老年人(60歲以上)三大用戶(hù)群進(jìn)行產(chǎn)品功能創(chuàng)新。青年組數(shù)據(jù)來(lái)源于小紅書(shū)帖子,本年齡段群體總共有效回答340份,其中男性有54人,占比15.9%,女性286人,占84.1%;中年組數(shù)據(jù)通過(guò)設(shè)計(jì)調(diào)查問(wèn)卷實(shí)現(xiàn),本年齡段群體總共有效調(diào)查202人,主要來(lái)自5個(gè)省份;老年組數(shù)據(jù)通過(guò)設(shè)計(jì)調(diào)查問(wèn)卷,共收到78份有效調(diào)查結(jié)果。
最終統(tǒng)計(jì)得到三組功能需求,如圖1為青年組功能需求。
1.2 競(jìng)品分析
記賬軟件是一種方便用戶(hù)記錄財(cái)務(wù)信息的應(yīng)用程序。目前市面上的記賬本軟件種類(lèi)繁多,功能也千差萬(wàn)別[4]。通過(guò)對(duì)市場(chǎng)上幾種主流記賬本軟件的功能分析,可以幫助開(kāi)發(fā)人員了解當(dāng)前市場(chǎng)需求,從而制定更加符合用戶(hù)需求的開(kāi)發(fā)計(jì)劃。通過(guò)分析目前市面上記賬本軟件的功能差異,可以為開(kāi)發(fā)記賬軟件提供參考和建議。
目前市面上有不少記賬軟件包括但不局限于例如隨手記、有魚(yú)記賬、小青帳、鯊魚(yú)記賬。這些主流軟件和本軟件對(duì)比如表1所示。
2 項(xiàng)目創(chuàng)新點(diǎn)及特色
本軟件采用Flutter開(kāi)發(fā)跨平臺(tái)智能記賬軟件,旨在幫助用戶(hù)輕松管理個(gè)人財(cái)務(wù),實(shí)現(xiàn)財(cái)務(wù)自由和生活目標(biāo)。該軟件集成了多種實(shí)用功能,包括快速記賬、收支明細(xì)、數(shù)據(jù)可視化分析、預(yù)算管理等,可以幫助用戶(hù)全面掌握自己的財(cái)務(wù)狀況。
本軟件的核心創(chuàng)意是將記賬軟件與人工智能技術(shù)結(jié)合,采用OCR識(shí)別票據(jù)數(shù)據(jù),提供圖像增強(qiáng)處理,為用戶(hù)提供更加智能化的財(cái)務(wù)管理服務(wù)。此外針對(duì)老年用戶(hù)也提供了簡(jiǎn)約版操作。
3 關(guān)鍵技術(shù)
3.1 數(shù)據(jù)同步
為了實(shí)現(xiàn)安卓端和蘋(píng)果端數(shù)據(jù)同步,本次將服務(wù)端維護(hù)的數(shù)據(jù)存取在阿里云服務(wù)器中,用戶(hù)通過(guò)聯(lián)網(wǎng)即可實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)同步。
3.2 OCR 票據(jù)識(shí)別
隨著移動(dòng)支付的普及,越來(lái)越多的消費(fèi)者選擇使用手機(jī)掃碼支付來(lái)完成購(gòu)物[5]。在這種情況下,商家通常會(huì)提供小票來(lái)記錄購(gòu)買(mǎi)的商品和金額等信息。然而,傳統(tǒng)的手動(dòng)錄入小票信息的方式存在效率低下、容易出錯(cuò)等問(wèn)題。因此,OCR技術(shù)可以自動(dòng)化地識(shí)別小票上的文本信息,提高小票信息的處理效率和準(zhǔn)確性,為消費(fèi)者提供更好的購(gòu)物體驗(yàn)[6]。
但是,由于文本圖片的質(zhì)量不同,OCR識(shí)別的準(zhǔn)確性也會(huì)受到影響。因此,對(duì)于一些低質(zhì)量的圖像,需要進(jìn)行圖片增強(qiáng)處理,以提高OCR識(shí)別的準(zhǔn)確性。OCR識(shí)別小票的流程主要分為以下幾步:獲取圖片、圖像預(yù)處理、OCR識(shí)別、信息解析,即將OCR識(shí)別出的文本信息進(jìn)行解析,如解析商品名稱(chēng)、數(shù)量、價(jià)格、訂單號(hào)等信息,最后將數(shù)據(jù)存儲(chǔ)。
在日常生活中,人們所涉及的消費(fèi)類(lèi)型多且雜的,僅僅滿(mǎn)足一種消費(fèi)類(lèi)型是遠(yuǎn)遠(yuǎn)不夠應(yīng)對(duì)人們的日常生活的。軟件在識(shí)別火車(chē)票、外賣(mài)票的基礎(chǔ)上,還支持識(shí)別出租車(chē)票、電子發(fā)票、電影票、購(gòu)物小票、船票等消費(fèi)小票。技術(shù)方面主要選用了合合信息所提供的票據(jù)分類(lèi)接口、國(guó)內(nèi)通用票據(jù)識(shí)別接口以及商戶(hù)小票識(shí)別接口。
主要實(shí)現(xiàn)過(guò)程如下:
1) 先對(duì)上傳的圖片進(jìn)行票據(jù)分類(lèi),識(shí)別出屬于哪一類(lèi)票據(jù)。
2) 如果屬于購(gòu)物小票、電影票以及外買(mǎi)票,則調(diào)用商戶(hù)小票識(shí)別接口。
3) 對(duì)于其他類(lèi)型的小票,則統(tǒng)一使用國(guó)內(nèi)通用票據(jù)識(shí)別接口。
對(duì)于第2點(diǎn),主要是出于精確度的考慮,商戶(hù)小票這一類(lèi)票據(jù)使用國(guó)內(nèi)通用票據(jù)識(shí)別接口識(shí)別出的效果并不是特別理想,所以單獨(dú)提出來(lái)使用專(zhuān)用的商戶(hù)小票識(shí)別接口進(jìn)行處理,提高數(shù)據(jù)的準(zhǔn)確性。對(duì)于第3點(diǎn),其他類(lèi)型接口使用國(guó)內(nèi)通用票據(jù)識(shí)別接口識(shí)別后,根據(jù)識(shí)別結(jié)果中的type值判斷對(duì)應(yīng)的消費(fèi)類(lèi)型,找到所屬的消費(fèi)類(lèi)型后,再進(jìn)行金額、創(chuàng)建時(shí)間等消費(fèi)信息的提取處理。
綜上,OCR錄入消費(fèi)信息總體流程如圖2所示:
3.3 批量圖像導(dǎo)入
為了方便用戶(hù)快速地將多張圖片中的賬單信息批量導(dǎo)入記賬軟件,減少手動(dòng)錄入的時(shí)間和工作量。本次在前端實(shí)現(xiàn)了通過(guò)圖片識(shí)別技術(shù),自動(dòng)識(shí)別圖片中的賬單信息,并將其轉(zhuǎn)化為數(shù)據(jù)存儲(chǔ)在記賬軟件中,以提高記賬效率和準(zhǔn)確性。
1) 初始化階段:在組件初始化的時(shí)候,會(huì)根據(jù)傳入的參數(shù)進(jìn)行一些初始化操作。例如,如果傳入了一個(gè)item,那么會(huì)根據(jù)item的值設(shè)置一些文本框的初始值,并將圖片的路徑列表images賦值為item中的ima? geUrl字段的值。
2) 選擇圖片階段:在點(diǎn)擊floatingActionButton 上的image按鈕后,會(huì)彈出一個(gè)圖片選擇框,用戶(hù)可以選擇多張圖片。選擇完成后,會(huì)將所有圖片的路徑存儲(chǔ)到files列表中。
3) 預(yù)處理階段:在點(diǎn)擊floatingActionButton 上的upload按鈕后,會(huì)遍歷files列表中的所有圖片,針對(duì)每一張圖片,調(diào)用寫(xiě)好的ocr方法進(jìn)行圖片識(shí)別。ocr方法返回一個(gè)Map類(lèi)型的數(shù)據(jù),其中包含了圖片中的一些信息,例如商品名稱(chēng)、價(jià)格等。
4) 處理階段:根據(jù)ocr方法返回的結(jié)果,更新一些文本框的值同時(shí),會(huì)將所有識(shí)別出的商品信息保存到數(shù)據(jù)庫(kù)中,以便后續(xù)的查詢(xún)和統(tǒng)計(jì)。
5) 清理階段:在處理完所有圖片后,會(huì)彈出一個(gè)成功提示框,告知用戶(hù)圖片上傳成功。同時(shí),會(huì)將files列表清空,以便下次選擇圖片。
4 軟件具體實(shí)現(xiàn)
4.1 系統(tǒng)總體結(jié)構(gòu)圖
本軟件共分五大模塊,其中包括跨平臺(tái)數(shù)據(jù)同步、消費(fèi)信息錄入和消費(fèi)數(shù)據(jù)的展示與編輯三個(gè)基礎(chǔ)功能,此外包括一些智能算法的高級(jí)功能和針對(duì)各種用戶(hù)需求開(kāi)發(fā)的其他功能。
由于功能較多,下面將展示幾個(gè)主要功能的實(shí)現(xiàn)。
4.2 首頁(yè)
主界面底部有四個(gè)導(dǎo)航欄,分別是主頁(yè)、詳情、報(bào)表和發(fā)現(xiàn)。主頁(yè)中間使用時(shí)間序來(lái)展示用戶(hù)的收入和支出總數(shù),點(diǎn)擊具體日期可查看這一天的收支明細(xì),如圖4所示。
4.3 記賬
記賬的方式有三種,第一可以人工錄入消費(fèi)數(shù)據(jù),第二是進(jìn)行OCR識(shí)別,第三是可以批量記賬。點(diǎn)擊上傳圖片的按鈕,選擇拍照或者從相冊(cè)選擇圖片,選擇是否進(jìn)行圖片增強(qiáng)處理,然后點(diǎn)擊圖片中的識(shí)別按鈕,進(jìn)行OCR識(shí)別,最后點(diǎn)擊保存按鈕來(lái)保存消費(fèi)數(shù)據(jù)。批量導(dǎo)入界面的右下角有兩個(gè)懸浮按鈕,點(diǎn)擊上面一個(gè),可以從相冊(cè)中選中多選圖片導(dǎo)入,再點(diǎn)擊下面一個(gè)懸浮按鈕進(jìn)行識(shí)別,識(shí)別出來(lái)的消費(fèi)數(shù)據(jù)將存儲(chǔ)到數(shù)據(jù)庫(kù),并顯示在頁(yè)面上,如圖5所示:
4.4 用戶(hù)信息
在底部導(dǎo)航欄的任意一個(gè)界面左滑,打開(kāi)抽屜界面,主要有以下幾個(gè)模塊,收入類(lèi)型、支出類(lèi)型、分析報(bào)表、批量導(dǎo)入、切換老年版和登出。左滑打開(kāi)抽屜,點(diǎn)擊抽屜界面的用戶(hù)名,會(huì)進(jìn)入用戶(hù)信息界面,在這里可以更改用戶(hù)名和修改密碼,也可以添加個(gè)性簽名,如圖6所示。
4.6 模式切換
切換老年版界面是普通模式的簡(jiǎn)約版,它去掉了報(bào)表界面和發(fā)現(xiàn)界面,并且把字體調(diào)大了,如圖7所示,解決老年人在視覺(jué)上可能存在的一些問(wèn)題,如視力下降、老花眼等,提高軟件的可讀性和可用性,從而為老年人提供更好的數(shù)字體驗(yàn)。
5 結(jié)束語(yǔ)
本軟件通過(guò)對(duì)用戶(hù)和市場(chǎng)進(jìn)行調(diào)研,開(kāi)發(fā)了一款跨平臺(tái)的智能記賬軟件。本軟件創(chuàng)新性地實(shí)現(xiàn)了跨平臺(tái)的財(cái)務(wù)管理服務(wù),具備OCR智能記賬功能,并為面向更多年齡層而推出了簡(jiǎn)約版模式,同時(shí)還積極推廣品牌,成為全面、便捷的財(cái)務(wù)管理解決方案。在軟件中,用戶(hù)可以輕松管理自己的財(cái)務(wù),包括收入、支出等方面。該軟件不僅具有快速記賬的功能,還提供了數(shù)據(jù)可視化分析,幫助用戶(hù)更好地了解自己的財(cái)務(wù)狀況。特別是為了提高記賬效率,開(kāi)發(fā)者提高了OCR錄入,為了確保準(zhǔn)確性和穩(wěn)定性,采用了分類(lèi)識(shí)別的方法,根據(jù)不同類(lèi)型的票據(jù)調(diào)用不同的接口進(jìn)行識(shí)別,此外也利用OCR實(shí)現(xiàn)了批量圖片的導(dǎo)入,做到無(wú)痛快速記賬。