日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

voc2012数据集详解

發布時間:2023/12/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 voc2012数据集详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://blog.csdn.net/wenxueliu/article/details/80327316

在目標檢測中,如果對數據不了解,在數據集處理這塊有時候會看得云里霧里。比如

  • trainval 這個詞到底指什么
  • 標簽中的 bbox 中的 ymax, xmax, ymin, xmin 取值范圍是多少,如何計算的?
  • 圖片與標簽是如何關聯起來的等等
  • 本文的目的:

  • 明白數據集是如何組織的
  • TensorFlow 是如何對數據做處理的。
  • 數據集詳解

    在目標檢測中,主要用到了 Annotations,ImageSets,JPEGImages

    其中 ImageSets/Main/ 保存了具體數據集的索引,Annotations 保存了標簽數據, JPEGImages 保存了圖片內容。

    ImageSets

    ImageSets/Main/ 文件夾以 , {class}_trainval.txt {class}_val.txt 的格式命名。 train.txt val.txt 例外

    包括 Action,Layout,Main,Segmentation 四個文件夾

  • Action:存放的是人的動作(例如running、jumping等等,這也是VOC challenge的一部分)
  • Layout:存放的是具有人體部位的數據(人的head、hand、feet等等,這也是VOC challenge的一部分
  • Main:存放的是圖像物體識別的數據,總共分為20類。
  • Segmentation:存放的是可用于分割的數據。
  • ImageSets/Main/ 文件夾以 , {class}_trainval.txt {class}_val.txt 的格式命名。 train.txt val.txt 例外

    aeroplane_train.txt aeroplane_trainval.txt aeroplane_val.txt bicycle_train.txt bicycle_trainval.txt bicycle_val.txt bird_train.txt bird_trainval.txt bird_val.txt boat_train.txt boat_trainval.txt boat_val.txt bottle_train.txt bottle_trainval.txt bottle_val.txt bus_train.txt bus_trainval.txt bus_val.txt car_train.txt car_trainval.txt car_val.txt cat_train.txt cat_trainval.txt cat_val.txt chair_train.txt chair_trainval.txt chair_val.txt cow_train.txt cow_trainval.txt cow_val.txt diningtable_train.txt diningtable_trainval.txt diningtable_val.txt dog_train.txt dog_trainval.txt dog_val.txt horse_train.txt horse_trainval.txt horse_val.txt motorbike_train.txt motorbike_trainval.txt motorbike_val.txt person_train.txt person_trainval.txt person_val.txt pottedplant_train.txt pottedplant_trainval.txt pottedplant_val.txt sheep_train.txt sheep_trainval.txt sheep_val.txt sofa_train.txt sofa_trainval.txt sofa_val.txt train.txt train_train.txt train_trainval.txt train_val.txt trainval.txt tvmonitor_train.txt tvmonitor_trainval.txt tvmonitor_val.txt val.txt
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
  • {class}_train.txt 保存類別為 class 的訓練集的所有索引,每一個 class 的 train 數據都有 5717 個。
  • {class}_val.txt 保存類別為 class 的驗證集的所有索引,每一個 class 的val數據都有 5823 個
  • {class}_trainval.txt 保存類別為 class 的訓練驗證集的所有索引,每一個 class 的val數據都有11540 個
  • 每個文件包含內容為

    2011_003194 -1 2011_003216 -1 2011_003223 -1 2011_003230 1 2011_003236 1 2011_003238 1 2011_003246 1 2011_003247 0 2011_003253 -1 2011_003255 1 2011_003259 1 2011_003274 -1 2011_003276 -1注:1代表正樣本,-1代表負樣本。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    VOC2012/ImageSets/Main/train.txt 保存了所有訓練集的文件名,從 VOC2012/JPEGImages/ 找到文件名對應的圖片文件。VOC2012/Annotations/ 找到文件名對應的標簽文件

    VOC2012/ImageSets/Main/val.txt 保存了所有驗證集的文件名,從 VOC2012/JPEGImages/ 找到文件名對應的圖片文件。VOC2012/Annotations/ 找到文件名對應的標簽文件

    讀取 JPEGImages 和 Annotation 文件轉換為 tf 的 Example 對象,寫入 {train|test}{index}_of{num_shard} 文件。每個文件寫的 Example 的數量為 total_size/num_shard。(不同數據集可以適當調節 num_shard 來控制每個輸出文件的大小)

    Annotations

    文件夾中文件以 {id}.xml (id 保存在 VOC2012/ImageSets/Main/文件夾 ) 格式命名的 xml 文件,保存如下關鍵信息

  • 物體 label : name ,如下例子為 person
  • 圖片尺寸: depth, height, width
  • 物體 bbox : bndbox 下 xmax, xmin, ymax, ymin
  • <annotation><filename>2009_001137.jpg</filename><folder>VOC2012</folder><object><name>person</name><bndbox><xmax>355</xmax><xmin>187</xmin><ymax>334</ymax><ymin>121</ymin></bndbox><difficult>0</difficult> //目標是否難以識別(0表示容易識別)<occluded>0</occluded><pose>Unspecified</pose> //拍攝角度<truncated>0</truncated> //是否被截斷(0表示完整)</object><object><name>pottedplant</name><bndbox><xmax>500</xmax><xmin>376</xmin><ymax>261</ymax><ymin>1</ymin></bndbox><difficult>0</difficult><occluded>1</occluded><pose>Unspecified</pose><truncated>1</truncated></object><segmented>1</segmented><size><depth>3</depth><height>334</height><width>500</width></size><source><annotation>PASCAL VOC2009</annotation><database>The VOC2009 Database</database><image>flickr</image></source></annotation>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    JPEGImages

    以 2009_001137.jpg 為例,解碼之后獲取 image_data(圖片內容的二進制),height, width

    數據集轉換為 TF Record

    以上面例子為例,最終的 TFRecord 為

    TF Example { 'filename' : 'VOC{year}/JPEGImages/{id}.jpg' 'height' : height 'width' : width 'classes' : [classes.index(person), classes.index(person)] 'y_mins' : [float(121)/334, float(1)/334] # 各個 object 的 ymin 'x_mins' : [float(187)/500, float(376)/500] 'y_maxes' : [float(334)/334, float(261)/334] 'x_maxes' : [ float(355)/500, float(500)/500] 'encoded' : '圖片內容二進制' }其中classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat","chair", "cow", "diningtable", "dog", "horse", "motorbike", "person","pottedplant", "sheep", "sofa", "train", "tvmonitor" ]注:difficult = 1 的直接跳過,不進行處理。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    以上為將一張圖片及標簽轉為 TF Example,對于整個數據集,依次遍歷數據集即可。

      總結

      以上是生活随笔為你收集整理的voc2012数据集详解的全部內容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。