@Official_m9g: 凭此项目赢得Gemini 3首尔黑客松(硬科技):照片 → 图 → 文字布局 → 地图 → 航点。透视图像……

X AI KOLs Timeline 工具

摘要

GeminiSpace,一款基于Google Gemini的自主室内导航系统,在Gemini 3首尔黑客松中荣获一等奖,其功能是将全景照片转化为可导航地图及机器人路径。

用这个赢得了Gemini 3首尔黑客松(硬科技):照片 → 图 → 文字布局 → 地图 → 航点。透视图像未用于图像模型。语义草图,非LiDAR。仓库已清理并公开。https://github.com/mincasurong/GeminiSeoulHackathon2026…
查看原文
查看缓存全文

缓存时间: 2026/09/20 17:26

在Gemini 3首尔黑客松(硬科技赛道)中凭借此项目获胜:照片 → 图表 → 文本布局 → 地图 → 路点。透视图像从未输入图像模型。语义化草图,而非激光雷达。代码仓库已清理并公开。https://github.com/mincasurong/GeminiSeoulHackathon2026… — # mincasurong/GeminiSeoulHackathon2026 来源:https://github.com/mincasurong/GeminiSeoulHackathon2026 # 🌌 空间操作系统 (GeminiSpace) — 基于视觉-语言-动作的室内导航 黑客松获奖项目 (https://cerebralvalley.ai/e/gemini-3-seoul-hackathon/hackathon/gallery?project=27) 被Google韩国官方博客报道 (https://blog.google/intl/ko-kr/company-news/inside-google/gemini-seoul-hackathon-first/) YouTube演示视频 (https://www.youtube.com/watch?v=rZI6C7XsnY4) FastAPI (https://fastapi.tiangolo.com) Next.js (https://nextjs.org) Gemini (https://ai.google.dev) 一个由Google Gemini驱动的自主室内空间智能与机器人导航操作系统。 将8张普通的全景智能手机照片转化为逼真的2D正交蓝图、3D体素数字孪生、SLAM关系属性图,以及ROS2机器人导航轨迹。 — ## 📑 目录 - 🏆 黑客松故事与起源 - 💡 硬科技挑战 - 🧠 核心突破:三步VLA流程 - 🔬 视觉SLAM关键点跟踪与反幻觉 - 🤖 物理机器人与ROS2硬件桥接 - 🖥️ 驾驶舱可视化子系统 - 🏗️ 系统架构 - ⚡ Gemini模型分配 - 🚀 快速开始指南 - 📡 API参考 - 🧪 自动化测试套件 - ☁️ Google Cloud Run部署 - 📂 仓库结构 - ⚠️ 限制 - 📜 许可证 — ## 🏆 黑客松故事与起源 GeminiSpace(空间操作系统)2026年2月28日Gemini 3首尔黑客松 期间创建(由 Google DeepMindGoogle AI StudioCerebral ValleyAttentionX 在韩国首尔举办)。在与111支高级AI工程团队的竞争中,GeminiSpace赢得了 Gemini硬科技赛道第一名。 ### 📰 官方新闻与链接 * Google韩国官方博客文章: 구글 블로그 인터뷰: “단 7시간 만에 혼자 구현하는 AI 공간 솔루션 완성” (https://blog.google/intl/ko-kr/company-news/inside-google/gemini-seoul-hackathon-first/) * Cerebral Valley项目画廊: 项目 #27 — GeminiSpace(第一名获奖者)(https://cerebralvalley.ai/e/gemini-3-seoul-hackathon/hackathon/gallery?project=27) * YouTube演示与讲解: 在YouTube观看现场黑客松演讲 (https://www.youtube.com/watch?v=rZI6C7XsnY4) — ## 💡 硬科技挑战 在智能工厂、仓库、医疗设施和建筑工地,部署自主移动机器人(AMR)需要空间建图。传统的 基于激光雷达的SLAM(同步定位与建图) 存在严重瓶颈: 1. 昂贵的硬件需求:高精度激光雷达传感器和深度摄像头的成本高达每台机器人数千美元。 2. 耗时费力的预扫描:人类技术员必须手动驾驶遥控传感器装置穿过每条走廊和房间,以生成点云。 3. 僵化且缺乏语义:点云代表原始的几何密度,但缺乏语义理解(它们无法区分冰箱和出口门,也无法区分障碍物和椅子)。 4. 计算负担沉重:实时点云配准需要大量的机载计算能力和电池电力。 GeminiSpace的核心论点: 如果一个人或机器人能够站在任何房间的中心,使用普通RGB相机拍摄8张照片,然后AI就能在几秒内即时构建出精确的2D平面图、3D数字孪生、关系属性图以及可执行的ROS2导航路点,会怎么样? — ## 🧠 核心突破:三步VLA流程 将透视相机照片直接输入2D图像生成器会导致严重的 3D透视畸变、幻影墙壁和角度扭曲。GeminiSpace发明了 文本桥接架构 以完全消除透视畸变: mermaid flowchart LR subgraph S1["步骤 1:拓扑提取"] P["8张方向照片\n(0:N → 7:NW)"] --> TOPO["Gemini 3.7 Flash\n(SLAM关键点与属性图)"] end subgraph S2["步骤 2:文本桥接地图合成"] TOPO --> S2A["步骤 2a:布局描述\n(真实材质与闭合多边形)"] S2A -->|仅文本,无照片| S2B["步骤 2b:2D蓝图合成\n(Gemini 3.1 Flash 图像)"] end subgraph S3["步骤 3:对象定位"] S2B & TOPO --> LOC["步骤 3:视觉定位\n(Gemini 3.7 Flash BBoxes)"] end LOC --> UI["驾驶舱HUD与ROS2动作服务器"] style S1 fill:#0f172a,stroke:#00FF9D,stroke-width:2px style S2 fill:#0f172a,stroke:#38BDF8,stroke-width:2px style S3 fill:#0f172a,stroke:#A855F7,stroke-width:2px 1. 步骤 1:拓扑提取 (extract_topology):分析从房间中心以45度间隔连续拍摄的8张方向照片(从0^\circ\text{ 北} \to 315^\circ\text{ 西北})。使用 gemini-3.7-flash 提取 关系空间属性图(静态建筑构件、可移动物体、出口和视觉SLAM关键点)。 2. 步骤 2a:材质与几何布局描述 (extract_layout_description):将照片和拓扑属性图转化为 纯文本的建筑CAD规范。它捕捉真实的地面材质(抛光灰色大理石砖、橡木拼花地板)、墙面材质(拉丝金属、洞石)以及精确的度量间距。 3. 步骤 2b:逼真的2D平面图合成 (generate_birds_eye_view):将纯文本布局描述发送至 gemini-3.1-flash-image (Nano Banana 2),生成 16:9正交2D俯视平面图渲染,完全无3D透视畸变。 4. 步骤 3:视觉定位与空间定位 (locate_objects_in_map):将生成的2D地图与提取的实体相关联,计算基于百分比的边界框 (y_{\min}, x_{\min}, y_{\max}, x_{\max}),并具有自动的方向回退机制。 — ## 🔬 视觉SLAM关键点跟踪与反幻觉 为防止空间漂移和幻影墙壁,GeminiSpace实现了 视觉SLAM缝合关键点跟踪: * 相邻重叠缝合匹配:相邻照片有 \sim 25\text{--}35\% 的视场重叠。该流程在所有8个连续视图对中提取不变几何关键点: \text{缝合线: } [0, 1] \to [1, 2] \to [2, 3] \to [3, 4] \to [4, 5] \to [5, 6] \to [6, 7] \to [7, 0] * 360^\circ 闭环约束:图像7(西北:315^\circ)和图像0(北:0^\circ)进行匹配,以确保闭环周长对齐,无角度漂移。 * 关键点锚定实体:每个对象都直接锚定到其最近的不变关键点(associated_keypoints / relative_to_keypoint),在数学上约束了平面图的几何形状。 — ## 🤖 物理机器人与ROS2硬件桥接 GeminiSpace将高层认知理解转化为物理机器人运动。 ### 度量坐标映射 正交2D地图上的边界框百分比坐标 [0.0 - 100.0\%] 被映射到机器人 map 坐标系中的度量空间(1\% = 0.1\text{米},代表一个 10\text{米} \times 10\text{米} 的归一化局部房间包围盒): X_{\text{metric}} = \left(\frac{x_{\min} + x_{\max}}{2}\right) \times 0.1 \quad [\text{米}] Y_{\text{metric}} = \left(\frac{y_{\min} + y_{\max}}{2}\right) \times 0.1 \quad [\text{米}] ### ROS2 Nav2动作分发载荷 当选择目的地或规划轨迹时,GeminiSpace将坐标序列化为标准的 geometry_msgs/PoseStamped 数组,并分发至ROS2 Nav2动作服务器: json { "action": "Nav2_FollowWaypoints", "frame_id": "map", "node_name": "建筑电梯大堂与楼梯间", "waypoints": [ { "header": { "frame_id": "map", "stamp": { "sec": 1772496000, "nanosec": 0 } }, "pose": { "position": { "x": 5.00, "y": 2.10, "z": 0.0 }, "orientation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 } } } ] } — ## 🖥️ 驾驶舱可视化子系统 前端SLAM操作员控制台提供3个同步的多模态视角: 1. 🗺️ 正交2D蓝图 (InteriorMapComponent.tsx): * 交互式SVG边界框叠加层,带悬停遥测。 * 可切换的度量坐标网格(0.5\text{米} 网格线和原点标记)。 * 直接关联的源照片库模态框,显示任何点击实体的原始相机视角。 2. 🔗 关系语义网格 (SemanticGraph.tsx): * D3.js力导向物理图,支持缩放和拖拽。 * 菱形SLAM缝合关键点()连接成闭环 360^\circ 周边环。 * 对象间关系虚线链接(相邻面对在后)以青色显示。 3. 🧊 3D体素数字孪生 (DigitalTwin.tsx): * Three.js 与 @react-three/fiber 体素数字孪生。 * 实例化墙体体素挤出、地面平面纹理投射和交互式相机轨道控制。 4. 🌐 展示实验室 (/scholar): * 独立的离线展示页面,包含交互式蓝图模拟、实时ROS2载荷检查器和自动化VLA问答回放控制。 — ## 🏗️ 系统架构 ┌─────────────────────────────────────────────────────────────────────────┐ │ 表现层: Next.js 16 + React 19 + Tailwind CSS + Framer Motion │ │ ├── 🧭 360° 环形雷达罗盘采集UI │ │ ├── 🗺️ 交互式2D正交蓝图 (SVG叠加层与网格) │ │ ├── 🔗 D3.js 力导向SLAM属性图 │ │ ├── 🧊 Three.js 3D体素数字孪生可视化器 │ │ ├── 🌐 /scholar — 独立展示与演示实验室 │ │ └── 💬 空间认知聊天与SLAM内核终端 │ └────────────────────────────────────┬────────────────────────────────────┘ │ HTTP / REST (Fetch API) ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 后端编排层: FastAPI + NetworkX + Python 3.11 │ │ ├── POST /api/upload-node ──► 三步VLA流程编排器 │ │ ├── POST /api/chat ──► 多模态环境空间问答 │ │ ├── POST /api/query-planner──► 目标驱动轨迹图路由 │ │ ├── GET /api/graph ──► 会话拓扑图 │ │ └── GET /api/node/{id} ──► 房间详情与源图像 │ └────────────────────────────────────┬────────────────────────────────────┘ │ Google GenAI SDK (google-genai) ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 认知VLA大脑: Google Gemini Cloud API │ │ ├── 步骤 1: 拓扑提取 ──► gemini-3.7-flash │ │ ├── 步骤 2a: 材质与布局文本 ──► gemini-3.7-flash │ │ ├── 步骤 2b: 2D蓝图合成 ──► gemini-3.1-flash-image │ │ ├── 步骤 3: 空间定位 ──► gemini-3.7-flash │ │ ├── 聊天: 环境推理 ──► gemini-3.7-flash │ │ └── 规划器: 轨迹路径路由 ──► gemini-3.7-flash │ └────────────────────────────────────┬────────────────────────────────────┘ │ ROS2 REST动作分发 ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 物理硬件层: ROS2 Nav2 FollowWaypoints动作服务器 │ └─────────────────────────────────────────────────────────────────────────┘ — ## ⚡ Gemini模型分配 所有认知推理和定位步骤均由 gemini-3.7-flash 驱动,以实现超低延迟,配合 gemini-3.1-flash-image 进行逼真的俯视渲染: | 流程步骤 | 模型标识符 | 延迟概况 | 角色描述 | | :— | :— | :— | :— | | 拓扑提取 | gemini-3.7-flash | ~1–2秒 | 360° SLAM缝合关键点、闭环与关系属性图 | | 布局描述 | gemini-3.7-flash | ~1秒 | 材质提取、地面纹理与关键点锚定布局 | | 2D蓝图合成 | gemini-3.1-flash-image | ~3–5秒 | 逼真的16:9正交2D俯视平面图渲染 | | 对象定位 | gemini-3.7-flash | < 1秒 | 百分比边界框检测,带故障安全方向预设 | | 空间推理聊天 | gemini-3.7-flash | < 1秒 | 基于空间属性图的交互式环境问答 | | 轨迹规划器 | gemini-3.7-flash | < 1秒 | 目标驱动的多节点轨迹路径规划 | — ## 🚀 快速开始指南 ### 前提条件 * Python 3.10+ * Node.js 18+ 或 20+ * Google AI Studio (https://aistudio.google.com/) API密钥 ### 1. 克隆仓库 bash git clone https://github.com/mincasurong/GeminiSeoulHackathon2026.git cd GeminiSeoulHackathon2026 ### 2. 配置API密钥 在 backend/ 目录创建 .env 文件: bash echo GOOGLE_API_KEY=your_gemini_api_key_here > backend/.env ### 3. 启动后端服务器(终端1) bash cd backend python -m venv venv .\venv\Scripts\activate # Windows PowerShell # source venv/bin/activate # macOS / Linux pip install -r requirements.txt uvicorn main:app --reload --port 8000 后端运行在 http://localhost:8000(Swagger API文档位于 /docs)。 ### 4. 启动前端仪表板(终端2) bash cd frontend npm install npm run dev 前端运行在 http://localhost:3000。展示页面位于 http://localhost:3000/scholar。 — ## 📡 API参考 ### POST /api/upload-node 从8个多部分方向照片启动三步VLA流程。 * 表单参数: * node_name (string): 房间或楼层标识符。 * images (List[UploadFile]): 按顺序排列的8张照片(0:N \to 7:NW)。 * engine (string, 默认 "gemini"): 推理引擎选择器。 * 响应UploadNodeResponse(结构化的拓扑、合成的平面图数据URL、对象边界框)。 ### POST /api/chat 在活动房间拓扑基础上进行多模态空间推理。 * 载荷json { "query": "Where is the nearest exit to the staircase?", "node_name": "Building Elevator Lobby and Stairwell", "history": [] } * 响应{"response": "...", "node_name": "..."} ### POST /api/query-planner 为请求的目标对象规划多房间导航路径。 * 载荷json { "user_query": "Navigate to the conference room", "current_node": "Building Elevator Lobby and Stairwell" } * 响应{"status": "success", "plan": ["Building Elevator Lobby...", "East Hallway", "Conference Room A"], "message": "..."} — ## 🧪 自动化测试套件 后端包含一个自动化的 pytest 测试套件,涵盖模式序列化、SLAM关键点验证、markdown解析器围栏、方向回退边界和FastAPI路由响应: bash # 运行后端测试套件 python -m pytest backend/tests -v text ============================= 测试会话开始 ============================= 平台 win32 -- Python 3.12.1, pytest-8.4.1, pluggy-1.6.0 收集到12个测试项 backend/tests/test_api.py ..... [ 41%] backend/tests/test_models.py ... [ 66%] backend/tests/test_vla_service.py .... [100%] ============================= 12个测试在3.62秒内通过 ============================== — ## ☁️ Google Cloud Run部署 将后端和前端作为容器化微服务部署到Google Cloud Run: bash # 1. 部署后端服务 cd backend gcloud run deploy spatial-ai-backend \ --source . \ --region us-central1 \ --allow-unauthenticated \ --set-env-vars GOOGLE_API_KEY="YOUR_KEY" # 2. 部署前端服务 cd ../frontend gcloud run deploy spatial-ai-frontend \ --source . \ --region us-central1 \ --allow-unauthenticated \ --set-env-vars NEXT_PUBLIC_API_BASE_URL="https://spatial-ai-backend-xxxxx-uc.a.run.app/api" — ## 📂 仓库结构

相似文章

Gemini Omni 和 Gemini 3.5 的 9 个实际演示

Google AI Blog

Google 展示了其新模型 Gemini Omni(通过对话进行视频生成和编辑)和 Gemini 3.5 Flash(用于复杂任务的智能体模型)的 9 个演示,这些演示在 Google I/O 2026 上呈现。