乔人尹 - 作品/创作
type: channel
link: https://underestimated.cn/category/works/
description: 热爱可抵漫长debug
items: 如何训练一个YOLO目标检测模型
items: 如何编写一个手机自动化脚本
items: 手机任务执行帮手-'机辅'

如何训练一个YOLO目标检测模型
type: item
date: 2025-12-31T00:00:00+00:00
description: 现在这个网站已经有了成品，请参考以下链接并试用 深度检测前言：一个生物多样性的梦作为一个 AI 架构师，我接到了一个很有意义的项目：开发一套生物多样性识别系统。目标很明确：识别各种鸟类（麻雀、喜鹊、白鹭、翠鸟...）识别各种鱼类（金鱼、鲤鱼、热带鱼...）识别各种小动物（松鼠、刺猬、兔子、蜥蜴...）应用场景包括：野外红外相机的自动物种识别水族馆/动物园的智能监控自然保护区的生态监测公民科学项目的物种记录技术选型自然是 YOLO——目标检测领域的当红炸子鸡，速度快、精度高、部署方便。然而，理想很丰满，现实很骨感。第一章：MacBook 的绝望——为什么我放弃了本地训练1.1 最初的尝试作为一个 MacBook Pro 用户（M4 Pro，18GB 内存），我天真地以为："Apple Silicon 不是很强吗？MPS 加速不是很快吗？训练个小模型应该没问题吧？"于是我开始了尝试：from ultralytics import YOLO # 加载预训练模型 model = YOLO('yolov8n.pt') # 开始训练 model.train( data='biodiversity.yaml', epochs=100, imgsz=640, batch=16, device='mps' # Apple Silicon GPU )然后...RuntimeError: MPS backend out of memory好吧，把 batch 改成 8：# 能跑了，但是... Epoch 1/100: 100%|██████████| 500/500 [15:32<00:00, 1.86s/it]一个 epoch 要 15 分钟，100 个 epoch 就是 25 小时！而且这还只是最小的 YOLOv8n，如果换成 YOLOv8m 或 YOLOv8l...1.2 MacBook 训练的残酷现实配置YOLOv8nYOLOv8sYOLOv8mMacBook M4 Pro 18GB勉强能跑OOM别想了每 epoch 时间~15min--100 epochs 总时间~25h--风扇噪音起飞--能否日常使用不能--问题总结：内存/显存不足：18GB 统一内存要同时跑系统和训练，捉襟见肘MPS 后端不成熟：经常遇到兼容性问题，某些操作不支持速度太慢：和 NVIDIA GPU 比，差距是数量级的影响日常使用：训练时电脑基本不能干别的事1.3 痛定思痛经过一番挣扎，我接受了现实：深度学习训练，还得是 NVIDIA GPU。MacBook 适合做推理、做轻量级实验，但大规模训练？还是交给专业的来吧。于是，我把目光投向了云 GPU 服务。第二章：AutoDL 初体验——云上炼丹的正确姿势2.1 为什么选择 AutoDL对比了几个云 GPU 服务：服务商优点缺点AutoDL便宜、简单、国内访问快高峰期可能没卡AWS/GCP稳定、配置灵活贵、需要信用卡、配置复杂阿里云/腾讯云大厂背书相对较贵Colab免费限时、断连、速度不稳定最终选择 AutoDL，原因：价格实惠：RTX 4090 大约 2-3 元/小时操作简单：网页端直接操作，支持 JupyterLab 和 SSH预装环境：有现成的 PyTorch 镜像，开箱即用数据传输快：国内服务器，上传下载速度有保障2.2 创建实例注册 AutoDL 账号（https://www.autodl.com）充值（支持支付宝，先充个 50-100 块试试）创建实例：GPU：RTX 4090（24GB 显存，性价比之王）镜像：PyTorch 2.0 + Python 3.10 + CUDA 11.8硬盘：系统盘默认，数据盘按需（我选了 50GB）2.3 环境配置SSH 连接到服务器后，配置训练环境：# 1. 确认 GPU 状态 nvidia-smi # 输出应该看到 RTX 4090，显存 24GB # +-----------------------------------------------------------------------------+ # | NVIDIA-SMI 525.xx.xx Driver Version: 525.xx.xx CUDA Version: 12.0 | # |-------------------------------+----------------------+----------------------+ # | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | # | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute …

