摘要:本文介紹了中小學(xué)學(xué)校環(huán)境下,人工智能模型訓(xùn)練所需的個(gè)性化圖像數(shù)據(jù)集的設(shè)計(jì)、收集、制作等過(guò)程,其中的關(guān)鍵技術(shù)是運(yùn)用Python語(yǔ)言編程,對(duì)大批量的圖像進(jìn)行分割、重命名、分類保存等批處理操作,快速高效地生成個(gè)性化的數(shù)據(jù)集。
關(guān)鍵詞:個(gè)性化數(shù)據(jù)集;Python;圖像分割;批處理;人工智能
中圖分類號(hào):G434 ?文獻(xiàn)標(biāo)識(shí)碼:A ?論文編號(hào):1674-2117(2022)13-0070-03
人工智能的智能識(shí)別算法往往取決于人工智能模型的訓(xùn)練,而數(shù)據(jù)集則是人工智能模型訓(xùn)練的基礎(chǔ)??v觀網(wǎng)絡(luò)資源,雖有著海量的資源網(wǎng)站,卻難以找到符合項(xiàng)目的數(shù)據(jù)集,更別提能滿足個(gè)性化的人工智能模型訓(xùn)練的需求了。因此,本文將以電路、天氣、表情等圖標(biāo)為例,對(duì)中小學(xué)校園中個(gè)性化數(shù)據(jù)集創(chuàng)建展開討論。
● 問(wèn)題提出
由于校園中人工智能項(xiàng)目,需要?jiǎng)?chuàng)建一系列的人工智能圖像識(shí)別模型來(lái)實(shí)現(xiàn)簡(jiǎn)單的電路、天氣、表情等圖標(biāo)的識(shí)別功能,而在強(qiáng)大的網(wǎng)絡(luò)中并沒(méi)有現(xiàn)成的電路、天氣、表情等圖標(biāo)的數(shù)據(jù)集,因此如何動(dòng)手創(chuàng)建數(shù)據(jù)集成了項(xiàng)目開展的關(guān)鍵。
● 思考、分析與設(shè)計(jì)
用于人工智能模型訓(xùn)練的數(shù)據(jù)集需要滿足一定的數(shù)量,因?yàn)橛袑W(xué)生的助力,中小學(xué)中數(shù)據(jù)集的制作非常容易實(shí)現(xiàn),其關(guān)鍵的三個(gè)環(huán)節(jié)分別是:①獲得紙質(zhì)數(shù)據(jù)集原始圖像,轉(zhuǎn)為數(shù)字原始圖像;②從數(shù)字原始圖像中分割得到電路、天氣等圖標(biāo);③按圖標(biāo)分類保存圖標(biāo)。其中,環(huán)節(jié)②和環(huán)節(jié)③可通過(guò)編寫程序批量處理實(shí)現(xiàn)。
1.數(shù)據(jù)集收集表的分析與設(shè)計(jì)
本文中涉及的數(shù)據(jù)集包含電路、天氣、表情和植物4種圖像數(shù)據(jù),其中每種圖像數(shù)據(jù)中又有4個(gè)小分類,具體如表1所示。
為了保證學(xué)生繪制圖標(biāo)和后期圖像批量處理的質(zhì)量,需要進(jìn)行范例圖標(biāo)的設(shè)計(jì)和手繪區(qū)域的設(shè)計(jì)。在Word空白文檔中,插入一張表格,參數(shù)如表2所示。在數(shù)據(jù)集收集表文檔中增加提示性文字和范例圖標(biāo)(如下頁(yè)圖1)。
2.圖像處理的算法分析
如下頁(yè)圖2所示,手繪圖標(biāo)分別位于區(qū)域1至區(qū)域16的位置,批量分割區(qū)域1至16并分類存放,是圖像處理算法的核心。鑒于Python語(yǔ)言語(yǔ)法簡(jiǎn)單、圖像處理庫(kù)豐富的特點(diǎn),本案例采用Python中的pillow庫(kù)編程實(shí)現(xiàn)圖像批量分割、分類處理。
圖像的分割裁剪,需知待分割區(qū)域的左上角和右下角點(diǎn)的坐標(biāo),如分割區(qū)域1需知點(diǎn)A1和A7的坐標(biāo)。
以A0為原點(diǎn)(0,0)建立平面直角坐標(biāo)系,如圖3所示。
由于每個(gè)單元格的寬度、高度大小統(tǒng)一,因此A1至A40點(diǎn)的坐標(biāo)數(shù)值間的關(guān)系如下:
(w為表格寬度;h為表格高度)
裁剪數(shù)字原始圖像,僅留表格部分,w、h分別為新圖像的寬度、高度。因此,圖像分割分類前需進(jìn)行預(yù)處理:裁剪圖像,僅留表格區(qū)域。
● 核心代碼
根據(jù)以上分析,圖像處理一共分為以下幾步:①圖像預(yù)處理,得到表格寬度w、高度h數(shù)據(jù);②計(jì)算區(qū)域坐標(biāo);③分割圖像,分類存儲(chǔ)。
1.圖像預(yù)處理核心代碼(如下頁(yè)圖4)
2.計(jì)算區(qū)域坐標(biāo)核心代碼
定義imageCutXY函數(shù),獲取待分割區(qū)域坐標(biāo),代碼如下頁(yè)圖5所示。
3.圖像分割、分類核心代碼
在imageCut函數(shù)代碼基礎(chǔ)上,增加圖像分類代碼,圖像分類的命名如表3所示。
因篇幅有限,僅展示1個(gè)大類的圖片分類保存的核心代碼,如下頁(yè)圖6所示。
圖像分割批處理的主程序代碼如下頁(yè)圖7所示。
● 數(shù)據(jù)集制作
有了前期的準(zhǔn)備工作,后期只需要進(jìn)行以下幾個(gè)簡(jiǎn)單步驟就能得到想要的數(shù)據(jù)集了:
①打印數(shù)據(jù)集收集表,并請(qǐng)學(xué)生完成手動(dòng)圖標(biāo)的繪制;②收集紙質(zhì)數(shù)據(jù)集收集表,并掃描得到JPG格式的數(shù)字圖像;③運(yùn)行圖像預(yù)處理程序,得到預(yù)處理的圖像文件;④運(yùn)行圖像處理程序,得到電路、天氣、表情等圖標(biāo)的數(shù)據(jù)集(如下頁(yè)圖8)。
● 結(jié)語(yǔ)
在數(shù)據(jù)集制作的過(guò)程中,Python簡(jiǎn)潔的語(yǔ)言和強(qiáng)大的圖像處理庫(kù),大大減少了大量圖像分割、分類、命名等煩瑣重復(fù)的工作,讓枯燥的制作過(guò)程變得簡(jiǎn)單而快速。除了pillow庫(kù),Python還有很多其他功能強(qiáng)大的圖像處理庫(kù),如OpenCV等。
在制作過(guò)程中也遇到了一些問(wèn)題,在此做兩點(diǎn)交流分享。
問(wèn)題1:數(shù)據(jù)集收集表的印刷。雖然數(shù)量需求較多,但仍然建議采用“打印”而非“速印”的方式印刷。究其原因是,“速印”會(huì)造成印刷內(nèi)容位置偏移、大小變化,影響圖像后期的批量處理。
問(wèn)題2:紙質(zhì)數(shù)據(jù)集收集表的掃描。在采用掃描儀批量掃描時(shí),確保:①紙質(zhì)收集表的整齊;②掃描儀托盤夾的位置調(diào)整,保證稿件掃描過(guò)程中位置偏移最小化。
參考文獻(xiàn):
[1]王媛媛,卜凡亮.基于Python的數(shù)字圖像處理簡(jiǎn)單應(yīng)用[J].電子技術(shù)與軟件工程,2022(03):129-132.
[2]雷霖,范烊,趙永鑫.一種基于圖的圖像分割法及Python實(shí)現(xiàn)[J].內(nèi)江科技,2020(07):34.
[3]李志,陳入云.Python在數(shù)字圖像處理課程教學(xué)中的應(yīng)用探索[J].創(chuàng)新創(chuàng)業(yè)理論研究與實(shí)踐,2022(10):11-13.