當前位置:首頁 » 圖片大全 » voc數據集多少張圖片
擴展閱讀
畫花美甲圖片大全 2025-07-28 11:12:11
手工鑰匙扣圖片大全 2025-07-28 10:58:51
帶花的圖片唯美圖片 2025-07-28 10:54:34

voc數據集多少張圖片

發布時間: 2022-07-20 09:32:47

⑴ WNUT2017數據集標簽類型有什麼

有兩種,1、VOC數據格式。2、COCO數據類型格式。
目標檢測領域基本數據類型用的多無非就是VOC、COCO兩種,下面就記錄一下這兩種數據類型的獲取。
數據集,又稱為資料集、數據集合或資料集合,是一種由數據所組成的集合。是一個數據的集合,通常以表格形式出現。每一列代表一個特定變數。每一行都對應於某一成員的數據集的問題。它列出的價值觀為每一個變數,如身高和體重的一個物體或價值的隨機數。每個數值被稱為數據資料。對應於行數,該數據集的數據可能包括一個或多個成員。

⑵ fcn中圖像語義分割voc數據集的lmdb數據怎樣製作

有兩種方法:
1)可製作兩個lmdb文件,一個Data項是原始圖像,Label可為0,另一個Data項為分割後的標注圖像,Label為0。使用中caffe是支持多個lmdb輸入的。
2)將原始圖像(如3通道),標注圖像(1通道),合在一起成4通道,然後寫在一個lmdb中,然後導入後使用Slice層將其切開。這種方法就不能直接使用現有的convert_imageset來轉換了,可參考其實現自己寫一下。

⑶ pascal voc數據集segmentationclass和segmentationobject的區別

圖片的像素尺寸大小不一,但是橫向圖的尺寸大約在500*375左右,縱向圖的尺寸大約在375*500左右,基本不會偏差超過100。(在之後的訓練中,第一步就是將這些圖片都resize到300*300或是500*500,所有原始圖片不能離這個標准過遠。)
這些圖像就是用來進行訓練和測試驗證的圖像數據。

⑷ 20000張圖片的數據集要訓練多久

第一步訓練就需要花費2個多小時,總共也才6個小時左右,所以提高訓練速度很重要。

⑸ imagenet 數據集多少

一:程序開始

由於要向imageNet數據集中設置resize和是否亂序等參數,所以本文使用gflags命令行解析工具;在Create.sh文件中,調用convert_imageset.bin語句為:

<pre name="code" class="cpp">GLOG_logtostderr=1$TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$TRAIN_DATA_ROOT \ 圖像數據集存放的根目錄
$DATA/train.txt \ 圖像的ID和對應的分類標簽數字
$EXAMPLE/ilsvrc12_train_lmdb lmdb文件保存的路徑

由於train.txt文件太大,電腦打不開,故打開val.txt一窺之;val.txt中的某個數據為:

65ILSVRC2012_val_00000002.JPEG ,65應該是對應的標簽,後面的是圖像的編號id。
二:數據轉換流程圖

三:convert_imageset.cpp函數分析(caffe-master/tools/)

1引入必要的頭文件和命名空間

#include<algorithm>//輸出數組的內容、對數組進行升冪排序、反轉數組內容、復制數組內容等操作,
#include <fstream> // NOLINT(readability/streams)
#include <string>
#include<utility>//utility頭文件定義了一個pair類型,pair類型用於存儲一對數據
#include<vector>//會自動擴展容量的數組
#include "boost/scoped_ptr.hpp"//智能指針頭文件
#include "gflags/gflags.h"
#include "glog/logging.h"
#include"caffe/proto/caffe.pb.h"
#include "caffe/util/db.hpp" //引入包裝好的lmdb操作函數
#include "caffe/util/io.hpp" //引入opencv中的圖像操作函數
#include "caffe/util/rng.hpp"
頭文件和convert_cifar_data.cpp的區別:

1,引入gflags命令行解析工具;
2,引入utility頭文件,裡面提供了數組洗牌等操作

using namespace caffe; // NOLINT(build/namespaces)
using std::pair;
using boost::scoped_ptr;
命名空間區別:

