data_to_h5py.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import cv2
  2. import h5py
  3. import os
  4. import argparse
  5. import numpy as np
  6. import sys
  7. sys.path.append('..')
  8. from voc import VOCDetection
  9. from coco import COCODataset
  10. # ---------------------- Opt ----------------------
  11. parser = argparse.ArgumentParser(description='Cache-Dataset')
  12. parser.add_argument('-d', '--dataset', default='voc',
  13. help='coco, voc, widerface, crowdhuman')
  14. parser.add_argument('--root', default='/Users/liuhaoran/Desktop/python_work/object-detection/dataset/',
  15. help='data root')
  16. parser.add_argument('-size', '--img_size', default=640, type=int,
  17. help='input image size.')
  18. parser.add_argument('--mosaic', default=None, type=float,
  19. help='mosaic augmentation.')
  20. parser.add_argument('--mixup', default=None, type=float,
  21. help='mixup augmentation.')
  22. parser.add_argument('--keep_ratio', action="store_true", default=False,
  23. help='keep aspect ratio.')
  24. args = parser.parse_args()
  25. # ---------------------- Build Dataset ----------------------
  26. if args.dataset == 'voc':
  27. root = os.path.join(args.root, 'VOCdevkit')
  28. dataset = VOCDetection(args.img_size, root)
  29. elif args.dataset == 'coco':
  30. root = os.path.join(args.root, 'COCO')
  31. dataset = COCODataset(args.img_size, args.root)
  32. print('Data length: ', len(dataset))
  33. # ---------------------- Main Process ----------------------
  34. for i in range(len(dataset)):
  35. # load an image
  36. image, image_id = dataset.pull_image(i)
  37. orig_h, orig_w, _ = image.shape
  38. # resize image
  39. if args.keep_ratio:
  40. r = args.img_size / max(orig_h, orig_w)
  41. if r != 1:
  42. interp = cv2.INTER_LINEAR
  43. new_size = (int(orig_w * r), int(orig_h * r))
  44. image = cv2.resize(image, new_size, interpolation=interp)
  45. pad_image = np.ones([args.img_size, args.img_size, image.shape[2]], dtype=image.dtype) * 114
  46. pad_image[:new_size[1], :new_size[0]] = image
  47. image = pad_image
  48. else:
  49. image = cv2.resize(image, (int(args.img_size), int(args.img_size)))
  50. cv2.imshow('image', image)
  51. # cv2.imwrite(str(i)+'.jpg', img)
  52. cv2.waitKey(0)