虚拟现实环境下的远程教育和智能评估系统(十一)

2024-06-21 04:04

本文主要是介绍虚拟现实环境下的远程教育和智能评估系统(十一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视频帧画面知识点区域划分

知识点区域精确分割技术:

在深度学习检测模型结果基础上使用基于交并比(IoU)阈值的目标合并算法,合并过度重合目标区域面积,实现知识点区域精确分割

多模态知识点内容匹配策略:

图像:利用GPT-4模型的多模态处理能力,将视频帧中的图像与预设的知识点语义注解进行匹配 文本:使用Sentence Transformer模型对视频帧中提取的文本内容进行深度语义编码,将其嵌入向量与知识点数据库中的语义向量进行比较。通过计算语义相似度,精确匹配相关知识点,实现高效的文本内容到知识点的映射;

自此,可以使视频帧画面的各部分都有对应的知识点;

import os
import re
from sentence_transformers import SentenceTransformer, util
from test_gpt import detection_gpt# 初始化Sentence Transformer模型
model = SentenceTransformer('all-MiniLM-L6-v2')def get_embedding(text):return model.encode(text, convert_to_tensor=True)def semantic_similarity(text1, text2):embedding1 = get_embedding(text1)embedding2 = get_embedding(text2)return util.pytorch_cos_sim(embedding1, embedding2).item()def parse_knowledge_content(content):knowledge_points = []kp_blocks = content.strip().split("\n\n")for block in kp_blocks:lines = block.split("\n")kp_dict = {}for line in lines:key, value = line.split(":", 1)kp_dict[key.strip()] = value.strip()knowledge_points.append(kp_dict)return knowledge_pointsdef read_knowledge_file(timestamp, json_folder_path):knowledge_file_path = os.path.join(json_folder_path, f"{timestamp}.txt")try:with open(knowledge_file_path, 'r') as file:content = file.read()return parse_knowledge_content(content)except FileNotFoundError:return "Knowledge file not found"except Exception as e:return str(e)def parse_merge_text(file_path):with open(file_path, 'r') as file:content = file.read()timestamps = re.split(r'Timestamp: (\d+)', content)[1:]timestamp_data = {timestamps[i]: timestamps[i+1] for i in range(0, len(timestamps), 2)}return timestamp_datadef kp_match_data(merge_text_path, json_folder_path, object_frames_folder, output_path):data = parse_merge_text(merge_text_path)output_data = []for timestamp, contents in data.items():knowledge_content = read_knowledge_file(timestamp, json_folder_path)knowledge_txt_path = os.path.join("json_files", f"{timestamp}.txt")if isinstance(knowledge_content, str):output_data.append(f"Timestamp: {timestamp}\n{contents}\n{knowledge_content}\n")continuetry:with open(knowledge_txt_path, 'r', encoding='utf-8') as file:knowledge_txt = file.read()except FileNotFoundError:print(f"Knowledge file not found for timestamp {timestamp}")continue    contents_processed = contentsdetection_matches = re.findall(r'(Detection \d+): \((\d+, \d+, \d+, \d+)\)', contents)for match in detection_matches:detection_label, detection_data = matchdetection_number = detection_label.split(' ')[1].lower()  # e.g., 'detection1'detection_image_path = os.path.join(object_frames_folder, f"{timestamp}_detection{detection_number}.jpg")kp_id = detection_gpt(detection_image_path, knowledge_txt)contents_processed = contents_processed.replace(detection_label, f"{detection_label} (Knowledge_pdoint_id: {kp_id})")ocr_texts = re.findall(r'OCR \d+: \(\d+, \d+, \d+, \d+\) (.+)', contents)for ocr_text in ocr_texts:best_match = Nonebest_score = -float('inf')for kp in knowledge_content:score = semantic_similarity(ocr_text, kp['Original_text'])if score > best_score:best_match = kpbest_score = scoreif best_match:contents_processed = contents_processed.replace(ocr_text, f"(Knowledge_point_id: {best_match['Knowledge_point_id']}) {ocr_text}")output_data.append(f"Timestamp: {timestamp}\n{contents_processed}\n")with open(output_path, 'w', encoding='utf-8') as file:file.write("\n".join(output_data))

OCR得到的音频文本以及YOLO得到的detection区域对应知识点匹配:

下一步即是匹配三方数据:语音文本知识点、帧知识点区域、实时注视点位置

这篇关于虚拟现实环境下的远程教育和智能评估系统(十一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080154

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom