第八屆“中國軟件杯”大學(xué)生軟件設(shè)計(jì)大賽,為使高校人才培養(yǎng)和新興信息產(chǎn)業(yè)需求的有效銜接,加快培育更多高端、優(yōu)秀軟件人才,增強(qiáng)產(chǎn)業(yè)自主創(chuàng)新能力,推動(dòng)我國軟件和信息技術(shù)服務(wù)業(yè)又好又快發(fā)展,切實(shí)增強(qiáng)學(xué)生們自主創(chuàng)新能力和實(shí)際動(dòng)手能力,大賽賽題原型來自全國軟件骨干企業(yè)的實(shí)際技術(shù)需求,逐步走出了一條產(chǎn)教互動(dòng)、合作共贏的人才培養(yǎng)路子。
(圖片來源:中國軟件杯官網(wǎng))
今年課工場作為專注于企業(yè)IT崗位人才培養(yǎng)的教育機(jī)構(gòu),深度參與本屆賽事,成為賽事支持單位和出題方,有本科生和高職兩道賽題入選題庫。
在過去的一段時(shí)間里,有不少本科組同學(xué)向課工場老師咨詢問題。今天呢,課工場為了解決各位同學(xué)的問題,特整理如下:
賽題名稱:基于深度學(xué)習(xí)的銀行卡號(hào)識(shí)別系統(tǒng)
組類: A 本科及以上
問題1:
銀行卡號(hào)檢測部分也是要求用深度學(xué)習(xí)嗎?單純用數(shù)字圖像處理可以嗎?
回答:
檢測部分建議用深度學(xué)習(xí),圖像處理算法也行,但是評分會(huì)比深度學(xué)習(xí)少
問題2:
GUI界面是需要開發(fā)在安卓上的還是在windows上?
回答:
都可以
問題3:
安卓只是作為一個(gè)圖像獲取并傳回,圖像處理在服務(wù)器端,處理結(jié)果在傳回安卓。這樣可以嗎?
回答:
可以的,GUI要求的目的不僅是提供友好的交互體驗(yàn),同時(shí)也是為滿足本項(xiàng)目一定工作量設(shè)計(jì)的。出色的GUI能得到相對高的評分,拉開與競爭對手的分?jǐn)?shù)。核心在于使用深度學(xué)習(xí)技術(shù)體系實(shí)現(xiàn)檢測與識(shí)別功能,GUI是錦上添花的加分項(xiàng)。
問題4:
用java開發(fā)和Python開發(fā)這個(gè)會(huì)存在評分差異嗎?
回答:
評分標(biāo)準(zhǔn)在賽題描述中有說明,推薦使用python,這一項(xiàng)并沒有作為評分依據(jù)。
問題5:
數(shù)據(jù)集沒標(biāo)注?
回答:
數(shù)據(jù)集有標(biāo)注,文件名就是卡號(hào),檢測部分可以去參考開源模型的做法,可以遷移學(xué)習(xí)
問題6:
要做成app嗎,要做成web項(xiàng)目嗎?
回答:
web與app形式均可,實(shí)現(xiàn)核心功能就可以,GUI涉及到評分,盡量做到用戶體驗(yàn)友好。
問題7:
既然有gui,還需要做app web嗎?可以用html?
回答:
Gui是用戶圖形界面,一種展示手段,做你擅長的就行。只需要一種,不需要都實(shí)現(xiàn)一遍,WEB做也沒問題
問題8:
最后核心功能評分的標(biāo)準(zhǔn)是什么,識(shí)別速度還是正確率?
回答:
此次比賽是綜合的比試,各方面都會(huì)綜合考慮,準(zhǔn)確率影響比重最大。
問題9:
此次比賽的重點(diǎn)強(qiáng)調(diào)內(nèi)容是?
回答:
深度學(xué)習(xí)技術(shù)體系
問題10:
我想問下智能手機(jī)算不算嵌入式硬件設(shè)備?
回答:
從用戶角度看,智能手機(jī)不能算嵌入式系統(tǒng),但從開發(fā)工程師角度看,智能手機(jī)仍然是嵌入式系統(tǒng)。
用戶角度
如今的智能手機(jī)已經(jīng)覆蓋了個(gè)人電腦大部分的功能,甚至有些功能是個(gè)人電腦沒有而智能手機(jī)才有的,所以智能手機(jī)可以認(rèn)為是一個(gè)通用計(jì)算機(jī)設(shè)備,而嵌入式系統(tǒng)的定義就明確了嵌入式系統(tǒng)是專用的計(jì)算機(jī)設(shè)備。因此,從用戶角度看,智能手機(jī)已經(jīng)不能算嵌入式系統(tǒng)了,應(yīng)該將智能手機(jī)歸于通用計(jì)算機(jī)一類。
工程師角度
至少在當(dāng)前,沒有辦法在智能手機(jī)上開發(fā)手機(jī)App,仍然需要在個(gè)人電腦上開發(fā)好App,然后將App下載到手機(jī)中運(yùn)行。手機(jī)App的開發(fā)環(huán)境和運(yùn)行環(huán)境是不一樣的,有一個(gè)交叉編譯的過程,這是典型的嵌入式軟件開發(fā)套路。所以,從開發(fā)工程師的角度看,智能手機(jī)仍然是個(gè)嵌入式系統(tǒng)。
問題11:
什么時(shí)候提交作品?
回答:
2019年6月15日之前。
問題12:
數(shù)據(jù)集中的圖片名稱,如 “382_b_0.png” 中的 b 有什么含義嗎?是否成品也要標(biāo)注字母?
回答:
①、前四位是數(shù)字,四位中沒有數(shù)字的就是“_”下劃線,后面緊跟的就是同樣數(shù)字的不同類別,這里是用字母區(qū)分的,方便用腳本做批量處理;
②、做來的功能就是說,拍一張銀行卡照片,放到系統(tǒng)里,系統(tǒng)把卡號(hào)位置標(biāo)出來,并把卡號(hào)輸出出來來即可;
問題13:
是否需要按四位四位摳出來?
回答:
最后輸出的結(jié)果,如果按銀行卡號(hào)的格式(包含空格)輸出出來,那么識(shí)別和檢測部分你肯定是高分,輸出一串?dāng)?shù)字也可以,分?jǐn)?shù)會(huì)稍低于第一種情況。
問題14:
最后結(jié)果是否需要得出是哪個(gè)銀行的卡?
回答:
不需要得出是哪個(gè)銀行卡。
問題15:
是否一定要用官方提供的數(shù)據(jù)集?
回答:
不需要,但使用數(shù)據(jù)增強(qiáng),有評分。
文本檢測的訓(xùn)練能提供數(shù)據(jù)集嗎?
回答:
不提供數(shù)據(jù)集,文本檢測有開源的算法可以參考
問題17:
深度學(xué)習(xí)建議使用指定軟件么?
回答:
建議使用python,tensorflow,keras,opencv等,不局限特定軟件,我提的是現(xiàn)在比較流行的框架與庫。符合深度學(xué)習(xí)的技術(shù)體系即可。
問題18:
關(guān)于數(shù)據(jù)增強(qiáng) 可以使用keras.preprocessing.image嗎?
回答:
如果這個(gè)api處理的圖像有效,你可以參考他的做法,這個(gè)模塊有評分,最好自己寫。按照評分標(biāo)準(zhǔn)去做。
問題19:
開源庫和開源框架可以使用嗎?
回答:可以用,但是核心部分涉及到評分,盡量體現(xiàn)出自己的編程思路,盡量去避免拿一個(gè)現(xiàn)成api實(shí)現(xiàn)一個(gè)功能。
問題20:
選用開源神經(jīng)網(wǎng)絡(luò)影響評分嗎?
回答:算法思想可以參考,直接用現(xiàn)成的分?jǐn)?shù)肯定不如自己做的分?jǐn)?shù)高,這需要自己衡量,實(shí)現(xiàn)難度,競爭對手能不能自己實(shí)現(xiàn);你要覺得別人都實(shí)現(xiàn)不了,你可以拿開源模型去做,但是要注明。本題本著促進(jìn)參賽選手學(xué)習(xí)深度學(xué)習(xí)技術(shù)的精神去設(shè)計(jì)的。
問題21:
在銀行卡卡號(hào)定位檢測中,需要完整的銀行卡圖片,但是比賽所給的完整的銀行卡圖片只有幾張,不夠模型的訓(xùn)練,所以請問是否可以自己加入一部分圖片進(jìn)行訓(xùn)練。
回答:
不一定需要完整的銀行卡,開拓下思路,可以使用自己的數(shù)據(jù)集
問題22:
需要什么設(shè)備來掃描銀行卡,還是一個(gè)上傳照片,用圖片呢?
回答:拍照上傳即可,不要求嵌入式。
問題23:
既然要盡量自己實(shí)現(xiàn)算法,為什么還推薦使用TensorFlow實(shí)現(xiàn)模型訓(xùn)練
回答:
tf只是框架,模型的卷積層結(jié)構(gòu)需要自己設(shè)計(jì)
問題24:
可以使用在線API是說比如KNN,CNN不能用機(jī)器學(xué)習(xí)框架自帶函數(shù)嗎
回答:
可以使用自帶函數(shù),不要用現(xiàn)成的功能性接口,就是說避免一句代碼,實(shí)現(xiàn)了文本檢測功能
問題25:
圖像預(yù)處理可以使用opencv嗎?
回答:
可以啊,盡量體現(xiàn)自己的編程思路,要評分的,如果按這個(gè)理論,那就要自己寫求導(dǎo)方法了,建議不要使用那種開源幫你封裝好的,然后一句話就掉用
問題26:
訓(xùn)練好之后的模型,可不可以部署在服務(wù)器,然后本地程序通過api調(diào)用。
回答:
可以,講解文檔中需證明服務(wù)器調(diào)用的是自己訓(xùn)練的模型.
問題27:
怎么衡量題目的非功能性需求“3.使用GPU(圖形處理器)加速計(jì)算?!笔遣皇沁_(dá)到要求?
回答:
訓(xùn)練過程需要使用gpu加速??梢允褂迷品?wù),代碼可以體現(xiàn)出來。
問題28:
可以推薦幾個(gè)相關(guān)云服務(wù)嗎?
回答:
aws
問題29:
請問開源工具包括開源ocr工具么?
回答:
包含,但是不要跑偏,涉及評分標(biāo)準(zhǔn)的慎重選擇,開源的資源請注明出處。
問題30:
識(shí)別模塊機(jī)器學(xué)習(xí)不提倡?只推薦深度學(xué)習(xí)嗎?
回答:
這個(gè)題是針對深度學(xué)習(xí)體系的,不是不提倡,評分肯定以深度學(xué)習(xí)為主線。
問題31:
“根據(jù)本賽題提供的數(shù)據(jù)集(共1084張卡號(hào)截圖及標(biāo)簽)實(shí)現(xiàn)數(shù)據(jù)增強(qiáng)模塊,將數(shù)據(jù)集中的每一張圖片使用數(shù)據(jù)增強(qiáng)方式擴(kuò)展為80張圖片”,中“將數(shù)據(jù)集中的每一張圖片使用數(shù)據(jù)增強(qiáng)方式擴(kuò)展為80張圖片”是什么意思?
回答:
做數(shù)據(jù)增強(qiáng)為了拓展數(shù)據(jù)集,可以拓展更多張,80張為參考值
問題32:
請問需要考慮圖片的旋轉(zhuǎn)嘛?
回答:
可以考慮,能提高識(shí)別模型的泛化能力。
"問題33:
數(shù)據(jù)集里下標(biāo)都是什么意思?例如:0000x_0.png每個(gè)字符都代表什么意思?
回答:
前四位代表卡號(hào),其中前四位里的下劃線代表空格。后面的字符代表對卡不同樣式,類型,卡號(hào)的區(qū)分,沒有別的意義。"
"問題34:
我看訓(xùn)練集圖片的標(biāo)簽,對于空格,使用下劃線表示的,是否意味著空格的標(biāo)簽就是下劃線?那最終測試集的圖片,一整串銀行卡號(hào)中出現(xiàn)空格的時(shí)候,識(shí)別出來的結(jié)果也要用下劃線表示,還是不顯示空格,只顯示一整串?dāng)?shù)字?
回答:
訓(xùn)練集前四位中的下劃線代表空格,后面的字符只是為區(qū)分卡號(hào)的不同樣式與種類,最終識(shí)別的時(shí)候,出現(xiàn)空格能識(shí)別出空格最好,用空格表示就行,識(shí)別不了空格那就輸出一串?dāng)?shù)字,評分具體按照評委意見,可以預(yù)見的是能識(shí)別空格的分?jǐn)?shù)肯定不會(huì)比識(shí)別不了空格的分?jǐn)?shù)低。"
"問題35:
請問空格識(shí)別出來是用下斜杠表示嗎我看官方數(shù)據(jù)是這樣,可以自己改變命名合適嗎?
回答:
可以修改"
"問題36:
只要求識(shí)別卡號(hào)嘛 如果我們自己寫的模型 識(shí)別率沒有套用現(xiàn)成的模型高。那么給分怎么給啊?
回答:
自己寫的占優(yōu)勢,但是識(shí)別率要跟已經(jīng)有的模型識(shí)別率相當(dāng),太低識(shí)別率縱是自己寫的,那么意義不大。"
"問題37:
目前比賽的基本要求內(nèi)容我已經(jīng)基本完成,也具有一定的識(shí)別率,但是我希望進(jìn)一步進(jìn)行識(shí)別率的提高,于是我對比了支付寶的銀行卡識(shí)別功能。
要想更加提高銀行卡號(hào)碼的識(shí)別率,最好將整張銀行卡橫平豎直完整的平鋪滿整個(gè)圖片,支付寶也就是這么做的。如果該比賽是為了將項(xiàng)目實(shí)用化,那大可借鑒支付寶的做法,拍照時(shí)讓銀行卡圖片鋪滿,識(shí)別準(zhǔn)確率可以有良好的提升空間。但是如果該比賽的目的并非實(shí)用化,目的就是訓(xùn)練具有偏斜以及有背景干擾的圖片(給的測試集數(shù)據(jù)的圖片銀行卡四周有背景邊緣,銀行卡還存在傾斜情況),只是作為一個(gè)比賽,那我就繼續(xù)當(dāng)前方法想辦法提升準(zhǔn)確率,但恐怕不會(huì)有質(zhì)的飛躍。
特在此向您提問,想了解一下比賽的目的是生活實(shí)用性還是這只是作為比賽的固定需求,如果是實(shí)用性,測試數(shù)據(jù)可否用平鋪滿銀行卡的圖片!
回答:
本賽題的主要目的,其一肯定是比賽競技本身,其二是通過賽題的引導(dǎo)促使參賽選手使用深度學(xué)習(xí)技術(shù),學(xué)習(xí)深度學(xué)習(xí)技術(shù)。
同時(shí)本賽題的生活背景是您提到的實(shí)用性,那么后面的測試數(shù)據(jù)跟您的附件效果圖類似,銀行卡的擺放不會(huì)嚴(yán)格水平,略微傾斜是很正常的情況。
建議您考慮一下提升準(zhǔn)確率,因?yàn)橥_(tái)競技選手可能會(huì)考慮到,從而避免模型的短板。 當(dāng)然,最終結(jié)果以評委老師為準(zhǔn)。"
"問題38:
在對作品進(jìn)行測試時(shí)會(huì)使用和數(shù)據(jù)集形式相同的圖片還是使用整張銀行卡圖片?
回答:
使用整張銀行卡圖片進(jìn)行測試
問題39:
對于準(zhǔn)確率的計(jì)算是“識(shí)別準(zhǔn)確的數(shù)字?jǐn)?shù)/總數(shù)字?jǐn)?shù)“還是”全部識(shí)別成功的圖片數(shù)/總圖片數(shù)“?
回答:
在你訓(xùn)練時(shí)候評估模型的準(zhǔn)確率是根據(jù)你的算法有不同的計(jì)算方式,如果您是基于切割字符然后通過預(yù)處理后處理技術(shù)連接起來的,那么準(zhǔn)確率是按字符識(shí)別正確的數(shù)目去計(jì)算;如果你是基于端到端,一起識(shí)別一串字符的,那么準(zhǔn)確率的計(jì)算是根據(jù)你的圖片數(shù)據(jù)進(jìn)行計(jì)算的,本賽題比較偏向后一種。
問題40:
測試用圖片是否會(huì)存在傾斜等情況?
回答:
測試用圖會(huì)有輕微傾斜,基本保持水平
問題45:
有沒有整張銀行卡圖片的數(shù)據(jù)集可以提供?
回答:
銀行卡數(shù)據(jù)有個(gè)人隱私性質(zhì),出題方不會(huì)提供整張銀行卡圖片的數(shù)據(jù)集"
"問題46:
除了使用本題目給出的數(shù)據(jù)進(jìn)行訓(xùn)練之外,是否允許使用網(wǎng)絡(luò)上獲取到的其他數(shù)據(jù)集一同訓(xùn)練?我們會(huì)在最終提交的文檔中說明所使用的數(shù)據(jù)及內(nèi)容。
回答:
可以使用其他的數(shù)據(jù)集進(jìn)行訓(xùn)練,注明來源即可。"
"問題47:
請問做銀行卡定位(基于CTPN的文本檢測模型)的時(shí)候,因?yàn)橘愵}沒有提供數(shù)據(jù)集,網(wǎng)上的開源模型針對銀行卡凸起的字體效果不好,我也找不到大量的銀行卡圖片自己訓(xùn)練,現(xiàn)在陷入了瓶頸。請問老師可以提供一點(diǎn)建議嗎?
回答:
可以自己收集小部分銀行卡照片,然后通過labelimg工具標(biāo)注一下數(shù)據(jù),將這些數(shù)據(jù)與開源的字符數(shù)據(jù)混合在一起去訓(xùn)練。"
"問題48:
不同語言寫的銀行卡定位與識(shí)別,應(yīng)該如何提交?:定位是用darknet實(shí)現(xiàn)的,darknet是用C語言實(shí)現(xiàn)的。識(shí)別是用python語言實(shí)現(xiàn)的。這兩種語言寫的程序需要的編譯環(huán)境不一樣,運(yùn)行的方式不同。您發(fā)出的提交文檔中是要求將定位和檢測放在一個(gè)demo.py里面執(zhí)行的,那對于不同的語言,可不可以分開提交,分開執(zhí)行。
回答:
cython是一個(gè)python與c/c++的雙向接口,你可以嘗試把c文件編譯為python可調(diào)用的pyd(win)或so(linux)文件。項(xiàng)目本身演示可以使用視頻錄制的方式提交,但是我們需要一個(gè)額外測試的程序入口,建議使用python去寫。這個(gè)程序入口主要是批量測試銀行卡識(shí)別的。
問題49:
可不可以提交APP類型的執(zhí)行文件。如果提交app類型的文件,服務(wù)器在本地,可不可以用視頻的形式展示識(shí)別結(jié)果。還是生成.exe執(zhí)行提交給您。
回答:盡量按照提交文檔細(xì)則的約定去寫,這樣無論哪個(gè)評審老師去測試,問題都不會(huì)太大"
"問題50:
我通過在開源文字定位模型的數(shù)據(jù)集里添加一些自己的銀行卡數(shù)據(jù)進(jìn)行訓(xùn)練后,現(xiàn)在成功在照片上分割出銀行卡卡號(hào)部位,同時(shí)也通過官方給定的數(shù)據(jù)集訓(xùn)練得到了識(shí)別模型。但是我發(fā)現(xiàn)這個(gè)模型只在識(shí)別4位左右的數(shù)字時(shí)效果較好。由于卡號(hào)部位是很長一段數(shù)字,數(shù)字格式、間隙也不定。如果直接訓(xùn)練可以分割這串?dāng)?shù)字的模型,由于銀行卡的特殊性,我無法找到足量的數(shù)據(jù)集;如果使用投影分割,凸起的字體效果很差。我目前沒有想到什么辦法可以較為準(zhǔn)確地分割這串?dāng)?shù)字。
回答:
建議去看一下CTC損失函數(shù)的資料。這個(gè)主要是在OCR里解決不定長度文本的識(shí)別。"
"問題51:
在對作品進(jìn)行測試時(shí)會(huì)使用和數(shù)據(jù)集形式相同的圖片還是使用整張銀行卡圖片?
回答:
測試會(huì)使用整張銀行卡
問題52:
對于準(zhǔn)確率的計(jì)算是“識(shí)別準(zhǔn)確的數(shù)字?jǐn)?shù)/總數(shù)字?jǐn)?shù)“還是”全部識(shí)別成功的圖片數(shù)/總圖片數(shù)“?
回答:
準(zhǔn)去率的計(jì)算是以全部識(shí)別成功的圖片數(shù)/總圖片數(shù)。
問題53:
測試用圖片是否會(huì)存在傾斜等情況?
回答:
測試用圖會(huì)有輕微傾斜,不會(huì)嚴(yán)格平行
問題54:
有沒有整張銀行卡圖片的數(shù)據(jù)集可以提供?
回答:
我們不能提供有私密性質(zhì)的數(shù)據(jù)集"
"問題55:
批量檢測銀行卡的結(jié)果文檔resulst.txt中,存放識(shí)別的銀行卡號(hào),現(xiàn)在識(shí)別出的銀行卡號(hào)中由于使用下劃線“_”代替空格,對于大多數(shù)銀行卡能將卡號(hào)之間的空格識(shí)別為下劃線""_"",當(dāng)然通過處理可以將下劃線""_""替換為空格,這樣更能體現(xiàn)銀行卡號(hào)原貌,也可以將空格去掉,只顯示銀行卡號(hào)數(shù)字,那么在寫入resulst.txt文件中,有3種方式:
1、寫入帶下劃線的銀行卡號(hào)。
2、寫入帶空格的銀行卡號(hào)。
3、去掉空格或下劃線""_"",只寫入銀行卡號(hào)數(shù)字。
result.txt示例文件只有銀行卡號(hào)數(shù)字,這三種方式使用哪種方式存儲(chǔ)result.txt文件?
回答:
如果你的算法識(shí)別空格的準(zhǔn)確率很高,那么建議采用你說的第一種做法,如果比較低,那么建議采用第三種。"
"問題56:
老師文檔是提交到源碼那欄還是 演示視頻那欄
回答:
演示視頻那欄,readme在源碼, 其余文檔都在視頻那欄"
"問題57:
交文檔的那個(gè)文件可以只寫分析視頻代碼嗎
回答:
主要體現(xiàn)分析過程,操作實(shí)踐過程寫明白就好,不要太展開講,表如果太多,可以簡單做個(gè)表格描述一下各個(gè)表的作用。"
"問題58:
構(gòu)建技能詞典的過程用不用錄視頻,還是直接拿來用就行
回答:
可以寫在文檔里"
"問題59:
老師可視化有什么要求嗎 我用java寫的程序 讀取表中的內(nèi)容 顯示出來算可視化嗎
回答:
可視化沒有具體要求
問題60:
必須實(shí)時(shí)以hbase作為后臺(tái)是吧
回答:
”是的,"
"問題61:
作品安裝 可執(zhí)行文件 還用交嗎
回答:
可執(zhí)行文件有的話,需要提交"
以上就是課工場為各位同學(xué)整理的基于深度學(xué)習(xí)的銀行卡號(hào)識(shí)別系統(tǒng)相關(guān)問題,希望能夠幫助到大家!