项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐
项目目标:
本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、框等提示,精确分割出图片或视频中指定的物体,或者无提示地分割出所有物体。
基于分割出的物体,用户可以选择生成感兴趣的其他图片或视频。
内置推荐算法可以自动根据分割结果,推荐与之相关的信息。
在前几周的项目实训课程的项目开发过程中,我主要负责模型架构修改完善的工作,下面我将对遇到的问题和解决方法展开讲解。
还遇到了一个问题是采用MTTR(End-to-End Referring Video Object Segmentation with Multimodal Transformers)模型完成根据文本对视频中的物体定位的任务时无法准确地对物体进行定位,原因分析如下:
语义理解不准确:模型可能对文本描述的物体不够准确地理解,导致无法准确定位。
视频语境理解不充分:模型可能无法充分理解视频中物体的上下文和场景,影响了定位准确性。
模型训练不充分:可能是由于模型训练数据不足或者训练时间不足,导致模型学习能力不足以准确定位物体。
模型结构复杂性:MTTR模型作为一个复杂的多模态Transformer模型,可能存在过拟合或难以优化的问题,影响了定位性能。
最终可以尝试通过增加训练数据、调整模型超参数、改进模型结构或者使用更高质量的文本描述数据等方法来提高MTTR模型的物体定位准确性。以下是MTTR脚本的关键代码:
from models import build_model
def load_model(config, checkpoint_path, device):
config.device = device
print(vars(config))
model, _, _ = build_model(config)
model = model.to(device)
model.load_state_dict(torch.load(checkpoint_path, map_location=device), strict=False)
model.eval()
return model
model = load_model(config, args.checkpoint_path, device)
prediction,original_frames = process_video(args.video_path, model, device, args.text_query)
pred_masks = prediction['pred_masks']
save_masks_to_video(pred_masks, args.video_path, 'result.mp4')
以下是使用MTTR定位后的效果: