浏览代码

several fixes

Dimitri Korsch 5 年之前
父节点
当前提交
94e29a59f5

+ 1 - 1
cvdatasets/annotation/mixins/features_mixin.py

@@ -9,7 +9,7 @@ class FeaturesMixin(abc.ABC):
 	def extract_kwargs(cls, opts):
 		kwargs = super(FeaturesMixin, cls).extract_kwargs(opts)
 		kwargs.update(dict(
-			feature_model=getattr(opts, "feature_model", False),
+			feature_model=getattr(opts, "feature_model", None),
 		))
 		return kwargs
 

+ 2 - 2
cvdatasets/annotation/types/__init__.py

@@ -16,7 +16,7 @@ class AnnotationType(BaseChoiceType):
 	Default = FILE_LIST
 
 	@classmethod
-	def new_annotation(cls, opts):
+	def new_annotation(cls, opts, **kwargs):
 		if opts.dataset in cls:
 			annot = cls[opts.dataset].value
 		else:
@@ -26,7 +26,7 @@ class AnnotationType(BaseChoiceType):
 			ds_info = info_file.DATASETS[opts.dataset]
 			annot = cls[ds_info.annotation_type.lower()].value
 
-		return annot.new(opts)
+		return annot.new(opts, **kwargs)
 
 	@classmethod
 	def as_choices(cls, add_phony=True):

+ 14 - 4
cvdatasets/dataset/__init__.py

@@ -1,7 +1,17 @@
-from .mixins.reading import AnnotationsReadMixin, ImageListReadingMixin
-from .mixins.parts import PartMixin, RevealedPartMixin, CroppedPartMixin
-from .mixins.features import PreExtractedFeaturesMixin
-from .mixins.chainer_mixins import IteratorMixin
+from cvdatasets.dataset.mixins.chainer_mixins import IteratorMixin
+from cvdatasets.dataset.mixins.features import PreExtractedFeaturesMixin
+from cvdatasets.dataset.mixins.parts import BBCropMixin
+from cvdatasets.dataset.mixins.parts import BBoxMixin
+from cvdatasets.dataset.mixins.parts import CroppedPartMixin
+from cvdatasets.dataset.mixins.parts import PartCropMixin
+from cvdatasets.dataset.mixins.parts import PartMixin
+from cvdatasets.dataset.mixins.parts import PartRevealMixin
+from cvdatasets.dataset.mixins.parts import PartsInBBMixin
+from cvdatasets.dataset.mixins.parts import RandomBlackOutMixin
+from cvdatasets.dataset.mixins.parts import RevealedPartMixin
+from cvdatasets.dataset.mixins.parts import UniformPartMixin
+from cvdatasets.dataset.mixins.reading import AnnotationsReadMixin
+from cvdatasets.dataset.mixins.reading import ImageListReadingMixin
 
 
 class ImageWrapperDataset(PartMixin, PreExtractedFeaturesMixin, AnnotationsReadMixin, IteratorMixin):

+ 10 - 5
cvdatasets/dataset/mixins/parts.py

@@ -1,8 +1,14 @@
 import numpy as np
 
-from . import BaseMixin
+from cvdatasets.dataset.mixins import BaseMixin
 
-class BBCropMixin(BaseMixin):
+class BBoxMixin(BaseMixin):
+
+	def bounding_box(self, i):
+		bbox = self._get("bounding_box", i)
+		return [bbox[attr] for attr in "xywh"]
+
+class BBCropMixin(BBoxMixin):
 
 	def __init__(self, *, crop_to_bb=False, crop_uniform=False, **kwargs):
 		super(BBCropMixin, self).__init__(**kwargs)
@@ -10,8 +16,7 @@ class BBCropMixin(BaseMixin):
 		self.crop_uniform = crop_uniform
 
 	def bounding_box(self, i):
-		bbox = self._get("bounding_box", i)
-		x,y,w,h = [bbox[attr] for attr in "xywh"]
+		x,y,w,h = super(BBCropMixin, self).bounding_box(i)
 		if self.crop_uniform:
 			x0 = x + w//2
 			y0 = y + h//2
@@ -29,7 +34,7 @@ class BBCropMixin(BaseMixin):
 			return im_obj.crop(*bb)
 		return im_obj
 
-class PartsInBBMixin(BaseMixin):
+class PartsInBBMixin(BBoxMixin):
 	def __init__(self, parts_in_bb=False, *args, **kwargs):
 		super(PartsInBBMixin, self).__init__(*args, **kwargs)
 		self.parts_in_bb = parts_in_bb

+ 1 - 1
scripts/display.py

@@ -9,7 +9,7 @@ import matplotlib.pyplot as plt
 
 from argparse import ArgumentParser
 
-from cvdatasets.annotation import AnnotationType
+from cvdatasets import AnnotationType
 from utils import parser, plot_crops
 
 def main(args):

+ 0 - 2
scripts/utils/parser.py

@@ -1,8 +1,6 @@
 import os
 from cvargparse import BaseParser, Arg
 
-from cvdatasets.annotation import AnnotationType
-
 from cvdatasets.utils import read_info_file
 
 DEFAULT_INFO_FILE=os.environ.get("DATA")