-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
數(shù)據(jù)集標注方法(數(shù)據(jù)集標注注意事項)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于數(shù)據(jù)集標注方法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、數(shù)據(jù)集-讀取圖片標注框和xml文件,生成txt文件
1. 讀取圖片和標注后的xml文件,將標注信息寫到txt文件中。生成的txt文件在txt文件夾下面,可以直接用于yolo3等目標檢測算法的訓(xùn)練。
2. txt文件包含圖片的路徑,標注框的位置和大小,以及標注的類別。
3. 分割標注的圖片,可以用于行人屬性識別。分割的圖片保存在segmentation文件夾下。
1. 需要將數(shù)據(jù)集放在dataset路徑下。
2. Annotations存放的是xml文件,JPEGImages存放的是圖片。
修改:需要針對需要進行適當(dāng)?shù)男薷?。下面進行說明:
第一:
class_tab={
"human":1 ##這個是類別,如果有多個類別,可以添加多條
}
第二:
params={"xml_prefix":"./dataset/Annotations/", ##這個是xml源文件的路徑前綴,注意末尾要有“/”
"img_prefix":"./dataset/JPEGImages/",##這個是圖片源文件的路徑前綴,注意末尾要有“/”
"seg_prefix":"./segmentation/",##這個是分割后圖片存放的位置前綴,注意末尾要有“/”
}
第三:
f = open('./txt/train.txt','a')##這個是生成的txt文件的路徑。
import sys
#sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
import cv2
import os
from readxml import *
class_tab={
"humanimport sys
#sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
import cv2
import os
from readxml import *
class_tab={
"human":1
}
params={"xml_prefix":"./dataset/Annotations/",
"img_prefix":"./dataset/JPEGImages/",
"seg_prefix":"./segmentation/",
}
def write_line(f, img_path, boxes):
f.write("%s "%(img_path))
for box in boxes:
f.write(str(box['cls'])+",")
f.write(str(box['xmin']+","))
f.write(str(box['ymin']+","))
f.write(str(box['xmax']+","))
f.write(str(box['ymax']))
f.write(" ")
f.write("\n")
f.flush()
def segment(img_path, imgname, boxes):
img=cv2.imread(img_path, cv2.IMREAD_COLOR)
cnt=0
for box in boxes:
seg=img[int(box['ymin']):int(box["ymax"]), int(box["xmin"]):int(box["xmax"]),:]
cv2.imwrite(params["seg_prefix"]+imgname+"_"+str(cnt)+".jpg", seg)
cnt=cnt+1
def main():
f = open('./txt/train.txt','a')
img_list=os.listdir(params["img_prefix"])
for il in img_list:
img_path=params["img_prefix"]+il
tokens=il.split(".")
xml_path=params["xml_prefix"]+tokens[0]+".xml"
if os.path.isfile(img_path)==False:
raise ValueError("%s does not exits!"%img_path)
else:
print("reading:", img_path)
boxes=xml_reader(xml_path, class_tab)
write_line(f,img_path,boxes)
segment(img_path, tokens[0], boxes)
f.close()
if __name__ == '__main__':
main()
":1
}
params={"xml_prefix":"./dataset/Annotations/",
"img_prefix":"./dataset/JPEGImages/",
"seg_prefix":"./segmentation/",
}
def write_line(f, img_path, boxes):
f.write("%s "%(img_path))
for box in boxes:
f.write(str(box['cls'])+",")
f.write(str(box['xmin']+","))
f.write(str(box['ymin']+","))
f.write(str(box['xmax']+","))
f.write(str(box['ymax']))
f.write(" ")
f.write("\n")
f.flush()
def segment(img_path, imgname, boxes):
img=cv2.imread(img_path, cv2.IMREAD_COLOR)
cnt=0
for box in boxes:
seg=img[int(box['ymin']):int(box["ymax"]), int(box["xmin"]):int(box["xmax"]),:]
cv2.imwrite(params["seg_prefix"]+imgname+"_"+str(cnt)+".jpg", seg)
cnt=cnt+1
def main():
f = open('./txt/train.txt','a')
img_list=os.listdir(params["img_prefix"])
for il in img_list:
img_path=params["img_prefix"]+il
tokens=il.split(".")
xml_path=params["xml_prefix"]+tokens[0]+".xml"
if os.path.isfile(img_path)==False:
raise ValueError("%s does not exits!"%img_path)
else:
print("reading:", img_path)
boxes=xml_reader(xml_path, class_tab)
write_line(f,img_path,boxes)
segment(img_path, tokens[0], boxes)
f.close()
if __name__ == '__main__':
main()
from xml.dom.minidom import Document
import xml.etree.ElementTree as ET
def xml_reader(fname, cls_tab):###, classes_merge_list,classes_merged_name):
in_file = open(fname)
tree=ET.parse(in_file)
root = tree.getroot()
boxes=[]
for item in root.iter('item'):
cls = item.find('name').text
if cls in cls_tab:
bndbox = item.find('bndbox')
b={
"xmin": str(int(bndbox.find('xmin').text)),
"ymin": str(int(bndbox.find('ymin').text)),
"xmax": str(int(bndbox.find('xmax').text)),
"ymax": str(int(bndbox.find('ymax').text)),
"cls": cls_tab[cls]
}
boxes.append(b)
else:
continue
return boxes
if __name__ == '__main__':
cls_tab={"human":1}
fname="/home/ta/Downloads/liqiming_label/dataset/Annotations/sa341.xml"
box=xml_reader(fname, cls_tab)
print(box)
二、沒有經(jīng)驗可以做數(shù)據(jù)標注嗎?
數(shù)據(jù)標注員沒經(jīng)驗?zāi)茏?,但要逐漸學(xué)習(xí),工作內(nèi)容如下:
一、職位職責(zé):
1、為機器模型標注數(shù)據(jù)集,并協(xié)助優(yōu)化模型效果。
2、針對各類產(chǎn)品策略、模型輸出的數(shù)據(jù)進行評估,并撰寫相關(guān)評估標準及結(jié)果文檔。
3、與算法工程師、各業(yè)務(wù)線產(chǎn)品&運營進行協(xié)作,完成需求溝通、標準制定、標注工具優(yōu)化等。
二、職位要求:
1、對特定內(nèi)容、圖像等數(shù)據(jù)敏感,能人工判別數(shù)據(jù)內(nèi)容的分類特征。
2、能依據(jù)具體的標準,完成各項產(chǎn)品策略&模型的效果評定。
3、有數(shù)據(jù)標注經(jīng)驗者、對機器學(xué)習(xí)的相關(guān)基本原理有了解者優(yōu)先。
4、抗壓力好、學(xué)習(xí)能力強,能快速熟練掌握各類判別標準。
三、數(shù)據(jù)標注行業(yè)的發(fā)展面臨哪些挑戰(zhàn)?
01.不同的行業(yè)、不同的業(yè)務(wù)場景對數(shù)據(jù)標注的需求存在一定的差異性,現(xiàn)有的標注任務(wù)還不夠細化, 缺乏定制化標注能力。
數(shù)據(jù)標注的應(yīng)用場景十分廣泛,具體來說有自動駕駛、智慧安防、新零售、AI教育、工業(yè)機器人、智慧農(nóng)業(yè)等領(lǐng)域。
不同的應(yīng)用場景對應(yīng)不同的標注需求,比如自動駕駛領(lǐng)域主要涉及行人識別、車輛識別、紅綠燈識別、道路識別等內(nèi)容,而智慧安防領(lǐng)域則主要涉及面部識別、人臉探測、視覺搜索、人臉關(guān)鍵信息點提取以及車牌識別等內(nèi)容,這對數(shù)據(jù)服務(wù)供應(yīng)商的定制化標注能力提出了新的挑戰(zhàn)。
02.標注效率與數(shù)據(jù)質(zhì)量均較低,且欠缺人機協(xié)作能力。
數(shù)據(jù)標注行業(yè)的特殊性決定了其對于人力的高依賴性,目前主流的標注方法是標注員根據(jù)標注需求, 借助相關(guān)工具在數(shù)據(jù)上完成諸如分類、畫框、注釋和標記等工作。
由于標注員能力素質(zhì)的參差不齊以及標注工具功能的不完善,數(shù)據(jù)服務(wù)供應(yīng)商在標注效率以及數(shù)據(jù)質(zhì)量上,均有所欠缺。
此外,目前很多數(shù)據(jù)服務(wù)供應(yīng)商忽視或完全不具備人機協(xié)作能力,并沒有意識到AI對于數(shù)據(jù)標注行業(yè)的反哺作用。
以曼孚科技標注業(yè)務(wù)為例,通過在標注過程中引入AI預(yù)標注以及在質(zhì)檢過程中引入AI質(zhì)檢,不僅可以有效提高標注效率,同時也可以極大提升標注數(shù)據(jù)集的準確度。
03.品牌數(shù)據(jù)標注服務(wù)提供商依賴眾包、轉(zhuǎn)包模式,造成標注結(jié)果質(zhì)量的層次不齊。
現(xiàn)階段,數(shù)據(jù)標注主要依靠人力來完成,人力成本占據(jù)數(shù)據(jù)標注服務(wù)企業(yè)總成本的絕大部分。因此很多品牌數(shù)據(jù)服務(wù)供應(yīng)商都放棄自建標注團隊,轉(zhuǎn)而通過分包、轉(zhuǎn)包的模式完成標注業(yè)務(wù)。
與自建標注團隊相比,眾包與轉(zhuǎn)包的方式,成本較低且比較靈活,但是與自建標注團隊相比,這兩種模式信息鏈過長,且質(zhì)量難以把控,從長遠角度來看,自建標注團隊更加符合行業(yè)發(fā)展的需求。
04.基于眾包、轉(zhuǎn)包模式下的數(shù)據(jù)標注任務(wù)會造成用戶數(shù)據(jù)缺乏安全性, 并面臨隱私泄露的風(fēng)險。
一些特殊行業(yè)的需求方,比如金融機構(gòu)和政府部門格外注重標注數(shù)據(jù)的安全性, 但是一些數(shù)據(jù)標注企業(yè)出于成本方面的考慮,會將這些敏感的數(shù)據(jù)分發(fā)、轉(zhuǎn)包給其他服務(wù)商或者個人,這就帶來了巨大的潛在數(shù)據(jù)泄露風(fēng)險。如何建立一套完善的數(shù)據(jù)安全防護機制就成為當(dāng)下諸多數(shù)據(jù)服務(wù)供應(yīng)商需要著重考量的因素。
四、ar標注實現(xiàn)原理
主要基于計算機視覺和機器學(xué)習(xí)技術(shù),它的核心是利用計算機視覺技術(shù)檢測出圖片中的物體,然后使用機器學(xué)習(xí)技術(shù)來確定出物體的類別和位置。
首先,AR標注需要一個數(shù)據(jù)集,這個數(shù)據(jù)集通常包含一系列的圖片,每張圖片都有一個標簽描述物體的類別,比如人、汽車等。然后,AR標注系統(tǒng)會使用圖像檢測技術(shù),比如目標檢測、卷積神經(jīng)網(wǎng)絡(luò)、支持向量機等,來檢測出圖片中的物體。最后,AR標注系統(tǒng)會使用機器學(xué)習(xí)技術(shù),如支持向量機、樸素貝葉斯分類器、隨機森林、K近鄰等,來確定出物體的類別和位置。
AR標注技術(shù)可以幫助企業(yè)提升其產(chǎn)品的品質(zhì)和可用性,比如家居空間設(shè)計公司可以利用AR標注技術(shù)來快速識別物體,從而更好的幫助客戶規(guī)劃家居空間。此外,AR標注技術(shù)還可以應(yīng)用在安防、健康檢查、視覺檢測等領(lǐng)域中。
以上就是關(guān)于數(shù)據(jù)集標注方法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
數(shù)據(jù)流網(wǎng)游小說排行榜(數(shù)據(jù)流網(wǎng)游小說排行榜前十名)
公眾號數(shù)據(jù)分析報告(公眾號數(shù)據(jù)分析報告模板)