# vision **Repository Path**: sjq5192/vision ## Basic Information - **Project Name**: vision - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-31 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 视觉编排平台 ![1769836330562](assets/1769836330562.png) # 功能模块 ## 图像资源管理 ![1769791182789](assets/1769791182789.png) ## 算子管理 ![1769833461906](assets/1769833461906.png) ![1769833581597](assets/1769833581597.png) ![1769833814602](assets/1769833814602.png) ![1769833611562](assets/1769833611562.png) ## 编排方案管理 ![1769833628544](assets/1769833628544.png) ## 在线编排 ![1769833648117](assets/1769833648117.png) # 技术栈 - 前端:React18 + Typescript + Tailwind CSS - 后端:Python 3.8 + FastAPI + MySQL # 数据库 `visionflow` > 用于存储图像处理工作流相关的元数据、资源、算子和方案。 ------ ## **1.** `categories` **表 ——** **分组表** > 用于对算子(operators)进行逻辑分组,便于前端分类展示。 | 字段 | 类型 | 含义说明 | | :---------- | :------------- | :---------------------------------------------------------- | | `id` | `varchar(255)` | 分类唯一标识(如 `"image_processing"`, `"ai_analysis"`) | | `name` | `varchar(255)` | 分类显示名称(如 `"图像处理"`, `"智能分析"`),**全局唯一** | | `is_system` | `tinyint(1)` | 是否为系统内置分类(1 = 是,0 = 用户自定义),防止误删 | ✅ **索引说明**: - 主键:`id` > 💡 示例用途:前端左侧工具栏按 `category.name` 分组展示算子 ------ ## **2.** `image_resources` **表 ——** **图像/视频资源表** > 存储用户上传的图片、视频或 RTSP 流等输入资源的元信息。 | 字段 | 类型 | 含义说明 | | :------------ | :------------- | :----------------------------------------------------------- | | `id` | `varchar(255)` | 资源唯一 ID | | `name` | `varchar(255)` | 资源文件名或用户自定义名称(如 `"工厂监控1.jpg"`) | | `type` | `varchar(50)` | 资源类型: - `"image"`(静态图) - `"rtsp"`(网络视频流) | | `url` | `varchar(512)` | 资源访问路径: - 网络 URL:`http://...` - RTSP 流:`rtsp://...` | | `thumbnail` | `varchar(512)` | 缩略图 URL(用于列表预览,可为空) | | `uploaded_at` | `varchar(64)` | 上传时间(字符串格式,如 `"2026-01-30T12:00:00"`) | | `status` | `varchar(32)` | 资源状态(如 `"uploaded"`, `"processing"`, `"error"`) | | `rtsp_config` | `text` | **仅当 type=rtsp 时有效**,JSON 格式存储 RTSP 配置(如取图间隔等) | | `base64_data` | `longtext` | 可选:小图可直接存 base64(用于快速预览,非必须) | ✅ **索引说明**: - 主键:`id` > 💡 该表是流程的**输入源**,用户在画布中选择此表中的资源作为起始节点。 ------ ## **3.** `operators` **表 ——** **图像处理算子表** > 存储所有可用的图像处理功能模块(算子),分为内置代码型和远程服务型。 | 字段 | 类型 | 含义说明 | | :------------ | :------------- | :----------------------------------------------------------- | | `id` | `varchar(255)` | 算子唯一标识(如 `"op_blur"`, `"op_canny"`) | | `name` | `varchar(255)` | 算子显示名称(如 `"高斯滤波"`) | | `type` | `varchar(50)` | **算子技术类型**(关键字段): - `"basic"`(内置代码型) - `"ai"`(外部服务) | | `category` | `varchar(255)` | 所属业务分类 ID,**关联 categories.id**(如 `"image_processing"`) | | `icon` | `varchar(255)` | 前端图标标识(如 `"blur"`, `"canny"`,用于匹配 UI 图标) | | `description` | `text` | 算子功能描述(如 `"平滑图像,减少噪声"`) | | `params` | `text` | **JSON 字符串**,定义参数配置,格式示例: `[{"key":"kernel","label":"卷积核大小","type":"number","defaultValue":3}]` | | `code` | `text` | **仅当为内置算子时有效**,Python 函数代码字符串(必须包含 `process(image, params)` 函数) | | `service_url` | `varchar(255)` | **仅当为远程算子时有效**,HTTP 服务地址(如 `"http://ocr-service/process"`) | ✅ **索引说明**: - 主键:`id` ------ ## **4.** `schemes` **表 ——** **处理流程方案表** > 保存用户创建的可视化图像处理流程(即“工作流”或“方案”)。 | 字段 | 类型 | 含义说明 | | :------------ | :------------- | :----------------------------------------------------------- | | `id` | `varchar(255)` | 方案唯一 ID | | `name` | `varchar(255)` | 方案名称(如 `"缺陷检测流程"`) | | `description` | `text` | 方案描述(用途、作者等) | | `updated_at` | `varchar(64)` | 最后更新时间(字符串格式,如 `"2026-01-30T12:00:00"`) | | `nodes` | `longtext` | **JSON 字符串**,存储流程图中的所有节点(包括资源节点、算子节点及其配置) | | `edges` | `longtext` | **JSON 字符串**,存储节点之间的连接关系(有向边) | | `thumbnail` | `longtext` | 方案缩略图(Base64 编码或 URL,用于列表预览) | ✅ **索引说明**: - 主键:`id` > 💡 **nodes 和 edges 结构示例(简化)**: > > ``` > // nodes > [ > { "id": "node1", "type": "resource", "data": { "resourceId": "img_001" } }, > { "id": "node2", "type": "operator", "data": { "operatorId": "op_blur", "params": {"kernel":5} } } > ] > > // edges > [ > { "source": "node1", "target": "node2" } > ] > ``` > 该表支持用户**保存、加载、分享**完整的图像处理流水线。 ------ ### **✅ 总结:整体架构逻辑** ``` 用户上传资源 → 存入 image_resources 开发者注册算子 → 存入 operators(关联 categories) 用户拖拽资源+算子连线 → 生成 nodes/edges → 保存为 schemes 执行时:按 edges 顺序调用 operators 对 image_resources 进行处理 ```