項目 | 內容 |
---|---|
這個作業屬於哪個課程 | BUAA2019軟件工程 |
這個作業的要求在哪里 | 作業要求 |
我們在這個課程的目標是 | 學會團隊合作,共同開發一個完整的項目 |
這個作業在哪個具體方面幫助我們實現目標 | 項目功能規格制定與說明 |
項目描述
- 項目名稱:基於模板的表單數據自動化生成及應用
- 項目背景:本項目是基於微軟表單識別和OCR服務的一個擴展工具。
- 在各類表單識別和OCR服務的機器學習模型中,訓練數據占據很重要的地位。而真實表單中數據往往涉及用戶隱私,不能直接使用,因此需要花費大量的資金和人力偽造一些與真實表單各個字段值相近的“虛假”表單作為訓練數據。我們希望能夠設計一個表單數據自動化生成工具,它能根據用戶提供的空白表單和表單中各個字段的生成要求,自動隨機生成多個滿足用戶要求的標注好的高質量表單,作為訓練數據以供各個表單識別項目開發者使用,從而節省花費在訓練數據上的人力物力。
- 目前微軟表單識別項目中,用戶需要手動對若干張同類型表單進行標注並訓練,才能夠預測新的表單,費時費力。因此,我們還希望將該工具嵌入微軟表單識別項目中,使得用戶不再需要人工標注多個表單,只需要一次設定好生成表單的要求,即可投入任意數量的訓練數據進行訓練,節省了標注時間。
- 面向的用戶:
- 任意表單識別項目的開發和測試人員
- 使用微軟表單識別項目的所有用戶
- 項目開發者:
Name-Not-Found團隊
典型用戶
卡羅爾·狗蛋·史密斯
用戶信息 | 用戶情況 |
---|---|
姓名 | 卡羅爾·狗蛋·史密斯 |
用戶身份 | 微軟表單項目開發測試人員 |
用戶情況 | 為了測試項目的bug,需要雇用大量的人力來填寫表單 |
用戶痛點 | 大量人力意味着大量的薪水,另外耗時較多 |
典型場景 | 新的模型開發出來了,又到了緊張刺激的訓練和測試環節,但是真實表單數據,公司有要求不讓用,只能花錢請人偽造表單來訓練測試了,又費時又費錢。發現有一個自動生成表單數據的項目,可以把數據生成到Azure里,還能下載下來,真是非常方便呀! |
用戶比例 | 10% |
重要性 | *****非常重要,開發測試者的時間非常寶貴,節省下來的時間與財力可以用於更多有意義的事 |
歐陽翠花
用戶信息 | 用戶情況 |
---|---|
姓名 | 歐陽翠花 |
用戶身份 | 某公司會計 |
用戶水平 | 編程能力較低、工作壓力大 |
用戶動機 | 想要統計本年度公司的支入支出情況 |
用戶痛點 | 面對海量發票,眼花繚亂,一個不小心就會算錯賬 |
典型場景 | 公司又派發了大量相同格式的重要客戶的發票讓翠花統計,這些發票中各個字段都是常見的如姓名、金額之類的格式非常固定的東西,而且這些客戶過於重要,翠花不敢找一些不知名的工具把這些發票上傳到他們的服務器上,更信任比如Azure Storage這樣可靠的大公司提供的存儲服務。這時候,翠花發現智能表單識別項目,上傳一張空白發票后,只需要自己設定每個字段的要求就可以自動生成標注好的數據,而且最重要的是姓名、金額等常見字段的要求也已經幫他設定好了,而且可以記住某個字段曾經的要求,這樣別的格式的發票生成也不愁啦,會節省大量時間,因此成為了忠實用戶。 |
用戶比例 | 30% |
重要性 | ***重要,如果能讓他們體會到本產品的便利性,他們會更願意宣傳本產品 |
諸葛鐵柱
用戶信息 | 用戶情況 |
---|---|
姓名 | 諸葛鐵柱 |
用戶身份 | 其他表單項目使用者 |
用戶情況 | 為了滿足一定需求,發起了線下問卷等 |
用戶動機 | 想要將這些問卷進行統一的處理 |
用戶痛點 | 面對眾多紙質問卷,人工輸入數據太過麻煩 |
典型場景 | 鐵柱在做線下用戶調查,最后得到了許多手寫的紙質問卷,這些問卷的字段值都不是常見的固定格式的東西,更偏向用戶自由發揮,他想要直接使用表單識別服務幫他處理這些問卷,但大多數表單服務都需要自己標注一定數量的問卷,這時候他發現了這個智能表單識別項目,這個項目只需要設定一次空白模板就可以自己生成數據訓練進行預測,而且還可以設定生成句子的長度、位置,甚至可以設置字體,打眼一看和真實問卷沒什么區別,有這么多自動生成的不用花自己時間就有得優質數據訓練,相信最后預測的效果一定很好。 |
用戶比例 | 60% |
重要性 | ***重要,如果能讓他們體會到本產品的便利性,他們會更願意宣傳本產品 |
界面原型設計
安裝運行授權與原項目相同,下面只進行涉及本項目的簡單介紹詳見這里
頁面 | 功能描述 | 原型設計 |
---|---|---|
Home | 點擊New Project,填寫相關信息,在Azure上上傳好空白表單 | ![]() |
Tag Editor | 在標簽編輯頁面下選定已經自動識別好的文字作為tag,並手動划出該Tag下,用戶想要采集/生成的數據位置,設置用戶想要生成的數據的屬性(如生成數量、數據各類型比例,數字大小范圍、語言、字體等等) | ![]() |
Datas | 在數據頁面下,輸入一個整數表示想要生成的數據的數量,點擊Generate按鈕即可根據用戶設置好的表單要求生成一系列訓練數據。若用戶需要下載生成得到的表單文件(pdf形式)以及相應的標注數據(json格式)自行使用,點擊Download即可將數據下載到本地 | ![]() |
Train | 數據生成完成之后,點擊Train即可利用生成的數據進行訓練,並得到訓練中准確率、訓練時長、訓練模型保存ID等反饋信息 | ![]() |
Predict | 將需要處理/預測的數據上傳,點擊Predict即可得到預測結果 | ![]() |
驗收標准
功能 | 描述 | 驗收標准 |
---|---|---|
數據采集范圍划分 | 保證用戶能夠根據自己的意願划出需要的數據范圍 | 能夠支持划分操作 |
數據屬性設置 | 用戶可以通過設置相關屬性對自動生成的數據進行標准化 | 保證用戶設置的屬性能夠精確的傳遞給后台 |
隨機數據生成 | 生成用戶要求的數據以供生成PDF文件 | 保證數據在用戶的要求下盡可能隨機(包括字體字號距離邊框的位置等) |
PDF合成 | 通過隨機生成的數據和空白模板進行合成 | 保證生成出來的PDF文件不會失真,當隨機數據過長時,不會超出格外 |
數據訓練 | 通過幾個樣本進行訓練 | 保證生成好的文件可以被OCR項目直接調用,進行訓練並預測 |
數據下載 | 支持用戶下載生成好的數據 | 支持在線預覽,和選擇性下載、全選下載 |
可能的副作用
- 生成的數據是根據用戶標注的字段范圍確定的,可能和真實情況下的數據出入比較大,但是生成數據的優勢是可以考慮到極端情況。
- 實際情況的表單里填寫的數據不一定規矩地分布在框框內,可能模擬出的文件無法完整的考慮到各種意外情況,如數據字段在界限外等;在后續階段也是可以進一步優化的點。
- 關於表單里簽名的模擬,需要考慮到各種手寫字體,這個功能的實現比較有挑戰性;但是依照敏捷開發最小可用產品的原則,我們在開發出第一個版本后將會開發中逐漸完善這項功能。