HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    數(shù)據(jù)集標(biāo)注方法(數(shù)據(jù)集標(biāo)注注意事項(xiàng))

    發(fā)布時(shí)間:2023-04-08 18:59:00     稿源: 創(chuàng)意嶺    閱讀: 79        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于數(shù)據(jù)集標(biāo)注方法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(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ù)集標(biāo)注方法(數(shù)據(jù)集標(biāo)注注意事項(xiàng))

    一、數(shù)據(jù)集-讀取圖片標(biāo)注框和xml文件,生成txt文件

              1. 讀取圖片和標(biāo)注后的xml文件,將標(biāo)注信息寫到txt文件中。生成的txt文件在txt文件夾下面,可以直接用于yolo3等目標(biāo)檢測算法的訓(xùn)練。

                2. txt文件包含圖片的路徑,標(biāo)注框的位置和大小,以及標(biāo)注的類別。

                3. 分割標(biāo)注的圖片,可以用于行人屬性識別。分割的圖片保存在segmentation文件夾下。

               1. 需要將數(shù)據(jù)集放在dataset路徑下。

                2. Annotations存放的是xml文件,JPEGImages存放的是圖片。

    修改:需要針對需要進(jìn)行適當(dāng)?shù)男薷?。下面進(jìn)行說明:

    第一:

    class_tab={

    "human":1  ##這個(gè)是類別,如果有多個(gè)類別,可以添加多條

    }

    第二:

    params={"xml_prefix":"./dataset/Annotations/", ##這個(gè)是xml源文件的路徑前綴,注意末尾要有“/”

            "img_prefix":"./dataset/JPEGImages/",##這個(gè)是圖片源文件的路徑前綴,注意末尾要有“/”

            "seg_prefix":"./segmentation/",##這個(gè)是分割后圖片存放的位置前綴,注意末尾要有“/”

          }

    第三:

    f = open('./txt/train.txt','a')##這個(gè)是生成的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)驗(yàn)可以做數(shù)據(jù)標(biāo)注嗎?

    數(shù)據(jù)標(biāo)注員沒經(jīng)驗(yàn)?zāi)茏?,但要逐漸學(xué)習(xí),工作內(nèi)容如下:

    一、職位職責(zé):

    1、為機(jī)器模型標(biāo)注數(shù)據(jù)集,并協(xié)助優(yōu)化模型效果。

    2、針對各類產(chǎn)品策略、模型輸出的數(shù)據(jù)進(jìn)行評估,并撰寫相關(guān)評估標(biāo)準(zhǔn)及結(jié)果文檔。

    3、與算法工程師、各業(yè)務(wù)線產(chǎn)品&運(yùn)營進(jìn)行協(xié)作,完成需求溝通、標(biāo)準(zhǔn)制定、標(biāo)注工具優(yōu)化等。

    數(shù)據(jù)集標(biāo)注方法(數(shù)據(jù)集標(biāo)注注意事項(xiàng))

    二、職位要求:

    1、對特定內(nèi)容、圖像等數(shù)據(jù)敏感,能人工判別數(shù)據(jù)內(nèi)容的分類特征。

    2、能依據(jù)具體的標(biāo)準(zhǔn),完成各項(xiàng)產(chǎn)品策略&模型的效果評定。

    3、有數(shù)據(jù)標(biāo)注經(jīng)驗(yàn)者、對機(jī)器學(xué)習(xí)的相關(guān)基本原理有了解者優(yōu)先。

    4、抗壓力好、學(xué)習(xí)能力強(qiáng),能快速熟練掌握各類判別標(biāo)準(zhǔn)。

    三、數(shù)據(jù)標(biāo)注行業(yè)的發(fā)展面臨哪些挑戰(zhàn)?

    01.不同的行業(yè)、不同的業(yè)務(wù)場景對數(shù)據(jù)標(biāo)注的需求存在一定的差異性,現(xiàn)有的標(biāo)注任務(wù)還不夠細(xì)化, 缺乏定制化標(biāo)注能力。

    數(shù)據(jù)標(biāo)注的應(yīng)用場景十分廣泛,具體來說有自動駕駛、智慧安防、新零售、AI教育、工業(yè)機(jī)器人、智慧農(nóng)業(yè)等領(lǐng)域。

    不同的應(yīng)用場景對應(yīng)不同的標(biāo)注需求,比如自動駕駛領(lǐng)域主要涉及行人識別、車輛識別、紅綠燈識別、道路識別等內(nèi)容,而智慧安防領(lǐng)域則主要涉及面部識別、人臉探測、視覺搜索、人臉關(guān)鍵信息點(diǎn)提取以及車牌識別等內(nèi)容,這對數(shù)據(jù)服務(wù)供應(yīng)商的定制化標(biāo)注能力提出了新的挑戰(zhàn)。

    02.標(biāo)注效率與數(shù)據(jù)質(zhì)量均較低,且欠缺人機(jī)協(xié)作能力。

    數(shù)據(jù)標(biāo)注行業(yè)的特殊性決定了其對于人力的高依賴性,目前主流的標(biāo)注方法是標(biāo)注員根據(jù)標(biāo)注需求, 借助相關(guān)工具在數(shù)據(jù)上完成諸如分類、畫框、注釋和標(biāo)記等工作。

    由于標(biāo)注員能力素質(zhì)的參差不齊以及標(biāo)注工具功能的不完善,數(shù)據(jù)服務(wù)供應(yīng)商在標(biāo)注效率以及數(shù)據(jù)質(zhì)量上,均有所欠缺。

    此外,目前很多數(shù)據(jù)服務(wù)供應(yīng)商忽視或完全不具備人機(jī)協(xié)作能力,并沒有意識到AI對于數(shù)據(jù)標(biāo)注行業(yè)的反哺作用。

    以曼孚科技標(biāo)注業(yè)務(wù)為例,通過在標(biāo)注過程中引入AI預(yù)標(biāo)注以及在質(zhì)檢過程中引入AI質(zhì)檢,不僅可以有效提高標(biāo)注效率,同時(shí)也可以極大提升標(biāo)注數(shù)據(jù)集的準(zhǔn)確度。

    03.品牌數(shù)據(jù)標(biāo)注服務(wù)提供商依賴眾包、轉(zhuǎn)包模式,造成標(biāo)注結(jié)果質(zhì)量的層次不齊。

    現(xiàn)階段,數(shù)據(jù)標(biāo)注主要依靠人力來完成,人力成本占據(jù)數(shù)據(jù)標(biāo)注服務(wù)企業(yè)總成本的絕大部分。因此很多品牌數(shù)據(jù)服務(wù)供應(yīng)商都放棄自建標(biāo)注團(tuán)隊(duì),轉(zhuǎn)而通過分包、轉(zhuǎn)包的模式完成標(biāo)注業(yè)務(wù)。

    與自建標(biāo)注團(tuán)隊(duì)相比,眾包與轉(zhuǎn)包的方式,成本較低且比較靈活,但是與自建標(biāo)注團(tuán)隊(duì)相比,這兩種模式信息鏈過長,且質(zhì)量難以把控,從長遠(yuǎn)角度來看,自建標(biāo)注團(tuán)隊(duì)更加符合行業(yè)發(fā)展的需求。

    04.基于眾包、轉(zhuǎn)包模式下的數(shù)據(jù)標(biāo)注任務(wù)會造成用戶數(shù)據(jù)缺乏安全性, 并面臨隱私泄露的風(fēng)險(xiǎn)。

    一些特殊行業(yè)的需求方,比如金融機(jī)構(gòu)和政府部門格外注重標(biāo)注數(shù)據(jù)的安全性, 但是一些數(shù)據(jù)標(biāo)注企業(yè)出于成本方面的考慮,會將這些敏感的數(shù)據(jù)分發(fā)、轉(zhuǎn)包給其他服務(wù)商或者個(gè)人,這就帶來了巨大的潛在數(shù)據(jù)泄露風(fēng)險(xiǎn)。如何建立一套完善的數(shù)據(jù)安全防護(hù)機(jī)制就成為當(dāng)下諸多數(shù)據(jù)服務(wù)供應(yīng)商需要著重考量的因素。

    四、ar標(biāo)注實(shí)現(xiàn)原理

    主要基于計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)技術(shù),它的核心是利用計(jì)算機(jī)視覺技術(shù)檢測出圖片中的物體,然后使用機(jī)器學(xué)習(xí)技術(shù)來確定出物體的類別和位置。

    首先,AR標(biāo)注需要一個(gè)數(shù)據(jù)集,這個(gè)數(shù)據(jù)集通常包含一系列的圖片,每張圖片都有一個(gè)標(biāo)簽描述物體的類別,比如人、汽車等。然后,AR標(biāo)注系統(tǒng)會使用圖像檢測技術(shù),比如目標(biāo)檢測、卷積神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等,來檢測出圖片中的物體。最后,AR標(biāo)注系統(tǒng)會使用機(jī)器學(xué)習(xí)技術(shù),如支持向量機(jī)、樸素貝葉斯分類器、隨機(jī)森林、K近鄰等,來確定出物體的類別和位置。

    AR標(biāo)注技術(shù)可以幫助企業(yè)提升其產(chǎn)品的品質(zhì)和可用性,比如家居空間設(shè)計(jì)公司可以利用AR標(biāo)注技術(shù)來快速識別物體,從而更好的幫助客戶規(guī)劃家居空間。此外,AR標(biāo)注技術(shù)還可以應(yīng)用在安防、健康檢查、視覺檢測等領(lǐng)域中。

    以上就是關(guān)于數(shù)據(jù)集標(biāo)注方法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    數(shù)據(jù)流網(wǎng)游小說排行榜(數(shù)據(jù)流網(wǎng)游小說排行榜前十名)

    公眾號數(shù)據(jù)分析報(bào)告(公眾號數(shù)據(jù)分析報(bào)告模板)

    運(yùn)動鞋銷量排行榜(運(yùn)動鞋銷量排行榜數(shù)據(jù))

    星座富豪排行榜(星座富豪排行榜最新)

    抖店商品下架后還能評價(jià)嗎(抖店商品被下架)