1,引入全部caffe命名空間
2,引入pair對命名空間
2 gflags宏定義參數
//通過gflags宏定義一些程序的參數變數

DEFINE_bool(gray, false,"When thisoption is on, treat images as grayscale ones");//是否為灰度圖片
DEFINE_bool(shuffle, false,"Randomlyshuffle the order of images and their labels");//定義洗牌變數,是否隨機打亂數據集的順序
DEFINE_string(backend, "lmdb","The backend {lmdb, leveldb} for storing the result");//默認轉換的數據類型
DEFINE_int32(resize_width, 0, "Width images areresized to");//定義resize的尺寸,默認為0,不轉換尺寸
DEFINE_int32(resize_height, 0, "Height imagesare resized to");
DEFINE_bool(check_size, false,"When this optionis on, check that all the datum have the samesize");
DEFINE_bool(encoded, false,"When this option ison, the encoded image will be save in datum");//用於轉換數據格式的
DEFINE_string(encode_type, "","Optional:What type should we encode the image as ('png','jpg',...).");//要轉換的數據格式

3 main()函數
沒有想cifar和mnist的main函數,通過調用convert_data()函數來轉換數據,而是直接在main函數內完成了所有數據轉換代碼。
3.1 通過gflags宏定義接收命令行中傳入的參數

const boolis_color = !FLAGS_gray; //通過gflags把宏定義變數的值,賦值給常值變數
const boolcheck_size = FLAGS_check_size; //檢查圖像的size
const boolencoded = FLAGS_encoded;//是否編譯(轉換)圖像格式
const stringencode_type = FLAGS_encode_type;//要編譯的圖像格式
3.2讀取源數據

3.2.1創建讀取對象變數
std::ifstream infile(argv[2]);//創建指向train.txt文件的文件讀入流
std::vector<std::pair<std::string, int> > lines;//定義向量變數,向量中每個元素為一個pair對,pair對有兩個成員變數,一個為string類型,一個為int類型;其中string類型用於存儲文件名,int類型,感覺用於存數對應類別的id
如val.txt中前幾個字元為逗ILSVRC2012_val_00000001.JPEG65ILSVRC2012_val_00000002.JPEG地;感覺這個string= ILSVRC2012_val_00000001.JPEG int=65
std::stringfilename;
int label;
3.2.2 讀取數據
//下面一條while語句是把train.txt文件中存放的所有文件名和標簽,都存放到vextor類型變數lines中;lines中存放圖片的名字和對應的標簽,不存儲真正的圖片數據

