[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-yuxitong--TensorFlowAndroidDemo":3,"tool-yuxitong--TensorFlowAndroidDemo":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":77,"owner_website":77,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":77,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":102,"github_topics":103,"view_count":119,"oss_zip_url":77,"oss_zip_packed_at":77,"status":16,"created_at":120,"updated_at":121,"faqs":122,"releases":173},128,"yuxitong\u002FTensorFlowAndroidDemo","TensorFlowAndroidDemo","TensorFlow android demo 车道线 车辆 人脸 动作 骨架 识别 检测 抽烟 打电话 闭眼 睁眼","TensorFlowAndroidDemo 是一个面向 Android 平台的开源演示项目，旨在帮助开发者快速将 TensorFlow 模型集成到移动应用中。它集成了多种实用的视觉识别功能，包括车道线检测、前方车辆识别、人脸状态判断（如睁眼\u002F闭眼）、行为识别（如抽烟、打电话）以及人体骨架关键点检测等。项目基于 Camera2 API 实现实时视频流处理，并提供了可直接安装体验的 APK。\n\n该项目特别适合希望在移动端部署 TensorFlow 模型但缺乏集成经验的 Android 开发者或计算机视觉初学者。通过封装好的示例代码和预训练模型，用户可以绕过复杂的环境配置与模型转换过程，快速验证想法或构建原型。\n\n技术上，TensorFlowAndroidDemo 整合了来自 tf-pose-estimation 等项目的先进算法，并实现了从原始输出到可视化骨架连线的完整后处理逻辑，支持 COCO 关键点标准。虽然当前因依赖 CPU 运算可能存在性能限制，但在中高端设备上仍能实现实时效果，为移动端 AI 应用提供了有价值的参考实现。","﻿本Demo 是为了在android上跑TensorFlow模型的\n方便那些想把TensorFlow官网上的demo集成到自己项目里却又找不到头绪的人使用\n\n正所谓前人栽树后人乘凉\n\n[https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow)\n\n[https:\u002F\u002Fgithub.com\u002Fildoonet\u002Ftf-pose-estimation](https:\u002F\u002Fgithub.com\u002Fildoonet\u002Ftf-pose-estimation)\n\nDenis Tome, Chris Russell, Lourdes Agapito提出的Convolutional 3D Pose Estimation from a Single Image论文\n\n在此特别感谢上述作者，喜欢原作的可以去使用原项目。同时欢迎大家下载体验本项目，如果使用过程中遇到什么问题，欢迎反馈。\n\n如果需要自动打标请使用：[https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FAutoMarKingTensorFlowPython](https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FAutoMarKingTensorFlowPython)\n\n另外特别感谢\n\n\t[zyxcambridge](https:\u002F\u002Fgithub.com\u002Fzyxcambridge) 童鞋\n\t[manoshape](https:\u002F\u002Fgithub.com\u002Fmanoshape) 童鞋\n\t[seriouslyhao](https:\u002F\u002Fgithub.com\u002Fseriouslyhao) 童鞋\n        \t本项目模型由zyxcambridge、manoshape、seriouslyhao提供\n\n本项目使用的是Camera2的api\n\n过段时间我还会陆续公布一些更好玩的模型\n\n如果想要体验本项目，请直接下载apk：[点击下载](https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fraw\u002Fmaster\u002Fapk\u002Fapp-debug.apk)\n\n目前本Demo模型能识别出 抽烟 打电话 闭眼 睁眼\n\nTensorFlowObjectDetectionAPIModel 为检测规则画框\n\nTensorFlowImageClassifier2   为车道检测之后不规则绘制（因时间仓促 还没有进行绘图优化）\n识别道路的测试方法请自行百度寻找图片或者视频都可以\n\nTensorFlowImageClassifier3  是用来识别人体骨架的  这个模型是有特定输入和特定输出的  需要经过3层转换 才能使用\n接下来准备上线道路障碍物识别...\n最新版骨架识别目前支持区分各个身体部位具体情况请看注释\n\nCamera2BasicFragment4\n这是一个用检测来识别车道和前车\n里面增加了点逻辑来判断是否是车道偏离或者前车过近\n具体做法是\n如果检测出线则判断斜率k = (y2-y1)\u002F(x2-x1)然后设定一个固定斜率来判断是否是车道偏离\n如果是检测出前面的车辆中心点在横屏8分之2到8分之6的范围内则判断中心点居上距离大于一定范围则算前车过近\n         或者如果车的高度大于一定级别则算前车过近\n         \n另外： 有人私下问我本项目在他们的手机上跑起来卡顿严重\n       这是算力的问题，目前tensorFlow在移动设备上貌似不支持GPU，而CPU的浮点运算速度比较慢导致的\n       推荐使用华为P10 或者 骁龙845 635之类的U来跑跑看 \n       一般P10的话 1能一秒4帧  2能1秒8帧   3能一秒1帧  4能一秒6帧左右\n       当然以上数据仅供产考\n         \n\n\n目前人体骨架识别有了新突破：具体算法已经有了，但是暂时没工夫写。过段时间在上线。（把所有点连接成一个一个的人体）\n\n具体算法如下：\n \nW*H*19每一层的解释\n\n             Nose = 0\n             Neck = 1\n             RShoulder = 2\n             RElbow = 3\n             RWrist = 4\n             LShoulder = 5\n             LElbow = 6\n             LWrist = 7\n             RHip = 8\n             RKnee = 9\n             RAnkle = 10\n             LHip = 11\n             LKnee = 12\n             LAnkle = 13\n             REye = 14\n             LEye = 15\n             REar = 16\n             LEar = 17\n             Background = 18\n             \n需要连线的身体部位，共19个连线\n\n        CocoPairs = [\n            (1, 2), (1, 5), (2, 3), (3, 4), (5, 6), (6, 7), (1, 8), (8, 9), (9, 10), (1, 11),\n            (11, 12), (12, 13), (1, 0), (0, 14), (14, 16), (0, 15), (15, 17), (2, 16), (5, 17)\n        ]   # = 19\n             \n对应每一个连线到 W*H*38 里找到两页取两组10个点\n\n            CocoPairsNetwork = [\n                (12, 13), (20, 21), (14, 15), (16, 17), (22, 23), (24, 25), (0, 1), (2, 3), (4, 5),\n                (6, 7), (8, 9), (10, 11), (28, 29), (30, 31), (34, 35), (32, 33), (36, 37), (18, 19), (26, 27)\n             ]  # = 19\n从头开始按照顺序连接 到脖子 到右臂等等\n\n        求出Dx = x1 - x2\n            Dy = y1 - y2\n            \n计算两点间距离公式\n\n        k = 根号下（Dx平方-Dy平方）\n\n如果两点间距离小于0.0001 则分数为0 个数为0\n\n计算    Vx = Dx \u002F k\n        Vy = Dy \u002F k\n\n连线的过程中每个线均分10个点  分出2个数组 分别是X数组 Y数组 每个数组都是10个数字\n均分公式如下\n\n        for(i = x1; i \u003C= x2; i += dx\u002F10)\n                x[n] = i;\n        Y同理\n        \n计算每个连线的分数：\n        CocoPairs 与 CocoPairsNetwork 一一对应\n        每一组对应的CocoPairs连线方式可以在CocoPairsNetwork里取出2层\n        （如：1和2之间连线 可以在12层和13层里分别取出10个均等值）\n        并把均等值存到2个新的长度为10的组里\n        Px[10] 和 Py[10]\n        \n建立一个分数数组 = Px[10]乘Vx与Py[10]乘Vy对应相加\n        \n        分数>0.2的个数乘 >0.2的分数相加 得到最终分数，并且保留有多少个>0.2的\n        之前两点间距离小于0.0001分数为0的个数也为0\n        \n如果个数小于5或者分数小于等于0则这个连线不要\n\n从分数最高的开始遍历所有要的连线放到最终连线的集合（放的时候任何与这个连线集合的点重复都直接舍弃连线）\n\n重复以上所有算法直到没点可连\n\n然后拿出所有连线的集合 找出相同点的连线连接 就出现了人体骨架\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_5450e7de95e9.gif)  ![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_f7a8d0cea753.gif)  ![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_0b8d9b64020e.gif)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_ee1acd71ed16.gif)","本 Demo 是为了在 Android 上运行 TensorFlow 模型而制作的，  \n方便那些想将 TensorFlow 官网上的 Demo 集成到自己项目中却无从下手的人使用。\n\n正所谓前人栽树，后人乘凉。\n\n[https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow)\n\n[https:\u002F\u002Fgithub.com\u002Fildoonet\u002Ftf-pose-estimation](https:\u002F\u002Fgithub.com\u002Fildoonet\u002Ftf-pose-estimation)\n\n基于 Denis Tome、Chris Russell 和 Lourdes Agapito 提出的论文《Convolutional 3D Pose Estimation from a Single Image》（基于单张图像的卷积三维姿态估计）。\n\n在此特别感谢上述作者，喜欢原作的朋友可以去使用原项目。同时也欢迎大家下载体验本项目，如果在使用过程中遇到任何问题，欢迎反馈。\n\n如果需要自动打标功能，请使用：[https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FAutoMarKingTensorFlowPython](https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FAutoMarKingTensorFlowPython)\n\n另外特别感谢：\n\n\t[zyxcambridge](https:\u002F\u002Fgithub.com\u002Fzyxcambridge) 童鞋  \n\t[manoshape](https:\u002F\u002Fgithub.com\u002Fmanoshape) 童鞋  \n\t[seriouslyhao](https:\u002F\u002Fgithub.com\u002Fseriouslyhao) 童鞋  \n\n本项目所用模型由 zyxcambridge、manoshape、seriouslyhao 提供。\n\n本项目使用的是 Camera2 API。\n\n过段时间我还会陆续公布一些更好玩的模型。\n\n如果想要体验本项目，请直接下载 APK：[点击下载](https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fraw\u002Fmaster\u002Fapk\u002Fapp-debug.apk)\n\n目前本 Demo 模型能够识别以下动作：抽烟、打电话、闭眼、睁眼。\n\n`TensorFlowObjectDetectionAPIModel` 用于检测并绘制规则框。\n\n`TensorFlowImageClassifier2` 用于车道检测后的不规则绘制（因时间仓促，尚未进行绘图优化）。  \n识别道路的测试方法可自行百度，使用图片或视频均可。\n\n`TensorFlowImageClassifier3` 用于识别人体骨架。该模型有特定输入和特定输出，需经过三层转换才能使用。  \n接下来准备上线道路障碍物识别……  \n最新版骨架识别目前已支持区分各个身体部位，具体情况请参见代码注释。\n\n`Camera2BasicFragment4`  \n这是一个通过检测来识别车道线和前方车辆的模块。  \n其中增加了部分逻辑用于判断是否发生车道偏离或前车距离过近：  \n- 如果检测出车道线，则计算斜率 k = (y2 - y1) \u002F (x2 - x1)，再设定一个固定斜率阈值来判断是否车道偏离；  \n- 如果检测到前方车辆的中心点位于横屏宽度的 2\u002F8 到 6\u002F8 范围内，则进一步判断：  \n  - 若中心点纵向位置靠上且距离超过一定阈值，则判定为前车过近；  \n  - 或者若车辆高度超过某一阈值，也判定为前车过近。\n\n另外：有人私下问我，本项目在他们的手机上运行卡顿严重。  \n这是算力问题——目前 TensorFlow 在移动设备上似乎不支持 GPU，而 CPU 的浮点运算速度较慢所致。  \n推荐使用华为 P10 或搭载骁龙 845、635 等处理器的设备尝试运行。  \n一般情况下，在 P10 上：  \n- 模型 1 约 1 秒 4 帧，  \n- 模型 2 约 1 秒 8 帧，  \n- 模型 3 约 1 秒 1 帧，  \n- 模型 4 约 1 秒 6 帧。  \n以上数据仅供参考。\n\n目前人体骨架识别已有新突破：具体算法已经完成，但暂时没时间实现，过段时间会上线。（目标是将所有关键点连接成完整的人体）\n\n具体算法如下：\n\nW×H×19 中每一层的含义：\n\n             Nose = 0          \u002F\u002F 鼻子\n             Neck = 1          \u002F\u002F 脖子\n             RShoulder = 2     \u002F\u002F 右肩\n             RElbow = 3        \u002F\u002F 右肘\n             RWrist = 4        \u002F\u002F 右腕\n             LShoulder = 5     \u002F\u002F 左肩\n             LElbow = 6        \u002F\u002F 左肘\n             LWrist = 7        \u002F\u002F 左腕\n             RHip = 8          \u002F\u002F 右髋\n             RKnee = 9         \u002F\u002F 右膝\n             RAnkle = 10       \u002F\u002F 右踝\n             LHip = 11         \u002F\u002F 左髋\n             LKnee = 12        \u002F\u002F 左膝\n             LAnkle = 13       \u002F\u002F 左踝\n             REye = 14         \u002F\u002F 右眼\n             LEye = 15         \u002F\u002F 左眼\n             REar = 16         \u002F\u002F 右耳\n             LEar = 17         \u002F\u002F 左耳\n             Background = 18   \u002F\u002F 背景\n\n需要连线的身体部位，共 19 条连线：\n\n        CocoPairs = [\n            (1, 2), (1, 5), (2, 3), (3, 4), (5, 6), (6, 7), (1, 8), (8, 9), (9, 10), (1, 11),\n            (11, 12), (12, 13), (1, 0), (0, 14), (14, 16), (0, 15), (15, 17), (2, 16), (5, 17)\n        ]   # = 19\n\n对应每条连线，在 W×H×38 的输出中找到对应的两层，从中提取两组各 10 个点：\n\n            CocoPairsNetwork = [\n                (12, 13), (20, 21), (14, 15), (16, 17), (22, 23), (24, 25), (0, 1), (2, 3), (4, 5),\n                (6, 7), (8, 9), (10, 11), (28, 29), (30, 31), (34, 35), (32, 33), (36, 37), (18, 19), (26, 27)\n             ]  # = 19\n\n从头开始按顺序连接：从鼻子到脖子，再到右臂等。\n\n        计算 Dx = x1 - x2  \n            Dy = y1 - y2\n\n两点间距离公式：\n\n        k = √(Dx² + Dy²)  \u002F\u002F 注：原文为“Dx平方-Dy平方”，应为笔误，实际应为加号\n\n如果两点间距离小于 0.0001，则该连线分数为 0，有效点数也为 0。\n\n计算单位方向向量：\n\n        Vx = Dx \u002F k  \n        Vy = Dy \u002F k\n\n连线过程中，每条线均分为 10 个点，生成两个数组：X 数组和 Y 数组，每个数组包含 10 个数值。  \n均分公式如下：\n\n        for(i = x1; i \u003C= x2; i += dx\u002F10)\n                x[n] = i;\n        Y 同理\n\n计算每条连线的分数：  \n- `CocoPairs` 与 `CocoPairsNetwork` 一一对应；  \n- 对于每一对连线（如 1 和 2），可在 `CocoPairsNetwork` 对应的两层（如第 12 层和第 13 层）中分别取出 10 个均分点；  \n- 将这些点存入两个新数组：`Px[10]` 和 `Py[10]`；\n\n建立一个分数数组，其每个元素为：`Px[i] * Vx + Py[i] * Vy`\n\n        分数 > 0.2 的点数 ×（所有 >0.2 的分数之和）= 最终分数  \n        并记录有多少个点的分数 > 0.2  \n        （若两点距离 \u003C 0.0001，则分数为 0，点数也为 0）\n\n如果有效点数 \u003C 5 或最终分数 ≤ 0，则舍弃该连线。\n\n从分数最高的连线开始，遍历所有有效连线，加入最终连线集合（若某连线的任意端点已存在于集合中，则直接舍弃该连线）。\n\n重复上述过程，直到无可连接的点。\n\n最后，将所有保留的连线按相同端点进行连接，即可形成人体骨架。\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_5450e7de95e9.gif)  ![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_f7a8d0cea753.gif)  ![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_0b8d9b64020e.gif)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_readme_ee1acd71ed16.gif)","# TensorFlowAndroidDemo 快速上手指南\n\n## 环境准备\n\n- **操作系统**：Windows \u002F macOS \u002F Linux（开发机）\n- **Android 设备要求**：\n  - Android 5.0（API Level 21）及以上\n  - 推荐使用高性能设备（如华为 P10、搭载骁龙 845 \u002F 635 的机型），因模型推理依赖 CPU 浮点运算，低端设备可能出现卡顿\n- **开发依赖**：\n  - Android Studio（最新稳定版）\n  - JDK 8 或以上\n  - Gradle 构建工具\n\n> ⚠️ 注意：当前 TensorFlow Mobile 在 Android 上暂不支持 GPU 加速，推理速度受限于 CPU 性能。\n\n## 安装步骤\n\n1. 克隆项目源码：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo.git\n   ```\n\n2. 使用 Android Studio 打开项目目录：\n   - 启动 Android Studio\n   - 选择 **Open an existing Android Studio project**\n   - 导航至 `TensorFlowAndroidDemo` 文件夹并打开\n\n3. 同步 Gradle 依赖（Android Studio 会自动提示，点击 **Sync Now**）\n\n4. （可选）如需国内加速，可在 `gradle.properties` 中添加阿里云镜像：\n   ```properties\n   systemProp.http.proxyHost=mirrors.aliyun.com\n   systemProp.https.proxyHost=mirrors.aliyun.com\n   ```\n\n## 基本使用\n\n### 方式一：直接安装 APK 体验\n下载预编译 APK 快速体验功能：\n- [点击下载 app-debug.apk](https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fraw\u002Fmaster\u002Fapk\u002Fapp-debug.apk)\n- 安装后可体验以下功能：\n  - 抽烟、打电话、闭眼、睁眼行为识别\n  - 车道线与前车检测（Camera2BasicFragment4）\n  - 人体骨架关键点识别（19 个部位）\n\n### 方式二：集成到自己的项目\n1. 将本项目中的 `tensorflow\u002F` 模块或相关 Java\u002FKotlin 类复制到你的工程\n2. 确保 `build.gradle` 中包含 TensorFlow Lite 依赖（示例）：\n   ```gradle\n   implementation 'org.tensorflow:tensorflow-lite:2.12.0'\n   ```\n3. 参考以下核心类实现推理逻辑：\n   - `TensorFlowImageClassifier2`：车道检测\n   - `TensorFlowImageClassifier3`：人体姿态估计（输入尺寸和输出解析需严格匹配模型要求）\n   - `Camera2BasicFragment4`：结合摄像头实现实时车道偏离与前车距离预警\n\n> 💡 提示：人体骨架识别输出为 `W×H×19` 的热力图，需按文档中 `CocoPairs` 规则进行后处理连线。详细坐标映射与分数计算逻辑请参考 README 中的算法说明。","某智能驾驶辅助系统创业团队正在开发一款基于Android的实时驾驶员行为监测App，用于检测疲劳驾驶（如闭眼、打哈欠）和危险动作（如抽烟、打电话），同时需识别车道线与前车距离以提供预警。\n\n### 没有 TensorFlowAndroidDemo 时\n- 团队需从零集成 TensorFlow Lite 模型到 Android 项目，面对 Camera2 API、模型输入预处理、输出解析等复杂流程无从下手。\n- 官方 TensorFlow 示例代码分散且缺乏移动端完整工程结构，调试耗时，开发效率极低。\n- 驾驶员动作识别（如闭眼、打电话）需自行训练或寻找可用模型，数据标注与部署成本高昂。\n- 车道线检测与前车距离判断逻辑需独立实现，缺乏现成的斜率计算与区域判定参考方案。\n- 在中低端手机上运行卡顿严重，但无明确性能基准参考，难以针对性优化。\n\n### 使用 TensorFlowAndroidDemo 后\n- 直接复用项目中已集成的 Camera2 架构和预训练模型，快速实现闭眼、睁眼、抽烟、打电话等行为的实时检测。\n- 借鉴其车道线斜率判断与前车中心点定位逻辑，迅速搭建起车道偏离与跟车过近的预警机制。\n- 利用现成的人体骨架识别模块（含19个关键点与连线算法），为后续扩展疲劳姿态分析打下基础。\n- 参考项目提供的帧率测试数据（如P10机型各模型运行速度），合理选择模型组合以平衡功能与性能。\n- 通过 APK 快速验证效果，大幅缩短原型验证周期，聚焦核心业务逻辑而非底层集成。\n\nTensorFlowAndroidDemo 将复杂的移动端AI集成封装为可直接复用的工程模板，显著降低智能驾驶辅助类应用的开发门槛与试错成本。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyuxitong_TensorFlowAndroidDemo_fb5a47a5.png","yuxitong","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fyuxitong_f6054a5f.jpg",null,"中国-上海","308847281@qq.com","https:\u002F\u002Fgithub.com\u002Fyuxitong",[82,86],{"name":83,"color":84,"percentage":85},"Java","#b07219",99.5,{"name":87,"color":88,"percentage":89},"Python","#3572A5",0.5,743,205,"2026-03-30T10:32:56",4,"Android","未说明（项目备注指出 TensorFlow 在移动设备上不支持 GPU）","未说明",{"notes":98,"python":96,"dependencies":99},"本项目为 Android 平台应用，依赖 TensorFlow 移动端模型；由于使用 CPU 进行推理，推荐使用高性能处理器（如华为 P10、骁龙 845\u002F635）以获得较好帧率；项目包含多个模型，分别用于人体姿态估计、车道检测、抽烟\u002F打电话等行为识别；运行前需确保设备支持 Camera2 API。",[100,101],"TensorFlow","Camera2 API",[14,15,55,53,13],[104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],"android","tensorflow","demo","app","recognition","detection","tensorflow-demo","java","tensordemo","android-tensorflow","ai","artificial-intelligence","tensorflow-android-demo","phone","smoking",5,"2026-03-27T02:49:30.150509","2026-04-06T05:17:04.218684",[123,128,133,138,143,148,153,158,163,168],{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},139,"在国内无法下载 tensorflow-android-1.4.0.aar，手动下载后应放在哪里？","可将 .aar 文件放入项目的 libs 目录，并在 build.gradle 的 dependencies 中添加：compile(name: 'tensorflow-android-1.4.0', ext: 'aar')。也可尝试放入 Gradle 缓存目录（如 ~\u002F.gradle\u002Fcaches\u002F...），但推荐使用 libs 方式。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F2",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},132,"如何在电脑上运行抽烟和打电话检测的代码？","可以使用 Python 调用摄像头并截图（例如使用 OpenCV 的 cv2 库），然后加载已有的模型进行推理。项目中的自动打标代码已经包含了模型运行的部分，只需补充摄像头调用和图像获取逻辑即可。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F13",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},133,"APK 在小米 Mix 2S 上黑屏闪退，其他手机是否正常？","建议通过 Android Studio 或 IDEA 中的 Logcat 查看崩溃日志，定位具体错误原因。不同设备可能存在兼容性问题，需根据实际报错信息调试。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F9",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},134,"替换自己的 .pb 模型后应用闪退，还需要修改哪些地方？","除了替换 assets 目录下的 .pb 和标签 .txt 文件外，还需确保新模型的输入和输出张量名称、维度与原代码一致。若输入\u002F输出结构不匹配（如不对称），会导致数组越界或闪退，应检查 Logcat 中的报错信息。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F6",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},135,"图像分类在移动端大概需要多少毫秒？如何提升效率？","在移动端推荐使用 TensorFlow Lite（TFLite）格式模型，速度非常快。相比原始 .pb 或 SavedModel，TFLite 经过优化更适合移动设备。作者表示后续会提供预转换的 TFLite 模型。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F19",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},136,"打电话检测是直接用分类模型实现的吗？如何处理手机线条等干扰？","打电话检测通常基于分类或目标检测模型。实际业务中建议结合后处理逻辑（如时序过滤、姿态分析）来减少误报。单纯依赖模型可能无法应对复杂场景（如手部遮挡、手机细线等），需根据具体应用场景设计算法流程。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F17",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},137,"用于识别抽烟、打电话、睁眼闭眼的模型是用什么网络训练的？能否提供训练方法？","模型是通过 TensorFlow Object Detection API 训练得到的，无需使用 config 文件，直接生成 .pb 模型即可。训练集为私有数据，无法公开，但用户可基于现有模型进行预测，并收集误报\u002F正确样本逐步构建自己的训练集。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F12",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},138,"能否提供编译好的 APK Demo？","作者已在项目根目录下创建了 apk 文件夹，其中包含已编译好的 APK 文件，可直接下载安装体验。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F7",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},140,"模型要求输入图像长宽必须一致，但人体图像通常高大于宽，如何解决？","大多数预训练模型（包括 graph_opt.pb）都要求输入图像为正方形（长宽相等）。这是模型训练时设定的固定输入尺寸，无法直接更改。若需适配非正方形图像，应在预处理阶段进行填充（padding）或裁剪，而非修改模型本身。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F15",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},141,"骨架识别模型为什么只有 7MB，而 tf-pose-estimation 原版约 200MB？","本项目使用的骨架模型直接来源于 https:\u002F\u002Fgithub.com\u002Fildoonet\u002Ftf-pose-estimation，但可能经过裁剪或仅包含推理所需部分，未包含训练相关数据，因此体积大幅减小。","https:\u002F\u002Fgithub.com\u002Fyuxitong\u002FTensorFlowAndroidDemo\u002Fissues\u002F10",[]]