如何编写一个手机自动化脚本
type: item
date: 2025-12-27T00:00:00+00:00
description: 前言：一个咸鱼玩家的觉醒事情是这样的。某天我下载了一款叫《咸鱼之王》的游戏。作为一个放置类游戏，它的核心玩法是——点点点。每日任务要点领奖励要点打副本要点抽卡要点合成要点……玩了一周后，我的手指已经开始抗议了。作为一个程序员，我陷入了深深的思考：我玩游戏，还是游戏玩我？于是，"猫吃鱼"项目诞生了——让脚本替我吃掉这条咸鱼。第一章：技术选型——为什么是 Auto.js1.1 安卓自动化方案对比方案优点缺点Auto.js无需 root，基于无障碍服务，JavaScript 语法官方版已下架，需要用开源版Tasker功能强大，生态丰富学习曲线陡峭，自动化能力有限ADB + Python灵活，可电脑控制需要连接电脑，不够便携按键精灵简单易用功能有限，很多要付费Root + 触摸模拟权限最高，啥都能干需要 root，有变砖风险最终选择 Auto.js（准确说是开源版 AutoX.js），原因：无需 root：基于安卓无障碍服务（Accessibility Service）JavaScript 语法：前端出身的我表示很亲切开源免费：AutoX.js 是社区维护的开源版本功能全面：控件操作、图色识别、悬浮窗、定时任务一应俱全1.2 环境搭建# 1. 下载 AutoX.js # GitHub: https://github.com/autox-community/AutoX # 下载 APK 安装到手机 # 2. 开启无障碍服务 # 设置 -> 无障碍 -> AutoX.js -> 开启 # 3. 开启悬浮窗权限 # 设置 -> 应用管理 -> AutoX.js -> 悬浮窗权限 # 4. 关闭电池优化（重要！） # 设置 -> 电池 -> AutoX.js -> 不优化 # 否则后台运行会被杀掉踩坑提醒：不同手机厂商的设置路径不一样，MIUI、ColorOS、EMUI 各有各的"特色"。有时候需要在"自启动管理"、"后台运行"等多个地方设置。第二章：无障碍服务——脚本的灵魂2.1 什么是无障碍服务无障碍服务（Accessibility Service）本来是安卓为视障人士设计的功能，可以：读取屏幕内容：获取当前界面所有控件的信息模拟用户操作：点击、滑动、输入文字监听系统事件：界面变化、通知到达等简单说，开启无障碍服务后，你的脚本就像一个"看得见屏幕的机器人"，可以知道屏幕上有什么，然后去操作它。2.2 控件 vs 坐标Auto.js 有两种主要的操作方式：方式一：基于控件（推荐） // 通过文字找到按钮并点击 click("领取奖励"); // 通过 id 找到控件 id("btn_claim").findOne().click(); // 通过描述找到控件 desc("关闭").findOne().click();方式二：基于坐标 // 直接点击屏幕坐标 click(540, 1200); // 滑动 swipe(500, 1500, 500, 500, 500);对比：特性控件操作坐标操作适配性好，不同分辨率通用差，换手机就废稳定性高，控件存在才操作低，可能点到别的地方速度稍慢，需要查找控件快，直接点适用场景原生应用、有控件信息的界面游戏画面、Canvas 渲染的界面《咸鱼之王》的尴尬在于——它是个混合应用，部分界面有控件信息，部分界面是纯游戏渲染，需要两种方式结合使用。2.3 布局分析——找到控件的"身份证"Auto.js 自带布局分析功能，可以查看当前界面的控件树： // 方法一：悬浮窗里点"布局分析" // 方法二：代码打印 auto.waitFor(); // 等待无障碍服务启动 let root = className("android.widget.FrameLayout").findOne(); log(root); // 打印控件树布局分析会显示每个控件的：text：显示的文字desc：描述（contentDescription）id：资源 IDclassName：控件类型bounds：位置和大小技巧：优先用 text 和 id，它们最稳定。第三章：项目架构——"猫吃鱼"的设计3.1 功能规划作为一个有追求的脚本，"猫吃鱼"要实现：猫吃鱼 ├── 日常任务 │ ├── 一键领取所有奖励 │ ├── 自动完成日常任务 │ └── 自动观看广告 ├── 战斗系统 │ ├── 自动挂机刷副本 │ ├── 自动打竞技场 │ └── 自动参与活动 ├── 资源管理 │ ├── 自动合成装备 │ ├── 自动强化英雄 │ └── 自动使用体力 └── 辅助功能 ├── 防检测（随机延迟） ├── 异常处理（弹窗、卡顿） └── 运行日志3.2 代码结构cat_eat_fish/ ├── main.js # 主入口 ├── confi…

手机任务执行帮手-'机辅'
type: item
date: 2023-03-25T02:23:00+00:00