Пример #1
0
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)
Пример #3
0
#%%
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)
Пример #6
0
    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]
Пример #7
0
        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)
Пример #8
0
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())]
Пример #9
0
# 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]