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

    數(shù)據(jù)集標注方法(數(shù)據(jù)集標注注意事項)

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

    大家好!今天讓創(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ù)集標注方法(數(shù)據(jù)集標注注意事項)

    一、數(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)化等。

    數(shù)據(jù)集標注方法(數(shù)據(jù)集標注注意事項)

    二、職位要求:

    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ù)分析報告模板)

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

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

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