[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-kevinhughes27--TensorKart":3,"tool-kevinhughes27--TensorKart":61},[4,18,26,36,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},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"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",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":76,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":93,"env_deps":94,"category_tags":103,"github_topics":104,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":106,"updated_at":107,"faqs":108,"releases":138},9766,"kevinhughes27\u002FTensorKart","TensorKart","self-driving MarioKart with TensorFlow","TensorKart 是一个基于 TensorFlow 打造的开源项目，旨在让 AI 学会自动驾驶《马里奥赛车 64》。它通过模仿学习的方式，解决了如何让机器仅凭屏幕图像就能像人类玩家一样操控游戏角色的难题。用户只需连接手柄录制自己的驾驶过程作为训练数据，TensorKart 即可利用卷积神经网络提取视觉特征，并输出对应的摇杆和按键指令，从而在未见过的赛道上实现泛化驾驶。\n\n该项目特别适合对深度学习、强化学习感兴趣的开发者、研究人员以及 AI 爱好者使用。它不仅提供了一个完整的“数据采集 - 模型训练 - 自动游玩”闭环流程，还展示了如何将经典的模拟器环境与现代 GPU 加速框架（如 cuDNN）相结合。其独特的技术亮点在于极低的入门门槛：仅需少量赛道数据（如几圈比赛录像）即可训练出具备一定泛化能力的模型，甚至支持人工实时接管控制。此外，项目代码结构清晰，便于社区扩展，例如未来可引入基于圈速的强化学习层，让 AI 从“模仿”进化为“自我优化”，是探索游戏 AI 与自动驾驶算法的理想实验田。","TensorKart\n==========\n\nself-driving MarioKart with TensorFlow\n\nDriving a new (untrained) section of the Royal Raceway:\n\n![RoyalRaceway.gif](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_79073072b69c.gif)\n\nDriving Luigi Raceway:\n\n[![LuigiRacewayVideo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_035d661f5d7e.png)](https:\u002F\u002Fyoutu.be\u002Fvrccd3yeXnc)\n\nThe model was trained with:\n* 4 races on Luigi Raceway\n* 2 races on Kalimari Desert\n* 2 races on Mario Raceway\n\nWith even a small training set the model is sometimes able to generalize to a new track (Royal Raceway seen above).\n\n\nDependencies\n------------\n* `python` and `pip` then run `pip install -r requirements.txt`\n* `mupen64plus` (install via apt-get)\n\n\nRecording Samples\n-----------------\n1. Start your emulator program (`mupen64plus`) and run Mario Kart 64\n2. Make sure you have a joystick connected and that `mupen64plus` is using the sdl input plugin\n3. Run `record.py`\n4. Make sure the graph responds to joystick input.\n5. Position the emulator window so that the image is captured by the program (top left corner)\n6. Press record and play through a level. You can trim some images off the front and back of the data you collect afterwards (by removing lines in `data.csv`).\n\n![record](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_071cce30cce3.png)\n\nNotes\n- the GUI will stop updating while recording to avoid any slow downs.\n- double check the samples, sometimes the screenshot is the desktop instead. Remove the appropriate lines from the `data.csv` file\n\n\nViewing Samples\n---------------\nRun `python utils.py viewer samples\u002Fluigi_raceway` to view the samples\n\n\nPreparing Training Data\n-----------------------\nRun `python utils.py prepare samples\u002F*` with an array of sample directories to build an `X` and `y` matrix for training. (zsh will expand samples\u002F* to all the directories. Passing a glob directly also works)\n\n`X` is a 3-Dimensional array of images\n\n`y` is the expected joystick ouput as an array:\n\n```\n  [0] joystick x axis\n  [1] joystick y axis\n  [2] button a\n  [3] button b\n  [4] button rb\n```\n\n\nTraining\n--------\nThe `train.py` program will train a model using Google's TensorFlow framework and cuDNN for GPU acceleration. Training can take a while (~1 hour) depending on how much data you are training with and your system specs. The program will save the best model from all epochs of training to disk when it is done. \n \n\nPlay\n----\nThe `play.py` program will use the [`gym-mupen64plus`](https:\u002F\u002Fgithub.com\u002Fbzier\u002Fgym-mupen64plus) environment to execute the trained agent against the MarioKart environment. The environment will provide the screenshots of the emulator. These images will be sent to the model to acquire the joystick command to send. The AI joystick commands can be overridden by holding the 'LB' button on the controller.\n\n\nFuture Work \u002F Ideas:\n--------------------\n* Add a reinforcement layer based on lap time or other metrics so that the AI can start to teach itself now that it has a baseline. The environment currently provides a reward signal of `-1` per time-step, which gives the AI agent a metric to calculate its performance during each race (episode), the goal being to maximize reward and therefore, minimize overall race duration.\n* Could also have a shadow mode where the AI just draws out what it would do rather than sending actions. A real self driving car would have this and use it a lot before letting it take the wheel.\n* Deep learning is all about data; perhaps a community could form around collecting a large amount of data and pushing the performance of this AI.\n\n\nRelated Projects:\n--------------------\n[`Xbox Game AI`](https:\u002F\u002Fgithub.com\u002Fmgagvani\u002FXbox-Game-AI) - Uses [`PYXInput`](https:\u002F\u002Fgithub.com\u002Fbayangan1991\u002FPYXInput) for direct control of any Xbox\u002FPC game.\n\n[`SerpentAI`](https:\u002F\u002Fgithub.com\u002FSerpentAI\u002FSerpentAI) - Game Agent Framework to create AIs for any game.\n\n[`Donkey Gym`](https:\u002F\u002Fgithub.com\u002Ftawnkramer\u002Fgym-donkeycar) - OpenAI Gym Environments for self-driving \"[`Donkey Car`](https:\u002F\u002Fgithub.com\u002Fautorope\u002Fdonkeycar)\". \n\n[`AirSim`](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FAirSim) - An Unreal Engine simulator for autonoumous vehicles.\n\nSpecial Thanks To\n-----------------\n* https:\u002F\u002Fgithub.com\u002FSullyChen\u002FAutopilot-TensorFlow\n\n\nContributing\n------------\nOpen a PR! I promise I am friendly :)\n","TensorKart\n==========\n\n基于 TensorFlow 的自动驾驶马里奥卡丁车\n\n在皇家赛道的新（未训练）路段行驶：\n\n![RoyalRaceway.gif](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_79073072b69c.gif)\n\n在路易吉赛道上行驶：\n\n[![LuigiRacewayVideo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_035d661f5d7e.png)](https:\u002F\u002Fyoutu.be\u002Fvrccd3yeXnc)\n\n该模型的训练数据包括：\n* 路易吉赛道 4 场比赛\n* 卡利马里沙漠 2 场比赛\n* 马里奥赛道 2 场比赛\n\n即使使用少量的训练数据，模型有时也能泛化到新的赛道（如上文所示的皇家赛道）。\n\n\n依赖项\n------------\n* 需要安装 `python` 和 `pip`，然后运行 `pip install -r requirements.txt`\n* 安装 `mupen64plus`（可通过 apt-get 安装）\n\n\n录制样本\n-----------------\n1. 启动模拟器程序 (`mupen64plus`) 并运行《马里奥卡丁车 64》\n2. 确保已连接操纵杆，并且 `mupen64plus` 使用的是 sdl 输入插件\n3. 运行 `record.py`\n4. 确保图表能够响应操纵杆输入。\n5. 将模拟器窗口调整到合适位置，使程序可以捕捉到画面（左上角）\n6. 按下录制按钮并完成一关游戏。之后可以对收集到的数据进行修剪，删除开头和结尾的部分图像（通过移除 `data.csv` 文件中的相应行）。\n\n![record](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_readme_071cce30cce3.png)\n\n注意事项\n- 录制过程中 GUI 将停止更新，以避免性能下降。\n- 请仔细检查样本，有时截取的可能是桌面而非游戏画面。此时需要从 `data.csv` 文件中删除相应的行。\n\n\n查看样本\n---------------\n运行 `python utils.py viewer samples\u002Fluigi_raceway` 可以查看样本。\n\n\n准备训练数据\n-----------------------\n运行 `python utils.py prepare samples\u002F*`，传入多个样本目录数组，即可构建用于训练的 `X` 和 `y` 矩阵。（zsh 会自动展开 `samples\u002F*` 到所有目录，直接传递 glob 也可以）\n\n`X` 是一个三维图像数组，\n\n`y` 是预期的操纵杆输出数组：\n\n```\n  [0] 操纵杆 X 轴\n  [1] 操纵杆 Y 轴\n  [2] A 按钮\n  [3] B 按钮\n  [4] RB 按钮\n```\n\n\n训练\n--------\n`train.py` 程序将使用 Google 的 TensorFlow 框架和 cuDNN 进行 GPU 加速来训练模型。训练时间可能较长（约 1 小时），具体取决于训练数据量和您的硬件配置。训练完成后，程序会将所有轮次中表现最好的模型保存到磁盘上。\n\n\n游玩\n----\n`play.py` 程序将利用 [`gym-mupen64plus`](https:\u002F\u002Fgithub.com\u002Fbzier\u002Fgym-mupen64plus) 环境，让训练好的智能体与马里奥卡丁车环境交互。环境会提供模拟器的屏幕截图，这些图像会被送入模型以获取操纵杆指令。玩家可以通过按住控制器上的 'LB' 按钮来覆盖 AI 发出的操纵杆指令。\n\n\n未来工作 \u002F 想法：\n--------------------\n* 增加基于圈速或其他指标的强化学习层，以便 AI 在已有基础的情况下开始自我学习。目前环境中每一步都会给予 -1 的奖励信号，这为 AI 提供了衡量每次比赛（episode）表现的依据，目标是最大化奖励，从而最小化总用时。\n* 还可以实现“影子模式”，即 AI 只是模拟其操作而不会真正执行动作。真正的自动驾驶汽车在正式接管方向盘之前，通常会大量使用这种模式。\n* 深度学习的核心在于数据；或许可以组建一个社区，共同收集大量数据，进一步提升该 AI 的性能。\n\n\n相关项目：\n--------------------\n[`Xbox Game AI`](https:\u002F\u002Fgithub.com\u002Fmgagvani\u002FXbox-Game-AI) - 使用 [`PYXInput`](https:\u002F\u002Fgithub.com\u002Fbayangan1991\u002FPYXInput) 直接控制任何 Xbox\u002FPC 游戏。\n\n[`SerpentAI`](https:\u002F\u002Fgithub.com\u002FSerpentAI\u002FSerpentAI) - 游戏智能体框架，可用于创建任何游戏的 AI。\n\n[`Donkey Gym`](https:\u002F\u002Fgithub.com\u002Ftawnkramer\u002Fgym-donkeycar) - OpenAI Gym 环境，适用于自动驾驶 “[`Donkey Car`](https:\u002F\u002Fgithub.com\u002Fautorope\u002Fdonkeycar)”。\n\n[`AirSim`](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FAirSim) - 基于虚幻引擎的自动驾驶车辆仿真平台。\n\n特别感谢\n-----------------\n* https:\u002F\u002Fgithub.com\u002FSullyChen\u002FAutopilot-TensorFlow\n\n\n贡献\n------------\n欢迎提交 PR！我保证很友好 :)","# TensorKart 快速上手指南\n\nTensorKart 是一个基于 TensorFlow 的开源项目，旨在通过模仿学习让 AI 自动驾驶《马里奥赛车 64》。本指南将帮助你快速搭建环境并训练自己的自动驾驶模型。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu\u002FDebian)，Windows 可能需要额外的配置来运行模拟器。\n*   **Python**: 已安装 Python 及 `pip`。\n*   **GPU (可选但推荐)**: 若需加速训练，请确保已安装 NVIDIA 驱动、CUDA 及 cuDNN。\n*   **模拟器**: `mupen64plus` (N64 模拟器)。\n*   **游戏 ROM**: 《马里奥赛车 64》(Mario Kart 64) 的 ROM 文件。\n*   **硬件**: 需要连接一个游戏手柄（Joystick）用于录制数据。\n\n## 安装步骤\n\n1.  **安装系统依赖**\n    在 Debian\u002FUbuntu 系统上，使用 apt 安装模拟器：\n    ```bash\n    sudo apt-get install mupen64plus\n    ```\n\n2.  **克隆项目并安装 Python 依赖**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart.git\n    cd TensorKart\n    pip install -r requirements.txt\n    ```\n    > **提示**: 国内用户若下载依赖较慢，可指定清华源加速：\n    > `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n3.  **配置模拟器输入**\n    启动 `mupen64plus`，确保在输入插件设置中选择了 `sdl` 插件，并正确映射了你的手柄按键。\n\n## 基本使用流程\n\n### 1. 录制训练数据 (Recording Samples)\n\nAI 需要通过观察人类玩家的操作用来学习。\n\n1.  启动模拟器并加载《马里奥赛车 64》。\n2.  运行录制脚本：\n    ```bash\n    python record.py\n    ```\n3.  **调整窗口**: 确保模拟器窗口位于屏幕左上角，以便脚本能正确截取画面（参考项目截图）。\n4.  **验证输入**: 确认界面上的图表能随手柄操作实时响应。\n5.  **开始录制**: 按下录制键，手动完成几圈比赛。\n    *   *注意*: 录制时 GUI 会停止更新以保证性能。\n    *   *清理数据*: 录制结束后，检查生成的 `data.csv`，删除开头和结尾非游戏画面的行（如桌面截图）。\n\n### 2. 查看样本 (可选)\n\n你可以预览录制到的数据样本：\n```bash\npython utils.py viewer samples\u002Fluigi_raceway\n```\n*(将 `samples\u002Fluigi_raceway` 替换为你实际录制的样本目录名)*\n\n### 3. 准备训练数据\n\n将录制的原始样本转换为模型可训练的矩阵格式（X 为图像数组，y 为手柄操作数组）：\n```bash\npython utils.py prepare samples\u002F*\n```\n*注：如果你有多个赛道样本目录，`samples\u002F*` 会自动包含所有子目录。*\n\n### 4. 训练模型\n\n开始训练神经网络。根据数据量和硬件配置，过程可能持续约 1 小时或更久。程序会自动保存表现最佳的模型。\n```bash\npython train.py\n```\n\n### 5. 让 AI 试驾 (Play)\n\n使用训练好的模型进行自动驾驶：\n```bash\npython play.py\n```\n*   **工作原理**: 脚本会启动模拟器环境，截取屏幕画面输入模型，模型输出手柄指令控制赛车。\n*   **人工接管**: 在自动驾驶过程中，按住手柄的 **LB** 键即可暂时覆盖 AI 指令，由你手动控制。\n\n---\n**小贴士**: 即使只用少量赛道数据（如 Luigi Raceway, Kalimari Desert）训练，模型有时也能泛化到未见过的赛道（如 Royal Raceway）。想要提升效果，关键在于收集更多样化的驾驶数据。","一位游戏 AI 研究员希望在不修改《马里奥赛车 64》源代码的前提下，快速验证基于视觉的自动驾驶算法在经典游戏中的泛化能力。\n\n### 没有 TensorKart 时\n- **数据采集繁琐**：需要手动编写复杂的底层脚本来截取模拟器画面并同步记录手柄信号，极易出现音画不同步或数据丢失。\n- **模型训练门槛高**：缺乏现成的 TensorFlow 流水线，研究者需从零构建图像预处理、标签对齐及神经网络架构，耗时数周。\n- **泛化验证困难**：在新赛道（如皇家赛道）测试时，由于缺乏有效的迁移学习机制，模型往往直接失效，无法判断是数据不足还是架构问题。\n- **调试交互缺失**：难以实时干预 AI 决策，一旦模型失控撞墙，只能强制终止进程重启，无法进行“人机共驾”式的边界测试。\n\n### 使用 TensorKart 后\n- **一键录制样本**：直接运行 `record.py` 即可自动捕获模拟器窗口图像并与手柄操作对齐，生成标准的 CSV 训练数据，将数据准备时间从几天缩短至几小时。\n- **开箱即用的训练流**：利用内置的 `train.py` 和预置网络结构，仅需少量赛道（如路易吉赛道）的演示数据，即可在 GPU 加速下完成模型训练。\n- **强大的泛化表现**：仅在少数几条赛道训练后，TensorKart 训练的模型便能成功泛化至未见过的皇家赛道，证明了其视觉特征提取的有效性。\n- **灵活的人机覆盖**：通过 `play.py` 运行时，研究员可随时按下 LB 键接管手柄，在 AI 即将失误时人工纠正，实现了安全的影子模式测试。\n\nTensorKart 将原本复杂的非侵入式游戏 AI 开发流程标准化，让开发者能专注于算法策略而非底层数据工程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkevinhughes27_TensorKart_79073072.gif","kevinhughes27","Kevin Hughes","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkevinhughes27_a7f4e220.jpg","Senior SRE @aiven",null,"Ottawa Ontario","kevinhughes27@gmail.com","kevinhughes.ca","https:\u002F\u002Fgithub.com\u002Fkevinhughes27",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,1578,253,"2026-04-02T08:34:47","MIT",4,"Linux","需要 NVIDIA GPU 以使用 cuDNN 进行加速（具体型号和显存未说明），非绝对必需但推荐用于训练","未说明",{"notes":95,"python":96,"dependencies":97},"1. 必须安装 mupen64plus 模拟器（建议通过 apt-get 安装）。2. 需要连接游戏手柄，并确保模拟器使用 sdl 输入插件。3. 录制数据时需手动调整模拟器窗口位置至屏幕左上角以便捕获图像。4. 训练时间较长（约 1 小时），取决于数据量和系统配置。5. 运行时可通过按住控制器的 'LB' 按钮覆盖 AI 的操作。","未说明 (需安装 python 和 pip)",[98,99,100,101,102],"tensorflow","cudnn","mupen64plus","gym-mupen64plus","requirements.txt 中列出的其他库",[14],[98,105],"machine-learning","2026-03-27T02:49:30.150509","2026-04-20T04:05:07.752449",[109,114,119,124,128,133],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},43853,"运行 play.py 时出现'Unable to access the X Display, is $DISPLAY set properly?'错误怎么办？","这通常是因为 Xvfb（虚拟帧缓冲区）进程冲突或显示环境变量设置不当。首先检查是否有已运行的 Xvfb 进程：使用命令 `ps | grep -i xvfb`（注意 grep 默认区分大小写，建议加 -i 参数忽略大小写）。如果发现有残留进程，请将其终止。此外，确保在启动模拟器前正确设置了 DISPLAY 环境变量（例如 export DISPLAY=:1），或者在配置文件中正确启用\u002F禁用 USE_XVFB 选项以匹配你的环境（桌面环境通常需禁用，无头服务器需启用）。","https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart\u002Fissues\u002F54",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},43854,"如何在没有物理显示器的服务器环境下运行模拟器？","需要使用 Xvfb (X Virtual Framebuffer) 来模拟显示环境。在配置文件（如 config.yml）中确保设置 `USE_XVFB: true`。系统会自动执行类似 `Xvfb :1 -screen 0 640x480x24` 的命令启动虚拟显示，并将 DISPLAY 环境变量指向该虚拟屏幕。如果你是在本地桌面调试且能看到窗口，可能需要将此选项设为 `false` 并关闭 Xvfb 以避免冲突。","https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart\u002Fissues\u002F59",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},43855,"录制数据时生成的截图 PNG 文件一直是重复的初始画面，如何解决？","这个问题通常与输入机器人（input bot）的数据格式不匹配有关。旧版本的代码可能期望解析逗号分隔的字符串数据，而新版本的输入机器人已更新为使用 JSON 格式结构化数据，并支持更多控制器按钮。解决方法是更新项目代码以匹配最新的输入机器人格式，或者检查 `record.py` 中处理屏幕截图和输入数据的逻辑，确保其能正确解析当前的 JSON 格式输入流。","https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart\u002Fissues\u002F27",{"id":125,"question_zh":126,"answer_zh":127,"source_url":118},43856,"运行 play.py 时遇到 wxPython 相关的断言错误（AssertionError）怎么办？","这是一个已知问题，通常由 wxPython 依赖项引起。在相关子项目（gym-mupen64plus）的更新中，wxPython 已被移除作为依赖项。请确保你使用的是最新版本的 gym-mupen64plus 库。如果问题依旧，尝试卸载 wxPython 或检查代码中是否仍硬编码了 `wx.EmptyImage` 或 `wx.EmptyBitmap` 等调用，这些在新版本中可能已不再需要或被替代。",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},43857,"如何在 Windows 系统上解决'Unable to access the X Display'错误以运行 Linux 图形程序？","在 Windows 上运行需要 X11 显示的 Linux 程序（如通过 WSL 或虚拟机），需要安装 X Server 软件。推荐安装并运行 'Xming' 或 'VcXsrv'。启动 X Server 后，在 Linux 终端中设置 DISPLAY 环境变量指向 Windows 的 IP 地址（例如 `export DISPLAY=$(cat \u002Fetc\u002Fresolv.conf | grep nameserver | awk '{print $2}'):0`），然后即可运行相关程序。如果是在虚拟机中，确保网络模式设置为桥接或正确配置了端口转发。","https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart\u002Fissues\u002F63",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},43858,"TensorKart 项目是否支持与 OpenAI Universe 集成？","是的，该项目已经进行了更新以支持 Gym 环境。维护者已在 TensorKart 分支的 README 中说明 `play.py` 现在使用 gym 环境。用户可以将此功能提交为 Pull Request 进行集成。此外，相关文档已更新，包含了关于如何使用 XVFB 的详细说明，以便在无头环境中顺利运行。","https:\u002F\u002Fgithub.com\u002Fkevinhughes27\u002FTensorKart\u002Fissues\u002F12",[]]