Files
modelscope/tests/pipelines/test_self_supervised_depth_completion.py
heyyxd 158d72bfd2 add self supervised depth completion. (#711)
* add self supervised depth completion.

* update.

* fix the problem of key inconsistency.

* delete args parser.

* rename metrics to test_metrics.
2024-02-22 22:30:48 +08:00

55 lines
1.9 KiB
Python

# Copyright (c) Alibaba, Inc. and its affiliates.
import os
import unittest
import cv2
import torch
from modelscope import get_logger
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.msdatasets import MsDataset
from modelscope.outputs.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import DownloadMode, Tasks
from modelscope.utils.test_utils import test_level
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
logger = get_logger()
class SelfSupervisedDepthCompletionTest(unittest.TestCase):
"""class SelfSupervisedDepthCompletionTest"""
def setUp(self) -> None:
self.model_id = 'Damo_XR_Lab/Self_Supervised_Depth_Completion'
data_dir = MsDataset.load(
'KITTI_Depth_Dataset',
namespace='Damo_XR_Lab',
split='test',
download_mode=DownloadMode.FORCE_REDOWNLOAD
).config_kwargs['split_config']['test']
self.source_dir = os.path.join(data_dir, 'selected_data')
logger.info(data_dir)
@unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
@unittest.skipIf(not torch.cuda.is_available(), 'cuda unittest only')
def test_run(self):
"""test running evaluation"""
snapshot_path = snapshot_download(self.model_id)
logger.info('snapshot_path: %s', snapshot_path)
self_supervised_depth_completion = pipeline(
task=Tasks.self_supervised_depth_completion,
model=self.model_id
# ,config_file = os.path.join(modelPath, "configuration.json")
)
result = self_supervised_depth_completion(
dict(model_dir=snapshot_path, source_dir=self.source_dir))
cv2.imwrite('result.jpg', result[OutputKeys.OUTPUT])
logger.info(
'self-supervised-depth-completion_damo.test_run_modelhub done')
if __name__ == '__main__':
unittest.main()