def convert(args): if args.train: splits = [(2007, 'trainval'), (2012, 'trainval')] else: splits = [(2007, 'test')] gluon_dataset = VOCDetection(root=args.data_root, splits=splits) if args.single_data: rng = [args.single_data] num_data = 1 else: rng = range(len(gluon_dataset)) num_data = len(gluon_dataset) with h5py.File(args.out_path, 'w') as f: group = f.create_group('main') anchors = np.concatenate(get_anchor_boxes(), axis=0) num_total_priors = anchors.shape[0] anchors_dataset = group.create_dataset('anchors', anchors.shape, dtype='f') anchors_dataset[:] = anchors image_dataset = group.create_dataset('image', (num_data, IMG_SIZE, IMG_SIZE, 3), dtype='f') bounding_boxes_dataset = group.create_dataset('bounding_box', (num_data, num_total_priors, 4), dtype='f') match_dataset = group.create_dataset('match', (num_data, num_total_priors, 1)) num_match_dataset = group.create_dataset('num_match', (num_data, 1), dtype='i') class_dataset = group.create_dataset('class', (num_data, num_total_priors, 1), dtype='i') #class_dataset = group.create_dataset('class', (num_data, num_total_priors, NUM_VOC_CLASSES + 1), dtype='i') #ohe_encoder = create_class_encoder() for i, data_index in tqdm(enumerate(rng)): image, label = gluon_dataset[data_index] bounding_boxes = label[:, :4] class_ids = label[:, 4:5] image_dataset[i] = preprocess_image(image) bounding_boxes = convert_to_anchor_coordinates(image, bounding_boxes) bounding_boxes, ious, classes = match_ground_truths_to_priors(bounding_boxes, class_ids, anchors) #class_ids = ohe_encoder.transform(class_ids) bounding_boxes_dataset[i] = bounding_boxes.values matches = ious.values.reshape((-1, 1)) > IOU_THRESHOLD match_dataset[i] = np.where(matches, 1.0, 0.0) num_match_dataset[i] = np.sum(matches) class_dataset[i] = assign_classes(classes, matches)
Since lots of contents in this tutorial is very similar to :doc:`./train_ssd_voc`, you can skip any part if you feel comfortable. """ ########################################################## # Dataset # ------- # # Please first go through this :ref:`sphx_glr_build_examples_datasets_pascal_voc.py` tutorial to setup Pascal # VOC dataset on your disk. # Then, we are ready to load training and validation images. from gluoncv.data import VOCDetection # typically we use 2007+2012 trainval splits for training data train_dataset = VOCDetection(splits=[(2007, 'trainval'), (2012, 'trainval')]) # and use 2007 test as validation data val_dataset = VOCDetection(splits=[(2007, 'test')]) print('Training images:', len(train_dataset)) print('Validation images:', len(val_dataset)) ########################################################## # Data transform # -------------- # We can read an image-label pair from the training dataset: train_image, train_label = train_dataset[6] bboxes = train_label[:, :4] cids = train_label[:, 4:5] print('image:', train_image.shape) print('bboxes:', bboxes.shape, 'class ids:', cids.shape)
#%% dataDir = 'F:/Temps/DataSets/object-dataset/' width = 512 height = 512 batch_size = 4 maxTrain_inOneEpoch = 10 epoch_num = 2 lambd = 1 / 6 Models_tmp_Dir = 'F:/Temps/Models_tmp/' #使用训练元件 ctx = [mx.cpu()] #%% train_dataset_official = VOCDetection() train_dataset = udacityDetection(root=dataDir) #%% 这个值应该是 print('Training images(应该是21601):', len(train_dataset)) train_image, train_label = train_dataset[11960] ''' 应该是: image: (1200, 1920, 3) bboxes: (X, 4) class ids: (X, 1) ''' bboxes = train_label[:, :4] cids = train_label[:, 4:5] print('image:', train_image.shape) print('bboxes:', bboxes.shape, 'class ids:', cids.shape)
Since lots of contents in this tutorial is very similar to :doc:`./train_ssd_voc`, you can skip any part if you feel comfortable. """ ########################################################## # Dataset # ------- # # Please first go through this :ref:`sphx_glr_build_examples_datasets_pascal_voc.py` tutorial to setup Pascal # VOC dataset on your disk. # Then, we are ready to load training and validation images. from gluoncv.data import VOCDetection # typically we use 2007+2012 trainval splits for training data train_dataset = VOCDetection(splits=[(2007, 'trainval'), (2012, 'trainval')]) # and use 2007 test as validation data val_dataset = VOCDetection(splits=[(2007, 'test')]) print('Training images:', len(train_dataset)) print('Validation images:', len(val_dataset)) ########################################################## # Data transform # -------------- # We can read an image-label pair from the training dataset: train_image, train_label = train_dataset[6] bboxes = train_label[:, :4] cids = train_label[:, 4:5] print('image:', train_image.shape) print('bboxes:', bboxes.shape, 'class ids:', cids.shape)
python train_ssd.py --help """ ########################################################## # Dataset # ------- # # Please first go through this :ref:`sphx_glr_build_examples_datasets_pascal_voc.py` tutorial to setup Pascal # VOC dataset on your disk. # Then, we are ready to load training and validation images. from gluoncv.data import VOCDetection # typically we use 2007+2012 trainval splits for training data train_dataset = VOCDetection(splits=[(2007, 'trainval'), (2012, 'trainval')]) # and use 2007 test as validation data val_dataset = VOCDetection(splits=[(2007, 'test')]) print('Training images:', len(train_dataset)) print('Validation images:', len(val_dataset)) ########################################################## # Data transform # ------------------ # We can read an image-label pair from the training dataset: train_image, train_label = train_dataset[0] bboxes = train_label[:, :4] cids = train_label[:, 4:5] print('image:', train_image.shape) print('bboxes:', bboxes.shape, 'class ids:', cids.shape)
if you feel comfortable. """ ########################################################## # Dataset # ------- # # Please first go through this :ref:`sphx_glr_build_examples_datasets_pascal_voc.py` tutorial to setup Pascal # VOC dataset on your disk. # Then, we are ready to load training and validation images. import gluoncv as gcv from gluoncv.data import VOCDetection # typically we use 2007+2012 trainval splits for training data train_dataset = VOCDetection( root='/home/v000284/Documents/VTI/darknet/VOCdevkit', splits=[(2007, 'trainval')]) # and use 2007 test as validation data val_dataset = VOCDetection( root='/home/v000284/Documents/VTI/darknet/VOCdevkit', splits=[(2007, 'test')]) print('Training images:', len(train_dataset)) print('Validation images:', len(val_dataset)) ########################################################## # Data transform # -------------- # We can read an image-label pair from the training dataset: train_image, train_label = train_dataset[60] bboxes = train_label[:, :4]
python train_ssd.py --help """ ########################################################## # Dataset # ------- # # Please first go through this :ref:`sphx_glr_build_examples_datasets_pascal_voc.py` tutorial to setup Pascal # VOC dataset on your disk. # Then, we are ready to load training and validation images. from gluoncv.data import VOCDetection # typically we use 2007+2012 trainval splits for training data train_dataset = VOCDetection(splits=[(2007, 'trainval'), (2012, 'trainval')]) # and use 2007 test as validation data val_dataset = VOCDetection(splits=[(2007, 'test')]) print('Training images:', len(train_dataset)) print('Validation images:', len(val_dataset)) ########################################################## # Data transform # ------------------ # We can read an image-label pair from the training dataset: train_image, train_label = train_dataset[0] bboxes = train_label[:, :4] cids = train_label[:, 4:5] print('image:', train_image.shape) print('bboxes:', bboxes.shape, 'class ids:', cids.shape)
from gluoncv.data.transforms import presets from gluoncv.data import DetectionDataLoader from gluoncv import data from MxNetUdacity_tools2 import SSD from MxNetUdacity_tools5 import SSDMultiBoxLoss from MxNetUdacity_tools8 import split_and_load_WithCPU from matplotlib import pyplot as plt import numpy as np from mxnet import autograd import mxnet as mx from mxnet import gluon #%% 数据 train_dataset = VOCDetection() val_dataset = VOCDetection(splits=[(2007, 'test')]) width = 512 height = 512 batch_size = 16 maxTrain_inOneEpoch = 100 epoch_num = 1 lambd = 1 / 6 Models_tmp_Dir = 'F:/Temps/Models_tmp/' CPU_percentage = 0.3 #使用训练元件 #ctx = [mx.gpu()] ctx = [mx.gpu(i) for i in range(mx.context.num_gpus())]
# ax = utils.viz.plot_bbox(img, bounding_boxes[0], scores[0], class_IDs[0], class_names=net.classes) # plt.show() from gluoncv.data import VOCDetection from matplotlib import pyplot as plt from gluoncv.utils import viz from gluoncv.data.transforms import presets from gluoncv import utils, data from gluoncv.data.batchify import Tuple, Stack, Pad from mxnet.gluon.data import DataLoader from gluoncv import model_zoo import mxnet as mx from mxnet import gluon, autograd, init from gluoncv.loss import SSDMultiBoxLoss train_dataset = VOCDetection(splits=[(2007, 'trainval'), (2012, 'trainval')], root="E:/Dataset/VOCdevkit") val_dataset = VOCDetection(splits=[(2007, 'test')], root="E:/Dataset/VOCdevkit") # train_image2, train_label2 = train_transform(train_image, train_label) # print('tensor shape:', train_image2.shape) # # train_image2 = train_image2.transpose( # (1, 2, 0)) * nd.array((0.229, 0.224, 0.225)) + nd.array((0.485, 0.456, 0.406)) # train_image2 = (train_image2 * 255).clip(0, 255) # ax = viz.plot_bbox(train_image2.asnumpy(), train_label2[:, :4], # labels=train_label2[:, 4:5], # class_names=train_dataset.classes) # plt.show() # val_image, val_label = val_dataset[0]