def handle(self, *args, **options):
     qset = MaterialShape.objects.filter(
         correct=True, substance__isnull=False,
         substance__fail=False).order_by('-area')
     for shape in queryset_progress_bar(qset):
         create_shape_image_sample_task.delay(shape,
                                              sample_width=256,
                                              sample_height=256)
Ejemplo n.º 2
0
 def handle(self, *args, **options):
     qset = MaterialShape.objects.filter(
         correct=True,
         substance__isnull=False,
         substance__fail=False).order_by('-area')
     for shape in queryset_progress_bar(qset):
         create_shape_image_sample_task.delay(
             shape, sample_width=256, sample_height=256)
Ejemplo n.º 3
0
    def handle(self, *args, **options):
        larger_dimension = 320
        local_dir = 'image-labels'

        COLORS = [
            (236, 146, 155), (127, 0, 134), (153, 224, 255), (185, 244, 105),
            (157, 67, 17), (252, 45, 68), (210, 54, 255), (0, 136, 160),
            (181, 189, 148), (255, 204, 180), (114, 50, 64), (195, 204, 255),
            (0, 255, 255), (122, 141, 0), (255, 156, 116), (161, 0, 59),
            (113, 138, 242), (0, 221, 164), (75, 72, 31), (131, 116, 111),
            (255, 58, 156), (0, 76, 237), (38, 119, 97), (244, 211, 0),
            (255, 60, 0), (242, 200, 232), (67, 71, 78), (0, 133, 29),
            (118, 74, 0), (255, 140, 250), (0, 106, 171), (0, 248, 9),
            (255, 156, 0), (114, 64, 115), (0, 179, 255), (193, 201, 189),
            (213, 180, 130)
        ]

        substance_names = [
            'Wood',
            'Painted',
            'Fabric/cloth',
            'Glass',
            'Metal',
            'Tile',
            'Carpet/rug',
            'Plastic - opaque',
            'Granite/marble',
            'Ceramic',
            'Paper/tissue',
            'Food',
            'Leather',
            'Plastic - clear',
            'Concrete',
            'Laminate',
            'Brick',
            'Mirror',
            'Cardboard',
            'Wallpaper',
            'Stone',
            'Wicker',
            'Skin',
            'Hair',
            'Rubber/latex',
            'Fur',
            'Foliage',
            'Wax',
            'Linoleum',
            'Sponge',
            'Sky',
            'Water',
            'Chalkboard/blackboard',
            'Cork/corkboard',
            'Fire',
        ]

        if len(COLORS) < len(substance_names):
            raise ValueError("too few colors")

        substance_to_id = dict(
            ShapeSubstance.objects.filter(
                name__in=substance_names).values_list('name', 'id'))

        color_map = {
            substance_to_id[name]: COLORS[idx]
            for idx, name in enumerate(substance_names)
        }

        with open('%s/Colors.txt' % local_dir, 'w') as f:
            for idx, name in enumerate(substance_names):
                c = COLORS[idx]
                print >> f, c[0], c[1], c[2], name

        print 'Names: %s' % substance_names
        print 'Name to ID: %s' % substance_to_id
        print 'Color map: %s' % color_map

        print 'Queueing tasks for download via celery...'
        qset = Photo.objects.filter(
            #scene_category__name='kitchen',
            #scene_category_correct=True,
            aspect_ratio__gte=0.5,
            aspect_ratio__lte=2.0,
        ).order_by('-num_vertices')  #[:2000]

        for photo in queryset_progress_bar(qset):
            filename_base = os.path.abspath(
                os.path.join(local_dir, os.path.join('images', str(photo.id))))

            photo_to_label_image_task.delay(
                photo_id=photo.id,
                color_map=color_map,
                filename=filename_base + '_GT.png',
                format='PNG',
                next_task=download_photo_task.s(
                    photo_id=photo.id,
                    filename=filename_base + '.png',
                    format='PNG',
                    larger_dimension=larger_dimension))
Ejemplo n.º 4
0
    def handle(self, *args, **options):
        larger_dimension = 320
        local_dir = 'image-labels'

        COLORS = [
            (236,146,155),
            (127,0,134),
            (153,224,255),
            (185,244,105),
            (157,67,17),
            (252,45,68),
            (210,54,255),
            (0,136,160),
            (181,189,148),
            (255,204,180),
            (114,50,64),
            (195,204,255),
            (0,255,255),
            (122,141,0),
            (255,156,116),
            (161,0,59),
            (113,138,242),
            (0,221,164),
            (75,72,31),
            (131,116,111),
            (255,58,156),
            (0,76,237),
            (38,119,97),
            (244,211,0),
            (255,60,0),
            (242,200,232),
            (67,71,78),
            (0,133,29),
            (118,74,0),
            (255,140,250),
            (0,106,171),
            (0,248,9),
            (255,156,0),
            (114,64,115),
            (0,179,255),
            (193,201,189),
            (213,180,130)
        ]

        substance_names = [
            'Wood',
            'Painted',
            'Fabric/cloth',
            'Glass',
            'Metal',
            'Tile',
            'Carpet/rug',
            'Plastic - opaque',
            'Granite/marble',
            'Ceramic',
            'Paper/tissue',
            'Food',
            'Leather',
            'Plastic - clear',
            'Concrete',
            'Laminate',
            'Brick',
            'Mirror',
            'Cardboard',
            'Wallpaper',
            'Stone',
            'Wicker',
            'Skin',
            'Hair',
            'Rubber/latex',
            'Fur',
            'Foliage',
            'Wax',
            'Linoleum',
            'Sponge',
            'Sky',
            'Water',
            'Chalkboard/blackboard',
            'Cork/corkboard',
            'Fire',
        ]

        if len(COLORS) < len(substance_names):
            raise ValueError("too few colors")

        substance_to_id = dict(ShapeSubstance.objects
                               .filter(name__in=substance_names)
                               .values_list('name', 'id'))

        color_map = {substance_to_id[name]: COLORS[idx]
                     for idx, name in enumerate(substance_names)}

        with open('%s/Colors.txt' % local_dir, 'w') as f:
            for idx, name in enumerate(substance_names):
                c = COLORS[idx]
                print >>f, c[0], c[1], c[2], name

        print 'Names: %s' % substance_names
        print 'Name to ID: %s' % substance_to_id
        print 'Color map: %s' % color_map

        print 'Queueing tasks for download via celery...'
        qset = Photo.objects.filter(
            #scene_category__name='kitchen',
            #scene_category_correct=True,
            aspect_ratio__gte=0.5,
            aspect_ratio__lte=2.0,
        ).order_by('-num_vertices')#[:2000]

        for photo in queryset_progress_bar(qset):
            filename_base = os.path.abspath(os.path.join(
                local_dir, os.path.join('images', str(photo.id))))

            photo_to_label_image_task.delay(
                photo_id=photo.id,
                color_map=color_map,
                filename=filename_base + '_GT.png',
                format='PNG',
                next_task=download_photo_task.s(
                    photo_id=photo.id,
                    filename=filename_base + '.png',
                    format='PNG',
                    larger_dimension=larger_dimension)
            )