張安妮 葉文青 呂洵 任予行



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