1. 项目概述:基于鼠标坐标的工程图智能问答系统
在工程设计和制造领域,技术人员每天需要处理大量包含复杂标注的图纸。传统方式下,解读这些标注需要依赖人工经验和反复查阅标准手册。最近我在开发一个能通过鼠标点击直接理解工程图标注的AI系统,这个需求源于实际工作场景——当我在查看一份机械装配图时,突然意识到如果能直接点击图纸上的某个尺寸标注,AI就能立即告诉我这个公差的具体含义和检测方法,那将极大提升工作效率。
这个系统的核心功能被称为"指示式视觉问答"(Pointing-based VQA),它结合了计算机视觉和自然语言处理技术。与普通视觉问答不同,用户不仅可以用自然语言提问,还能通过鼠标点击指定图像中的具体位置,使AI的回答更加精准。在工程图这种信息密集的场景中,单纯的文字提问如"第三个孔的尺寸是多少"往往不够明确,而结合鼠标点击的交互方式能准确定位到具体元素。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术实现方案详解
2.1 系统架构设计
整个系统采用前后端分离架构。前端负责捕获用户交互,包括鼠标坐标和问题文本;后端处理核心AI逻辑。具体工作流程如下:
- 用户交互层:基于Web的界面加载工程图(支持PNG、PDF等格式),监听鼠标点击事件获取(x,y)坐标
- 坐标处理层:将原始像素坐标转换为模型可理解的表示形式
- 视觉理解层:分析点击区域内的工程图元素和标注
- 问答生成层:结合视觉信息和用户问题生成回答
2.2 坐标编码的三种实践方案
让AI理解鼠标位置是本项目的关键挑战。经过多次实验,我总结了三种有效的编码方式:
方案一:文本拼接法
python复制# 示例:将坐标直接拼接到问题文本中
question = f"用户在坐标({x},{y})处提问:{user_question}"
这种方法简单直接,适合与GPT-4V等现成模型配合使用。但缺点是模型可能无法充分理解坐标的空间含义。
方案二:热图生成法
python复制import numpy as np
def generate_heatmap(img_width, img_height, x, y, sigma=5):
"""生成以(x,y)为中心的高斯热图"""
xx, yy = np.meshgri
