PageSourceSearch

https://openclawgithub.cc/assets/index.html-Dbl-ML3b.js

js openclawgithub.cc collected 2026-10-08 05:01:21 UTC 78,052 bytes, 187 lines download raw bytes

1import{_ as i,c as a,d as n,o as l}from"./app-rplj-UlT.js";const h={};function e(k,s){return l(),a("div",null,[...s[0]||(s[0]=[n(`<p>智能眼镜专属 AI 助手 - 为 Meta Ray-Ban 智能眼镜设计的多模态 Agent,实时视觉问答和场景理解。</p><h2 id="核心特性" tabindex="-1"><a class="header-anchor" href="#核心特性"><span>核心特性</span></a></h2><h3 id="实时视觉理解" tabindex="-1"><a class="header-anchor" href="#实时视觉理解"><span>实时视觉理解</span></a></h3><ul><li>摄像头实时画面分析</li><li>物体识别和场景理解</li><li>OCR 文字识别</li><li>人脸识别(可选)</li></ul><h3 id="多模态交互" tabindex="-1"><a class="header-anchor" href="#多模态交互"><span>多模态交互</span></a></h3><ul><li>视觉 + 语音双模态输入</li><li>自然语言问答</li><li>实时翻译</li><li>导航辅助</li></ul><h3 id="低延迟处理" tabindex="-1"><a class="header-anchor" href="#低延迟处理"><span>低延迟处理</span></a></h3><ul><li>边缘计算优化</li><li>流式处理</li><li>预测性加载</li><li>智能缓存</li></ul><h3 id="隐私保护" tabindex="-1"><a class="header-anchor" href="#隐私保护"><span>隐私保护</span></a></h3><ul><li>本地图像预处理</li><li>敏感信息过滤</li><li>用户数据加密</li><li>可配置隐私级别</li></ul><h2 id="快速开始" tabindex="-1"><a class="header-anchor" href="#快速开始"><span>快速开始</span></a></h2><h3 id="硬件要求" tabindex="-1"><a class="header-anchor" href="#硬件要求"><span>硬件要求</span></a></h3><ul><li>Meta Ray-Ban Stories 智能眼镜</li><li>配对的 iPhone/Android 手机</li><li>蓝牙 5.0+</li></ul><h3 id="安装" tabindex="-1"><a class="header-anchor" href="#安装"><span>安装</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 克隆仓库</span></span>
2<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">git</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> clone</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> https://github.com/sseanliu/VisionClaw.git</span></span>
3<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">cd</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> VisionClaw</span></span>
4<span class="line"></span>
5<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 安装依赖</span></span>
6<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">pip</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> install</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -r</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> requirements.txt</span></span>
7<span class="line"></span>
8<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 配置 API Key</span></span>
9<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">export</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ANTHROPIC_API_KEY</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">your_api_key</span></span>
10<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">export</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> OPENAI_API_KEY</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">your_openai_key</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">  # 用于视觉模型</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="配置" tabindex="-1"><a class="header-anchor" href="#配置"><span>配置</span></a></h3><p>创建 <code>config.yaml</code>:</p><div class="language-yaml line-numbers-mode" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">device</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
11<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  name</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Meta Ray-Ban</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span>
12<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  bluetooth_address</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">XX:XX:XX:XX:XX:XX</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span>
13<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">  </span></span>
14<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
15<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  model</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">gpt-4-vision-preview</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span>
16<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  max_resolution</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 1280x720</span></span>
17<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  frame_rate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">  # 每秒处理帧数</span></span>
18<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">  </span></span>
19<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">audio</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
20<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  sample_rate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 16000</span></span>
21<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  channels</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
22<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">  </span></span>
23<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">privacy</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
24<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
25<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  filter_sensitive</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
26<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  local_processing</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="启动" tabindex="-1"><a class="header-anchor" href="#启动"><span>启动</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 启动服务</span></span>
27<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">python</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> main.py</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --config</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> config.yaml</span></span>
28<span class="line"></span>
29<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 配对眼镜</span></span>
30<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">python</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> pair_device.py</span></span>
31<span class="line"></span>
32<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 运行测试</span></span>
33<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">python</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> test_vision.py</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="技术架构" tabindex="-1"><a class="header-anchor" href="#技术架构"><span>技术架构</span></a></h2><h3 id="系统架构" tabindex="-1"><a class="header-anchor" href="#系统架构"><span>系统架构</span></a></h3><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>┌─────────────────────────────────────┐</span></span>
34<span class="line"><span>│      Meta Ray-Ban 智能眼镜           │</span></span>
35<span class="line"><span>│  ┌──────────┐      ┌──────────┐    │</span></span>
36<span class="line"><span>│  │  摄像头   │      │  麦克风   │    │</span></span>
37<span class="line"><span>│  └──────────┘      └──────────┘    │</span></span>
38<span class="line"><span>│         │                │          │</span></span>
39<span class="line"><span>│         └────────┬───────┘          │</span></span>
40<span class="line"><span>│                  │ 蓝牙              │</span></span>
41<span class="line"><span>└──────────────────┼──────────────────┘</span></span>
42<span class="line"><span>                   │</span></span>
43<span class="line"><span>┌──────────────────┼──────────────────┐</span></span>
44<span class="line"><span>│      手机 App     │                  │</span></span>
45<span class="line"><span>│  ┌───────────────▼────────────────┐ │</span></span>
46<span class="line"><span>│  │   VisionClaw 处理引擎          │ │</span></span>
47<span class="line"><span>│  │  ┌──────────┐  ┌──────────┐   │ │</span></span>
48<span class="line"><span>│  │  │ 视觉处理  │  │ 语音处理  │   │ │</span></span>
49<span class="line"><span>│  │  └──────────┘  └──────────┘   │ │</span></span>
50<span class="line"><span>│  │  ┌──────────────────────────┐ │ │</span></span>
51<span class="line"><span>│  │  │   多模态融合引擎          │ │ │</span></span>
52<span class="line"><span>│  │  └──────────────────────────┘ │ │</span></span>
53<span class="line"><span>│  └────────────────────────────────┘ │</span></span>
54<span class="line"><span>└─────────────────────────────────────┘</span></span>
55<span class="line"><span>                   │</span></span>
56<span class="line"><span>                   │ HTTPS</span></span>
57<span class="line"><span>                   ▼</span></span>
58<span class="line"><span>┌─────────────────────────────────────┐</span></span>
59<span class="line"><span>│         LLM API (Claude/GPT)        │</span></span>
60<span class="line"><span>└─────────────────────────────────────┘</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="视觉处理流程" tabindex="-1"><a class="header-anchor" href="#视觉处理流程"><span>视觉处理流程</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;
60">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> cv2</span></span>
61<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">from</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> PIL</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span></span>
62<span class="line"></span>
63<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> VisionProcessor</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
64<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> __init__</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
65<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">        self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">frame_buffer </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> []</span></span>
66<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">        self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">last_analysis </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> None</span></span>
67<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
68<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> process_frame</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> frame</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> dict</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
69<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 解码图像</span></span>
70<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">open</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">io</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">BytesIO</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">frame</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">))</span></span>
71<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
72<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 预处理</span></span>
73<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">preprocess</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
74<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
75<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 隐私过滤</span></span>
76<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        if</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
77<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">            image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
78<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
79<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 发送到 LLM</span></span>
80<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        result </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">analyze_image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
81<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
82<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> result</span></span>
83<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
84<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> preprocess</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
84self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
85<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 调整大小</span></span>
86<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">resize</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">((</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1280</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 720</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">))</span></span>
87<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
88<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 增强对比度</span></span>
89<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        enhancer </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ImageEnhance</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Contrast</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
90<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> enhancer</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">enhance</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1.5</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
91<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
92<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="多模态融合" tabindex="-1"><a class="header-anchor" href="#多模态融合"><span>多模态融合</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> MultimodalFusion</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
93<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> process</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
93self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision_input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> dict</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> audio_input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
94<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 构建多模态提示</span></span>
95<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        prompt </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">&quot;&quot;&quot;</span></span>
96<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">        用户正在看: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">vision_input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">description</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span></span>
97<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">        用户说: </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">audio_input</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span></span>
98<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">        </span></span>
99<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">        请根据视觉和语音信息回答用户的问题。</span></span>
100<span class="line"><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">        &quot;&quot;&quot;</span></span>
101<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
102<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 调用 LLM</span></span>
103<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        response </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">llm</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">generate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">prompt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
104<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
105<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> response</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="功能特性" tabindex="-1"><a class="header-anchor" href="#功能特性"><span>功能特性</span></a></h2><h3 id="实时场景理解" tabindex="-1"><a class="header-anchor" href="#实时场景理解"><span>实时场景理解</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 场景描述</span></span>
106<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">scene </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
106describe_scene</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
107<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># &quot;你正在一家咖啡店里,前方有一个收银台,左边有几张桌子&quot;</span></span>
108<span class="line"></span>
109<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 物体识别</span></span>
110<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">objects </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">detect_objects</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
111<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># [&quot;咖啡杯&quot;, &quot;笔记本电脑&quot;, &quot;手机&quot;, &quot;钱包&quot;]</span></span>
112<span class="line"></span>
113<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 文字识别</span></span>
114<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">text </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">read_text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
115<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># &quot;菜单: 美式咖啡 $3.50, 拿铁 $4.50&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="智能问答" tabindex="-1"><a class="header-anchor" href="#智能问答"><span>智能问答</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 用户问: &quot;这个多少钱?&quot;</span></span>
116<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 系统看到菜单上的价格</span></span>
117<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">answer </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> agent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">answer_question</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span></span>
118<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">    question</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">这个多少钱?</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
119<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">    context</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">vision_context</span></span>
120<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
121<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># &quot;美式咖啡是 3.50 美元&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="实时翻译" tabindex="-1"><a class="header-anchor" href="#实时翻译"><span>实时翻译</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 识别外语文字并翻译</span></span>
122<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">text </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">read_text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
123<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">translation </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> translator</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">translate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">text</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> target_lang</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">zh</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
124<span class="line"></span>
125<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 语音播报翻译结果</span></span>
126<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> tts</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">speak</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">translation</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="导航辅助" tabindex="-1"><a class="header-anchor" href="#导航辅助"><span>导航辅助</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 识别路标和方向</span></span>
127<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">signs </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> vision</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">detect_signs</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
128<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">direction </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> navigator</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">get_direction</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">signs</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
129<span class="line"></span>
130<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># &quot;前方 50 米左转&quot;</span></span>
131<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> tts</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">speak</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">direction</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="适用场景" tabindex="-1"><a class="header-anchor" href="#适用场景"><span>适用场景</span></a></h2><h3 id="日常生活" tabindex="-1"><a class="header-anchor" href="#日常生活"><span>日常生活</span></a></h3><ul><li>购物时查看商品信息</li><li>阅读菜单和标识</li><li>识别陌生物品</li><li>实时翻译外语</li></ul><h3 id="旅游出行" tabindex="-1"><a class="header-anchor" href="#旅游出行"><span>旅游出行</span></a></h3><ul><li>景点介绍</li><li>路标识别</li><li>地图导航</li><li>语言翻译</li></ul><h3 id="学习工作" tabindex="-1"><a class="header-anchor" href="#学习工作"><span>学习工作</span></a></h3><ul><li>
131会议记录</li><li>文档扫描</li><li>知识查询</li><li>实时笔记</li></ul><h3 id="无障碍辅助" tabindex="-1"><a class="header-anchor" href="#无障碍辅助"><span>无障碍辅助</span></a></h3><ul><li>视障人士导航</li><li>文字朗读</li><li>场景描述</li><li>障碍物提醒</li></ul><h2 id="性能指标" tabindex="-1"><a class="header-anchor" href="#性能指标"><span>性能指标</span></a></h2><table><thead><tr><th>指标</th><th>数值</th></tr></thead><tbody><tr><td>视觉处理延迟</td><td>&lt; 2s</td></tr><tr><td>语音识别延迟</td><td>&lt; 500ms</td></tr><tr><td>端到端响应</td><td>&lt; 3s</td></tr><tr><td>电池续航</td><td>4-6 小时</td></tr><tr><td>图像分辨率</td><td>1280x720</td></tr><tr><td>处理帧率</td><td>2 FPS</td></tr></tbody></table><h2 id="隐私保护-1" tabindex="-1"><a class="header-anchor" href="#隐私保护-1"><span>隐私保护</span></a></h2><h3 id="本地预处理" tabindex="-1"><a class="header-anchor" href="#本地预处理"><span>本地预处理</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> PrivacyFilter</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
132<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> filter_image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
133<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 人脸模糊</span></span>
134<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        faces </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">detect_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
135<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> face </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
136<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">            image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">blur_region</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> face</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
137<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
138<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 敏感信息过滤</span></span>
139<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        sensitive_regions </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">detect_sensitive</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
140<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> region </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sensitive_regions</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
141<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">            image </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">mask_region</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> region</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
142<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        </span></span>
143<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="数据加密" tabindex="-1"><a class="header-anchor" href="#数据加密"><span>数据加密</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">from</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> cryptography</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">fernet </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">
143import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Fernet</span></span>
144<span class="line"></span>
145<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> DataEncryption</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
146<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> __init__</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
147<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">        self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">key </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Fernet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">generate_key</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
148<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">        self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">cipher </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Fernet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">key</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
149<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
150<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> encrypt_image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image_bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
151<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">cipher</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">encrypt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image_bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
152<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
153<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> decrypt_image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> encrypted</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> bytes</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
154<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">cipher</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">decrypt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">encrypted</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="隐私级别配置" tabindex="-1"><a class="header-anchor" href="#隐私级别配置"><span>隐私级别配置</span></a></h3><div class="language-yaml line-numbers-mode" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">privacy</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
155<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  level</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> high</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">  # low, medium, high</span></span>
156<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">  </span></span>
157<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  high</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
158<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
159<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    filter_license_plates</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
160<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    filter_credit_cards</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
161<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    local_processing_only</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
162<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
163<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  medium</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
164<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
165<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    filter_license_plates</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span>
166<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
167<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">  low</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
168<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">    blur_faces</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">
168 false</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="开发指南" tabindex="-1"><a class="header-anchor" href="#开发指南"><span>开发指南</span></a></h2><h3 id="自定义视觉模型" tabindex="-1"><a class="header-anchor" href="#自定义视觉模型"><span>自定义视觉模型</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> CustomVisionModel</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
169<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    def</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> __init__</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> model_path</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
170<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">        self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">model </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> load_model</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">model_path</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
171<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    </span></span>
172<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">    async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> analyze</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> dict</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
173<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">        # 自定义分析逻辑</span></span>
174<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">        result </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> self</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">model</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">predict</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
175<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">        return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> result</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="添加新功能" tabindex="-1"><a class="header-anchor" href="#添加新功能"><span>添加新功能</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 注册新的视觉工具</span></span>
176<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">@</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">vision_tool</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">identify_plant</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
177<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">async</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> def</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> identify_plant</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> -&gt;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
178<span class="line"><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">    &quot;&quot;&quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">识别植物种类</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;&quot;&quot;</span></span>
179<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">    result </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> await</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> plant_api</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">identify</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">image</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
180<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">    return</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> f</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">&quot;这是 </span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">
180{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">result</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">name</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">,</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">result</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">description</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">&quot;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="与其他版本对比" tabindex="-1"><a class="header-anchor" href="#与其他版本对比"><span>与其他版本对比</span></a></h2><h3 id="vs-官方版" tabindex="-1"><a class="header-anchor" href="#vs-官方版"><span>vs 官方版</span></a></h3><ul><li>官方版无视觉能力,VisionClaw 专注视觉</li><li>官方版文本输入,VisionClaw 多模态输入</li><li>VisionClaw 是官方版的视觉增强</li></ul><h3 id="vs-moltis" tabindex="-1"><a class="header-anchor" href="#vs-moltis"><span>vs Moltis</span></a></h3><ul><li>Moltis 专注语音,VisionClaw 专注视觉</li><li>两者都是多模态方向</li><li>可以融合成完整的多模态方案</li></ul><h3 id="vs-mimiclaw" tabindex="-1"><a class="header-anchor" href="#vs-mimiclaw"><span>vs MimiClaw</span></a></h3><ul><li>MimiClaw 运行在单片机,VisionClaw 运行在手机</li><li>MimiClaw 功耗极低,VisionClaw 功能更强</li><li>应用场景完全不同</li></ul><h2 id="相关链接" tabindex="-1"><a class="header-anchor" href="#相关链接"><span>相关链接</span></a></h2><ul><li><strong>GitHub</strong>: <a href="https://github.com/sseanliu/VisionClaw" target="_blank" rel="noopener noreferrer">sseanliu/VisionClaw</a></li><li><strong>Meta Ray-Ban</strong>: <a href="https://www.ray-ban.com/usa/discover-ray-ban-stories" target="_blank" rel="noopener noreferrer">ray-ban.com/stories</a></li><li><strong>文档</strong>: <a href="https://github.com/sseanliu/VisionClaw/wiki" target="_blank" rel="noopener noreferrer">使用文档</a></li><li><strong>问题反馈</strong>: <a href="https://github.com/sseanliu/VisionClaw/issues" target="_blank" rel="noopener noreferrer">Issues</a></li></ul><h2 id="贡献" tabindex="-1"><a class="header-anchor" href="#贡献"><span>贡献</span></a></h2><p>欢迎计算机视觉和 AR 开发者贡献!</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 克隆仓库</span></span>
181<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">git</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> clone</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> https://github.com/sseanliu/VisionClaw.git</span></span>
182<span class="line"></span>
183<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 安装依赖</span></span>
184<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">pip</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> install</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -r</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> requirements.txt</span></span>
185<span class="line"></span>
186<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 运行测试</span></span>
187<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">pytest</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> tests/</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="许可证" tabindex="-1"><a class="header-anchor" href="#许可证"><span>许可证</span></a></h2><p>MIT License - 详见 <a href="https://github.com/sseanliu/VisionClaw/blob/main/LICENSE" target="_blank" rel="noopener noreferrer">LICENSE</a></p><hr><div style="text-align:center;padding:2rem 0;"><a href="https://github.com/sseanliu/VisionClaw" target="_blank" style="display:inline-block;padding:0.8rem 2rem;background:var(--vp-c-brand);color:white;border-radius:8px;text-decoration:none;font-weight:600;"> 访问 GitHub 仓库 → </a></div>`,75)])])}const p=i(h,[["render",e]]),d=JSON.parse('{"path":"/ecosystem/visionclaw/","title":"VisionClaw - 智能眼镜专属 | 生态系统","lang":"zh-CN","frontmatter":{"title":"VisionClaw - 智能眼镜专属","createTime":"2026/03/07 16:55:00","permalink":"/ecosystem/visionclaw/","de
187scription":"智能眼镜专属 AI 助手 - 为 Meta Ray-Ban 智能眼镜设计的多模态 Agent","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"VisionClaw - 智能眼镜专属\\",\\"image\\":[\\"/lobster.svg\\"],\\"dateModified\\":null,\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"OpenClaw\\"}]}"],["meta",{"property":"og:url","content":"https://openclawgithub.cc/ecosystem/visionclaw/"}],["meta",{"property":"og:site_name","content":"OpenClaw 中文教程"}],["meta",{"property":"og:title","content":"VisionClaw - 智能眼镜专属"}],["meta",{"property":"og:description","content":"智能眼镜专属 AI 助手 - 为 Meta Ray-Ban 智能眼镜设计的多模态 Agent"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"/lobster.svg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"name":"twitter:creator","content":"openclaw"}],["meta",{"name":"keywords","content":"visionclaw,智能眼镜 ai,多模态 agent,ar 助手"}]]},"readingTime":{"minutes":4.39,"words":1316},"git":{"createdTime":1788971858000},"filePathRelative":"ecosystem/visionclaw.md","headers":[]}');export{p as comp,d as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.