From 8e34dfac2e87009a29de9ba673ed2f563b492993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=83=E5=B9=B3=E6=B0=94=E5=92=8C?= <2394609457@qq.com> Date: Sun, 4 Jan 2026 17:28:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=9AMaixCam=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=B8=AD=E2=80=9D=E5=8F=82=E6=95=B0=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E2=80=9C=E5=92=8C=E2=80=9D=E7=A8=8B=E5=BA=8F=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .obsidian/app.json | 9 +- .obsidian/community-plugins.json | 4 +- .obsidian/workspace.json | 147 ++++++------------ .../模块-参数调试-文档说明.md | 105 +++++++++++++ .../模块-程序控制-文档说明.md | 71 +++++++++ .../项目总结.md => 2026-人工智能/项目Bug清单.md} | 0 01-项目/2026-人工智能/项目总结.md | 0 01-项目/2026-人工智能/项目配置.md | 67 ++++++++ 01-项目/2026-人工智能/项目需求.md | 0 01-项目/2026-新知识融合/模块-多媒体-清单.md | 12 ++ 01-项目/2026-新知识融合/项目Bug清单.md | 0 01-项目/2026-新知识融合/项目总结.md | 0 01-项目/2026-新知识融合/项目配置.md | 0 01-项目/2026-新知识融合/项目需求.md | 0 02-领域/MaixCam/领域知识地图.md | 5 + 05-原子化笔记本/MaixCam-RGB转LAB.md | 56 +++++++ 16 files changed, 374 insertions(+), 102 deletions(-) create mode 100644 01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md create mode 100644 01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md rename 01-项目/{2025-MaixCam竞赛版/项目总结.md => 2026-人工智能/项目Bug清单.md} (100%) create mode 100644 01-项目/2026-人工智能/项目总结.md create mode 100644 01-项目/2026-人工智能/项目配置.md create mode 100644 01-项目/2026-人工智能/项目需求.md create mode 100644 01-项目/2026-新知识融合/模块-多媒体-清单.md create mode 100644 01-项目/2026-新知识融合/项目Bug清单.md create mode 100644 01-项目/2026-新知识融合/项目总结.md create mode 100644 01-项目/2026-新知识融合/项目配置.md create mode 100644 01-项目/2026-新知识融合/项目需求.md create mode 100644 05-原子化笔记本/MaixCam-RGB转LAB.md diff --git a/.obsidian/app.json b/.obsidian/app.json index eea95f5..60ec715 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -5,5 +5,12 @@ "showLineNumber": true, "trashOption": "local", "promptDelete": false, - "alwaysUpdateLinks": true + "alwaysUpdateLinks": true, + "pdfExportSettings": { + "includeName": false, + "pageSize": "A4", + "landscape": false, + "margin": "0", + "downscalePercent": 100 + } } \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index c4f8779..044cc56 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,4 +1,6 @@ [ "dataview", - "templater-obsidian" + "templater-obsidian", + "local-gpt", + "ai-providers" ] \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 1b080e0..0d7b83b 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,73 +4,20 @@ "type": "split", "children": [ { - "id": "872056d650ad64c5", - "type": "split", + "id": "8eac3d5be8f374c9", + "type": "tabs", "children": [ { - "id": "b7f8453c26dad860", - "type": "tabs", - "dimension": 55.5767397521449, - "children": [ - { - "id": "35a84624930309b8", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "01-项目/2025-Obsidian知识架构/项目总结.md", - "mode": "source", - "source": false, - "backlinks": true, - "backlinkOpts": { - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - } - }, - "icon": "lucide-file", - "title": "项目总结" - } - } - ] - }, - { - "id": "a7ba81908abe065f", - "type": "tabs", - "dimension": 44.4232602478551, - "children": [ - { - "id": "a7af372f6707ce4a", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "05-原子化笔记本/MaixCam-触摸屏分辨率.md", - "mode": "source", - "source": false, - "backlinks": true, - "backlinkOpts": { - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - } - }, - "icon": "lucide-file", - "title": "MaixCam-触摸屏分辨率" - } - } - ] + "id": "106754bde9955709", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "新标签页" + } } - ], - "direction": "horizontal" + ] } ], "direction": "vertical" @@ -102,7 +49,7 @@ "state": { "type": "search", "state": { - "query": "", + "query": "模块", "matchingCase": true, "explainSearch": false, "collapseAll": false, @@ -127,7 +74,7 @@ } ], "direction": "horizontal", - "width": 300 + "width": 367.5 }, "right": { "id": "bcd5a1ddf3bf1e55", @@ -249,44 +196,44 @@ "zk-prefixer:创建时间戳笔记": false } }, - "active": "35a84624930309b8", + "active": "106754bde9955709", "lastOpenFiles": [ - "01-项目/2025-Obsidian知识架构/项目配置.md", + "01-项目/2026-新知识融合/模块-多媒体-清单.md", + "01-项目/2026-人工智能/项目配置.md", + "00-临时碎片文件夹/20260102-备忘-魔搭-模型部署.md", + "01-项目/2026-人工智能/项目需求.md", + "01-项目/2026-人工智能/项目总结.md", + "01-项目/2026-人工智能/项目Bug清单.md", + "01-项目/2026-人工智能", + "00-临时碎片文件夹/20260101-备忘-清单.md", + "01-项目/2026-新知识融合/项目总结.md", + "01-项目/2026-新知识融合/项目需求.md", + "01-项目/2026-新知识融合/项目Bug清单.md", + "01-项目/2026-新知识融合/项目配置.md", + "01-项目/2026-新知识融合", + "01-项目/2025-MaixCam竞赛版/项目Bug清单.md", "01-项目/2025-MaixCam竞赛版/项目需求.md", "01-项目/2025-MaixCam竞赛版/项目配置.md", - "02-领域/MaixCam/领域知识地图.md", - "01-项目/2025-MaixCam竞赛版/项目Bug清单.md", - "05-原子化笔记本/MaixCam-自定义开机启动画面.md", - "templates/模板-原子化笔记.md", - "05-原子化笔记本/MaixCam-触摸屏分辨率.md", - "00-临时碎片文件夹/20251231-备忘-MaixCam修改开机启动画面logo.md", - "快速检索.md", - "00-临时碎片文件夹/251231-Bug-MaixCam竞赛版-直线算法功能缺陷.md", - "templates/模板-学习笔记.md", - "02-领域/DataView/领域知识地图.md", - "02-领域/MaixCam", - "02-领域/MaixPy/领域知识地图.md", - "未命名.md", "02-领域/知识架构/领域知识地图.md", - "01-项目/2025-MaixCam竞赛版/项目总结.md", - "00-临时碎片文件夹/20251231-需求-MaixCam竞赛版-开机Logo更换.md", - "00-临时碎片文件夹/20251231-需求-MaixCam竞赛版-程序控制-检测框配置.md", - "00-临时碎片文件夹/20251231-需求-MaixCam竞赛版-参数调试-检测框配置.md", - "00-临时碎片文件夹/灵感-知识架构-目录配置.md", - "05-原子化笔记本/DataView-文件夹下”需求“开头的文件.md", - "05-原子化笔记本/知识架构-目录配置.md", - "05-原子化笔记本/知识架构-标签配置.md", - "templates/模板-需求.md", - "接口文档-用户数据查询.md", + "01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md", + "01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md", + "01-项目/2025-MaixCam竞赛版-程序控制/项目Bug清单.md", + "01-项目/2025-MaixCam竞赛版-程序控制/项目总结.md", + "01-项目/2025-MaixCam竞赛版-程序控制/项目需求.md", + "01-项目/2025-MaixCam竞赛版-程序控制/项目配置.md", + "01-项目/2025-Obsidian知识架构/项目总结.md", + "01-项目/2025-Obsidian知识架构/项目Bug清单.md", + "01-项目/2025-Obsidian知识架构/项目需求.md", + "01-项目/2025-Obsidian知识架构/项目配置.md", + "02-领域/DataView/领域知识地图.md", "attachments/Pasted image 20251231090751.png", - "attachments", - "01-项目/2025-MaixCam竞赛版/需求子文件", - "02-领域/DataView", - "01-项目/2025-MaixCam竞赛版", - "02-领域/OpenCV", - "02-领域/MaixPy", - "01-项目/2025-MaixCam竞赛版", - "02-领域/知识架构", - "01-项目/2025-Obsidian知识架构" + "01-项目/2025-MaixCam竞赛版-程序控制", + "快速检索.md.baiduyun.uploading.cfg", + "templates/模板-需求.md.baiduyun.uploading.cfg", + "templates/模板-开发任务.md.baiduyun.uploading.cfg", + "templates/模板-学习笔记.md.baiduyun.uploading.cfg", + "templates/模板-原子化笔记.md.baiduyun.uploading.cfg", + "templates/模板-信息记录.md.baiduyun.uploading.cfg", + "templates/模板-Bug修复.md.baiduyun.uploading.cfg" ] } \ No newline at end of file diff --git a/01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md b/01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md new file mode 100644 index 0000000..856f3e4 --- /dev/null +++ b/01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md @@ -0,0 +1,105 @@ +# 参数调试文档 + +--- + +## 一、基本说明 + +- **版本号**:`v1.0.6` +- **用途**:用于测试视觉算法运行参数,包括分辨率、帧率、缩放比例、颜色空间采样及检测框显示等。 +- **适用算法**:OCR、色块、AprilTag、line + +--- + +## 二、菜单项配置说明 + +### 1. 设置分辨率 + +支持以下预设分辨率选项: + +``` +(240, 240) +(320, 240) +(320, 320) +(416, 416) +(448, 448) +(552, 368) +(640, 480) +(640, 640) + +(1024, 720) +(1104, 736) +(1280, 720) + +(1656, 1096) +(1920, 1080) +(2560, 1440) +``` + +> 💡 高分辨率提升精度但会增加计算负载。 + +--- + +### 2. 设置FPS + +提供以下帧率选项: + +- `30 FPS` —— 平衡性能与流畅度 +- `60 FPS` —— 高流畅度,适用于高速运动场景 + +--- + +### 3. 设置缩放比例 + +支持从 **100% 到 195%**,以 **5% 为步长**递增: + +``` +100%, 105%, 110%, ..., 190%, 195% +``` + +--- + +### 4. 设置LAB + +- 支持采集**三个点**的 LAB 颜色值。 +- 程序自动根据采集点计算并显示 **LAB 范围**。 +- 各通道含义: + - `L`:亮度(Lightness) + - `A`:红绿轴(负值偏绿,正值偏红) + - `B`:蓝黄轴(负值偏蓝,正值偏黄) + +> 🎯 适用于“色块”等基于颜色阈值的检测算法,快速设定颜色过滤区间。 + +--- + +### 5. 设置检测框 + +控制检测结果中各信息字段的显示开关: + +| 字段 | 含义 | +| ---- | -------------------------- | +| `i` | 检测目标序号(ID) | +| `x` | 目标左上角 x 坐标 | +| `y` | 目标左上角 y 坐标 | +| `w` | 目标宽度 | +| `h` | 目标高度 | +| `v` | 检测值(如OCR识别内容、AprilTag码ID等) | +| `r` | 目标旋转角度(AprilTag码的旋转角度) | +| `cx` | 目标中心 x 坐标 | +| `cy` | 目标中心 y 坐标 | + +> 🧩 适用于“色块”、“AprilTag”等输出矩形框和结构化数据的算法。可按需开启/关闭显示字段,便于调试与展示。 + +--- + +### 6. 算法列表 + +当前支持算法列表 + +| 算法名称 | 说明 | +| ------------ | ---------------------------- | +| **OCR** | 光学字符识别,提取图像中的文字内容 | +| **色块** | 基于颜色(如LAB阈值)检测连通区域,输出色块位置与属性 | +| **AprilTag** | 检测AprilTag二维码,输出ID、位置、姿态等信息 | +| **line** | 测试中... | + +--- diff --git a/01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md b/01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md new file mode 100644 index 0000000..1d262e8 --- /dev/null +++ b/01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md @@ -0,0 +1,71 @@ +# 程序控制文档 + +--- + +## 一、基本说明 + +- **版本号**:`v3.5.0` +- **适用算法**:OCR、色块、AprilTag + +--- + +## 二、支持算法列表 + +| 算法ID | 名称 | 简介说明 | +| ---- | -------- | ----------------------------- | +| `0` | 空 | 开机默认状态,无算法运行 | +| `1` | OCR | 光学字符识别 | +| `2` | 色块检测 | 默认 LAB 参数为 0,需配合 `S` 指令设置颜色范围 | +| `3` | Apriltag | 检测 Apriltag 标签,返回 ID 与旋转角度 | +| `4` | 交叉点 | 测试中功能,尚未稳定 | + +--- + +## 三、控制指令 + +| 操作 | 指令字符 | 参数格式与说明 | 示例命令 | +| ------------ | ---- | ------------------------------------------------------------------------------------- | ------------------------------ | +| **开启指定算法** | `N` | `<算法ID>`
立即切换当前运行算法 | `N2`(启动色块检测) | +| **设置LAB参数** | `S` | `<参数ID>+LMin+LMax+AMin+AMax+BMin+BMax>`
用于色块检测的颜色范围(LAB色彩空间,0~255) | `S1+0+100+30+80+20+70` | +| **设置串口应答模式** | `A` | `<模式>`
• `-n`:定时上报,间隔 n 毫秒
• `0`:关闭上报
• `n>0`:仅上报第n个目标后自动切回 `A0` | `A-500`
`A0`
`A2` | +| **缩放画面比例** | `Z` | `<缩放倍数>`
以画面中心为基准缩放。`Z100`=原始尺寸,`Z150`=放大至150% | `Z100`
`Z150` | +| **设置分辨率** | `R` | `<分辨率>`
格式:`宽x高`,如 `552x368` | `R552x368` | +| **设置检测框显示项** | `D` | `+标识符+状态`
标识符: `i`, `x`, `y`, `w`, `h`, `v`, `r`, `cx`, `cy`
状态: `1`=显示, `0`=隐藏 | `D+i1+cx1+cy1`
`D+i1+x0+y0` | + +--- + +## 四、算法结果返回格式规范 + +### 基础通用格式(适用于色块、OCR等) +``` +#i{x}y{y}w{w}h{h}v{v}! +``` + +### 特殊格式 - Apriltag(含旋转角度) +``` +#i{i}x{x}y{y}w{w}h{h}v{v}r{r}! +``` + +### 字段含义说明 + +| 字段 | 含义 | 说明 | +| --- | -------- | ----------------------------------------------------------- | +| `i` | 目标序号 | 第几个被检测到的目标(从 `1` 开始递增) | +| `x` | 中心点 X 坐标 | 目标在图像中的横向像素坐标 | +| `y` | 中心点 Y 坐标 | 目标在图像中的纵向像素坐标 | +| `w` | 宽度 | 目标包围框宽度(像素) | +| `h` | 高度 | 目标包围框高度(像素) | +| `v` | 结果值 | 根据算法不同:
• Apriltag → 标签 ID
• 色块 → LAB 参数组 ID(如 S1/S2) | +| `r` | 旋转角度 | 仅Apriltag | + +### 示例输出(色块检测) +若检测到三个色块: +``` +#i1x100y120w50h50v1! +#i2x200y80w60h60v1! +#i3x300y200w55h55v1! +``` + +### 📌 对于多个结果,优先以 y 升序排序,其次以 x 升序排序 + +--- diff --git a/01-项目/2025-MaixCam竞赛版/项目总结.md b/01-项目/2026-人工智能/项目Bug清单.md similarity index 100% rename from 01-项目/2025-MaixCam竞赛版/项目总结.md rename to 01-项目/2026-人工智能/项目Bug清单.md diff --git a/01-项目/2026-人工智能/项目总结.md b/01-项目/2026-人工智能/项目总结.md new file mode 100644 index 0000000..e69de29 diff --git a/01-项目/2026-人工智能/项目配置.md b/01-项目/2026-人工智能/项目配置.md new file mode 100644 index 0000000..f440745 --- /dev/null +++ b/01-项目/2026-人工智能/项目配置.md @@ -0,0 +1,67 @@ + +# 魔搭环境配置 +## 核心信息 + +- 高带宽机器推荐命令行下载,支持断电断续和高速下载 + +## 环境安装 + +```bash +pip install modelscope +``` + + +## 模型下载 + +### 命令行下载(推荐) + +```bash +modelscope download --model="Qwen/Qwen2.5-0.5B-Instruct" --local_dir ./model-dir +``` + +### SDK 下载 +```python +from modelscope import snapshot_download model_dir = snapshot_download("Qwen/Qwen2.5-0.5B-Instruct") +``` + +### Git LFS 下载 +```bash +git lfs install +git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git +``` + + +## 模型加载 + +### AutoModel + +ModelScope 支持原生 pipeline 推理,同时也兼容了由Transformers,Diffusers等提供的AutoModel和Pipeline的加载 + +```bash +pip install transformers +``` + +```python +from modelscope import AutoModelForCausalLM, AutoTokenizer + +model_name = "Qwen/Qwen2.5-0.5B-Instruct" + +model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype="auto", + device_map="auto" +) +tokenizer = AutoTokenizer.from_pretrained(model_name) +``` + +### 使用 ModelScope pipeline 加载模型 +```python +from modelscope.pipelines import pipeline +word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base') +``` + +## 模型推理 + +```python +from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks inference_pipeline = pipeline( task=Tasks.auto_speech_recognition, model='iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch', model_revision="v2.0.4") rec_result = inference_pipeline('https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_vad_punc_example.wav') print(rec_result) +``` \ No newline at end of file diff --git a/01-项目/2026-人工智能/项目需求.md b/01-项目/2026-人工智能/项目需求.md new file mode 100644 index 0000000..e69de29 diff --git a/01-项目/2026-新知识融合/模块-多媒体-清单.md b/01-项目/2026-新知识融合/模块-多媒体-清单.md new file mode 100644 index 0000000..8f316c3 --- /dev/null +++ b/01-项目/2026-新知识融合/模块-多媒体-清单.md @@ -0,0 +1,12 @@ + +## 待看清单 +- 新闻女王 +- 搜神记 +- 宫心计 +- 傲娇与章经 +- 重启人生 +- 半泽直树 +- 法律至上 +- 灵魂摆渡 +- 唐朝诡事录 +- 潜伏 diff --git a/01-项目/2026-新知识融合/项目Bug清单.md b/01-项目/2026-新知识融合/项目Bug清单.md new file mode 100644 index 0000000..e69de29 diff --git a/01-项目/2026-新知识融合/项目总结.md b/01-项目/2026-新知识融合/项目总结.md new file mode 100644 index 0000000..e69de29 diff --git a/01-项目/2026-新知识融合/项目配置.md b/01-项目/2026-新知识融合/项目配置.md new file mode 100644 index 0000000..e69de29 diff --git a/01-项目/2026-新知识融合/项目需求.md b/01-项目/2026-新知识融合/项目需求.md new file mode 100644 index 0000000..e69de29 diff --git a/02-领域/MaixCam/领域知识地图.md b/02-领域/MaixCam/领域知识地图.md index c5e251b..a3b4737 100644 --- a/02-领域/MaixCam/领域知识地图.md +++ b/02-领域/MaixCam/领域知识地图.md @@ -2,3 +2,8 @@ - [[MaixCam-触摸屏分辨率]] - [[MaixCam-自定义开机启动画面]] + +## 图像相关 + +- [[MaixCam-RGB转LAB]] + diff --git a/05-原子化笔记本/MaixCam-RGB转LAB.md b/05-原子化笔记本/MaixCam-RGB转LAB.md new file mode 100644 index 0000000..9c73471 --- /dev/null +++ b/05-原子化笔记本/MaixCam-RGB转LAB.md @@ -0,0 +1,56 @@ +#领域/MaixCam +## 核心定义 + +maix.v1 支持将 rbg 元组转 lab 元组 + +## 最小实现代码 +```python +from maix.v1 import image as v1_image + +def rgb_to_lab(rgb_tuple): + ... + return (l,a,b) + +... +rgb = (r, g, b) +l, a, b = v1_image.rgb_to_lab(rgb) +``` + +## 样例程序 + +```python +#!/usr/bin/env python +from maix.v1 import lcd, image +from maix import time +from maix import image as maix_img + +lcd.init() +img = image.Image("/maixapp/share/icon/maixvision.png") + +print('invert format to grayscale') +img.to_grayscale() +lcd.display(img) +time.sleep(1) + +print('invert format to rgb888') +img.to_rgb888() +lcd.display(img) +time.sleep(1) + +rgb=(100,200,30) +lab=image.rgb_to_lab(rgb) +print('rgb to lab, res:', lab) + +rgb=image.lab_to_rgb(lab) +print('lab to rgb, res:', rgb) + +rgb=(10,20,30) +gray=image.rgb_to_grayscale(rgb) +print('rgb to gray, res:', gray) + +rgb=image.grayscale_to_rgb(gray) +print('gray to rgb, res:', rgb) + +while True: +    time.sleep(1) +```