山东大学软件学院创新项目实训开发日志——第9周

news/2024/11/20 6:16:40/

山东大学软件学院创新项目实训开发日志——第9周

项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐

-------项目目标:

  • 本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、框等提示,精确分割出图片或视频中指定的物体,或者无提示地分割出所有物体。
  • 基于分割出的物体,用户可以选择生成感兴趣的其他图片或视频。
  • 内置推荐算法可以自动根据分割结果,推荐与之相关的信息。

本周完成的任务

1、在服务器上部署了指代性视频物体分割模型MTTR:

该模型可以接受指定的视频和视频中某个物体的文本描述,分割出指定的物体,在输出的处理后的视频中,指定的物体被打上了掩码,在整个视频中达到了追踪的效果。
在这里插入图片描述

2、为MTTR模型实现了可调用接口

因为MTTR模型官方给出的代码中,只有训练代码和测试代码,并没有可直接调用模型预测的接口,因此我们首先为其实现了一个可直接调用的预测接口,方便部署到我们团队的项目中去,下面时接口的部分代码展示:

python">def save_masks_to_video(pred_masks, video_file_path, intermediate_output_path):# 打开原始视频文件cap = cv2.VideoCapture(video_file_path)if not cap.isOpened():print("Error opening video file")return# 获取视频的帧率和帧大小fps = cap.get(cv2.CAP_PROP_FPS)width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))size = (width, height)# 使用更兼容的编解码器fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter(intermediate_output_path, fourcc, fps, size)# 预处理掩码数据和读取帧sigmoid = torch.nn.Sigmoid()time, batch_size, num_queries, H_mask, W_mask = pred_masks.shapeframe_idx = 0while frame_idx < time:ret, original_frame = cap.read()if not ret:break# 处理掩码应用于视频帧mask = pred_masks[frame_idx, 0, 0]mask = sigmoid(mask)mask = mask > 0.5mask = mask.detach().cpu().numpy().astype(np.uint8)mask = cv2.resize(mask, size, interpolation=cv2.INTER_NEAREST)color_mask = np.zeros_like(original_frame)color_mask[mask == 1] = [0, 255, 0]masked_frame = cv2.addWeighted(color_mask, 0.2, original_frame, 0.8, 0)out.write(masked_frame)frame_idx += 1cap.release()out.release()print("Intermediate video saved at:", intermediate_output_path)# 使用 FFmpeg 转换视频格式到 H.264convert_video_to_h264(intermediate_output_path, f"H264_{intermediate_output_path}")
3、项目新功能:视频物体追踪

我们将MTTR模型部署到了我们的项目中去,以此实现了我们项目视频处理模块的第一个功能——视频物体追踪。用户可以上传一段视频,并给出一段文本描述,我们的系统可以对视频中的指定物体进行追踪,以下面的视频为例:

  • 原视频

seagull

  • 文本描述:“the flying seagull”,分割后的视频

result_seagull

4、在服务器上部署了“图生文”模型——CATR

“图生文”指的是可以根据输入的图片,返回一段对该图片的简单文本描述,CATR模型在“图生文”领域中有着较为不错的性能:
在这里插入图片描述

5、在服务器上部署了“文生图”模型——Stable-Diffusion

“文生图”指的是给模型一段文本描述,模型可以生成该文本描述的图片,也就是图像领域的AIGC。这里不难看出,在团队没有合适的“图生图”模型的情况下,可以结合“文生图”和“图生文”模型来达到“图生图”的效果。
在这里插入图片描述

6、项目新功能——图片分析与生成

在结合了“图生文”模型CATR和“文生图”模型stable-diffusion的基础上,我们在项目的图片处理模块中增加了新功能——图片分析与生成。对于用户上传的图片,点击“Analyze”后,会调用服务器端的模型CATR对图片内容进行分析,并将分析的结果传递给stable-diffusion,stable-diffusion将据此生成多张新图片,两个模型预测和生成的结果都会返回给本地前端进行展示。
在这里插入图片描述

下一阶段工作计划

  • 为视频模块的第二项功能——视频帧定位,寻找好的模型。
  • 对现有功能进行修缮。

http://www.ppmy.cn/news/1443638.html

相关文章

2024长三角快递物流展:科技激荡,行业焕发新活力

7月8日&#xff0c;杭州将迎来快递物流科技盛宴&#xff0c;这是一年一度的行业盛会&#xff0c;吸引了全球领先的快递物流企业和创新技术汇聚一堂。届时&#xff0c;会展中心将全方位展示快递物流及供应链、分拣系统、输送设备、智能搬运、智能仓储、自动识别、无人车、AGV机器…

基于STM32单片机的汽车胎压、速度及状态监测系统设计与实现

基于STM32单片机的汽车胎压、速度及状态监测系统设计与实现 摘要&#xff1a; 随着汽车电子技术的快速发展&#xff0c;车辆状态实时监控系统的需求日益增长。本文设计并实现了一种基于STM32单片机的汽车胎压、速度及状态监测系统。该系统能够实时监测汽车的胎压、速度以及其他…

探索亚马逊云科技「生成式 AI 精英速成计划」

目录 前言「生成式 AI 精英速成计划」技术开发课程学习课程学习 总结 前言 亚马逊云科技&#xff08;Amazon Web Services&#xff0c;简称AWS&#xff09;作为全球领先的云计算服务提供商&#xff0c;一直以来在推动人工智能&#xff08;AI&#xff09;领域的发展中扮演着重要…

[Rust开发]在Rust中使用geos的空间索引编码实例

geos的空间索引用的是STRTree&#xff0c;这是一种基于STR算法的四叉树索引&#xff0c;有如下特点&#xff1a; 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引 STR(Sort-Tile-Recursive,递归网格排序) 基本思想是将所有的矩形以“tile”的方式分配到r/n&a…

Solend创始人复盘ezETH脱锚:如何应对LST风险?

近日&#xff0c;因Renzo的代币经济学过于“中心化”引发加密社区争议&#xff0c;Renzo LRT代币ezETH遭大量抛售导致脱锚。Solend创始人Rooter针对此事在X平台发文&#xff0c;对此事件进行了发声。以下为内容全文&#xff1a; 此事并不是什么黑天鹅事件。而且也不算是尾部事…

Eclipse内存分析器 Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用

1.visualvm实时监测 2.Memory Analyzer Tool打开 3.工具的使用可以参考 Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用 ------------------------ 1.我远程发现是其中一个客户端A请求服务器页面响应&#xff0c;一直得不到响应&#xff0c;然后客户端A一直请求&am…

深入理解Linux调试工具eBPF和strace、内存泄漏处理、Kubernetes容器调试以及C++协程的崩溃信息收集

在软件开发领域&#xff0c;无论是初级开发者还是资深工程师&#xff0c;都需要面对复杂的调试工作。本文将介绍几个重要的调试工具和技术&#xff0c;并提供实际调试方法的指导&#xff0c;包括Linux环境下的eBPF和strace&#xff0c;内存泄漏问题的处理&#xff0c;Kubernete…

No system certificates available. Try installing ca-certificates.

一、错误重现 Certificate verification failed: The certificate is NOT trusted. No system certificates available. Try installing ca-certificates. 具体如图 系统环境是ubuntu:22.04 ARM架构 二、解决方法 1、先不要更换镜像源 直接设置 apt update apt -y instal…