[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google--emoji-scavenger-hunt":3,"tool-google--emoji-scavenger-hunt":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,2,"2026-04-18T11:18:24",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":99,"env_os":100,"env_gpu":101,"env_ram":102,"env_deps":103,"category_tags":113,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":146},9744,"google\u002Femoji-scavenger-hunt","emoji-scavenger-hunt","Emoji Scavenger Hunt is an experiment that leverages the power of neural networks and your phone’s camera to identify the real world versions of the emojis we use every day.","Emoji Scavenger Hunt 是一款由 Google 推出的趣味实验性网页游戏，旨在通过神经网络技术连接虚拟表情符号与现实世界。它利用手机摄像头或电脑 webcam，实时识别用户镜头前的物体，并引导玩家在倒计时结束前找到与屏幕上显示的表情包（如香蕉、咖啡杯、手机等）相对应的真实物品。\n\n这款工具巧妙地将前沿的图像识别技术转化为大众可参与的互动体验，解决了人工智能技术往往晦涩难懂、缺乏直观感知的问题，让用户在娱乐中亲身体验机器视觉的工作原理。其核心亮点在于完全基于浏览器运行，依托 TensorFlow.js 框架，无需安装任何额外应用或后台服务即可实现高效的本地物体检测，充分展现了 Web AI 的便捷性与潜力。\n\n除了作为普通用户的休闲小游戏，Emoji Scavenger Hunt 也为开发者和技术爱好者提供了宝贵的学习资源。项目开源了完整的代码库及自定义模型训练指南，支持用户通过 Docker 容器构建专属的图像识别模型并替换到游戏中。无论是想探索前端人工智能应用的程序员，还是对机器学习感兴趣的研究人员，都能从中获得启发，甚至基于此框架开发出自己的创意互动项目。","# 👾 Emoji Scavenger Hunt 👾\n\nEmoji Scavenger Hunt is an experimental web based game that makes use of TensorFlow.js to identify objects seen by your webcam or mobile camera in the browser. We show you emojis 🍌 ⏰ ☕️ 📱 and you have to find those objects in the real world before your timer runs out 🏆 👍.\n\nFind out how we built this experiment by reading our [article](https:\u002F\u002Fmedium.com\u002Ftensorflow\u002Fa-look-at-how-we-built-the-emoji-scavenger-hunt-using-tensorflow-js-3d760a7ebfe6) on the Tensorflow blog or try it for yourself at [g.co\u002Femojiscavengerhunt](http:\u002F\u002Fg.co\u002Femojiscavengerhunt).\n\n\n## Development\n\n```sh\nyarn prep\n```\n\nRunning `yarn prep` will use yarn to get the right packages and setup the right folders. If you don't have [yarn](https:\u002F\u002Fyarnpkg.com\u002Flang\u002Fen\u002Fdocs\u002Finstall\u002F) you can install it via homebrew (for Mac). If you’re already running node\u002Fnpm with nvm (our recommendation) you can install yarn without node using `brew install yarn --without-node`.\n\nIn order to start local development we also require the installation of the [Google Cloud SDK](https:\u002F\u002Fcloud.google.com\u002Fsdk\u002Fdownloads) and associated [App Engine Components](https:\u002F\u002Fcloud.google.com\u002Fappengine\u002Fdocs\u002Fstandard\u002Fpython\u002Fdownload). These are used for the local webserver and pushing to app engine for static site hosting.\n\nOnce you have both installed you can run the local development server with:\n\n```sh\nyarn dev\n```\n\nThis task uses `watchify` to continually watch for changes to JS and SASS files and recompiles them if any changes are detected. You can access the local development server at `http:\u002F\u002Flocalhost:3000\u002F`\n\nWhen building assets for production use:\n\n```sh\nyarn build\n```\n\nThis will minify SASS and JS for serving in production.\n\n## Build your own model\nYou can build your own image recognition model by running a Docker container.\nDockerfiles are in `training` directory.\n\nPrepare images for training by dividing them into directories for each label\nname that you want to train.\nFor example: the directory structure for training *cat* and *dog* will look as\nfollows assuming image data is stored under `data\u002Fimages`.\n\n```\ndata\n└── images\n    ├── cat\n    │   ├── cat1.jpg\n    │   ├── cat2.jpg\n    │   └── ...\n    └── dog\n        ├── dog1.jpg\n        ├── dog2.jpg\n        └── ...\n```\n\nOnce the sample images are ready, you can kickstart the training by building and\nrunning the Docker container.\n\n```\n$ cd training\n$ docker build -t model-builder .\n$ docker run -v \u002Fpath\u002Fto\u002Fdata:\u002Fdata -it model-builder\n```\n\nAfter the training is completed, you'll see three files in the\n`data\u002Fsaved_model_web` directory:\n\n- tensorflowjs_model.pb (the dataflow graph)\n- weights_manifest.json (weight manifest file)\n- group1-shard\\*of\\* (collection of binary weight files)\n\nThey are SavedModel files in a web-friendly format converted by the\n[TensorFlow.js converter](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftfjs-converter).\nYou can build your own game using your own custom image recognition model by replacing\nthe corresponding files under the `dist\u002Fmodel\u002F` directory with the newly generated ones.\n\nThe training script will also generate a file called `scavenger_classes.ts`\nwhich works in conjunction with your generated custom model.\nYou need to replace the file at `src\u002Fjs\u002Fscavenger_classes.ts` with this newly\ngenerated `scavenger_classes.ts` file so that the labels of your model match\nwith the trained data.\nAfter replacing the file you can run the build script normally to test your\nmodel in a browser. See the README file for information on running a preview\nserver.\n\nUpdate the game logic in `src\u002Fjs\u002Fgame.ts` if needed.\n\n```\n\n## License\n\nCopyright 2018 Google LLC\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttps:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n## Credits\n\nThis is an experiment and collaboration between Google Brand Studio and the [PAIR](https:\u002F\u002Fai.google\u002Fpair\u002F) teams at Google.\n\n## Final Thoughts\n\nThis is not an official Google product. We will do our best to support and maintain this experiment but your mileage may vary.\n\nWe encourage open sourcing projects as a way of learning from each other. Please respect our and other creators’ rights, including copyright and trademark rights when present, when sharing these works and creating derivative work.\n\nIf you want more info on Google's policy, you can find that [here](https:\u002F\u002Fpolicies.google.com\u002F)\n","# 👾 表情符号寻宝游戏 👾\n\n表情符号寻宝游戏是一款基于网页的实验性游戏，利用 TensorFlow.js 在浏览器中识别您通过网络摄像头或手机摄像头拍摄到的物体。我们会向您展示一些表情符号 🍌 ⏰ ☕️ 📱，而您需要在计时器结束前，在现实世界中找到这些对应的物品 🏆 👍。\n\n想了解我们是如何构建这个实验的，请阅读我们在 TensorFlow 博客上发布的[文章](https:\u002F\u002Fmedium.com\u002Ftensorflow\u002Fa-look-at-how-we-built-the-emoji-scavenger-hunt-using-tensorflow-js-3d760a7ebfe6)，或者直接访问 [g.co\u002Femojiscavengerhunt](http:\u002F\u002Fg.co\u002Femojiscavengerhunt) 亲自体验吧！\n\n\n## 开发\n\n```sh\nyarn prep\n```\n\n运行 `yarn prep` 会使用 Yarn 获取所需的依赖包，并设置好相应的文件夹结构。如果您还没有安装 [Yarn](https:\u002F\u002Fyarnpkg.com\u002Flang\u002Fen\u002Fdocs\u002Finstall\u002F)，可以通过 Homebrew（适用于 Mac）进行安装。如果您已经使用 nvm 管理 Node.js 和 npm（这是我们推荐的做法），则可以不依赖 Node 直接安装 Yarn：`brew install yarn --without-node`。\n\n为了开始本地开发，您还需要安装 [Google Cloud SDK](https:\u002F\u002Fcloud.google.com\u002Fsdk\u002Fdownloads) 及其相关的 [App Engine 组件](https:\u002F\u002Fcloud.google.com\u002Fappengine\u002Fdocs\u002Fstandard\u002Fpython\u002Fdownload)。这些工具用于本地 Web 服务器以及将项目部署到 App Engine 上以实现静态站点托管。\n\n完成上述安装后，您可以运行以下命令启动本地开发服务器：\n\n```sh\nyarn dev\n```\n\n该任务会使用 `watchify` 持续监听 JS 和 SASS 文件的变化，一旦检测到修改就会自动重新编译。您可以通过 `http:\u002F\u002Flocalhost:3000\u002F` 访问本地开发服务器。\n\n当您准备构建用于生产的资源时，可以运行：\n\n```sh\nyarn build\n```\n\n此命令会对 SASS 和 JS 进行压缩，以便在生产环境中提供服务。\n\n## 构建您自己的模型\n您可以通过运行 Docker 容器来构建自己的图像识别模型。Dockerfile 文件位于 `training` 目录下。\n\n首先，将用于训练的图片按标签名称分别放入不同的目录中。例如，如果您要训练“猫”和“狗”两类模型，且图片数据存储在 `data\u002Fimages` 目录下，则目录结构应如下所示：\n\n```\ndata\n└── images\n    ├── cat\n    │   ├── cat1.jpg\n    │   ├── cat2.jpg\n    │   └── ...\n    └── dog\n        ├── dog1.jpg\n        ├── dog2.jpg\n        └── ...\n```\n\n准备好样本图片后，即可通过构建并运行 Docker 容器开始训练：\n\n```\n$ cd training\n$ docker build -t model-builder .\n$ docker run -v \u002Fpath\u002Fto\u002Fdata:\u002Fdata -it model-builder\n```\n\n训练完成后，您会在 `data\u002Fsaved_model_web` 目录下看到三个文件：\n\n- tensorflowjs_model.pb（数据流图）\n- weights_manifest.json（权重清单文件）\n- group1-shard\\*of\\*（一组二进制权重文件）\n\n这些文件是经过 [TensorFlow.js 转换工具](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftfjs-converter) 转换为适合 Web 使用格式的 SavedModel 文件。您可以将自己的自定义图像识别模型替换到 `dist\u002Fmodel\u002F` 目录下的相应文件中，从而构建属于您自己的游戏。\n\n训练脚本还会生成一个名为 `scavenger_classes.ts` 的文件，该文件与您生成的自定义模型协同工作。请务必将 `src\u002Fjs\u002Fscavenger_classes.ts` 文件替换为新生成的 `scavenger_classes.ts` 文件，以确保模型的标签与训练数据一致。替换完成后，您可以正常运行构建脚本，在浏览器中测试您的模型。有关如何运行预览服务器的信息，请参阅 README 文件。\n\n如有需要，还可以更新 `src\u002Fjs\u002Fgame.ts` 中的游戏逻辑。\n\n```\n\n## 许可证\n\n版权所有 © 2018 Google LLC  \n根据 Apache License, Version 2.0（简称“许可证”）授权使用；除非符合许可证规定，否则不得使用本文件。您可以在以下网址获取许可证副本：\n\nhttps:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\n除非适用法律另有要求或双方另有约定，否则本软件以“原样”提供，不附带任何明示或暗示的担保或条件。具体权利与限制详见许可证条款。\n\n## 致谢\n本项目是由 Google Brand Studio 与 Google 的 [PAIR](https:\u002F\u002Fai.google\u002Fpair\u002F) 团队合作完成的实验性项目。\n\n## 结语\n本项目并非 Google 的官方产品。我们将尽力支持和维护这一实验，但实际效果可能因人而异。\n\n我们鼓励开源项目，以此促进彼此学习。在分享这些作品及创作衍生作品时，请尊重我们及其他创作者的版权和商标权等相关权益。\n\n如需了解更多 Google 的相关政策，您可以访问 [此处](https:\u002F\u002Fpolicies.google.com\u002F)。","# Emoji Scavenger Hunt 快速上手指南\n\nEmoji Scavenger Hunt 是一个基于浏览器的实验性网页游戏，利用 TensorFlow.js 调用摄像头识别现实世界中的物体。玩家需在倒计时结束前找到屏幕显示的表情符号所对应的真实物体。\n\n## 环境准备\n\n在开始开发前，请确保您的系统满足以下要求并安装了必要的前置依赖：\n\n*   **操作系统**：macOS、Linux 或 Windows（推荐 macOS\u002FLinux 以获得最佳兼容性）。\n*   **Node.js & npm**：建议使用 `nvm` (Node Version Manager) 管理 Node 版本。\n*   **Yarn**：项目依赖管理工具。\n    *   若已使用 `nvm`，在 macOS 上可通过 Homebrew 安装（无需重复安装 Node）：\n        ```sh\n        brew install yarn --without-node\n        ```\n    *   其他系统请参考 [Yarn 官方安装文档](https:\u002F\u002Fyarnpkg.com\u002Flang\u002Fen\u002Fdocs\u002Finstall\u002F)。\n*   **Google Cloud SDK**：用于本地 Web 服务器运行及静态站点部署。\n    *   下载安装：[Google Cloud SDK 下载页](https:\u002F\u002Fcloud.google.com\u002Fsdk\u002Fdownloads)\n    *   安装后需额外安装 **App Engine Components** (Python 标准环境组件)：\n        ```sh\n        gcloud components install app-engine-python\n        ```\n*   **Docker**（可选）：仅当您希望训练自定义图像识别模型时需要安装。\n\n## 安装步骤\n\n1.  **克隆项目代码**\n    ```sh\n    git clone https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt.git\n    cd emoji-scavenger-hunt\n    ```\n\n2.  **安装依赖并初始化项目**\n    运行以下命令，Yarn 将自动下载所需包并配置正确的文件夹结构：\n    ```sh\n    yarn prep\n    ```\n\n3.  **启动本地开发服务器**\n    执行以下命令启动服务。该任务会使用 `watchify` 监听 JS 和 SASS 文件的变化并自动重新编译：\n    ```sh\n    yarn dev\n    ```\n\n## 基本使用\n\n完成安装步骤后，即可在浏览器中体验或开发游戏：\n\n1.  **访问本地服务**\n    打开浏览器访问：\n    ```text\n    http:\u002F\u002Flocalhost:3000\u002F\n    ```\n    允许浏览器访问摄像头权限，即可开始游戏。\n\n2.  **构建生产环境版本**\n    当需要部署或测试压缩后的生产资源时，运行：\n    ```sh\n    yarn build\n    ```\n    此命令将对 SASS 和 JS 文件进行最小化处理。\n\n3.  **（进阶）使用自定义模型**\n    若您希望训练自己的物体识别模型：\n    *   将训练图片按类别放入 `data\u002Fimages\u002F\u003C类别名>` 目录结构中。\n    *   进入 `training` 目录，构建并运行 Docker 容器：\n        ```sh\n        cd training\n        docker build -t model-builder .\n        docker run -v \u002Fpath\u002Fto\u002Fdata:\u002Fdata -it model-builder\n        ```\n    *   训练完成后，将生成的 `tensorflowjs_model.pb`、`weights_manifest.json` 及权重分片文件替换到项目的 `dist\u002Fmodel\u002F` 目录。\n    *   将生成的 `scavenger_classes.ts` 替换 `src\u002Fjs\u002Fscavenger_classes.ts` 以匹配新标签。\n    *   重新运行 `yarn build` 和 `yarn dev` 即可在浏览器中测试自定义模型。","某科技公司的前端团队计划在内部团建活动中引入一款无需安装 App、直接在浏览器运行的互动游戏，以活跃气氛并展示团队在 AI 领域的技术探索能力。\n\n### 没有 emoji-scavenger-hunt 时\n- **开发门槛极高**：团队需从零构建图像识别模型，手动收集大量训练数据并配置复杂的深度学习环境，耗时数周。\n- **跨平台兼容性差**：传统方案往往依赖原生 App 或特定插件，员工需提前下载安装，无法实现“点开即玩”的便捷体验。\n- **互动形式单一**：缺乏实时视觉反馈机制，游戏只能停留在简单的问答或点击层面，难以激发参与者的探索欲。\n- **硬件资源浪费**：无法有效利用员工手机自带的摄像头算力，导致活动设备准备繁琐，增加了组织成本。\n\n### 使用 emoji-scavenger-hunt 后\n- **快速落地实验**：直接复用基于 TensorFlow.js 的开源架构，团队仅需替换少量素材即可在几天内完成定制化游戏部署。\n- **无缝浏览器体验**：利用网页端神经网络推理能力，员工扫码即可在手机浏览器中运行，彻底消除了安装障碍。\n- **沉浸式实时交互**：系统能实时通过摄像头识别现实物体（如☕️、📱），倒计时寻找机制让现场气氛瞬间热烈起来。\n- **零额外硬件投入**：完全依托用户现有移动设备的摄像头与算力，实现了真正的轻量化与低成本运营。\n\nemoji-scavenger-hunt 将复杂的计算机视觉技术转化为开箱即用的浏览器互动体验，极大地降低了 AI 创意落地的时间与经济成本。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_emoji-scavenger-hunt_52e85415.png","google","Google","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle_c4bedcda.png","Google ❤️ Open Source",null,"opensource@google.com","GoogleOSS","https:\u002F\u002Fopensource.google\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle",[83,87,91],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",82.8,{"name":88,"color":89,"percentage":90},"SCSS","#c6538c",16.1,{"name":92,"color":93,"percentage":94},"Dockerfile","#384d54",1.1,818,197,"2026-03-28T23:37:30","Apache-2.0",4,"macOS, Linux, Windows","训练自定义模型时建议使用支持 CUDA 的 NVIDIA GPU（具体型号未说明）；浏览器端运行基于 TensorFlow.js，利用客户端设备 GPU 或 CPU，无特定服务器 GPU 要求","未说明",{"notes":104,"python":105,"dependencies":106},"1. 本地开发需安装 Yarn 和 Google Cloud SDK（含 App Engine 组件）。2. 自定义模型训练需使用 Docker 容器。3. 该工具主要为浏览器端应用，通过 webcam 或手机摄像头运行，核心推理引擎为 TensorFlow.js。4. 生产环境构建会压缩 SASS 和 JS 文件。","未说明（开发环境依赖 Node.js\u002Fnpm\u002Fyarn；训练容器内部环境未明确指定 Python 版本）",[107,108,109,110,111,112],"Node.js","Yarn","Google Cloud SDK","Docker","TensorFlow.js","Watchify",[15],"2026-03-27T02:49:30.150509","2026-04-20T04:07:11.511242",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},43754,"如何获取模型预测中每个类别的概率百分比，而不仅仅是最高概率的类别索引？","不要只使用 `.argMax()` 获取索引。你可以调用 `predictions.as1D()` 将张量展平为一维，然后直接获取其数据来得到所有类别的概率值。代码示例：\n```javascript\nconst predictions = model.predict(img);\nconst probabilities = await predictions.as1D().data();\n\u002F\u002F probabilities 是一个包含所有类别概率值的数组，你可以将其映射为对象 {class1: 0.95, class2: 0.65...}\n```","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt\u002Fissues\u002F21",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},43755,"在 Windows 上使用 Docker 训练模型时，报错 'Image directory not found' 或 'AttributeError: NoneType object has no attribute keys' 怎么办？","这通常是因为 Docker 挂载卷的路径格式不正确。在 Windows 上运行 `docker run` 命令时，必须使用绝对路径，并且路径格式需要适配 Docker Desktop。请尝试将路径改为如下格式（注意冒号和斜杠）：\n```bash\ndocker run -v C:\u002Femoji-scavenger-hunt\u002Fdata:\u002Fdata -it model-builder\n```\n确保宿主机上的 `\u002Fdata` 目录（即 `C:\u002Femoji-scavenger-hunt\u002Fdata`）确实存在且包含图片子目录。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt\u002Fissues\u002F26",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},43756,"使用自己训练的模型部署游戏时，出现 'Error in matMul: inputs must be rank 2' 错误如何解决？","这是由于旧版本的 `@tensorflow\u002Ftfjs-converter` 在转换模型时错误地移除了必要的 `reshape` 操作导致的。解决方案是升级相关依赖包。请确保将 `@tensorflow\u002Ftfjs-converter` 升级到 **0.2.0** 或更高版本，该版本已修复此问题。\n更新命令参考：\n```bash\nyarn upgrade @tensorflow\u002Ftfjs-converter\n# 或者\nnpm install @tensorflow\u002Ftfjs-converter@latest\n```","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt\u002Fissues\u002F14",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},43757,"运行 Docker 构建命令时提示 'manifest for gcr.io\u002Ftensorflow\u002Ftensorflow:latest not found' 错误怎么办？","这是因为 Dockerfile 中引用的 TensorFlow 镜像标签 `latest` 可能已不存在或不兼容。你需要在 `training\u002FDockerfile` 文件中指定具体的 TensorFlow 版本号。\n请将第一行：\n```dockerfile\nFROM gcr.io\u002Ftensorflow\u002Ftensorflow\n```\n修改为具体的版本标签，例如：\n```dockerfile\nFROM tensorflow\u002Ftensorflow:1.7.1\n```\n（具体版本号需根据你的项目需求确定，1.7.1 是该项目曾使用的稳定版本）。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt\u002Fissues\u002F29",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},43758,"在 VirtualBox 运行的 Ubuntu 中启动应用时，提示 'Browser or device doesn't support this experiment' 是什么原因？","该错误通常是因为虚拟机无法访问宿主机的摄像头。TensorFlow.js 的演示需要摄像头权限才能运行。\n解决方法：\n1. 关闭虚拟机。\n2. 打开虚拟机的设置，找到 **USB** 或 **摄像头** 选项。\n3. 启用 USB 控制器并添加摄像头过滤器，或者安装 VirtualBox Extension Pack 以支持 USB 2.0\u002F3.0 设备穿透。\n4. 启动虚拟机后，确保系统识别到了摄像头，并在浏览器中允许摄像头访问权限。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Femoji-scavenger-hunt\u002Fissues\u002F41",{"id":143,"question_zh":144,"answer_zh":145,"source_url":141},43759,"是否有官方文档或技术博客介绍 Emoji Scavenger Hunt 的实现原理和架构流程？","有的。开发团队在 Medium 上发布了一篇详细的技术文章，介绍了如何使用 TensorFlow.js 构建这款游戏，包括模型训练、转换以及在浏览器端的推理过程。\n你可以访问以下链接阅读：\nhttps:\u002F\u002Fmedium.com\u002Ftensorflow\u002Fa-look-at-how-we-built-the-emoji-scavenger-hunt-using-tensorflow-js-3d760a7ebfe6",[]]