課工場致力于打造更可靠的IT就業(yè)教育,一直以來專注于企業(yè)IT崗位專業(yè)人才培養(yǎng)業(yè)。此次課工場將作為IT培訓(xùn)領(lǐng)域的企業(yè)參與大賽命題工作。本次大賽課工場有本科生和高職兩道賽題入選題庫,同時課工場也將全程參與大賽作品的評審工作。
在過去的一段時間里,有不少本科組同學(xué)向課工場老師咨詢問題。今天呢,課工場為了解決各位同學(xué)的問題,特整理如下:
"問題33:定位銀行卡卡號是什么意思?
回答:就是將銀行卡卡號框起來"
"問題34:比賽用什么模型算法合適
回答:用到深度學(xué)習(xí)算法體系,具體用哪些神經(jīng)網(wǎng)絡(luò)架構(gòu),則有同學(xué)們自己考量,"
"問題35:數(shù)據(jù)集是不是只能用官方提供的?
回答:不是,咱們提供的數(shù)據(jù)集是給沒有數(shù)據(jù)集的同學(xué)使用的,你也可以用自己的數(shù)據(jù)集
問題36:數(shù)據(jù)集增強(qiáng)之后的圖片命名有要求嗎?
回答:沒要求,這個主意可讀性就可以,跟實現(xiàn)功能沒什么關(guān)系
問題37:卡號定位需要做神經(jīng)網(wǎng)絡(luò)模型來用么?
回答:需要"
"問題38:_001a_0.png,這個中間的字母a代表什么意思?后面的數(shù)字0代表什么意思?
回答:a代表不同類別,后面的0代表該類中的第一張圖
問題39:類別是指?
回答:相同的卡號,不同的樣式
問題40:老師推薦使用Tensorflow框架,那我使用這個庫的一些方法,會影響評分的嗎?
回答:使用tf的函數(shù)沒問題,我們沒必要從模型搭建訓(xùn)練部分就用原生實現(xiàn),避免重復(fù)造輪子的同時,原則上不去使用別人構(gòu)建好的、現(xiàn)成的一句代碼實現(xiàn)識別功能,一句代碼實現(xiàn)文本定位功能。"
"問題41:請問如何使用Python,最后需要提交.exe程序嗎
回答:編程語言不限,建議使用pyhton及深度學(xué)習(xí)框架進(jìn)行模型訓(xùn)練,最后的系統(tǒng)需要封裝GUI,形式不限,可以是手機(jī)app,web,桌面程序,最后模型可以部署到服務(wù)器,最終需要提供源碼,文檔。
問題42:訓(xùn)練是必須通過四個字一組的形式還是可以自己切開單個字
回答:這點沒有強(qiáng)制的限制,只要最后識別率高。但是分類器肯定要用到神經(jīng)網(wǎng)絡(luò)。因為我們的賽題是基于深度學(xué)習(xí)的。具體識別細(xì)節(jié),同是高準(zhǔn)確率的情況下,端到端的算法肯定優(yōu)于切分后單字符識別的算法。
問題43:數(shù)據(jù)增強(qiáng)模塊是運(yùn)行在識別模型訓(xùn)練過程中對讀取的數(shù)據(jù)集進(jìn)行預(yù)處理階段嗎?需要單獨做一個可視化界面嗎?
回答:不需要單獨做可視化,是訓(xùn)練前的數(shù)據(jù)預(yù)處理階段"
"問題44:可以直接用別人的文本定位分類器嗎
回答:自己實現(xiàn)不了,可以做遷移學(xué)習(xí),都做不了再用現(xiàn)成的,分?jǐn)?shù)依次降低
問題45:銀行卡識別可以用opencv嗎?
回答:可以用這個庫,但是不要用集成好的檢測識別功能,要用深度學(xué)習(xí),不要用傳統(tǒng)ocr的方法
"問題46:官方提供的數(shù)據(jù)集只有識別文本的部分,請問關(guān)于定位的數(shù)據(jù)集怎么辦?是否需要自己去尋找其他的定位的數(shù)據(jù)集?
回答:文本定位部分不提供銀行卡全圖數(shù)據(jù)集,實現(xiàn)方法可參考字符識別模型。"
"問題47:軟件杯關(guān)于深度學(xué)習(xí)識別銀行卡的數(shù)據(jù)集中并沒有標(biāo)注數(shù)據(jù)。是沒發(fā)還是發(fā)漏了?
回答:數(shù)據(jù)集中,圖像文件名為標(biāo)簽,前四位為銀行卡的卡號,后面字母為相同卡號不同卡片樣式的分類,再后面為該樣式的第n張(因為要用數(shù)據(jù)增強(qiáng))
問題48:根據(jù)本賽題提供的數(shù)據(jù)集(共1084張卡號截圖及標(biāo)簽)實現(xiàn)數(shù)據(jù)增強(qiáng)模塊,將數(shù)據(jù)集中的每一張圖片使用數(shù)據(jù)增強(qiáng)方式拓展為80張圖片,為之后的圖像識別訓(xùn)練提供充足的數(shù)據(jù)樣本,并且該模塊程序能夠繼續(xù)處理新加入的數(shù)據(jù)樣本。拓展為80張圖片 是什么意思?是否可以切割成四張?
回答49:拓展數(shù)據(jù)集的手段,使用數(shù)據(jù)增強(qiáng)技術(shù),將一個樣本拓展為更多的樣本;切割算一種,可以切分生成一些,其余的手段可以去查數(shù)據(jù)增強(qiáng)這個技術(shù)。"
"問題50:關(guān)于功能性需求2(程序定位銀行卡卡號), 是否必須使用深度學(xué)習(xí)方法, 我們是否可以使用傳統(tǒng)的OCR方法進(jìn)行定位, 如果可以, 這兩種方法得分有沒有差別.
回答:可以使用傳統(tǒng)ocr方式進(jìn)行定位,但是得分沒有深度學(xué)習(xí)算法得分高,本賽題有一個很重要的目的就是讓參賽選手學(xué)習(xí)DL
問題51:每個功能模塊的給分細(xì)則是怎樣的? 例如, 賽題中提到: 程序?qū)崿F(xiàn)銀行卡號字符識別15分, 那么我們只要將準(zhǔn)確率達(dá)到90%即可得到滿分嗎? 還是說有更詳細(xì)的評分細(xì)則, 其他功能模塊的給分標(biāo)準(zhǔn)又是什么?
回答:分?jǐn)?shù)評判標(biāo)準(zhǔn)出題方提供的評分參照,具體的評分細(xì)節(jié)要根據(jù)評委團(tuán)與參賽選手的表現(xiàn),90%acc肯定不是滿分,這一點可以確定。
問題52:賽題中提到了對程序運(yùn)行速度的要求, 具體是指程序哪一部分的運(yùn)行速度? 考慮到不同的硬件環(huán)境對程序運(yùn)行速度的影響很大, 比賽將如何衡量不同程序的運(yùn)行速度? 大賽組委會是否會提供統(tǒng)一的服務(wù)器環(huán)境來比較程序的運(yùn)行速度?
回答:因為每個賽題都會涉及到程序運(yùn)行速度問題,我們主要關(guān)注點在將一批圖片輸入進(jìn)去,圖像識別完成所需要的時間,關(guān)于組委會是否提供統(tǒng)一服務(wù)器環(huán)境,這一點還請咨詢組委會,出題方?jīng)]有權(quán)限確定這個問題。
"問題53:大賽提供的數(shù)據(jù)集只有四位一組的銀行卡號, 沒有整張銀行卡的圖片數(shù)據(jù)集讓我們來訓(xùn)練卡號定位模型, 大賽組委會是否可以向我們提供其他數(shù)據(jù)集? 我們是否需要自己收集數(shù)據(jù)集?
回答:定位銀行卡號不一定需要帶標(biāo)簽的銀行卡數(shù)據(jù)集,本身銀行卡涉及到一些隱私問題,還請開拓思路,我們要做的是字符定位。組委會不會提供更多的數(shù)據(jù)集,同樣自己可以收集數(shù)據(jù)集做訓(xùn)練。
問題54:在比賽最終提交作品后, 我們是否有必要自己搭建服務(wù)器來讓評委老師親自使用我們的程序進(jìn)行檢測, 自己搭建的服務(wù)器是否必須有GPU環(huán)境?
回答:出題方建議,保險起見,自己可以搭建服務(wù)器,最好使用GPU環(huán)境"
"問題55:題目要求中說操作系統(tǒng)可選Windows和Linux,請問是不是要做出來在Windows或者Linux上運(yùn)行的程序?還是只是使用Windows或者Linux開發(fā),最后做出來在手機(jī)上運(yùn)行的程序?是否可以選擇最后做成一個微信小程序?qū)崿F(xiàn)銀行卡識別的功能。
回答: 操作系統(tǒng)沒有明確固定系統(tǒng)的選擇,你最終可以做成手機(jī)上運(yùn)行的程序,但是識別檢測過程的性能你需要考慮,當(dāng)然你也可以配置到服務(wù)端,展示用手機(jī)上的小程序,然后去調(diào)服務(wù)端的結(jié)果。"
"問題56:在“其他要求”項目“3.模型在數(shù)據(jù)集中的準(zhǔn)確率要求達(dá)到90%”,這項要求是否是對提供的1000張卡號截圖的部分?jǐn)?shù)據(jù)進(jìn)行測試?
回答:這個準(zhǔn)確率是你在訓(xùn)練過程中的準(zhǔn)確率,就是模型收斂之后在驗證集上準(zhǔn)確率可以達(dá)到90%以上,具體訓(xùn)練集驗證集的劃分看你自己。
問題57:數(shù)據(jù)集中卡號截圖都是4位銀行卡號(含空格),是否訓(xùn)練時不用分割成單個字符,而是按照4位進(jìn)行訓(xùn)練,定位的實際銀行卡號也截取4位進(jìn)行識別?
回答:卡號訓(xùn)練是否要切分,這是同學(xué)需要考慮的,也是本賽題的一個難點,基于切分單字符的識別,還是端到端的識別由你們自己來定。
問題58:近期仔細(xì)閱讀了近幾年這方面的碩士論文,都提到對卡號分割成單個字符進(jìn)行識別,是否分割成單個字符訓(xùn)練效果更好?這方面有要求嗎?
回答:深度學(xué)習(xí)更提倡端到端的模式,目前以我所知,存在算法可以將不定長度的序列進(jìn)行端到端的識別"
"問題59:數(shù)據(jù)集里下標(biāo)都是什么意思?例如:0000x_0.png每個字符都代表什么意思?
回答:前四位代表卡號,其中前四位里的下劃線代表空格。后面的字符代表對卡不同樣式,類型,卡號的區(qū)分,沒有別的意義。"
"問題60:我看訓(xùn)練集圖片的標(biāo)簽,對于空格,使用下劃線表示的,是否意味著空格的標(biāo)簽就是下劃線?那最終測試集的圖片,一整串銀行卡號中出現(xiàn)空格的時候,識別出來的結(jié)果也要用下劃線表示,還是不顯示空格,只顯示一整串?dāng)?shù)字?
回答:訓(xùn)練集前四位中的下劃線代表空格,后面的字符只是為區(qū)分卡號的不同樣式與種類,最終識別的時候,出現(xiàn)空格能識別出空格最好,用空格表示就行,識別不了空格那就輸出一串?dāng)?shù)字,評分具體按照評委意見,可以預(yù)見的是能識別空格的分?jǐn)?shù)肯定不會比識別不了空格的分?jǐn)?shù)低。"
備注:如想查看以往本科組問答,請看《【本科組】第八屆“中國軟件杯”大學(xué)生軟件設(shè)計大賽,課工場問答集錦!》