迪力夏提·多力昆,張?zhí)t,馮向萍
(新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,新疆 烏魯木齊 830052)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,在深度學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)集的選擇很重要,在構(gòu)造數(shù)據(jù)集時(shí),需要注意做好數(shù)據(jù)的清洗和標(biāo)注,一個(gè)高質(zhì)量的數(shù)據(jù)集往往能夠提高模型訓(xùn)練的質(zhì)量和預(yù)測(cè)的準(zhǔn)確率。在沒(méi)有大規(guī)模的圖像數(shù)據(jù)集的情況下,為提高數(shù)據(jù)集質(zhì)量,筆者設(shè)計(jì)了一種基于Django[1-2]的LabelMe[3-4](圖像標(biāo)注工具)標(biāo)注核對(duì)系統(tǒng)。
該文使用的圖像標(biāo)注工具為L(zhǎng)abelMe,在使用LabelMe標(biāo)注工具完成標(biāo)注后,通常對(duì)標(biāo)注進(jìn)行核對(duì)檢查。這是一個(gè)繁瑣且耗時(shí)的事情,需對(duì)每張圖片的每個(gè)標(biāo)簽進(jìn)行逐個(gè)點(diǎn)擊,并核對(duì)檢查標(biāo)注與標(biāo)簽的一致性。為解決該問(wèn)題,降低核對(duì)工作中的復(fù)雜性,減少耗時(shí),該文將分別從Django框架的技術(shù)、總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、關(guān)鍵技術(shù)及系統(tǒng)界面展示等五個(gè)方面詳述。
Django框架技術(shù)是一種開放源代碼式的Web[5-6]應(yīng)用型框架,由Python[7]程序設(shè)計(jì)語(yǔ)言寫成,該框架設(shè)計(jì)模式為MTV[8],選用成熟的框架可避免代碼間迭代耦合等機(jī)制,還可根據(jù)具體需求,直接調(diào)用框架內(nèi)部方法,更容易完成開發(fā)。Django框架也是一個(gè)遵循MVC[9]設(shè)計(jì)模式的框架,即模型、視圖、控制器。它們各自職責(zé)如下:
(1)模型層(Model):作為Web應(yīng)用中最重要的一部分,它涵蓋了整個(gè)系統(tǒng)的實(shí)體類以及各種變量和方法規(guī)則,負(fù)責(zé)訪問(wèn)及更新數(shù)據(jù)庫(kù),為域名訪問(wèn)使用的服務(wù)器提供接口。
(2)視圖層(View):視圖層主要是當(dāng)有請(qǐng)求服務(wù)時(shí)來(lái)產(chǎn)生應(yīng)答,并由HTML在界面上供使用者操作。主要以表單的形式傳給后臺(tái),還可對(duì)其進(jìn)行校驗(yàn),使開發(fā)者不必關(guān)心界面的相關(guān)問(wèn)題,專注于業(yè)務(wù)邏輯的開發(fā)與實(shí)現(xiàn)。
(3)模板(Templates):模板是將數(shù)據(jù)的內(nèi)容與展現(xiàn)分離,Django框架可隨時(shí)替換變更,并滿足用戶多樣需求,不局限于內(nèi)置模板。強(qiáng)調(diào)代碼復(fù)用性,以插件形式將多個(gè)組件服務(wù)于整個(gè)框架,并隨時(shí)支持?jǐn)U展,使得Django框架搭建Web平臺(tái)具有較強(qiáng)的擴(kuò)展性。
系統(tǒng)的總體設(shè)計(jì)如圖1所示,主要有項(xiàng)目管理、原圖記錄、導(dǎo)入JSON[10]、統(tǒng)一標(biāo)簽名、批量生成標(biāo)注圖、核對(duì)標(biāo)注圖、導(dǎo)出JSON文件等七大功能模塊,其數(shù)據(jù)存儲(chǔ)部分使用Django框架自帶的SQLite3[11-12]數(shù)據(jù)庫(kù)。
(1)項(xiàng)目管理:該模塊作為系統(tǒng)的基礎(chǔ)模塊,主要用來(lái)管理來(lái)自不同項(xiàng)目的LabelMe數(shù)據(jù)集,使其相互獨(dú)立。擁有創(chuàng)建、修改、裁剪主要目標(biāo)的功能。
(2)原圖記錄:該模塊主要在數(shù)據(jù)庫(kù)中記錄圖片路徑及標(biāo)注狀態(tài),并在數(shù)據(jù)庫(kù)中創(chuàng)建圖片表,其一張圖片對(duì)應(yīng)一條記錄。
(3)導(dǎo)入JSON:該模塊主要用于導(dǎo)入標(biāo)注集到數(shù)據(jù)庫(kù)中,一個(gè)標(biāo)簽對(duì)應(yīng)一條記錄,且圖片表與標(biāo)簽表為一對(duì)多關(guān)系,同時(shí)生成標(biāo)簽的匯總表。擁有導(dǎo)入新標(biāo)注數(shù)據(jù)和導(dǎo)入修改后的標(biāo)注數(shù)據(jù)集的功能。
(4)標(biāo)簽設(shè)置:該模塊主要用來(lái)統(tǒng)一標(biāo)簽的英文名,同時(shí)設(shè)置標(biāo)簽的序號(hào)、中文名、顏色、字體位置和是否導(dǎo)出等功能,并通過(guò)預(yù)覽查看設(shè)置效果。
(5)批量生成掩碼圖:該模塊主要用來(lái)批量生成掩碼圖,通過(guò)設(shè)置好的標(biāo)簽,使用OpenCV[13]生成掩碼圖,使用戶核對(duì)標(biāo)注時(shí)無(wú)需逐個(gè)生成掩碼圖,加快核對(duì)速度。
(6)標(biāo)注核對(duì):該模塊為核心模塊,主要用來(lái)核對(duì)標(biāo)注集,通過(guò)生成的掩碼圖以核對(duì)標(biāo)簽名稱與對(duì)應(yīng)標(biāo)注物是否一致。擁有切換、修改、預(yù)覽等功能。
(7)導(dǎo)出JSON:該模塊為完成標(biāo)注核對(duì)后的最后一部分,主要用于導(dǎo)出系統(tǒng)中核對(duì)后的JSON標(biāo)注數(shù)據(jù)。擁有導(dǎo)出所有數(shù)據(jù)、移除需刪除數(shù)據(jù)、拷貝需修改數(shù)據(jù)和在標(biāo)簽名后面追加序號(hào)等功能。
數(shù)據(jù)庫(kù)的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)環(huán)節(jié)中必不可少的一環(huán),一個(gè)功能完善、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù)能夠幫助系統(tǒng)更高效、便捷地管理系統(tǒng)的各項(xiàng)數(shù)據(jù)。在數(shù)據(jù)庫(kù)設(shè)計(jì)中,ER模型是一種能夠改善開發(fā)人員與用戶之間的溝通交流的建模工具,能夠準(zhǔn)確地描述數(shù)據(jù)的各種相關(guān)特性以及它們之間的互相約束關(guān)系,是一種概念性設(shè)計(jì)。通過(guò)ORM[14](對(duì)象關(guān)系映射)的方式建立Model層與數(shù)據(jù)庫(kù)的映射,完成數(shù)據(jù)庫(kù)的具體數(shù)據(jù)表的生成。EER[15](增強(qiáng)實(shí)體關(guān)系模型)則是對(duì)其進(jìn)行了進(jìn)一步細(xì)化,轉(zhuǎn)換成了關(guān)系模型,與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān)。系統(tǒng)的EER模型如圖2所示。
通過(guò)圖2對(duì)系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)結(jié)構(gòu)的展示,可以清楚地發(fā)現(xiàn)數(shù)據(jù)庫(kù)不同表之間的具體關(guān)聯(lián)關(guān)系以及它們的總體情況。本節(jié)將根據(jù)之前的分析結(jié)果,綜合項(xiàng)目開發(fā)過(guò)程中的具體情況,創(chuàng)建數(shù)據(jù)Model并通過(guò)ORM映射生成具體的數(shù)據(jù)表,分別是項(xiàng)目表、匯總表、圖片表和標(biāo)簽表,并對(duì)數(shù)據(jù)表做詳細(xì)說(shuō)明。
該表主要用于管理不同項(xiàng)目的數(shù)據(jù)集,使同項(xiàng)目之間互不干擾。字段有id號(hào)、項(xiàng)目英文名、項(xiàng)目中文名、是否裁剪主要目標(biāo)、X軸裁剪比例和Y軸裁剪比例。其中裁剪目標(biāo)指的是在原圖上進(jìn)行目標(biāo)的裁剪,使圖片只包含主要目標(biāo),過(guò)濾其他背景。在馬匹四肢別征數(shù)據(jù)集中,裁剪目標(biāo)設(shè)置為馬匹,裁剪比例設(shè)置為-1,使其生成的掩碼圖只包含馬匹,且裁剪比例為馬匹框長(zhǎng)寬+10%。項(xiàng)目表的具體結(jié)構(gòu)見(jiàn)表1。
表1 項(xiàng)目表結(jié)構(gòu)
該表主要用于統(tǒng)一標(biāo)簽名及設(shè)置不同標(biāo)簽之間的顏色及中文名坐標(biāo)。字段有id號(hào)、項(xiàng)目分類、標(biāo)簽英文名、標(biāo)簽中文名、標(biāo)簽序號(hào)、標(biāo)簽掩碼顏色其RGB三通道色值、標(biāo)簽中文名X軸坐標(biāo)、標(biāo)簽中文名Y軸坐標(biāo)、標(biāo)簽掩碼顏色是否取色差和是否導(dǎo)出。其中標(biāo)簽英文名用來(lái)統(tǒng)一標(biāo)簽名,若有同一個(gè)物體的標(biāo)簽名誤寫有多個(gè)或更改標(biāo)簽名,可以通過(guò)更改標(biāo)簽英文名實(shí)現(xiàn)。標(biāo)簽中文名主要用來(lái)提示掩碼圖中該物體的中文名,方便快速核對(duì)。其標(biāo)簽中文名坐標(biāo)是防止出現(xiàn)遮擋掩碼而設(shè)立。匯總表的具體結(jié)構(gòu)見(jiàn)表2。
表2 匯總表結(jié)構(gòu)
該表主要用于記錄圖片地址及狀態(tài)。字段有id號(hào)、項(xiàng)目分類、原圖名、原圖后綴名、原圖路徑、掩碼圖路徑、掩碼圖中中文字體大小、JSON文件是否導(dǎo)入、掩碼圖生成狀態(tài)和圖片狀態(tài)。其中圖片狀態(tài)主要用來(lái)判斷圖片的標(biāo)注數(shù)據(jù)的狀態(tài),分別為未核對(duì)、無(wú)問(wèn)題、有問(wèn)題、需修改和需刪除共五種狀態(tài)。圖片表的具體結(jié)構(gòu)見(jiàn)表3。
表3 圖片表結(jié)構(gòu)
該表主要用于操作標(biāo)注數(shù)據(jù)集。字段有id號(hào)、圖片表外鍵、標(biāo)簽分類、標(biāo)注數(shù)據(jù)值、修改時(shí)間和標(biāo)簽狀態(tài)。其中標(biāo)注數(shù)據(jù)值分別有標(biāo)簽名、坐標(biāo)值、Group值、ShapeType值和Flags值。標(biāo)簽名關(guān)聯(lián)匯總表,為一對(duì)多關(guān)系。坐標(biāo)值為標(biāo)注物在圖像中的坐標(biāo)。項(xiàng)目表的具體結(jié)構(gòu)見(jiàn)表4。
表4 標(biāo)簽表結(jié)構(gòu)
本系統(tǒng)的關(guān)鍵技術(shù)是通過(guò)標(biāo)注坐標(biāo)生成掩碼圖,掩碼是由0和1組成的一個(gè)二進(jìn)制圖像。用選定的圖像、圖形或物體,對(duì)待處理的圖像的全部或局部進(jìn)行遮擋,用來(lái)控制圖像。該文用于在馬匹圖像中將馬匹、四肢和別征用不同顏色鏡像顯示,方便用戶一眼就能快速核對(duì),如圖3所示。
在本系統(tǒng)中使用導(dǎo)入的JSON標(biāo)注數(shù)據(jù),查詢與圖片關(guān)聯(lián)的標(biāo)簽表及匯總表,通過(guò)OpenCV將設(shè)置好的標(biāo)簽顏色、標(biāo)簽中文名和標(biāo)簽中文名坐標(biāo)繪制出來(lái),下面詳細(xì)闡述其具體步驟。
(1)獲取標(biāo)簽:在JSON標(biāo)注集中,標(biāo)簽的順序是以手工標(biāo)注物體的順序存放,而每張圖的標(biāo)注順序不同,故無(wú)法按照固定順序獲取標(biāo)簽。本系統(tǒng)將每個(gè)標(biāo)簽存入標(biāo)簽表中,一個(gè)標(biāo)簽為一條記錄,同一張圖中的標(biāo)簽以圖片表和匯總表關(guān)聯(lián),通過(guò)匯總表中用戶設(shè)置的序號(hào)排序,獲取每張圖中的標(biāo)簽。
(2)繪制掩碼圖:通過(guò)獲取到的標(biāo)簽,取出每個(gè)標(biāo)簽的坐標(biāo)值并將其轉(zhuǎn)換成OpenCV的嵌套字典格式,通過(guò)OpenCV的fillPoly函數(shù)生成mask層,并對(duì)標(biāo)簽坐標(biāo)值進(jìn)行半透明填充。
(3)計(jì)算中文字體坐標(biāo):在繪制圖片中文名之前需要指定其標(biāo)注中文名的坐標(biāo),而每個(gè)標(biāo)簽位置不同,本系統(tǒng)從獲得的標(biāo)簽中通過(guò)標(biāo)簽坐標(biāo)值得到該標(biāo)簽邊框的左上角與右下角的坐標(biāo),獲取的文字坐標(biāo)值見(jiàn)公式1。
(1)
其中,X和Y為標(biāo)簽中文名坐標(biāo)值,x1和y1為標(biāo)簽邊框左上角坐標(biāo),x2和y2為標(biāo)簽邊框右下角坐標(biāo)。ratioX和ratioY為用戶設(shè)置的標(biāo)簽坐標(biāo)比例,以邊框左上角為原點(diǎn),將標(biāo)簽邊框長(zhǎng)度和寬度除10為基本比例單位,ratioX和ratioY的值從-10到10控制標(biāo)簽中文名的文字位置。
(4)繪制標(biāo)簽中文名:在繪制標(biāo)簽中文名時(shí),有些圖片中將看不清文字,因此需要給文字添加背景,在本系統(tǒng)中添加的背景為白色矩形實(shí)體框,之后再繪制文字。白色矩形框的左上角坐標(biāo)值為標(biāo)簽中文名的左上角坐標(biāo)值,其右下角的坐標(biāo)值見(jiàn)公式2。
(2)
因中文、英文數(shù)字、符號(hào)所占長(zhǎng)度空間不同,以字節(jié)為單位獲取文字實(shí)際長(zhǎng)度,其中BLen為文字字節(jié)長(zhǎng)度,TLen為文字個(gè)數(shù)長(zhǎng)度,通過(guò)公式即可獲取文字實(shí)際長(zhǎng)度LLen。因每張圖片長(zhǎng)和寬不同,可能會(huì)出現(xiàn)字體太大遮擋圖片的情況,若遇到不合適的字體大小值,則需要用戶手動(dòng)設(shè)置該圖片的文字大小TSize,默認(rèn)值為55。X和Y為白色矩形框右下角坐標(biāo)值。
在用戶界面部分,根據(jù)具體需求,需要制作一個(gè)快速核對(duì)標(biāo)注的界面。并在界面設(shè)計(jì)上,做到簡(jiǎn)單明了與易于操作。本節(jié)主要是對(duì)系統(tǒng)的各個(gè)功能模塊進(jìn)行展示,主要包括項(xiàng)目管理、原圖記錄、導(dǎo)入JSON、統(tǒng)一標(biāo)簽名、批量生成標(biāo)注圖、核對(duì)標(biāo)注圖、導(dǎo)出JSON等七大功能模塊。
該模塊主要是管理不同項(xiàng)目的LabelMe數(shù)據(jù)集,模塊界面見(jiàn)圖4。用戶進(jìn)行項(xiàng)目管理界面后,輸入項(xiàng)目英文名和中文名,點(diǎn)擊創(chuàng)建目錄,即可生成以項(xiàng)目名稱為名的項(xiàng)目文件夾,其中存放有圖片集、標(biāo)注集、修改、刪除和掩碼等五個(gè)文件夾,用戶需要把原圖放到image文件夾中,標(biāo)注文件放到JSON文件夾中。該模塊作為該系統(tǒng)的基礎(chǔ)模塊,主要用來(lái)管理不同項(xiàng)目的LabelMe數(shù)據(jù)集,使其相互獨(dú)立。該模塊的主要功能是為用戶生成存放【原圖】和【標(biāo)注】的空文件夾,同時(shí)生成數(shù)據(jù)集的【修改】、【刪除】、【掩碼】圖的空文件夾?!拘薷摹课募A是用戶核對(duì)標(biāo)注后,若有標(biāo)注有問(wèn)題,可將圖片狀態(tài)改為有問(wèn)題,最后導(dǎo)出有問(wèn)題JSON文件,系統(tǒng)會(huì)將所有有問(wèn)題圖片的標(biāo)注文件和原圖拷貝到【修改】文件夾,方便用戶修數(shù)據(jù)集使用。
【刪除】文件夾則是若該圖片不可用,可將圖片狀態(tài)改為需刪除,系統(tǒng)會(huì)將所有有問(wèn)題圖片的標(biāo)注文件和原圖移動(dòng)到【修改】文件夾,并將數(shù)據(jù)庫(kù)中的數(shù)據(jù)清除,方便用戶最后導(dǎo)出JSON文件。
【掩碼】文件夾為用戶核對(duì)前,系統(tǒng)通過(guò)批量生成標(biāo)掩碼圖,方便用戶快速核對(duì)標(biāo)注。需要注意的是,在最后導(dǎo)出核對(duì)后的標(biāo)注集時(shí),系統(tǒng)會(huì)覆蓋【標(biāo)注】文件夾的JSON標(biāo)注文件。
該模塊主要是在數(shù)據(jù)庫(kù)中記錄圖片路徑及標(biāo)注的狀態(tài),模塊界面見(jiàn)圖5。
用戶進(jìn)入原圖記錄界面后,需要先將原圖集放入【原圖】文件夾,再選擇項(xiàng)目并提交,待進(jìn)度條達(dá)到100%后,提示已完成即可完成圖片記錄工作。
該模塊主要用來(lái)導(dǎo)入標(biāo)注集到數(shù)據(jù)庫(kù)中,一個(gè)標(biāo)簽名對(duì)應(yīng)一條記錄,圖片表與標(biāo)簽表為一對(duì)多關(guān)系,模塊界面與圖5相似,下拉框內(nèi)容不同。
用戶進(jìn)入導(dǎo)入JSON界面后,需要先將標(biāo)注集放入【標(biāo)注】文件夾,再選擇項(xiàng)目并提交,待進(jìn)度條達(dá)到100%后,提示已完成即可完成標(biāo)注集導(dǎo)入工作。
在核對(duì)標(biāo)注環(huán)節(jié)中若有圖片與標(biāo)注無(wú)法對(duì)應(yīng),需要重新導(dǎo)入修改后的標(biāo)注集,用戶選擇“重新導(dǎo)入需修改JSON”選項(xiàng)并提交,系統(tǒng)會(huì)將狀態(tài)為需修改的標(biāo)簽數(shù)據(jù)從數(shù)據(jù)庫(kù)中清除,并將修改后的標(biāo)注數(shù)據(jù)重新導(dǎo)入到數(shù)據(jù)庫(kù)中。待進(jìn)度條達(dá)到100%后,提示已完成即可。
該模塊主要用來(lái)統(tǒng)一標(biāo)簽名英文名和設(shè)置標(biāo)簽屬性。在導(dǎo)入JSON文件時(shí)會(huì)一同生成匯總表,相同英文名標(biāo)簽只生成一條記錄,匯總表和標(biāo)簽表也是一對(duì)多關(guān)系,模塊界面見(jiàn)圖6。
用戶進(jìn)入導(dǎo)入JSON界面后,可設(shè)置標(biāo)簽的序號(hào)、中文名、顏色、字體位置和是否導(dǎo)出,并通過(guò)預(yù)覽檢查設(shè)置情況。若修改標(biāo)簽英文名與其他標(biāo)簽英文名相同,則系統(tǒng)會(huì)合并標(biāo)簽。標(biāo)簽的排序號(hào)則會(huì)按照從小到大的順序排序,方便用戶將相同類型標(biāo)簽放到一起,同時(shí)在生成掩碼圖時(shí)按照序號(hào)順序進(jìn)行繪制。標(biāo)簽的是否導(dǎo)出指的是生成掩碼圖和最后導(dǎo)出JSON文件時(shí),這些標(biāo)簽是否使用,不選擇則忽略。標(biāo)簽中文名只在掩碼圖中使用,方便用戶快速核對(duì)。標(biāo)簽的標(biāo)注顏色是指生成掩碼圖時(shí)該標(biāo)簽的顏色。中文名相對(duì)位置是指標(biāo)簽中文名在掩碼圖中的位置。標(biāo)簽的顏色疊加或色差是指在生成掩碼圖時(shí)標(biāo)簽的顏色會(huì)進(jìn)行疊加,而經(jīng)過(guò)多層疊加后,顏色不好區(qū)分,因此一般只對(duì)最上層標(biāo)簽進(jìn)行取色差操作。最后用戶可以通過(guò)修改字體大小并預(yù)覽觀察設(shè)置效果。
該模塊主要是通過(guò)設(shè)置號(hào)的匯總表,通過(guò)OpenCV繪制掩碼圖,并將掩碼圖存入【掩碼】文件夾,方便用戶在核對(duì)時(shí)無(wú)需一一生成掩碼圖,加快核對(duì)速度。模塊界面與圖5相似,下拉框內(nèi)容不同。
用戶進(jìn)入標(biāo)批量生成掩碼圖界面后,因批量生成掩碼圖需要一定的時(shí)間,用戶可以選擇不同狀態(tài)圖片批量生成掩碼圖,選擇完選項(xiàng)后并提交,待進(jìn)度條達(dá)到100%后,提示已完成即可。
該模塊為核心模塊,主要用來(lái)核對(duì)標(biāo)注集,用戶通過(guò)生成的掩碼圖核對(duì)標(biāo)簽名稱與對(duì)應(yīng)標(biāo)注物是否一致,模塊界面見(jiàn)圖7。用戶進(jìn)入標(biāo)注核對(duì)界面后,可選擇核對(duì)不同狀態(tài)的數(shù)據(jù)。在左側(cè)掩碼圖中,若標(biāo)注物與標(biāo)簽中文名一致,可點(diǎn)擊左上角確認(rèn)并切換該圖片的狀態(tài)。若標(biāo)簽名有問(wèn)題,只需用右側(cè)下拉菜單修改正確的標(biāo)簽名并預(yù)覽,核對(duì)結(jié)束可點(diǎn)擊確認(rèn)并切換修改圖片狀態(tài)。
若圖片與標(biāo)注物無(wú)法對(duì)應(yīng),如圖片與JSON文件未對(duì)應(yīng),可將圖片狀態(tài)設(shè)置為需修改狀態(tài)并繼續(xù)核對(duì)其他圖片,所有圖片核對(duì)完成后可通過(guò)導(dǎo)出需修改JSON文件,重新標(biāo)注,再回到導(dǎo)入JSON模塊,選擇重新導(dǎo)入需修改JSON,并繼續(xù)對(duì)需修改狀態(tài)的圖片核對(duì)即可。
若圖片質(zhì)量不好,無(wú)法成為數(shù)據(jù)集,可將圖片狀態(tài)修改為需刪除狀態(tài)。所有圖片核對(duì)完成后可通過(guò)導(dǎo)出將需刪除狀態(tài)的圖片和JSON移除即可。
若圖片無(wú)法確定其狀態(tài),可將圖片狀態(tài)修改為有問(wèn)題狀態(tài)并繼續(xù)核對(duì),所有圖片核對(duì)完成后重新對(duì)有問(wèn)題狀態(tài)的圖片進(jìn)行核對(duì)即可。
該模塊為主要做導(dǎo)出所有核對(duì)后的數(shù)據(jù)、移除需刪除狀態(tài)的數(shù)據(jù)、拷貝需修改狀態(tài)的文件和對(duì)核對(duì)后的數(shù)據(jù)中,同一張圖片中有相同標(biāo)簽名的標(biāo)簽添加序號(hào),模塊界面與圖5相似,下拉框內(nèi)容不同。
用戶進(jìn)入標(biāo)注核對(duì)界面后,若選擇導(dǎo)出全部,則會(huì)將【標(biāo)注】文件夾里的JSON文件全部按照核對(duì)后的數(shù)據(jù)進(jìn)行覆蓋,形成核對(duì)后的數(shù)據(jù)集。
若選擇移除需刪除狀態(tài)的圖片,系統(tǒng)則會(huì)刪除數(shù)據(jù)庫(kù)里需刪除狀態(tài)的數(shù)據(jù),并將對(duì)應(yīng)的圖片和JSON文件移動(dòng)到【刪除】文件夾,防止誤刪操作。
若選擇拷貝需修改狀態(tài)的圖片和JSON,系統(tǒng)則將需修改狀態(tài)的圖片和JSON文件拷貝到【修改】文件夾里,用戶只需修改完后,將修改后的JSON文件放入【標(biāo)注】文件夾里,替換掉原文件并重新在導(dǎo)入JSON模塊導(dǎo)入即可。
若選擇在標(biāo)簽名后面追加序號(hào),系統(tǒng)則會(huì)在每張圖片有相同標(biāo)簽名的標(biāo)簽后面追加序號(hào),用于實(shí)例分割數(shù)據(jù)集區(qū)分同一張圖中相同標(biāo)簽名物體為不同實(shí)例。
該系統(tǒng)采用Django框架、Python語(yǔ)言進(jìn)行開發(fā),由于Django和Python發(fā)展至今技術(shù)已十分成熟,在很大程度上提升了開發(fā)的效率。系統(tǒng)通過(guò)數(shù)據(jù)可視化技術(shù)幫助大部分做圖像處理的研究人員,為提高圖像數(shù)據(jù)集的質(zhì)量方面做出一份貢獻(xiàn),為有相關(guān)需求的人員提供一定的幫助。