发布时间:2026/7/18 4:42:48
部署Qwen2-VL-2B进行图片OCR识别及VLM推理 1、配置相关环境首先需要建立一个conda虚拟环境我这里新建了一个名字为qwen2vl_cpu_env的虚拟环境。python -m venv qwen2vl_cpu_env之后激活虚拟环境激活后命令行前缀会显示qwen2vl_cpu_env。qwen2vl_cpu_env\Scripts\activate我使用CPU进行推理安装CPU的pytorch如果你有GPU推理会更快。pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu安装之后可以验证。python -c import torch; print(torch.__version__)之后安装其他依赖。pip install transformers accelerate qwen-vl-utils -i https://pypi.mirrors.ustc.edu.cn/simple/如果需要从国内 ModelScope 下载模型需要安装这个推荐解决下载太慢。pip install modelscope -i https://pypi.mirrors.ustc.edu.cn/simple/之后在虚拟环境激活状态下执行以下命令下载千问的模型权重以及其他配置文件。modelscope download --model qwen/Qwen2-VL-2B-Instruct --local_dir ./Qwen2-VL-2B-Instruct你在哪里执行的命令模型就放在哪里了比如我这个模型下载到了C: \Users\Andy里面。下载完成后当前目录下会出现Qwen2-VL-2B-Instruct文件夹约 4.5 GB。2、编写脚本使用千问进行推理编写以下脚本进行图像ocr识别并运用千问VLM以及自己写的提示词进行推理我是用锐龙9的CPU推理大概半分钟左右的时间。import torch from transformers import Qwen2VLForConditionalGeneration, AutoProcessor from qwen_vl_utils import process_vision_info # ---------- 配置 ---------- MODEL_PATH rC:\Users\Andy\Qwen2-VL-2B-Instruct IMAGE_PATH D:/Project/pythonproject/qwentest/test.png # 图片路径 DEVICE cpu # 用 CPU # ---------- 加载模型和处理器 ---------- # CPU 下必须用 float32默认且 device_mapcpu model Qwen2VLForConditionalGeneration.from_pretrained( MODEL_PATH, torch_dtypetorch.float32, device_mapcpu ) processor AutoProcessor.from_pretrained(MODEL_PATH) # ---------- 构造多模态消息 ---------- # 提示词明确要求只输出文字 prompt 我今天1430去洗澡有没有热水明确回答我有没有热水。 messages [ { role: user, content: [ {type: image, image: IMAGE_PATH}, {type: text, text: prompt}, ], } ] text processor.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue) image_inputs, video_inputs process_vision_info(messages) inputs processor( text[text], imagesimage_inputs, videosvideo_inputs, paddingTrue, return_tensorspt, ) # 将输入移到 CPU已经默认在 CPU但显式调用也无妨 inputs inputs.to(DEVICE) # ---------- 推理 ---------- print(正在推理CPU 速度较慢请耐心等待...) generated_ids model.generate( **inputs, max_new_tokens256, # CPU 下可减少 token 数加快速度 do_sampleFalse, ) # 去除输入部分 generated_ids_trimmed [ out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids) ] output_text processor.batch_decode( generated_ids_trimmed, skip_special_tokensTrue, clean_up_tokenization_spacesFalse ) print(识别结果) print(output_text[0])我这个图片和模型的路径都是绝对路径图片如下所示设置的提示词是我今天1430去洗澡有没有热水明确回答我有没有热水。运行结果如下可以看见千问通过图片OCR结果以及语言模型的固有知识回答了问题。视觉语言模型区别于传统流水式OCR识别在于其可以将图片里面不同的信息块结合起来作为整体来看这就是Transform架构的全局视野能力。千问VLM能整体理解图片中的文字内容其技术根源正是Transformer架构的自注意力机制。注意推理的时候内存会大幅使用使用CPU推理电脑内存至少要有32G的内存。

相关新闻

2026/7/18 4:42:48

Python与C/C++混合编程实战:四种方案深度解析与性能优化指南

1. 项目概述:为什么我们需要混合编程?干了这么多年开发,我越来越觉得,一个优秀的程序员不能只会一门语言。就像木匠不能只有一把锤子,面对不同的材料,你得有锯子、刨子、凿子。在真实的项目里,尤…

2026/7/18 4:42:48

数据结构:队列和栈的相互实现

文章目录前言一、队列实现栈1.2 代码的实现1.2.1结构体的构建1.2.2 初始化1.2.3 模型入栈1.2.4 模拟出栈并返回栈顶元素1.2.5 获取栈顶元素1.2.6 判空1.2.7 释放二 栈实现队列2.1 思路分析2.2 代码实现2.2.1 结构体的构建2.2.2 初始化2.2.3 将元素 x 推到队列的末尾(模拟入队)2…

2026/7/18 4:42:48

DPWM技术解析:高效电力电子转换的核心

1. DPWM技术背景与核心价值在电力电子领域,PWM(脉宽调制)技术堪称现代功率变换器的"心脏"。而DPWM(Discontinuous Pulse Width Modulation,不连续脉宽调制)作为PWM家族中的重要分支,其…

2026/7/18 5:52:54

Linux PREEMPT_RT 补丁:从软实时到硬实时的内核改造

前置知识:无需深厚内核功底,了解基础Linux系统编译、进程调度概念即可,零基础可跟随实操完成硬实时内核改造。为解决Linux实时性短板,Linux社区推出PREEMPT_RT 实时补丁集,也是目前工业界唯一通用、稳定、开源的Linux硬…

2026/7/18 5:52:54

Java: 集合

Java 集合类有哪些 Java 中的集合类主要由 Collection 和 Map 这两个接口派生而出,其中 Collection 接口又派生出三个子接口,分别是 Set、List、Queue。所有的 Java 集合类,都是 Set、List、Queue、Map 这四个接口的实现类。 Collection 接口…

2026/7/18 5:52:54

微服务架构下Spring Gateway+Sa-Token+Nacos认证鉴权实践

1. 微服务架构下的认证与鉴权挑战在分布式系统架构中,认证(Authentication)和鉴权(Authorization)是两个核心安全机制。认证解决"你是谁"的问题,而鉴权解决"你能做什么"的问题。传统单体应用通常采用Session或简单Token机制&#xf…

2026/7/18 5:52:54

C++游戏开发实战:从零构建高性能游戏引擎核心架构

1. 项目概述:为什么选择C进行游戏开发?如果你问一个干了十几年游戏引擎开发的老兵,为什么很多3A大作的“心脏”都是用C写的,而不是Java、C#或者Python,我通常会用一个比喻来回答:盖摩天大楼和搭乐高积木&am…

2026/7/18 5:52:54

AI Agent框架对比:Coze、Dify与LangChain技术解析

1. AI Agent 框架的崛起背景与核心价值2025年,全球AI Agent市场规模突破千亿美元,开发者面临的核心痛点从"如何调用大模型API"转变为"如何构建可持续演进的智能体系统"。在这个背景下,各类AI Agent框架应运而生&#xff…

2026/7/18 5:47:54

参数访问undefined类JSCrash问题分析

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: 参数访问undefined类JSCrash问题分析-华为开发者话题 | 华为开发者联盟 作为一名鸿蒙开发者,你一定遇到过这…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/17 1:21:45

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/17 7:39:19

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/18 0:00:24

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/17 14:59:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…