近日部署跑通的若干多模态模型总结与论文概述
CLIP模型概述与落地测试
CLIP模型全称是Contrastive Language-Image Pretraining(对比语言图像预训练)。是OpenAI于2021年提出的多模态预训练模型,通过对比学习对齐图像和文本的表示,实现零样本(zero-shot)迁移到多种视觉任务。其核心思想是“用自然语言监督视觉模型”,即利用互联网规模的图像-文本对训练,使模型理解开放世界的视觉概念。
其特点总结如下:
1.采用多模态对齐,图像用视觉编码器VIT(vision transformer),或者resnet残差网络,文本用文本编码器如transformer编码。最终实现最大化匹配图像和文本的相似度。CLIP对于图像的编码实际上用的是resnet 50
2.零样本迁移,无需微调即可直接应用于新任务(如分类、检索),通过文本提示(prompt)生成分类器。
3.prompt工程,提示工程与集成提高了零样本性能。与使用无上下文类名的基线相比,提示工程与集成在 36 个数据集上平均将零样本分类性能提高了近 5 个百分点。这种提升与使用基线零样本方法时将计算量增加 4倍所获得的提升相似,但在进行多次预测时,这种提升是“免费的”。
resnet50是五十层的残差神经网络,通过全局池化和批量归一化来优化性能,可以用于对图像进行特征提取。
在论文中阐述clip的图例如下:
首先是预训练,然后是构建数据集分类器,最后是用于零损失预测。
CLIP模型被发布在hugging face官网以供下载。
但是由于国内下载hugging face速度太慢,而模型本身大小较大,因此在国内镜像网站上面下载,采用git lfs clone来下载。
测试办法参考项目工程,该工程应用CLIP来做图文等多模态信息检索并求解相似度。
GitHub - pydaxing/clip_blip_embedding_rag: 在RAG技术中,嵌入向量的生成和匹配是关键环节。本文介绍了一种基于CLIP/BLIP模型的嵌入服务,该服务支持文本和图像的嵌入生成与相似度计算,为多模态信息检索提供了基础能力。
比如:
git lfs clone https://www.modelscope.cn/<namespace>/<model-name>.git
然后将namespace/model-name.git替换成要下载的模型名称。openai/clip-vit-large-patch14,namespace是出品方,model-name是下载的模型的名字。主要的代码如下,运行时候
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import CLIPProcessor, CLIPModel
import torch
from PIL import Image
import requests
from io import BytesIO
import numpy as np
import time
import asyncio
from concurrent.futures import ThreadPoolExecutor
from typing import List # 导入 List 类型# Use a pipeline as a high-level helper# 加载模型和处理器
# Load model directly
processor = CLIPProcessor.from_pretrained("./dataroot/models/openai/clip-vit-large-patch14")
model = CLIPModel.from_pretrained("./dataroot/models/openai/clip-vit-large-patch14")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)# 函数:生成文本嵌入
def get_text_embedding(text):inputs = processor(text=[text], return_tensors="pt", padding=True).to(device)with torch.no_grad():embedding = model.get_text_features(**inputs)return embedding.cpu().numpy()def get_image_embedding(image_url):try:response = requests.get(image_url)image = Image.open(BytesIO(response.content)).convert("RGB")inputs = processor(images=image, return_tensors="pt").to(device)with torch.no_grad():embedding = model.get_image_features(**inputs)return embedding.cpu().numpy()except Exception as e:return Noneclass EmbeddingService:def __init__(self, max_concurrency=5):self.semaphore = asyncio.Semaphore(max_concurrency)async def get_embedding(self, index, param, result, candidate_type):async with self.semaphore:loop = asyncio.get_running_loop()with ThreadPoolExecutor() as pool:if candidate_type == "text":result[index] = await loop.run_in_executor(pool, get_text_embedding, param)elif candidate_type == "image":result[index] = await loop.run_in_executor(pool, get_image_embedding, param)app = FastAPI()class QueryRequest(BaseModel):query: strcandidates: List[str]query_type: str = "text" # 默认为文本candidate_type: str = "text" # 默认为文本def cosine_similarity(vec1, vec2):return np.dot(vec1, vec2.T) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))@app.post("/similarity")
async def similarity(request: QueryRequest):# 解析请求数据query = request.querycandidates = request.candidatesquery_type = request.query_typecandidate_type = request.candidate_type# 生成查询嵌入if query_type == "text":query_embedding = get_text_embedding(query).tolist() # 转换为可序列化格式elif query_type == "image":query_embedding = get_image_embedding(query)if query_embedding is None:raise HTTPException(status_code=400, detail="Failed to load query image from URL")query_embedding = query_embedding.tolist() # 转换为可序列化格式else:raise HTTPException(status_code=400, detail="Invalid query_type")# 使用并发生成候选嵌入result = [None] * len(candidates)embedding_service = EmbeddingService(max_concurrency=5)# 并发执行任务,限制同时运行的任务数await asyncio.gather(*[embedding_service.get_embedding(i, candidate, result, candidate_type)for i, candidate in enumerate(candidates)])# 计算相似度similarities = []for candidate, candidate_embedding in zip(candidates, result):if candidate_embedding is None:raise HTTPException(status_code=400, detail=f"Failed to load candidate image from URL: {candidate}")similarity_score = cosine_similarity(query_embedding, candidate_embedding)similarities.append((candidate, float(similarity_score))) # 确保 similarity_score 是 float 类型# 按相似度排序并返回最相似的候选结果similarities.sort(key=lambda x: x[1], reverse=True)return {"similarities": similarities}
uvicorn是一个基于 Python 的 ASGI(Asynchronous Server Gateway Interface)服务器,专为高性能异步 Web 应用设计。通过uvicorn启动服务器的命令如下:
uvicorn embedding:app --host 0.0.0.0 --port 9502
得到的测试结果如下:
在上图中和锂电池查询What is the cycle life of this 3.2V 280ah Lifepo4 battery匹配最高的图像是,相似度为0.2983
videochat模型概述与部署测试
videochat-flash模型是由上海AI lab研究人员等开发的一款MLLM模型,以往模型的难点在于如何处理长时间的视频。该模型的创新点在于:
1.片段级压缩:将视频分割为片段,通过时空注意力(UMT-L编码器)和相似令牌合并(ToMe),将每帧压缩至16个令牌(压缩比1/50)。
2.视频级压缩:在LLM推理时渐进丢弃冗余令牌(浅层均匀丢弃,深层基于文本引导的注意力选择),减少计算量且提升性能。
训练的数据集为:
LongVid数据集:30万小时长视频+20亿文本注释,覆盖5类任务(字幕生成、时间定位等),整合Ego4D、HowTo100M等数据。
通过这些办法最终在处理长视频时候计算量大大降低。性能大大提高。图例如下:
在镜像网站上的开源模型为:
本地的测试代码如下,在实际测试中引起问题的主要来源在transformer的版本。
还有其他的下载的包应当保持对齐为:
pip install transformers==4.40.1
pip install timm
pip install av
pip install imageio
pip install decord
pip install opencv-python
# optional
pip install flash-attn --no-build-isolation
from modelscope import AutoModel, AutoTokenizer
import torch# model setting
model_path = './VideoChat-Flash-Qwen2_5-2B_res448'tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(torch.bfloat16).cuda()
image_processor = model.get_vision_tower().image_processormm_llm_compress = False # use the global compress or not
if mm_llm_compress:model.config.mm_llm_compress = Truemodel.config.llm_compress_type = "uniform0_attention"model.config.llm_compress_layer_list = [4, 18]model.config.llm_image_token_ratio_list = [1, 0.75, 0.25]
else:model.config.mm_llm_compress = False# evaluation setting
max_num_frames = 512
generation_config = dict(do_sample=False,temperature=0.0,max_new_tokens=1024,top_p=0.1,num_beams=1
)video_path = "./testvideo.mp4"# single-turn conversation
question1 = "Describe this video in detail."
output1, chat_history = model.chat(video_path=video_path, tokenizer=tokenizer, user_prompt=question1, return_history=True, max_num_frames=max_num_frames, generation_config=generation_config)print(output1)# multi-turn conversation
question2 = "How many people appear in the video?"
output2, chat_history = model.chat(video_path=video_path, tokenizer=tokenizer, user_prompt=question2, chat_history=chat_history, return_history=True, max_num_frames=max_num_frames, generation_config=generation_config)print(output2)#multi-turn
question3="who is the oldest in this video?"
output3, chat_history = model.chat(video_path=video_path, tokenizer=tokenizer, user_prompt=question3, chat_history=chat_history, return_history=True, max_num_frames=max_num_frames, generation_config=generation_config)
print(output3)
然后问题在于如何找到测试视频,这里采用的是python中的you-get模块:
pip install you-get
后通过下面的命令就可以实现视频的爬取,这里下载了一段电视剧片段,2720帧,视频大意是一个老人去法国买羊角面包回去给他的老朋友带去吃。
you-get https://www.bilibili.com/video/
爬取后进行模型测试,备注,此处还需要使用CUDA支持,需要电脑装有invidia显卡并下载CUDA相应工具包。得到结果如下,符合视频实际逻辑。
VICLIP模型概述与部署测试
viclip 是由上海ai lab的opengv-lab等团队联合实现的,这篇论文,arxiv链接如下:
https://arxiv.org/pdf/2307.06942
其中首先提出了一个intern vid数据集,其具备大范围多国源视频和高质量文本标注,用BLIP-2为视频中间帧生成描述。用Tag2Text逐帧标注,再通过大语言模型(如LLaMA)汇总为整体描述。
随后介绍了VICLIP模型,其基于CLIP的对比学习框架,视频编码器为ViT-L(加入时空注意力),文本编码器与CLIP相同。VICLIP的创新点在于使用了视频掩码学习来随机遮蔽视频块(类似MAE),降低计算成本。视频掩码学习(Video Masked Learning) 是一种受自然语言处理(NLP)和计算机视觉中掩码建模(如BERT、MAE)启发的自监督学习方法,旨在通过遮蔽部分视频数据并让模型预测被遮蔽的内容,从而学习视频的时空表征。
VCLIP采用两段训练,关注infoNCE损失度,最大化视频-文本对的相似度。
VICLIP在训练过程中使用了64张A100,训练了三天在五千万的视频-文本对上。结果较好
viclip在hugging face平台的模型如下:
在下载好后,使用其示例中的视频,一个男人和狗在雪地中玩的视频。
在jupyter笔记本的demo中跑得结果如下:
text: A man in a gray sweater plays fetch with his dog in the snowy yard, throwing a toy and watching it run. ~ prob: 0.8264 该文本最和视频相符。
相关文章:
近日部署跑通的若干多模态模型总结与论文概述
CLIP模型概述与落地测试 CLIP模型全称是Contrastive Language-Image Pretraining(对比语言图像预训练)。是OpenAI于2021年提出的多模态预训练模型,通过对比学习对齐图像和文本的表示,实现零样本(zero-shot&#x…...
torch.nn.init.uniform_
nn.init.uniform_ 是 PyTorch 中用于初始化张量(tensor)的一个函数,它的作用是将张量的值填充为从均匀分布中采样的随机数。 详细说明: 函数: torch.nn.init.uniform_(tensor, a0., b1.)tensor:需要被初始…...
类加载机制详解:双亲委派模型与打破它的方式
在复杂的 Java 系统中,类加载是最基础却常被忽略的一环。理解 JVM 的类加载机制,特别是 双亲委派模型(Parent Delegation Model),是我们深入掌握热部署、插件机制、ClassLoader 隔离、ClassNotFound 错误等问题的关键。…...
【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询
目录 功能简介 一、创建GeoNames账号 1、进入官网 2、创建账号 二、运行代码 weather_runnable.py main.py 运行结果 功能简介 本文主要通过Langchain,结合GeoNames实现了地区温度的实时查询,并通过GPT-4o对温度进行一段简短的描述。 一、创建Ge…...
Linux终端展示效果优化:【whiptail】使用教程
🧰 Linux终端展示效果优化:whiptail 使用教程 🧭 什么是 whiptail whiptail 是一个轻量级终端对话框工具,功能与 dialog 类似,用于在 Shell 脚本中创建图形交互界面。与 dialog 相比,它依赖更少ÿ…...
spring中的@Inject注解详情
在 Spring 框架中,Inject 是 Java 依赖注入标准(JSR-330) 的核心注解,与 Spring 原生的 Autowired 类似,但具备更标准化的跨框架特性。以下从功能特性、使用场景及与 Spring 原生注解的对比进行详细解析: 一…...
联邦学习图像分类实战:基于FATE与PyTorch的隐私保护机器学习系统构建指南
引言 在数据孤岛与隐私保护需求并存的今天,联邦学习(Federated Learning)作为分布式机器学习范式,为医疗影像分析、金融风控、智能交通等领域提供了创新解决方案。本文将基于FATE框架与PyTorch深度学习框架,详细阐述如…...
Java—— 泛型详解
泛型概述 泛型是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。 泛型的格式:<数据类型> 注意:泛型只能支持引用数据类型。 泛型的好处 没有泛型的时候,可以往集合中添加任意类型的数据&#x…...
average per-pixel disparity error: EPE及不同距离值下的误差曲线
写在前面 本文内容 介绍epe的概念,作用; 由epe推导出的不同距离下的物理误差曲线 一句话简单理解:epe是用于深度估计、以像素为单位的误差度量方式 平台/环境 python 转载请注明出处: https 目录 写在前面EPE**1. 视差与深度的关…...
解决mybatisplus主键无法自增的问题
mybatisplus,yml配置正确,实体类加上 了注解,数据库设置了自增 当mybatisplus配置文件完全正确,主键依然无法自增,可以这样解决: 删除所有雪花算法生成的id字段,然后执行ALTER TABLE 库名.表…...
C++ learning day 02
目录 引言 编译定义: 查看obj文件 1. 禁用预处理 2. CTRL F7 编译math.cpp 3. 查看obj文件 4. 查看.asm文件(汇编程序) 引言 今天介绍C中,一个Cpp文件经过汇编后得到obj文件,以及obj文件的内容&a…...
Qt开发经验 --- 避坑指南(12)
文章目录 [toc]1 关闭编译警告2 VS离线安装3 Qt视频播放QMediaPlayer配置4 Qt5安装包下载5 将库添加为qmake模块 更多精彩内容👉内容导航 👈👉Qt开发经验 👈 1 关闭编译警告 Qt在编译时编译器会检测代码,报出警告&…...
【Web】LACTF 2025 wp
目录 arclbroth lucky-flag whack-a-mole arclbroth 看到username为admin能拿到flag 但不能重复注册存在的用户 这题是secure-sqlite这个库的问题,底层用的是C,没处理好\0字符截断的问题 (在 Node.js 中,由于其字符串表示方式…...
[架构之美]Windows系统安装MySQL 8.0详细图文教程(十八)
[架构之美]Windows系统安装MySQL 8.0详细图文教程(十八) 摘要:本文手把手教你从零开始完成MySQL 8.0的Windows系统安装,涵盖社区版下载、环境配置、服务初始化全过程,并提供安装失败、密码重置等常见问题的终极解决方…...
指针运算典型例题解析
1.题目1 该代码运行的结果是什么? #include <stdio.h> int main() { int a[5] { 1, 2, 3, 4, 5 }; int *ptr (int *)(&a 1); printf( "%d,%d", *(a 1), *(ptr - 1)); return 0; } 解析: 运行结果: 2.题目2 在X86…...
流式数据(Streaming Data)和非流式数据(Batch Data)区别、使用场景、优化-来自前端的浅解
流式数据(Streaming Data) 和 非流式数据(Batch Data) 是两种不同的数据处理模式,它们在数据来源、处理方式和应用场景上有显著区别。 流式数据指的是按时间顺序连续不断地产生的数据流。这些数据流可以来自于各种来源,如传感器、日志文件、社交媒体等 非流式数据是指数据…...
SQL注入问题
目录 一、SQL注入漏洞概述 二、SQL注入漏洞的产生 2.1 产生效果 2.2 产生原因 三、SQL注入漏洞的解决 3.1 使用PreparedStatement接口 3.2 预编译SQL语句 3.3 掌握的方法 3.3.1 获取PreparedStatement对象 3.3.2 设置参数 3.3.3 执行SQL语句 3.3.4 示例代码 四、总…...
python tkinter 实现 带界面(GUI)的RSA加密、签名
参考文章:python tkinter 实现 带界面(GUI)的RSA加密、签名 - swuxyj - 博客园 RSA加密的过程是:使用公钥加密,私钥解密 RSA签名的过程是:使用私钥签名,公钥验证 所以核心代码就是,生成公钥私钥…...
什么是向量数据库?向量数据库和关系数据库有什么区别?
什么是向量数据库? 向量数据库是一种专门设计用来存储、索引和查询向量数据的数据库系统。在当今的人工智能和机器学习领域中,向量数据库变得越来越重要,尤其是在处理高维数据如图像、音频和文本等非结构化数据时。 主要用途 相似度搜索&…...
张 SoulChat2.0:心理咨询师优化:提示词优化;构建数据集微调LLM
张 SoulChat2.0:心理咨询师优化:提示词优化;构建数据集微调LLM 是一个关于心理咨询师数字孪生大语言模型的项目,旨在解决过往心理健康大语言模型未充分考虑心理咨询师个人风格以及多轮对话数据混合微调导致回复不稳定的问题。 项目概述 自2023年5月发布 SoulChat 后,团…...
如何通过ABAP获取SAP生产订单的目标成本
SAP存储生产订单成本的主要底表包括: COBK: CO凭证表头COEP: CO凭证行项目COSS: 来自CO内部的汇总数据COSP: 来自CO外部部的汇总数据 先说结论:SAP 对生产订单的目标成本是没有保存到底表的。那么如何通过代码的方式获取呢? K_KKB_KKBCS_O…...
医疗信息化江湖风云再起!金仓数据库亮相CHIMA 2025
在医疗与科技深度交融的时代浪潮下,每一次创新都肩负着守护生命健康的崇高使命。当医疗的严谨需求邂逅无限的技术想象,会激荡出怎样震撼行业的力量? 5月9日至11日,第29届学术年会——中国医院信息网络大会暨医疗信息技术和产品展览…...
深入浅出 JDBC 与数据库连接池
在Java开发中,与数据库进行交互是几乎每个项目都离不开的功能。JDBC(Java DataBase Connectivity)作为Java操作数据库的标准规范,为开发者提供了底层的数据库访问支持。而数据库连接池则是提高数据库操作效率和性能的重要工具。本…...
Java基础 集合框架 Collection接口和抽象类AbstractCollection
集合框架 Collection接口简介核心设计目标父接口Iterable<T>基于Stream流的操作定义了所有集合类的基本操作 Collection接口方法Collection接口总结 抽象类AbstractCollection简介核心设计目标减少重复代码对 不可变集合 支持 AbstractCollection关键方法实现AbstractCol…...
PTA:jmu-ds-拓扑排序
给定一个有向图,求其拓扑序列,若有环路,输出error! 注意:本题用栈结构实现入度为0结点存储,否则拓扑序列输出顺序会和测试数据不一致。本题栈结构建议用数组实现,不用栈类。 ###你要实现的 函数接口定义&…...
Python与YOLO:自动驾驶中的实时物体检测
Python与YOLO:自动驾驶中的实时物体检测 引言:从物体检测到智能驾驶 说到自动驾驶,很多人脑海中首先想到的可能是智能汽车,它们能够自主地行驶,无需人类干预。这一切的背后,离不开一项至关重要的技术——实时物体检测。在自动驾驶中,车辆需要通过摄像头、雷达等传感器获…...
USR-M100采集数据并提交MQTT服务器
本文为记录备忘,不做过多解释。 模块自身带有2路数字量输入,2路模拟量输入,2路485接口 数字量接报警输入,模拟量接压力传感器,液位传感器,485接口分别接流量计,温湿度传感器。 正确接线&…...
OpenAI API JSON 格式指南与json_repair错误修复
核心参数是response_format{"type": "json_object"} ,其他支持json调用的模型也可以这样使用的,下面我们以Openai模型为例 指定OpenAI API返回JSON格式 基本JSON格式响应示例 import openaiclient openai.OpenAI(api_key"your-api-key…...
Java字节缓冲流高效读写文件指南
该代码展示了如何使用Java中的字节缓冲流(BufferedInputStream和BufferedOutputStream)进行文件的读取和写入操作。首先,通过BufferedInputStream从指定路径的文件中读取数据,然后使用BufferedOutputStream将数据写入到另一个文件…...
【生命周期分析(Life Cycle Assessment: LCA)】基于OpenLCA、GREET、R语言的生命周期评价方法、模型构建及典型案例应用
生命周期分析(Life Cycle Assessment,简称LCA)是一种用于评估产品、服务或过程从摇篮到坟墓(即从原材料获取、生产、使用到废弃处理)整个生命周期中对环境影响的科学方法。它可以帮助我们全面了解一个产品或系统在各个…...
jdk多版本切换,通过 maven 指定编译jdk版本不生效,解决思路
背景 在使用 Maven 构建 Java 项目时,有时需要通过 pom.xml 文件指定编译的 JDK 版本,但发现配置后并未生效。这种情况通常是由于以下几个原因导致的: pom.xml 配置不完整或错误 在 pom.xml 中,通常需要配置 maven-compiler-plug…...
一文理解扩散模型(生成式AI模型)(1)
图片扩散模型运作的大致流程如下: 1.加噪过程:给定一张原始图片,一步步地在这张图片中添加噪声,图片在加噪过程中逐渐失去所有信息,变成无法辨识的白噪声(用物理现象来理解这个过程的话可以理解为在清水中加入墨汁&am…...
JavaScript--Array
文章目录 数组基础数组Array.concat()合并数组Array.indexOf()Array.isArray()Array.join()连接Array.pop()删除Array.push()添加Array.shift()删除Array.unshift()添加Array.slice()切割 进阶数组Array.filter()过滤Array.forEach()添加Array.map()Array.reduce()叠加Array.so…...
Java大师成长计划之第17天:锁与原子操作
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中,如何保证…...
Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨
ok,经过学习Tailwindcss我决定将此专栏建设成为一个Tailwindcss实战专栏,我将在专栏内完成5050挑战:50天50个Tailwindcss练习项目,欢迎大家订阅!!! Tailwind CSS v4 带来了更强大的主题定制能力…...
[C++] 大数减/除法
目录 高精度博客 - 前两讲高精度减法高精度除法高精度系列函数完整版 高精度博客 - 前两讲 讲次名称链接高精加法[C] 高精度加法(作用 模板 例题)高精乘法[C] 高精度乘法 高精度减法 void subBIG(int x[], int y[], int z[]){z[0] max(x[0], y[0]);for(int i 1; i < …...
数据链共享:从印巴空战到工业控制的跨越性应用
摘要 本文通过对印巴空战中数据链共享发挥关键作用的分析,引出数据链共享在工业控制领域同样具有重大价值的观点。深入阐述 DIOS 工业控制操作系统作为工业数据链共享基础技术的特点、架构及应用优势,对比空战场景与工业控制场景下数据链共享的相…...
加速pip下载:永久解决网络慢问题
一文教你解决 pip 下载太慢了的问题 || 下载时因为网络不好中断下载的问题 一、找到 pip 配置文件路径 1.配置文件位置: Windows 系统的 pip 配置文件默认不存在,需要手动创建,路径为: C:\Users\你的用户名\pip\pip.ini 用户目…...
无线网络设备中AP和AC是什么?有什么区别?
无线网络设备中AP和AC是什么?有什么区别? 一. 什么是AP?二. 什么是AC?三. AP与AC的关系 前言 肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都…...
软考中级数据库备考-上午篇
背景 新工作主要做大数据平台,考一个软考中级数据库系统工程师,补足一下基础知识。 基础知识 1.计算机硬件基础知识 正确答案:C 正确答案:D 正确答案:C 正确答案:BC 正确答案:B 正确答案:D 正确答案:A DMA建立内存与外设的直接…...
opencv处理图像(二)
接下来进入到程序线程设计部分 我们主线程负责图形渲染等操作,OpenGL的限制,opencv技术对传入图像加以处理,输出预期图像给主线程 QThread 我之前也是在想给opencv开一个专门的线程,但经过了解有几个弊端,第一资源浪…...
powerbuilder9.0中文版
经常 用这个版本号写小软件,非常喜欢这个开发软件 . powerbuilder9.0 非常的小巧,快捷,功能强大,使用方便. 我今天用软件 自己汉化了一遍,一些常用的界面都已经翻译成中文。 我自己用的,以后有什么界面需要翻译,再更新一下。 放在这里留个…...
Linux510 ssh服务 ssh连接
arning: Permanently added ‘11.1.1.100’ (ECDSA) to the list of known hosts. rooot11.1.1.100’s password: Permission denied, please try again. rooot11.1.1.100’s password: Permission denied, please try again 还没生效 登不上了 失效了 sshcaozx26成功登录 …...
【25软考网工】第六章(2)信息加密技术
博客主页: christine-rr-CSDN博客 专栏主页: 软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!…...
LeetCode 热题 100 138. 随机链表的复制
LeetCode 热题 100 | 138. 随机链表的复制 大家好,今天我们来解决一道经典的链表问题——随机链表的复制。这道题在 LeetCode 上被标记为中等难度,要求深拷贝一个带有随机指针的链表。 问题描述 给你一个长度为 n 的链表,每个节点包含一个额…...
差动讯号(3)弱耦合与强耦合
各位在设计高速差动对时,除了阻抗之外,可能还会被问到一个问题,P与N之间的间距要多少? 在差动讯号(2):奇模与偶模一文中,我们已经知道差动对两线间距会影响其特性阻抗,且…...
强化学习系列:深度强化学习和DQN
1. 往期回顾 介绍了强化学习的基本概念和基本原理 介绍了基于动态规划的传统强化学习——价值迭代、策略迭代 介绍了在无模型的环境下,基于时序差分的表格型强化学习——Q-learning、SARSA 这些传统的方法都有各自的局限性,能适用的范围有限…...
AlimaLinux设置静态IP
通过nmcli命令来操作 步骤 1:确认当前活动的网络接口名称 首先,需要确认当前系统中可用的网络接口名称。可以使用以下命令查看: nmcli device步骤 2:修改配置以匹配正确的接口名称 sudo nmcli connection modify ens160 ipv4.…...
神经网络极简入门技术分享
1. 引言 神经网络是深度学习的基础,其设计灵感来源于人脑神经元的结构和工作方式。尽管现代神经网络已经变得异常复杂,但其核心原理却相对简单易懂。本报告旨在通过剖析神经网络的最基本单元——神经元,帮助初学者理解神经网络的工作原理。 …...
使用定时器监视当前PID 如果当前程序关闭 UI_Core.exe 也随之自动关闭实现方法
使用定时器监视当前PID 如果当前程序关闭 UI_Core.exe 也随之自动关闭实现方法 描述: C20 QT6.9 VS2022 中使用QProcess::startDetached(“UI_Core.exe”, QStringList(), QString(), &UI_Manage_pid);是启动目标程序 能否同时告诉目标程序当前宿主程序的PID,在UI_CORE.EX…...