File size: 1,195 Bytes
3e1d9f3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
from ..utils import (
MInstrDataset,
)
from ..root import (
DATASETS,
IMAGE_PLACEHOLDER,
BOXES_PLACEHOLDER,
OBJS_PLACEHOLDER,
)
@DATASETS.register_module()
class REGDataset(MInstrDataset):
def __init__(self, *args, **kwargs):
super().__init__(*args, placeholders=(IMAGE_PLACEHOLDER, OBJS_PLACEHOLDER), **kwargs)
def __getitem__(self, index):
item = self.get_raw_item(index)
img_path = item['img_path']
expr = item['expression']
bbox = item['bbox']
image = self.get_image(img_path)
question = self.get_template().replace(OBJS_PLACEHOLDER, BOXES_PLACEHOLDER)
caption = expr
ret = {
'image': image,
'target': {
'boxes': [bbox],
},
'conversations': [
{
'from': 'human',
'value': question,
'boxes_seq': [[0]],
},
{
'from': 'gpt',
'value': f'{caption}',
}
]
}
return ret
@DATASETS.register_module()
class GCDataset(REGDataset):
pass
|