保姆级教程:基于Qwen2.5-VL的Chord视觉定位模型,从安装到实战全流程

news2026/3/19 1:47:42
保姆级教程基于Qwen2.5-VL的Chord视觉定位模型从安装到实战全流程1. 引言让AI看懂图片并“指”给你看你有没有过这样的经历面对一张复杂的图片想快速找到某个特定的物体比如“照片里穿红衣服的人在哪”、“帮我圈出画面里所有的猫”或者“找出图中那个白色的花瓶”。以前这可能需要你手动在图片上画框或者用专业的图像处理软件。现在有了基于Qwen2.5-VL的Chord视觉定位模型你只需要用一句话告诉AI它就能在图片上精准地框出目标。想象一下你是一个电商运营每天要处理成千上万的商品图片需要快速定位主图中的商品主体或者你是一个内容审核员需要在海量图片中找出违规物品又或者你只是想整理自己的相册快速找到所有包含“狗”的照片。Chord模型就是为这些场景而生的。这个教程将带你从零开始一步步完成Chord视觉定位模型的部署、配置和使用。我会用最直白的话把每个步骤讲清楚即使你之前没接触过AI模型部署也能跟着做下来。我们不仅会安装好服务还会通过几个实际的例子让你看到这个模型到底有多好用。2. 准备工作环境检查与模型理解在开始安装之前我们先花几分钟了解一下你需要准备什么以及Chord模型到底能做什么。2.1 你需要准备什么首先你得有一台能用的服务器或电脑。Chord模型对硬件有一定要求因为它需要处理图像和文本两种信息计算量不小。硬件要求最低配置GPU推荐NVIDIA显卡显存最好有16GB以上。如果没有GPU用CPU也能跑就是速度会慢一些。内存至少32GB RAM因为模型本身比较大。存储空间需要20GB以上的可用空间主要是用来存放模型文件。软件要求操作系统Linux系统教程基于CentOS 7其他Linux发行版也类似。Python版本3.11。Conda用来管理Python环境避免包冲突。CUDA如果你用GPU需要安装CUDA 11.0或更高版本。如果你不确定自己的环境是否满足要求可以打开终端运行几个简单的命令检查一下# 检查Python版本 python3 --version # 检查GPU如果有的话 nvidia-smi # 检查内存 free -h # 检查磁盘空间 df -h2.2 Chord模型能做什么Chord模型的核心能力很简单你给它一张图片和一段文字描述它告诉你在图片的哪个位置能找到描述的东西。举个例子你上传一张街景照片输入“找到图中所有的汽车”模型会在每辆汽车周围画上框。你上传一张家庭聚会照片输入“穿蓝色衬衫的男人在哪里”模型会框出那个穿蓝衬衫的男人。你上传一张产品图输入“定位产品Logo”模型会精确标出Logo的位置。模型返回的结果是一个边界框bounding box用四个数字表示[x1, y1, x2, y2]。这四个数字分别代表框的左上角坐标x1, y1和右下角坐标x2, y2。坐标的单位是像素原点0, 0在图片的左上角。这个功能听起来简单但背后的技术可不简单。Chord基于Qwen2.5-VL这个强大的多模态大模型它能同时理解图像内容和自然语言然后把两者对应起来。你不需要准备任何标注数据模型已经学会了从海量数据中识别各种物体。3. 一步步安装从零搭建Chord服务好了现在我们对要做什么有了基本概念接下来开始动手安装。整个过程我分成了几个清晰的步骤你只要按顺序执行就行。3.1 第一步环境准备与依赖安装首先我们需要设置Python环境。用Conda可以避免各种包版本冲突这是我最推荐的方式。# 创建并激活Conda环境 conda create -n chord python3.11 -y conda activate chord # 安装PyTorch根据你的CUDA版本选择 # 如果你有CUDA 11.8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 如果你只有CPU # pip install torch torchvision torchaudio # 安装其他必要的包 pip install transformers4.57.3 pip install accelerate pip install gradio6.2.0 pip install pillow pip install opencv-python安装过程可能需要几分钟取决于你的网络速度。如果遇到下载慢的问题可以考虑使用国内的镜像源。3.2 第二步下载与配置Chord模型模型文件比较大约16.6GB所以下载需要一些时间。你可以直接从ModelScope下载这是阿里云的开源模型平台。# 创建模型存放目录 mkdir -p /root/ai-models/syModelScope/chord cd /root/ai-models/syModelScope/chord # 下载模型文件这里需要你有ModelScope的访问权限 # 如果你没有可以联系镜像提供方获取下载链接 # 假设模型文件已经预置在镜像中我们只需要检查一下 ls -la正常情况下你应该能看到这些文件config.json模型配置文件model.safetensors模型权重文件special_tokens_map.json特殊token映射tokenizer.json分词器文件如果文件不全可能需要重新下载。不过在我们这个镜像中模型应该已经预装好了。3.3 第三步部署Chord服务Chord服务已经打包好了我们只需要做一些简单的配置就能启动。# 进入服务目录 cd /root/chord-service # 查看目录结构 ls -la你会看到这样的结构app/ # 服务核心代码 config/ # 配置文件 supervisor/ # 进程管理配置 logs/ # 日志目录 requirements.txt # Python依赖列表服务用Supervisor来管理这是一个很好用的进程管理工具能保证服务意外退出后自动重启。先检查一下Supervisor的配置cat supervisor/chord.conf这个配置文件定义了服务如何启动、日志放在哪里、环境变量是什么。通常不需要修改但你可以了解一下里面的内容。3.4 第四步启动与验证服务现在一切准备就绪可以启动服务了。# 启动服务 supervisorctl start chord # 查看服务状态 supervisorctl status chord如果一切正常你会看到类似这样的输出chord RUNNING pid 135976, uptime 0:01:34“RUNNING”表示服务正在运行“uptime”显示运行了多长时间。如果状态显示“FATAL”或“STOPPED”说明启动失败了。别着急我们可以查看日志找原因# 查看最近50行日志 tail -50 /root/chord-service/logs/chord.log常见的启动问题有端口被占用默认使用7860端口如果被其他程序占用需要修改配置文件的PORT环境变量。模型路径错误检查MODEL_PATH环境变量指向的路径是否正确。依赖包缺失确保所有Python包都已安装。解决完问题后重新启动服务supervisorctl restart chord4. 快速上手你的第一个视觉定位服务启动成功后打开浏览器输入地址http://你的服务器IP:7860。如果你在本地运行就是http://localhost:7860。你会看到一个简洁的Web界面这就是Chord的图形操作界面。我们来做第一个测试感受一下视觉定位的魅力。4.1 界面概览界面主要分为三个区域左侧图片上传区域和结果显示区域中间文本输入框和操作按钮右侧详细信息显示区域整个界面设计得很直观即使第一次用也能很快上手。4.2 第一次定位找到图片中的人我们用一个简单的例子开始。我在网上找了一张街景图片你也可以用自己的图片图片里有行人、车辆、建筑等。操作步骤上传图片点击“上传图像”区域选择你的图片。支持JPG、PNG、BMP、WEBP等常见格式。输入描述在文本框中输入“找到图中的人”。描述要尽量简洁明确告诉模型你想找什么。开始定位点击“ 开始定位”按钮。等待几秒钟具体时间取决于你的硬件配置结果就出来了。在左侧的结果区域你会看到原图上多了红色的框每个框都圈出了一个人。右侧的详细信息区域会显示检测到了多少人以及每个人的坐标。看看结果是什么样的假设模型检测到了3个人返回的信息可能是这样的检测到3个目标 - 人 [23, 45, 89, 210] - 人 [156, 78, 210, 245] - 人 [289, 120, 345, 280]每个[x1, y1, x2, y2]就是一个边界框的坐标。你可以用这些坐标做很多事情比如在图片上画框、统计人数、计算位置等等。4.3 试试更复杂的描述现在我们来挑战一下模型的“理解能力”。用同一张图片但换一个更具体的描述。输入“找到图中穿红色衣服的人”这次模型可能只框出了一两个人因为它在“人”的基础上加上了“穿红色衣服”这个条件。这说明模型不仅能识别物体类别还能理解物体的属性颜色、大小、位置等。再试试“找到图中所有的汽车和行人”模型会同时框出汽车和行人并用不同的颜色或标签区分。Chord支持多目标检测你可以在一个描述里指定多个要找的东西。4.4 理解模型的“语言”要让模型准确找到目标你需要用它能理解的方式描述。这里有几个小技巧✅ 这样描述效果好“找到图中的人”简洁明确“定位所有的汽车”明确数量要求“图中穿红色衣服的女孩”包含属性描述“左边的猫”包含位置信息“最大的那个苹果”包含比较信息❌ 这样描述效果差“这是什么”过于模糊“帮我看看”没有明确目标“分析一下”任务不明确“图片里有什么东西”太宽泛模型就像一个新来的助手你需要给它明确的指令它才能准确执行。描述越具体定位越精准。5. 实战应用把Chord用在实际工作中看完基本操作你可能在想这功能挺酷但到底能用在什么地方下面我分享几个真实的场景看看Chord如何解决实际问题。5.1 场景一电商商品图自动标注如果你是电商平台的运营每天要处理大量商品图片。传统做法是人工标注商品位置费时费力。用Chord可以自动化这个过程。具体做法批量处理图片写一个简单的Python脚本遍历所有商品图片。统一描述对服装类商品用“定位服装主体”对电子产品用“定位产品主体”。保存结果把坐标信息保存到数据库或JSON文件。import os from PIL import Image import json # 假设我们已经有了ChordModel类后面会讲如何调用 from model import ChordModel # 初始化模型 model ChordModel(model_path/root/ai-models/syModelScope/chord) model.load() # 处理一个目录下的所有图片 image_dir /path/to/product/images output_file product_annotations.json annotations [] for filename in os.listdir(image_dir): if filename.endswith((.jpg, .png, .jpeg)): # 加载图片 image_path os.path.join(image_dir, filename) image Image.open(image_path) # 根据文件类型选择描述 if clothing in filename.lower(): prompt 定位服装主体 elif electronics in filename.lower(): prompt 定位产品主体 else: prompt 定位商品主体 # 推理 result model.infer(imageimage, promptprompt) # 保存结果 annotations.append({ filename: filename, boxes: result[boxes], image_size: result[image_size] }) print(f已处理: {filename}, 检测到 {len(result[boxes])} 个目标) # 保存到文件 with open(output_file, w) as f: json.dump(annotations, f, indent2) print(f标注完成共处理 {len(annotations)} 张图片)这样原本需要人工标注几小时的工作现在几分钟就完成了。而且标注结果一致性好不会因为人工疲劳而出错。5.2 场景二智能相册内容检索你有几千张照片想快速找到所有包含“狗”的照片或者所有“在海边拍的照片”。传统相册只能按时间或标签搜索但Chord可以按内容搜索。实现思路建立索引用Chord处理所有照片提取每张照片中的物体和位置。存储索引把结果文件名、物体类型、位置存到数据库。快速查询用户搜索“狗”系统返回所有包含狗的照片并高亮狗的位置。# 简化的索引建立过程 import sqlite3 # 创建数据库 conn sqlite3.connect(photo_index.db) cursor conn.cursor() # 创建表 cursor.execute( CREATE TABLE IF NOT EXISTS photo_objects ( id INTEGER PRIMARY KEY, filename TEXT, object_type TEXT, bbox TEXT, -- 存储为 [x1,y1,x2,y2] 格式 confidence REAL ) ) # 假设我们已经有了检测结果 def index_photo(filename, results): for obj in results: # obj 包含 object_type, bbox, confidence bbox_str str(obj[bbox]) # 转换为字符串存储 cursor.execute( INSERT INTO photo_objects (filename, object_type, bbox, confidence) VALUES (?, ?, ?, ?) , (filename, obj[type], bbox_str, obj[confidence])) conn.commit() # 查询示例找所有包含狗的照片 cursor.execute( SELECT DISTINCT filename FROM photo_objects WHERE object_type dog ORDER BY confidence DESC ) dog_photos cursor.fetchall() print(f找到 {len(dog_photos)} 张包含狗的照片)有了这个系统你不再需要手动给每张照片打标签。想找什么直接用自然语言描述系统就能帮你找到。5.3 场景三工业质检中的缺陷定位在工业生产线上经常需要检测产品表面是否有划痕、污点、缺损等。传统方法是人工目检效率低且容易疲劳。用Chord可以实现自动化缺陷检测。工作流程采集产品图像用工业相机拍摄产品照片。缺陷定位用Chord定位缺陷位置描述可以是“找到表面的划痕”或“定位污点区域”。分类判断根据缺陷的大小、位置、数量判断产品是否合格。记录数据保存缺陷信息用于质量分析和工艺改进。# 简化的质检流程 class QualityInspector: def __init__(self, model): self.model model self.defect_types { scratch: 找到表面的划痕, stain: 定位污点区域, crack: 检测裂纹, dent: 找到凹陷处 } def inspect_product(self, image_path, product_type): image Image.open(image_path) defects [] # 针对不同缺陷类型分别检测 for defect_name, prompt in self.defect_types.items(): result self.model.infer(imageimage, promptprompt) if result[boxes]: # 检测到缺陷 for bbox in result[boxes]: defects.append({ type: defect_name, bbox: bbox, severity: self.calculate_severity(bbox) }) # 判断是否合格 is_qualified self.judge_quality(defects) return { product_id: os.path.basename(image_path), defects: defects, is_qualified: is_qualified, defect_count: len(defects) } def calculate_severity(self, bbox): # 根据缺陷大小计算严重程度 width bbox[2] - bbox[0] height bbox[3] - bbox[1] area width * height if area 100: # 像素面积 return minor elif area 500: return moderate else: return severe def judge_quality(self, defects): # 根据缺陷数量和严重程度判断 severe_count sum(1 for d in defects if d[severity] severe) total_area sum((d[bbox][2]-d[bbox][0])*(d[bbox][3]-d[bbox][1]) for d in defects) # 简单的判断逻辑 if severe_count 0: return False elif total_area 1000: return False else: return True # 使用示例 inspector QualityInspector(model) result inspector.inspect_product(product_001.jpg, metal_part) print(f产品 {result[product_id]} 合格: {result[is_qualified]}) print(f发现 {result[defect_count]} 处缺陷)这个系统可以7×24小时工作不会疲劳检测标准一致大大提高了质检效率和准确性。6. 高级用法通过API编程调用Web界面适合手动操作但如果你要批量处理图片或者把Chord集成到自己的系统中就需要通过API来调用。Chord提供了Python API用起来很简单。6.1 基本API调用首先确保服务正在运行然后你可以这样调用import sys # 添加服务目录到Python路径 sys.path.append(/root/chord-service/app) from model import ChordModel from PIL import Image # 初始化模型 model ChordModel( model_path/root/ai-models/syModelScope/chord, devicecuda # 如果有GPU就用cuda否则用cpu ) # 加载模型第一次调用会慢一些 model.load() # 加载图片 image Image.open(test.jpg) # 推理 result model.infer( imageimage, prompt找到图中的人, max_new_tokens512 # 生成文本的最大长度 ) # 查看结果 print(模型生成的文本:) print(result[text]) print(\n边界框坐标:) for i, bbox in enumerate(result[boxes]): print(f目标 {i1}: {bbox}) print(f\n图像尺寸: {result[image_size]})返回的result是一个字典包含三个主要信息text模型生成的完整文本里面包含box标签boxes边界框列表每个框是[x1, y1, x2, y2]image_size图片的宽和高6.2 处理返回结果模型返回的text字段可能包含类似这样的内容在图像中找到了一个人位置在box19,3,84,125/box。box标签里就是坐标信息。Chord模型会自动解析这些标签把坐标提取到boxes列表中。所以你通常不需要手动解析文本直接使用boxes就行。如果你想在图片上画出这些框可以这样做from PIL import ImageDraw def draw_boxes(image, boxes, colorred, width3): 在图片上绘制边界框 draw ImageDraw.Draw(image) for bbox in boxes: x1, y1, x2, y2 bbox # 绘制矩形框 draw.rectangle([x1, y1, x2, y2], outlinecolor, widthwidth) return image # 使用示例 image_with_boxes draw_boxes(image, result[boxes]) image_with_boxes.save(result_with_boxes.jpg) print(已保存带标注框的图片)6.3 批量处理图片如果你有很多图片要处理可以写一个批处理脚本import os import json from concurrent.futures import ThreadPoolExecutor def process_single_image(image_path, prompt): 处理单张图片 try: image Image.open(image_path) result model.infer(imageimage, promptprompt) return { filename: os.path.basename(image_path), boxes: result[boxes], image_size: result[image_size], success: True } except Exception as e: return { filename: os.path.basename(image_path), error: str(e), success: False } def batch_process(image_dir, prompt, output_fileresults.json, max_workers4): 批量处理目录下的所有图片 image_files [] for f in os.listdir(image_dir): if f.lower().endswith((.jpg, .jpeg, .png, .bmp)): image_files.append(os.path.join(image_dir, f)) print(f找到 {len(image_files)} 张图片需要处理) results [] # 使用线程池并行处理 with ThreadPoolExecutor(max_workersmax_workers) as executor: futures [] for img_path in image_files: future executor.submit(process_single_image, img_path, prompt) futures.append(future) # 收集结果 for i, future in enumerate(futures): result future.result() results.append(result) print(f进度: {i1}/{len(image_files)} - {result[filename]}) # 保存结果 with open(output_file, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) # 统计信息 success_count sum(1 for r in results if r[success]) print(f\n处理完成: {success_count} 成功, {len(results)-success_count} 失败) return results # 使用示例 if __name__ __main__: # 初始化模型只需要一次 model ChordModel(model_path/root/ai-models/syModelScope/chord) model.load() # 批量处理 results batch_process( image_dir/path/to/your/images, prompt找到图中的人, output_filedetection_results.json )这个脚本会并行处理图片充分利用多核CPU大大提高处理速度。7. 故障排除与性能优化即使按照教程一步步做有时候还是会遇到问题。这里我整理了一些常见问题和解决方法。7.1 常见问题解答Q1服务启动失败日志显示“Address already in use”A7860端口被其他程序占用了。你可以修改Chord服务的端口编辑/root/chord-service/supervisor/chord.conf把PORT7860改成其他端口比如PORT7861或者关闭占用7860端口的程序sudo lsof -i :7860查看是什么程序然后停止它修改后重启服务supervisorctl restart chordQ2模型推理速度很慢A可能的原因和解决方法检查是否在使用GPU运行nvidia-smi看看GPU是否被使用如果用的是CPU速度确实会慢很多。考虑升级到GPU版本图片太大尝试缩小图片尺寸比如把4000×3000的图片缩小到1000×750描述太复杂简化文本提示避免过长过复杂的描述Q3检测结果不准确AChord模型虽然强大但也不是万能的。可以尝试使用更清晰的图片模糊、光线暗的图片效果会差调整描述方式比如“穿红色衣服的女人”比“那个人”更准确目标太小如果目标在图片中占比太小可能检测不到。尝试放大图片或裁剪区域目标被遮挡如果目标被其他物体挡住太多可能检测不到Q4如何提高检测小目标的能力A小目标检测确实有挑战可以尝试使用更高分辨率的图片在描述中强调目标特征比如“那个很小的红色点”如果可能先放大目标区域再检测Q5服务运行一段时间后崩溃A可能是内存或显存不足。检查方法查看内存使用free -h查看GPU显存nvidia-smi如果是内存不足考虑增加swap空间或优化代码如果是显存不足尝试用更小的图片或减少同时处理的图片数量7.2 性能优化技巧如果你对性能有更高要求可以试试这些优化方法1. 图片预处理优化from PIL import Image def optimize_image(image, max_size1024): 优化图片尺寸加快处理速度 width, height image.size # 如果图片太大等比例缩小 if max(width, height) max_size: ratio max_size / max(width, height) new_width int(width * ratio) new_height int(height * ratio) image image.resize((new_width, new_height), Image.Resampling.LANCZOS) # 转换为RGB模式如果是RGBA if image.mode ! RGB: image image.convert(RGB) return image # 使用优化后的图片 image Image.open(large_image.jpg) optimized_image optimize_image(image, max_size1024) result model.infer(imageoptimized_image, prompt找到目标)2. 批量推理优化如果需要处理大量图片可以考虑批量处理但要注意内存限制def batch_inference(image_paths, prompt, batch_size2): 小批量处理图片平衡速度和内存 results [] for i in range(0, len(image_paths), batch_size): batch_paths image_paths[i:ibatch_size] batch_images [] # 加载批处理图片 for path in batch_paths: img Image.open(path) img optimize_image(img) # 优化图片 batch_images.append(img) # 这里需要根据你的实际需求调整 # 如果模型支持批量推理可以一次处理多张 # 否则需要循环处理 for img in batch_images: result model.infer(imageimg, promptprompt) results.append(result) print(f已处理 {min(ibatch_size, len(image_paths))}/{len(image_paths)}) return results3. 缓存优化如果经常处理相同的图片或相似的查询可以考虑添加缓存import hashlib import pickle import os class CachedChordModel: def __init__(self, model, cache_dir.chord_cache): self.model model self.cache_dir cache_dir os.makedirs(cache_dir, exist_okTrue) def infer_with_cache(self, image, prompt): # 生成缓存键基于图片内容和提示 image_data image.tobytes() cache_key hashlib.md5(image_data prompt.encode()).hexdigest() cache_file os.path.join(self.cache_dir, f{cache_key}.pkl) # 检查缓存 if os.path.exists(cache_file): with open(cache_file, rb) as f: print(从缓存加载结果) return pickle.load(f) # 没有缓存调用模型 result self.model.infer(imageimage, promptprompt) # 保存到缓存 with open(cache_file, wb) as f: pickle.dump(result, f) return result # 使用带缓存的模型 cached_model CachedChordModel(model) result cached_model.infer_with_cache(image, 找到图中的人)8. 总结与下一步通过这个教程你应该已经掌握了Chord视觉定位模型从安装到使用的完整流程。我们从头开始一步步搭建了服务学会了通过Web界面和API调用模型还探索了几个实际的应用场景。回顾一下我们学到的东西环境准备了解了Chord模型的硬件和软件要求准备好了运行环境。服务部署用Supervisor管理服务确保稳定运行。基本使用通过Web界面上传图片、输入描述、查看结果。实战应用看到了Chord在电商标注、相册检索、工业质检等场景下的实际价值。编程接口学会了通过Python API调用模型实现批量处理和系统集成。问题解决掌握了常见问题的排查方法和性能优化技巧。如果你想进一步探索尝试更多场景Chord模型的能力不止于此。你可以试试医疗影像分析定位X光片中的异常区域自动驾驶检测道路上的车辆、行人、交通标志农业监测识别农田中的病虫害区域安防监控在监控视频中定位特定人员或物品集成到现有系统把Chord作为微服务集成到你的应用中。你可以开发RESTful API让其他系统通过HTTP调用结合消息队列实现异步处理大量图片与数据库结合建立可搜索的视觉索引模型微调如果Chord在特定场景下效果不够好可以考虑微调收集你的领域数据图片标注使用Qwen2.5-VL的微调脚本进行训练部署微调后的模型获得更好的领域性能性能监控在生产环境中你需要监控服务的健康状态记录每次推理的耗时、成功率监控GPU/CPU使用率、内存占用设置告警当服务异常时及时通知视觉定位是一个很有价值的技术它让计算机不仅能“看到”图片还能“理解”图片内容并用我们熟悉的语言告诉我们它看到了什么。Chord模型基于强大的Qwen2.5-VL在这个任务上表现出色而且部署使用相对简单。技术的价值在于应用。现在你已经掌握了这个工具接下来就是发挥创意把它用到你的工作和项目中。无论是提高效率、创造新功能还是解决老问题视觉定位都能给你带来新的可能性。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…