while (infile>> filename >> label) {
nes.push_back(std::make_pair(filename, label));
//make_pair是pair模板中定義的給pair對象賦值的函數,push_back()函數是vector對象的一個成員函數,用來在末端添加新元素}

3.3判斷是否進行洗牌操作

if(FLAGS_shuffle) {
// randomlyshuffle data
LOG(INFO)<< "Shuffling data";
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//洗牌函數,使用隨機生成器g對元素[first,last)容器內部元素進行隨機排列</span>

shuffle(lines.begin(), lines.end());//vector.begin() - 回傳一個Iterator迭代器,它指向 vector 第一個元素。}
3.4以智能指針的方式創建db::DB類型的對象 db

scoped_ptr<db::DB>db(db::GetDB(FLAGS_backend));
//智能指針的創建方式類似泛型的格式,上面通過db.cpp內定義的命名的子命名空間中db的逗成員函數地GetDB函數來初始化db對象
db->Open(argv[3], db::NEW);//argv[3]的文件夾下創建並打開lmdb的操作環境
scoped_ptr<db::Transaction>txn(db->NewTransaction());//創建lmdb文件的操作句柄

3.5 源數據中提取圖像數據
3.5.1 通過ReadImageToDatum函數把圖像數據讀取到datum中
//到源數據位置讀取每張圖片的數據。(../imagenet/xxx.jpeg,65,256,256,true,jpeg,&datum)

status= ReadImageToDatum(root_folder + lines[line_id].first,lines[line_id].second, resize_height,resize_width, is_color,enc, &datum); //把圖像數據讀取到datum中
3.5.2 ReadImageToDatum函數說明

ReadImageToDatum函數為io.cpp文件中定義的函數;io.cpp主要實現了3部分功能:
1,從text文件或者二進制文件中讀寫proto文件;
2,利用opencv的Mat矩陣,把圖像數據讀到Mat矩陣中;
3,把Mat矩陣中的值放入到datum中

⑹ 誰有每年pascal VOC 挑戰賽的圖像資料庫,除了2007的。

樓主,我需要2007的,你有嗎,能把2007的數據集給我發一份嗎
謝謝

⑺ PASCAL VOC數據集的分類問題中,ap怎麼算

以橫坐標為召回率,縱坐標為准確率,會畫出一條曲線,該曲線與橫軸縱軸的面積即為ap值,多個ap值的平均即為mAP。

⑻ 怎麼把數據搞成pascal voc的格式

計算機視覺裡面很大一塊是在做物體的識別、檢測還有分類(object recognition, detection and classification)。幾乎在每一個應用領域都需要用到這三項功能,所以能否順利的完成這三個功能,對檢驗一個演算法的正確性和效率來說是至關重要的。所以每一個演算法的設計者都會運用自己搜集到的場景圖片對演算法進行訓練和檢測,這個過程就逐漸的形成了數據集(dataset)。而不幸的是,這樣形成的數據集存在著很大的偏向性。因為就算是作者可以的隨機搜集圖片,在篩選的時候也存在著作者對事物的主管判斷,而這種判斷在其他人眼中就會覺得不公平。同時為了比較不同的演算法效率,設計者也會運用數據集來進行性能比較。所以如果你看的論文足夠多的話,你會發現,大家的實驗部分都會說:在某個數據集上我的演算法是最牛X的;在某某數據集上我的演算法和當前最牛X的其他地方差不多,但速度快/准確率高/誤報率低;雖然我的演算法在某數據集一般,但幾個數據集做一下平均,我的最牛X……所以這些由演算法設計者們創建的數據集並不是那麼的有說服性。

所以這就催生了 Pascal VOC Challenge 的出現,當讓這不是唯一的一個『標准』的數據集。Pascal 的全程是 Pattern Analysis, Statical Modeling and Computational Learning。PASCAL VOC 挑戰賽是視覺對象的分類識別和檢測的一個基準測試,提供了檢測演算法和學習性能的標准圖像注釋數據集和標準的評估系統。從2005年至今,該組織每年都會提供一系列類別的、帶標簽的圖片,挑戰者通過設計各種精妙的演算法,僅根據分析圖片內容來將其分類,最終通過准確率、召回率、效率來一決高下。如今,挑戰賽和其所使用的數據集已經成為了對象檢測領域普遍接受的一種標准。更多的自述和背景故事可以參見這篇官方提供的說明文件。

起初Pascal 並不像現在這樣完善和全面,剛開始委員會只提供了4個類別的圖像,在2006年的時候增加到了10個類,2007年開始則增加到了20個類;同樣是在2007年,加入了對人體輪廓布局(Person layout)的測試;測試圖像的數量也由起初的1578張增加到了2007年高峰時期的9963張,隨後的一年則出現了大幅下降,直到2010年圖庫數量重新達到高峰,並與2011年穩定在11530張;期間於2009年開始圖庫的構成發生了變化,這之前每年委員會都會重新製作圖庫,選擇新的照片來構成新的數據集。而2009年開始則採用擴增的方式,只在原有圖庫的基礎上加入新的圖片;再有一點就是在2010年加入的動作識別項目和 Other 分類。

VOC 挑戰提供兩種參加形式,第一種是僅用委員會所提供的數據,進行演算法機器學習和訓練。第二種是用測試之外的那些數據進行演算法的訓練,例如那些商業系統。但不管怎樣,這兩種情況必須嚴格的利用提供的測試數據來生成最終的結果。測試數據不得用於訓練和調試系統,比如通過利用運行多個參數的對比結果,選擇出最好的演算法。

如果將提供的訓練數據用於挑戰賽開發工具的一部分,包括特徵選擇和參數訓練在內的所有開發工作,都必須設置單獨的訓練和驗證數據。換句話說就是,將賽事委員會提供的數據分為訓練組和驗證組。最終挑戰時,僅取演算法第一次輸出的結果。

2007年的時候委員會將訓練、分類、測試用的所有標簽都弄成了可用狀態。但是從那以後,測試用的標簽就失效了,取而代之的是將測試數據的結果發送到對比伺服器進行對比。因為測試數據僅允許在演算法中運行一次,賽事僅僅將第一次的輸出結果判定為有效,所以強烈建議不要重復提交。同一種演算法的提交次數將會受到嚴格的審核。評估伺服器不是用來對演算法進行優化的,不是你的訓練機。

委員會也歡迎大家利用伺服器的發布功能,將自己的測試結果發布在挑戰賽最新的動態頁面上,如果你希望對比你的演算法與別人演算法的區別,有兩種途徑,一是使用VOC2007那年提供的所有數據,原因前文已經交代過。二是單獨利用最新的「traincal」進行交叉驗證。另外為了防止作弊,委員會僅允許通過教育系統(也就是高校的郵件地址)或者公司的郵件進行結果的提交。

委員會所提供的圖片集包括20個目錄:人類;動物(鳥、貓、牛、狗、馬、羊);交通工具(飛機、自行車、船、公共汽車、小轎車、摩托車、火車);室內(瓶子、椅子、餐桌、盆栽植物、沙發、電視)。都是一些日常中最常見的物體,位的就是能更好的體現演算法的實用性。

挑戰賽主要分為三個部分:圖像的分類、識別、分割,另外還有一個『動態』分類項目,一個由Image Net 舉行的大規模識別競賽和人類身體部位識別的附加賽項目。

分類就是讓演算法找出測試圖片都是屬於哪一個標簽,對測試的圖片進行分類,將圖片對號入座。

檢測則是檢測出測試圖片中由委員會特別圈定的內容,看看演算法能否正確的符合圈定的內容。這個視屏可以幫助大家了解這個項目的意義。

分割是對圖片進行像素級分割,也就是識別出的特定物體用一種顏色表示,其他的則作為背景。

動作分類則是在靜態圖片中預測人類的動作,比如有一張人類跑步的圖片,演算法根據身體各部位的位置特徵判別這個動作是『running』。

人類輪廓識別就是識別標示出來的人體部位,這對於一張圖片有多個人或者兩個人身體部分糾纏在一起的圖片識別有重要意義。

VOC2012年的賽事也在這個周一拉開了大幕,即日起,參賽者們就可以根據賽事規則,利用提供的開發工具進行演算法和程序的設計,同時官方也提供了用於第一種參賽方式的訓練用圖片庫。整個過程將一直持續到今年的歐洲計算機視覺大會(ECCV 2012)。想必如果在這種國際級別的標准賽事中獲獎,將會給個人或者企業帶來嚴重的加分效果。所以有能力的愛好者們和企業抓緊時間參賽去吧!

這里有一位叫『Yinan Yu』的中國人,在中科院的學術氛圍下,於去年的挑戰賽中取得了不錯的成績。另外參賽後一些比較 NB 的論文也被貼了出來供大家欣賞,其中一些也被 IEEE 收錄,作為高品質論文的象徵。

⑼ 如何把自己的數據生成voc數據集形式caffe ssd

我先問你個問題,你有什麼硬體平台?顯卡是什麼配置?有多大的數據集?vgg網路不是特別復雜,你可以直接從網上下載到他們的網路和相應參數。但是普通人的電腦估計是訓練不出這么好的網路的,主要原因是慢。就拿2012的imagenet的數據來說,訓練圖片大約138G,用GTX1080Ti跑的話,不跑個一兩周估計效果都不理想。

⑽ 訓練集是每人多少張照片

兩三百張。
學習一個類大概幾百張左右就夠,具體取決於你的目標學習的難易性,簡單的類有個二三百就差不多,較難學習的類要900及以上。
數據集圖片大小不需要一致,訓練效果是否有影響取決於你原始圖片到模型輸入圖片的縮放比例倍數,如果縮放比例過大,還是有影響的。