mirror of
https://github.com/modelscope/modelscope.git
synced 2026-07-11 13:02:11 +02:00
fix bug and change unittest mode
Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/10680402
This commit is contained in:
@@ -138,6 +138,19 @@ class ReferringVideoObjectSegmentationPipeline(Pipeline):
|
||||
video_np = rearrange(self.video,
|
||||
't c h w -> t h w c').numpy() / 255.0
|
||||
|
||||
# set font for text query in output video
|
||||
if self.model.cfg.pipeline.output_font:
|
||||
try:
|
||||
font = ImageFont.truetype(
|
||||
font=self.model.cfg.pipeline.output_font,
|
||||
size=self.model.cfg.pipeline.output_font_size)
|
||||
except OSError:
|
||||
logger.error('can\'t open resource %s, load default font'
|
||||
% self.model.cfg.pipeline.output_font)
|
||||
font = ImageFont.load_default()
|
||||
else:
|
||||
font = ImageFont.load_default()
|
||||
|
||||
# del video
|
||||
pred_masks_per_frame = rearrange(
|
||||
torch.stack(inputs), 'q t 1 h w -> t q h w').numpy()
|
||||
@@ -158,12 +171,6 @@ class ReferringVideoObjectSegmentationPipeline(Pipeline):
|
||||
W, H = vid_frame.size
|
||||
draw = ImageDraw.Draw(vid_frame)
|
||||
|
||||
if self.model.cfg.pipeline.output_font:
|
||||
font = ImageFont.truetype(
|
||||
font=self.model.cfg.pipeline.output_font,
|
||||
size=self.model.cfg.pipeline.output_font_size)
|
||||
else:
|
||||
font = ImageFont.load_default()
|
||||
for i, (text_query, color) in enumerate(
|
||||
zip(self.text_queries, colors), start=1):
|
||||
w, h = draw.textsize(text_query, font=font)
|
||||
@@ -173,9 +180,6 @@ class ReferringVideoObjectSegmentationPipeline(Pipeline):
|
||||
fill=tuple(color) + (255, ),
|
||||
font=font)
|
||||
masked_video.append(np.array(vid_frame))
|
||||
print(type(vid_frame))
|
||||
print(type(masked_video[0]))
|
||||
print(masked_video[0].shape)
|
||||
# generate and save the output clip:
|
||||
|
||||
assert self.model.cfg.pipeline.output_path
|
||||
|
||||
@@ -14,7 +14,7 @@ class ReferringVideoObjectSegmentationTest(unittest.TestCase,
|
||||
self.task = Tasks.referring_video_object_segmentation
|
||||
self.model_id = 'damo/cv_swin-t_referring_video-object-segmentation'
|
||||
|
||||
@unittest.skip('skip since the model is set to private for now')
|
||||
@unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
|
||||
def test_referring_video_object_segmentation(self):
|
||||
input_location = 'data/test/videos/referring_video_object_segmentation_test_video.mp4'
|
||||
text_queries = [
|
||||
@@ -31,7 +31,7 @@ class ReferringVideoObjectSegmentationTest(unittest.TestCase,
|
||||
else:
|
||||
raise ValueError('process error')
|
||||
|
||||
@unittest.skip('skip since the model is set to private for now')
|
||||
@unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
|
||||
def test_referring_video_object_segmentation_with_default_task(self):
|
||||
input_location = 'data/test/videos/referring_video_object_segmentation_test_video.mp4'
|
||||
text_queries = [
|
||||
|
||||
@@ -7,8 +7,8 @@ import zipfile
|
||||
|
||||
from modelscope.hub.snapshot_download import snapshot_download
|
||||
from modelscope.metainfo import Trainers
|
||||
from modelscope.models.cv.movie_scene_segmentation import \
|
||||
MovieSceneSegmentationModel
|
||||
from modelscope.models.cv.referring_video_object_segmentation import \
|
||||
ReferringVideoObjectSegmentation
|
||||
from modelscope.msdatasets import MsDataset
|
||||
from modelscope.trainers import build_trainer
|
||||
from modelscope.utils.config import Config, ConfigDict
|
||||
@@ -46,7 +46,6 @@ class TestImageInstanceSegmentationTrainer(unittest.TestCase):
|
||||
dataset_name=train_data_cfg.name,
|
||||
split=train_data_cfg.split,
|
||||
cfg=train_data_cfg.cfg,
|
||||
namespace='damo',
|
||||
test_mode=train_data_cfg.test_mode)
|
||||
assert next(
|
||||
iter(self.train_dataset.config_kwargs['split_config'].values()))
|
||||
@@ -55,14 +54,13 @@ class TestImageInstanceSegmentationTrainer(unittest.TestCase):
|
||||
dataset_name=test_data_cfg.name,
|
||||
split=test_data_cfg.split,
|
||||
cfg=test_data_cfg.cfg,
|
||||
namespace='damo',
|
||||
test_mode=test_data_cfg.test_mode)
|
||||
assert next(
|
||||
iter(self.test_dataset.config_kwargs['split_config'].values()))
|
||||
|
||||
self.max_epochs = max_epochs
|
||||
|
||||
@unittest.skip('skip since the model is set to private for now')
|
||||
@unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
|
||||
def test_trainer(self):
|
||||
kwargs = dict(
|
||||
model=self.model_id,
|
||||
@@ -77,11 +75,11 @@ class TestImageInstanceSegmentationTrainer(unittest.TestCase):
|
||||
results_files = os.listdir(trainer.work_dir)
|
||||
self.assertIn(f'{trainer.timestamp}.log.json', results_files)
|
||||
|
||||
@unittest.skip('skip since the model is set to private for now')
|
||||
@unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
|
||||
def test_trainer_with_model_and_args(self):
|
||||
|
||||
cache_path = snapshot_download(self.model_id)
|
||||
model = MovieSceneSegmentationModel.from_pretrained(cache_path)
|
||||
model = ReferringVideoObjectSegmentation.from_pretrained(cache_path)
|
||||
kwargs = dict(
|
||||
cfg_file=os.path.join(cache_path, ModelFile.CONFIGURATION),
|
||||
model=model,
|
||||
|
||||
Reference in New Issue
Block a user