[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ndrplz--self-driving-car":3,"tool-ndrplz--self-driving-car":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 真正成长为懂上",158594,2,"2026-04-16T23:34:05",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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":79,"owner_website":80,"owner_url":81,"languages":82,"stars":122,"forks":123,"last_commit_at":124,"license":79,"difficulty_score":125,"env_os":126,"env_gpu":127,"env_ram":128,"env_deps":129,"category_tags":137,"github_topics":138,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":154,"updated_at":155,"faqs":156,"releases":192},8252,"ndrplz\u002Fself-driving-car","self-driving-car","Udacity Self-Driving Car Engineer Nanodegree projects.","self-driving-car 是一个汇集了 Udacity 自动驾驶工程师纳米学位全部项目源代码的开源资源库。它旨在解决自动驾驶技术学习中“理论难以落地”的痛点，为学习者提供从感知、定位到控制、规划的全链路实战参考。\n\n该资源库涵盖了自动驾驶的核心技术领域，包含 11 个循序渐进的项目：从基础的车道线检测、交通标志识别，到进阶的行为克隆与车辆检测；从复杂的扩展卡尔曼滤波与无迹卡尔曼滤波定位算法，到被绑架车辆问题（全局定位）的解决；最后深入至 PID 控制、模型预测控制（MPC）及路径规划等决策控制环节。每个项目均配有完整的代码实现，部分还附带了直观的效果演示视频。\n\n这套代码非常适合人工智能开发者、自动驾驶领域的研究人员以及计算机相关专业的学生使用。对于希望系统掌握自动驾驶技术栈的初学者，它是极佳的入门教材；对于从业者，它则提供了经典的算法实现范本。其独特亮点在于完整复现了工业界主流的自动驾驶软件架构流程，让使用者能够清晰地理解各个模块如何协同工作，从而构建出一辆能够真正“思考”和“行动”的虚拟自动驾驶汽车。","# self-driving-car\n\nIn this repository I will share the **source code** of all the projects of **[Udacity Self-Driving Car Engineer Nanodegree](https:\u002F\u002Fwww.udacity.com\u002Fcourse\u002Fself-driving-car-engineer-nanodegree--nd013)**.\n\nHope this might be useful to someone! :-)\n\n## Overview\n\n### Projects\n\n\u003Ctable style=\"width:100%\">\n  \u003Ctr>\n    \u003Cth>\n      \u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KlQ-8iD1EFM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_732b4a14b9d8.gif\" alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P1: Basic Lane Finding\n           \u003Cbr>\u003Ca href=\".\u002Fproject_1_lane_finding_basic\" name=\"p1_code\">(code)\u003C\u002Fa>\n      \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_2_traffic_sign_classifier\u002FTraffic_Sign_Classifier.ipynb\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_672f6db09ee3.png\" alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P2: Traffic Signs\n           \u003Cbr>\u003Ca href=\".\u002Fproject_2_traffic_sign_classifier\" name=\"p2_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n       \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gXkMELjZmCc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c194f5944783.gif\" alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P3: Behavioral Cloning\n           \u003Cbr>\u003Ca href=\".\u002Fproject_3_behavioral_cloning\" name=\"p3_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g5BhDtoheE4\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_cccb23183639.gif\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P4: Adv. Lane Finding\n           \u003Cbr>\u003Ca href=\".\u002Fproject_4_advanced_lane_finding\" name=\"p4_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Cd7p5pnP3e0\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c7b5e4b5c6e8.gif\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P5: Vehicle Detection\n           \u003Cbr>\u003Ca href=\".\u002Fproject_5_vehicle_detection\" name=\"p5_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_6_extended_kalman_filter\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_b1badb5ba455.jpg\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P6: Ext. Kalman Filter\n           \u003Cbr>\u003Ca href=\".\u002Fproject_6_extended_kalman_filter\" name=\"p6_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_7_unscented_kalman_filter\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_f74d6489431d.jpg\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P7: Unsc. Kalman Filter\n           \u003Cbr>\u003Ca href=\".\u002Fproject_7_unscented_kalman_filter\" name=\"p7_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_8_kidnapped_vehicle\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_0b7abf59eb08.gif\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P8: Kidnapped Vehicle\n           \u003Cbr>\u003Ca href=\".\u002Fproject_8_kidnapped_vehicle\" name=\"p8_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=w9CETKuJcVM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_566fbcd2537b.gif\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P9: PID Controller\n           \u003Cbr>\u003Ca href=\".\u002Fproject_9_PID_control\" name=\"p9_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_10_MPC_control\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_a1d97f461ff3.gif\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P10: MPC Controller\n           \u003Cbr>\u003Ca href=\".\u002Fproject_10_MPC_control\" name=\"p10_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n   \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_11_path_planning\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c8ee9bbb4418.jpg\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P11: Path Planning\n           \u003Cbr>\u003Ca href=\".\u002Fproject_11_path_planning\" name=\"p11_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n          \u003Ca href=\".\u002Fproject_12_road_segmentation\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_9c40ec74cc60.jpg\"                         alt=\"Overview\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P12: Road Segmentation\n           \u003Cbr>\u003Ca href=\".\u002Fproject_12_road_segmentation\" name=\"p12_code\">(code)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Capstone\n- [**Traffic light classifier:**](https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Ftree\u002Fmaster\u002Fcapstone_traffic_light_classifier) Simple traffic light classifier to be integrated in the capstone project.\n![simulator_dataset](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_07dffc67b00c.png)\n\n--- \n## Table of Contents\n\n#### [P1 - Detecting Lane Lines (basic)](project_1_lane_finding_basic)\n - **Summary:** Detected highway lane lines on a video stream. Used OpencV image analysis techniques to identify lines, including Hough Transforms and Canny edge detection.\n - **Keywords:** Computer Vision\n \n#### [P2 - Traffic Sign Classification](project_2_traffic_sign_classifier)\n - **Summary:** Built and trained a deep neural network to classify traffic signs, using TensorFlow. Experimented with different network architectures. Performed image pre-processing and validation to guard against overfitting.\n - **Keywords:** Deep Learning, TensorFlow, Computer Vision\n \n#### [P3 - Behavioral Cloning](project_3_behavioral_cloning)\n - **Summary:** Built and trained a convolutional neural network for end-to-end driving in a simulator, using TensorFlow and Keras. Used optimization techniques such as regularization and dropout to generalize the network for driving on multiple tracks.\n - **Keywords:** Deep Learning, Keras, Convolutional Neural Networks\n\n#### [P4 - Advanced Lane Finding](project_4_advanced_lane_finding)\n - **Summary:** Built an advanced lane-finding algorithm using distortion correction, image rectification, color transforms, and gradient thresholding. Identified lane curvature and vehicle displacement. Overcame environmental challenges such as shadows and pavement changes.\n - **Keywords:** Computer Vision, OpenCV\n \n#### [P5 - Vehicle Detection and Tracking](project_5_vehicle_detection)\n - **Summary:** Created a vehicle detection and tracking pipeline with OpenCV, histogram of oriented gradients (HOG), and support vector machines (SVM). Implemented the same pipeline using a deep network to perform detection. Optimized and evaluated the model on video data from a automotive camera taken during highway driving.\n - **Keywords:** Computer Vision, Deep Learning, OpenCV\n \n #### [P6 - Extended Kalman Filter](project_6_extended_kalman_filter)\n - **Summary:** Implement the extended Kalman filter in C++. Simulated lidar and radar measurements are used to detect a bicycle that travels around your vehicle. Kalman filter, lidar measurements and radar measurements are used to track the bicycle's position and velocity.\n - **Keywords:** C++, Kalman Filter\n\n #### [P7 - Unscented Kalman Filter](project_7_unscented_kalman_filter)\n - **Summary:**  Utilize an Unscented Kalman Filter to estimate the state of a moving object of interest with noisy lidar and radar measurements. Kalman filter, lidar measurements and radar measurements are used to track the bicycle's position and velocity.\n - **Keywords:** C++, Kalman Filter\n \n  #### [P8 - Kidnapped Vehicle](project_8_kidnapped_vehicle)\n - **Summary:** Your robot has been kidnapped and transported to a new location! Luckily it has a map of this location, a (noisy) GPS estimate of its initial location, and lots of (noisy) sensor and control data. In this project you will implement a 2 dimensional particle filter in C++. Your particle filter will be given a map and some initial localization information (analogous to what a GPS would provide). At each time step your filter will also get observation and control data.\n - **Keywords:** C++, Particle Filter\n \n #### [P9 - PID Control](project_9_PID_control)\n - **Summary:** Implement a PID controller for keeping the car on track by appropriately adjusting the steering angle.\n - **Keywords:** C++, PID Controller\n \n#### [P10 - MPC Control](project_10_MPC_control)\n- **Summary:** Implement an MPC controller for keeping the car on track by appropriately adjusting the steering angle. Differently from previously implemented PID controller, MPC controller has the ability to anticipate future events and can take control actions accordingly. Indeed, future time steps are taking into account while optimizing current time slot.\n- **Keywords:** C++, MPC Controller\n\n#### [P11 - Path Planning](project_11_path_planning)\n- **Summary:** The goal in this project is to build a path planner that is able to create smooth, safe trajectories for the car to follow. The highway track has other vehicles, all going different speeds, but approximately obeying the 50 MPH speed limit. The car transmits its location, along with its sensor fusion data, which estimates the location of all the vehicles on the same side of the road.\n- **Keywords:** C++, Path Planning\n\n#### [P12 - Road Segmentation](project_12_road_segmentation)\n- **Summary:** Implement the road segmentation using a fully-convolutional network.\n- **Keywords:** Python, TensorFlow, Semantic Segmentation\n\n\n \n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_712b7a92ebbe.jpeg\" width=\"400\">\n\u003C\u002Fp>\n","# 自动驾驶汽车\n\n在这个仓库中，我将分享 **[Udacity 自动驾驶汽车工程师纳米学位](https:\u002F\u002Fwww.udacity.com\u002Fcourse\u002Fself-driving-car-engineer-nanodegree--nd013)** 所有项目的 **源代码**。\n\n希望对大家有所帮助！:-)\n\n## 概述\n\n### 项目\n\n\u003Ctable style=\"width:100%\">\n  \u003Ctr>\n    \u003Cth>\n      \u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KlQ-8iD1EFM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_732b4a14b9d8.gif\" alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P1：基础车道线检测\n           \u003Cbr>\u003Ca href=\".\u002Fproject_1_lane_finding_basic\" name=\"p1_code\">(代码)\u003C\u002Fa>\n      \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_2_traffic_sign_classifier\u002FTraffic_Sign_Classifier.ipynb\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_672f6db09ee3.png\" alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P2：交通标志识别\n           \u003Cbr>\u003Ca href=\".\u002Fproject_2_traffic_sign_classifier\" name=\"p2_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n       \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gXkMELjZmCc\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c194f5944783.gif\" alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P3：行为克隆\n           \u003Cbr>\u003Ca href=\".\u002Fproject_3_behavioral_cloning\" name=\"p3_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g5BhDtoheE4\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_cccb23183639.gif\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P4：高级车道线检测\n           \u003Cbr>\u003Ca href=\".\u002Fproject_4_advanced_lane_finding\" name=\"p4_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Cd7p5pnP3e0\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c7b5e4b5c6e8.gif\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P5：车辆检测\n           \u003Cbr>\u003Ca href=\".\u002Fproject_5_vehicle_detection\" name=\"p5_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n        \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_6_extended_kalman_filter\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_b1badb5ba455.jpg\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P6：扩展卡尔曼滤波器\n           \u003Cbr>\u003Ca href=\".\u002Fproject_6_extended_kalman_filter\" name=\"p6_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_7_unscented_kalman_filter\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_f74d6489431d.jpg\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P7：无迹卡尔曼滤波器\n           \u003Cbr>\u003Ca href=\".\u002Fproject_7_unscented_kalman_filter\" name=\"p7_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_8_kidnapped_vehicle\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_0b7abf59eb08.gif\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P8：被劫持的车辆定位\n           \u003Cbr>\u003Ca href=\".\u002Fproject_8_kidnapped_vehicle\" name=\"p8_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=w9CETKuJcVM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_566fbcd2537b.gif\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P9：PID 控制器\n           \u003Cbr>\u003Ca href=\".\u002Fproject_9_PID_control\" name=\"p9_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_10_MPC_control\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_a1d97f461ff3.gif\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P10：模型预测控制器\n           \u003Cbr>\u003Ca href=\".\u002Fproject_10_MPC_control\" name=\"p10_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n   \u003Cth>\u003Cp align=\"center\">\n           \u003Ca href=\".\u002Fproject_11_path_planning\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_c8ee9bbb4418.jpg\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P11：路径规划\n           \u003Cbr>\u003Ca href=\".\u002Fproject_11_path_planning\" name=\"p11_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n    \u003Cth>\u003Cp align=\"center\">\n          \u003Ca href=\".\u002Fproject_12_road_segmentation\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_9c40ec74cc60.jpg\"                         alt=\"概述\" width=\"60%\" height=\"60%\">\u003C\u002Fa>\n           \u003Cbr>P12：道路分割\n           \u003Cbr>\u003Ca href=\".\u002Fproject_12_road_segmentation\" name=\"p12_code\">(代码)\u003C\u002Fa>\n        \u003C\u002Fp>\n    \u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### 综合项目\n- [**交通信号灯分类器：**](https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Ftree\u002Fmaster\u002Fcapstone_traffic_light_classifier) 一个简单的交通信号灯分类器，用于集成到综合项目中。\n![模拟器数据集](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_07dffc67b00c.png)\n\n---\n\n## 目录\n\n#### [P1 - 检测车道线（基础）](project_1_lane_finding_basic)\n - **摘要:** 在视频流中检测高速公路的车道线。使用 OpenCV 图像分析技术识别线条，包括霍夫变换和 Canny 边缘检测。\n - **关键词:** 计算机视觉\n\n#### [P2 - 交通标志分类](project_2_traffic_sign_classifier)\n - **摘要:** 使用 TensorFlow 构建并训练了一个深度神经网络来分类交通标志。尝试了不同的网络架构，并进行了图像预处理和验证，以防止过拟合。\n - **关键词:** 深度学习、TensorFlow、计算机视觉\n\n#### [P3 - 行为克隆](project_3_behavioral_cloning)\n - **摘要:** 使用 TensorFlow 和 Keras，在模拟器中构建并训练了一个端到端驾驶的卷积神经网络。采用正则化和 Dropout 等优化技术，使网络能够泛化到多条赛道上的驾驶任务。\n - **关键词:** 深度学习、Keras、卷积神经网络\n\n#### [P4 - 高级车道线检测](project_4_advanced_lane_finding)\n - **摘要:** 利用畸变校正、图像矫正、颜色变换和梯度阈值等技术，构建了一套先进的车道线检测算法。识别了车道曲率和车辆位移，并克服了阴影和路面变化等环境挑战。\n - **关键词:** 计算机视觉、OpenCV\n\n#### [P5 - 车辆检测与跟踪](project_5_vehicle_detection)\n - **摘要:** 使用 OpenCV、方向梯度直方图（HOG）和支持向量机（SVM）创建了一个车辆检测与跟踪流程。同时，还实现了基于深度网络的检测流程。针对高速公路上汽车摄像头拍摄的视频数据，对模型进行了优化和评估。\n - **关键词:** 计算机视觉、深度学习、OpenCV\n\n #### [P6 - 扩展卡尔曼滤波](project_6_extended_kalman_filter)\n - **摘要:** 用 C++ 实现扩展卡尔曼滤波。通过模拟激光雷达和雷达测量数据，检测围绕车辆行驶的自行车，并利用卡尔曼滤波、激光雷达和雷达测量数据来跟踪自行车的位置和速度。\n - **关键词:** C++、卡尔曼滤波\n\n #### [P7 - 无迹卡尔曼滤波](project_7_unscented_kalman_filter)\n - **摘要:** 使用无迹卡尔曼滤波，结合带有噪声的激光雷达和雷达测量数据，估计目标移动物体的状态。通过卡尔曼滤波、激光雷达和雷达测量数据，跟踪自行车的位置和速度。\n - **关键词:** C++、卡尔曼滤波\n\n  #### [P8 - 被劫持的车辆](project_8_kidnapped_vehicle)\n - **摘要:** 你的机器人被劫持并转移到了一个新地点！幸运的是，它拥有一张该地点的地图、一个初始位置的（带噪声的）GPS 估计，以及大量的（带噪声的）传感器和控制数据。在这个项目中，你将用 C++ 实现一个二维粒子滤波器。粒子滤波器会接收到地图和一些初始定位信息（类似于 GPS 提供的信息）。在每个时间步，滤波器还会接收观测和控制数据。\n - **关键词:** C++、粒子滤波器\n\n #### [P9 - PID 控制](project_9_PID_control)\n - **摘要:** 实现一个 PID 控制器，通过适当调整转向角度来使车辆保持在车道内。\n - **关键词:** C++、PID 控制器\n\n#### [P10 - MPC 控制](project_10_MPC_control)\n- **摘要:** 实现一个 MPC 控制器，通过适当调整转向角度来使车辆保持在车道内。与之前实现的 PID 控制器不同，MPC 控制器能够预测未来事件并据此采取控制措施。实际上，在优化当前时间步时，会考虑未来的时间步。\n- **关键词:** C++、MPC 控制器\n\n#### [P11 - 路径规划](project_11_path_planning)\n- **摘要:** 本项目的目的是构建一个路径规划器，能够为车辆生成平滑且安全的行驶轨迹。高速公路上有其他车辆，它们的速度各不相同，但大致遵守每小时 50 英里的限速规定。车辆会传输其位置信息，以及传感器融合数据，这些数据可以估计同侧道路上所有车辆的位置。\n- **关键词:** C++、路径规划\n\n#### [P12 - 道路分割](project_12_road_segmentation)\n- **摘要:** 使用全卷积网络实现道路分割。\n- **关键词:** Python、TensorFlow、语义分割\n\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_readme_712b7a92ebbe.jpeg\" width=\"400\">\n\u003C\u002Fp>","# self-driving-car 快速上手指南\n\n本仓库汇集了 Udacity 自动驾驶工程师纳米学位（Self-Driving Car Engineer Nanodegree）的 12 个核心项目源码，涵盖计算机视觉、深度学习、卡尔曼滤波、路径规划及控制算法等领域。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu 16.04\u002F18.04), macOS, 或 Windows (需 WSL)\n- **Python 版本**: Python 3.5+ (大部分项目基于 Python，P6-P11 涉及 C++)\n- **C++ 编译器**: g++ (用于 P6-P11 项目)\n- **内存**: 建议 8GB 以上 (深度学习训练需要)\n\n### 前置依赖\n主要依赖包括 `OpenCV`, `TensorFlow`, `Keras`, `NumPy`, `SciPy` 等。建议使用 `conda` 或 `pip` 管理环境。\n\n**国内加速建议**：\n- pip 源：`https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n- conda 源：`https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F`\n\n## 安装步骤\n\n### 1. 克隆仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car.git\ncd self-driving-car\n```\n\n### 2. 创建 Python 虚拟环境 (推荐)\n使用 conda 创建隔离环境并安装基础依赖：\n```bash\nconda create -n sdc python=3.6\nconda activate sdc\n```\n\n### 3. 安装通用依赖\n针对大多数 Python 项目 (P1-P5, P12)，安装核心库：\n```bash\n# 使用清华源加速安装\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple numpy scipy opencv-python tensorflow keras matplotlib scikit-learn h5py\n```\n\n### 4. 特定项目依赖说明\n- **P1-P5, P12 (Python 项目)**: 上述通用依赖通常已足够。若遇到缺失模块，请进入对应项目文件夹查看 `requirements.txt` (如有) 或根据报错补充安装。\n- **P6-P11 (C++ 项目)**: \n    - 确保安装了 `g++` 和 `cmake`。\n    - 部分项目依赖 `uWebSockets`，需参考各子项目目录下的具体编译说明进行构建。\n    - 示例 (Ubuntu 安装构建工具):\n      ```bash\n      sudo apt-get update\n      sudo apt-get install g++ cmake make libuv1-dev libssl-dev zlib1g-dev\n      ```\n\n## 基本使用\n\n本仓库包含 12 个独立项目，每个项目位于单独的子目录中。以下以 **P1: 基础车道线检测 (Basic Lane Finding)** 为例演示运行流程。\n\n### 1. 进入项目目录\n```bash\ncd project_1_lane_finding_basic\n```\n\n### 2. 运行代码\n大多数项目提供 Jupyter Notebook (`.ipynb`) 或 Python 脚本。\n- **Jupyter Notebook 方式** (推荐，便于观察中间结果):\n  ```bash\n  jupyter notebook Lane_Finding.ipynb\n  ```\n  *注：文件名可能因具体实现略有不同，请在目录下确认 .ipynb 文件名称。*\n\n- **直接运行脚本方式** (如果提供了 `.py` 文件):\n  ```bash\n  python lane_detection.py\n  ```\n\n### 3. 其他项目运行指引\n- **深度学习类 (P2, P3, P12)**: 打开对应的 `.ipynb` 文件，按顺序执行单元格进行数据预处理、模型训练和验证。\n- **仿真器交互类 (P3, P9, P10, P11)**: \n  1. 下载并运行 Udacity 官方模拟器。\n  2. 运行本地 Python\u002FC++ 脚本连接模拟器端口。\n  3. 示例 (P3 行为克隆):\n     ```bash\n     cd project_3_behavioral_cloning\n     python drive.py model.h5\n     ```\n- **C++ 项目 (P6-P11)**: 需进入对应目录，按照该目录下的 `build.sh` 或 `README` 进行编译生成可执行文件后运行。\n  ```bash\n  # 示例：进入扩展卡尔曼滤波项目\n  cd project_6_extended_kalman_filter\n  mkdir build && cd build\n  cmake .. && make\n  .\u002FExtendedKalmanFilter\n  ```\n\n> **提示**: 每个项目文件夹内均包含详细的实现逻辑和测试数据，请直接查阅对应子目录下的代码文件获取更深入的实验细节。","某自动驾驶初创团队的算法工程师正在为原型车开发基础感知与控制模块，急需验证车道线检测、交通标志识别及车辆控制策略的可行性。\n\n### 没有 self-driving-car 时\n- 工程师需从零复现 Udacity 课程中的经典算法，花费数周时间调试车道线拟合与透视变换参数，极易陷入数学推导细节而延误进度。\n- 缺乏标准的交通标志分类数据集预处理流程和成熟的卷积神经网络架构参考，导致模型训练收敛慢且准确率难以达标。\n- 在实现行为克隆和路径规划时，由于缺少完整的仿真环境交互代码，团队难以快速验证控制策略在动态场景下的稳定性。\n- 卡尔曼滤波等状态估计算法理论深奥，若无现成的扩展卡尔曼滤波（EKF）和无迹卡尔曼滤波（UKF）实现案例，定位模块的开发风险极高。\n\n### 使用 self-driving-car 后\n- 直接复用项目中经过验证的车道线查找代码（P1\u002FP4），仅需半天即可完成摄像头标定与车道拟合，快速建立起可靠的视觉感知基线。\n- 借鉴交通标志分类器（P2）的数据增强技巧与网络结构，迅速构建出高精度的识别模型，大幅缩短从数据清洗到模型部署的周期。\n- 利用行为克隆（P3）和路径规划（P11）的完整源码作为基准，团队能在仿真器中立即测试并迭代转向与速度控制逻辑，显著降低实车测试风险。\n- 参考扩展与无迹卡尔曼滤波（P6\u002FP7）及 PID\u002FMPC 控制器（P9\u002FP10）的实现细节，快速解决了多传感器融合定位与平滑控制的难题。\n\nself-driving-car 将原本需要数月摸索的学术算法转化为可立即运行的工程代码，帮助团队以最低成本完成了自动驾驶核心模块的原型验证。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fndrplz_self-driving-car_732b4a14.gif","ndrplz","Andrea Palazzi","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fndrplz_068714e2.jpg","Head of AI @ Nomitri  - Computer Vision PhD","Nomitri - Perception AI for Mobile","Berlin","ndrplz@gmail.com",null,"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fandrea-palazzi\u002F","https:\u002F\u002Fgithub.com\u002Fndrplz",[83,87,91,95,99,103,107,111,115,118],{"name":84,"color":85,"percentage":86},"C++","#f34b7d",84.3,{"name":88,"color":89,"percentage":90},"Fortran","#4d41b1",8.6,{"name":92,"color":93,"percentage":94},"Jupyter Notebook","#DA5B0B",1.9,{"name":96,"color":97,"percentage":98},"C","#555555",1.8,{"name":100,"color":101,"percentage":102},"CMake","#DA3434",1.5,{"name":104,"color":105,"percentage":106},"Cuda","#3A4E3A",0.9,{"name":108,"color":109,"percentage":110},"Python","#3572A5",0.7,{"name":112,"color":113,"percentage":114},"Shell","#89e051",0.1,{"name":116,"color":117,"percentage":114},"JavaScript","#f1e05a",{"name":119,"color":120,"percentage":121},"Makefile","#427819",0,2907,1396,"2026-04-12T09:26:01",4,"","未说明（部分深度学习项目如 P2、P3、P5、P12 通常建议配备 NVIDIA GPU 以加速 TensorFlow\u002FKeras 训练，但文中未明确指定型号或显存要求）","未说明",{"notes":130,"python":131,"dependencies":132},"该项目是 Udacity 自动驾驶工程师纳米学位的代码合集，包含 12 个子项目和 1 个顶点项目。其中 P1-P5 及 P12 主要使用 Python (OpenCV, TensorFlow, Keras) 进行计算机视觉和深度学习任务；P6-P11 主要使用 C++ 实现卡尔曼滤波、粒子滤波、PID\u002FMPC 控制及路径规划。README 中未提供具体的安装指南或版本锁定文件，运行不同子项目需参考各自文件夹内的具体说明。","未说明（根据使用的 TensorFlow、Keras 及 C++ 项目推断，通常需要 Python 3.x 环境）",[133,134,135,136],"TensorFlow","Keras","OpenCV","C++ (用于 P6-P11 项目)",[15,14],[64,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],"udacity-self-driving-car","deep-learning","deep-neural-networks","kalman-filter","lecture-material","particle-filter","lane-finding","computer-vision","vehicle-detection","convolutional-neural-networks","detect-lane-lines","lane-detection","pid-control","traffic-sign-classification","tensorflow","2026-03-27T02:49:30.150509","2026-04-17T08:25:51.726324",[157,162,167,172,177,182,187],{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},36948,"如何运行项目 3（行为克隆）并使用自己的图像和控制数据？训练和推理步骤分别在哪里？","你可以通过 Udacity 的模拟器记录数据。如果将 CSV 文件格式化为与仓库中 driving_log.csv 类似的格式，只需少量修改即可运行代码。\n\n1. **训练步骤**：代码位于 `project_3_behavioral_cloning\u002Fmodel.py` (第 66-89 行)。\n2. **推理步骤**（即在模拟器中驾驶）：代码位于 `project_3_behavioral_cloning\u002Fdrive.py`。\n3. **替换数据**：训练代码使用生成器提供训练样本，具体实现在 `load_data.py` (第 60-136 行)。目前该生成器仅返回 *(图像，转向角)* 对。如果你有油门数据，可能需要修改此生成器逻辑。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F18",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},36949,"运行项目时遇到 TensorFlow 版本相关的错误怎么办？","这很可能是 TensorFlow 版本不兼容导致的。原作者在 Udacity 课程中使用的是 TensorFlow 0.17 左右版本，而当前发布版可能是 1.8 或更高，其间发生了许多变化。如果遇到此类错误，请尝试检查并调整你的 TensorFlow 版本以匹配项目原始开发环境，或者根据新版 API 调整代码。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F5",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},36950,"在数据增强可视化代码中，为什么显示的图像与标签不匹配？","这是一个可视化中的小 bug。在对数据进行预处理（标准化）后，`X_train_norm` 的数值很小不适合直接显示，因此代码试图显示预处理前的 `X_train[0]`。但由于之前进行了 `train_test_split` 洗牌操作，`X_train` 的索引顺序已改变，导致图像与新的 `y_train` 标签不再对应。\n\n这对模型训练没有影响。如果你希望正确可视化图像，可以将代码中的 `img_rgb = X_train[0]` 替换为 `img_rgb = X_train_norm[0]`（注意此时图像是标准化后的，可能看起来较暗或对比度低），或者在洗牌前保存原始索引进行映射。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F4",{"id":173,"question_zh":174,"answer_zh":175,"source_url":176},36951,"找不到 `computer_vision_utils.stitching` 模块怎么办？","该模块位于一个独立的外部仓库中：`https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fcomputer_vision_utils`。你需要克隆或安装该仓库才能使用 `stitch_together` 函数。原作者曾计划将其移至主仓库以避免混淆，但在当前版本中仍需从外部引用。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F16",{"id":178,"question_zh":179,"answer_zh":180,"source_url":181},36952,"运行项目 12（道路分割）时报错找不到 VGG 预训练模型文件（SavedModel file does not exist）如何解决？","错误表明 `data` 目录下缺少预训练的 VGG 模型权重。你可以使用 `helper.py` 文件中提供的 `maybe_download_pretrained_vgg` 函数自动下载预训练模型。确保在执行主脚本前运行该下载函数，或者手动将模型文件放置在报错提示的路径下（例如 `project_12_road_segmentation\u002Fdata\u002Fvgg\u002F`）。此外，注意 `main_27.py` 适用于 Python 2.7，而其他辅助文件可能需要 Python 3。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F2",{"id":183,"question_zh":184,"answer_zh":185,"source_url":186},36953,"在高级车道检测项目中遇到 \"TypeError: 'NoneType' object is not subscriptable\" 错误怎么办？","该错误表示代码试图对一个 `None` 对象进行下标访问（如 `[0]`, `[1]`）。这通常发生在车道线拟合失败，导致 `left_fit` 或 `right_fit` 变量为 `None` 时。\n\n解决方法：\n1. 检查 `line_lt.average_fit` 或 `line_rt.last_fit_pixel` 为何为空。\n2. 在代码中添加断点或打印语句，调试确定是哪一帧图像导致车道线检测失败。\n3. 增加异常处理逻辑，当拟合结果为 `None` 时，沿用上一帧的有效拟合参数或跳过该帧绘制，防止程序崩溃。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F28",{"id":188,"question_zh":189,"answer_zh":190,"source_url":191},36954,"项目 12 有可以直接使用的预训练模型吗？","作者没有提供该项目直接的预训练模型。不过，你可以很容易地在网上找到语义分割的预训练模型。例如，作者曾使用过 Mapillary 的 `inplace_abn` (PyTorch 版本) 或其他类似的语义分割模型作为替代方案。建议搜索 \"semantic segmentation pretrained models\" 获取适合你框架的模型。","https:\u002F\u002Fgithub.com\u002Fndrplz\u002Fself-driving-car\u002Fissues\u002F21",[]]