Android(Termux)部署 NCNN + YOLOv8 完整教程
目标:
- Android 手机
- 手机安装Termux 环境
- 编译 NCNN
- 下载 YOLOv8 NCNN 模型
- 本地图片目标检测
- 输出识别结果图片
最终效果:
bash
./yolov8 ~/images/bus.jpg
输出:
bash
5 = 0.87811 at ...
0 = 0.86568 at ...
0 = 0.85022 at ...
并生成:
bash
image.png
一、安装并更新 Termux 环境
先准备一个不用的安卓手机,比如作者用的是2019年的vivo手机,参考《 手机安装Termux 环境》教程安卓Termux。
更新软件包:
bash
pkg update -y
pkg upgrade -y
安装基础依赖:
bash
pkg install -y \
python \
git \
wget \
curl \
clang \
cmake \
make \
ffmpeg \
tur-repo
检查 Python:
bash
python --version
输出类似:
Python 3.12.x
二、开启手机存储权限
执行:
bash
termux-setup-storage
手机会弹出:
text
允许 Termux 访问文件
点击:
text
允许
检查是否成功:
bash
ls ~/storage
正常会出现:
downloads
dcim
shared
movies
pictures
三、创建工作目录
进入共享目录:
bash
cd ~/storage/shared
创建目录:
bash
mkdir -p AI/models
mkdir -p AI/images
mkdir -p AI/output
进入:
bash
cd AI
目录结构:
text
AI
├── models
├── images
└── output
四、安装 Python 基础依赖
安装常用库:
bash
pkg install -y \
python-numpy \
python-pillow
验证:
进入 Python:
bash
python
输入:
python
import numpy
from PIL import Image
print("OK")
输出:
OK
退出:
python
exit()
说明:
本教程使用 NCNN 的 C++ 示例程序:
- 不需要 OpenCV
- 不需要 onnxruntime
- 不需要 PyTorch
五、下载 NCNN
进入工作目录:
bash
cd ~/storage/shared/AI
下载源码:
bash
git clone --depth=1 https://github.com/Tencent/ncnn.git
进入目录:
bash
cd ncnn
创建编译目录:
bash
mkdir build
cd build
六、编译 NCNN
执行:
bash
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DNCNN_BUILD_TOOLS=ON \
-DNCNN_BUILD_EXAMPLES=ON \
-DNCNN_SIMPLEOCV=ON \
-DNCNN_VULKAN=OFF
编译:
bash
make -j4
如果只编译 YOLO 示例:
bash
make yolov8 -j4
说明:
参数解释:
| 参数 | 作用 |
|---|---|
| Release | 发布模式 |
| BUILD_TOOLS | 编译工具 |
| BUILD_EXAMPLES | 编译示例 |
| SIMPLEOCV | 启用简化图像处理 |
| VULKAN=OFF | 关闭 GPU(手机更稳定) |
编译时间:
5~15分钟
成功后:
bash
build/examples/yolov8
七、整理目录
移动 NCNN:
bash
cd ~
mv ~/storage/shared/AI/ncnn ~/
进入:
bash
cd ~/ncnn/build/examples
增加执行权限:
bash
chmod +x yolov8
八、下载 YOLOv8 NCNN 模型
创建模型目录:
bash
mkdir -p ~/models
cd ~/models
下载:
bash
curl -L \
https://github.com/nihui/ncnn-assets/raw/master/models/yolov8n.ncnn.param \
-o yolov8n.ncnn.param
bash
curl -L \
https://github.com/nihui/ncnn-assets/raw/master/models/yolov8n.ncnn.bin \
-o yolov8n.ncnn.bin
复制模型:
bash
cp ~/models/yolov8n.ncnn.* \
~/ncnn/build/examples/
检查:
bash
ls
应看到:
bash
yolov8n.ncnn.param
yolov8n.ncnn.bin
九、下载测试图片
创建目录:
bash
mkdir -p ~/images
进入:
bash
cd ~/images
下载:
bash
wget \
https://github.com/ultralytics/assets/releases/download/v0.0.0/bus.jpg
检查:
bash
ls
输出:
bash
bus.jpg
十、运行 YOLOv8 检测
进入:
bash
cd ~/ncnn/build/examples
执行:
bash
./yolov8 ~/images/bus.jpg
输出示例:
bash
5 = 0.87811 at 21.91 231.54 783.44 x 525.12
0 = 0.86568 at 48.45 398.48 196.56 x 504.25
0 = 0.85022 at 669.94 391.97 139.06 x ...
格式:
text
类别ID = 置信度 at x y w h
说明:
| ID | 类别 |
|---|---|
| 0 | person |
| 2 | car |
| 5 | bus |
| 7 | truck |
十一、查看检测结果
当前目录会自动生成:
bash
image.png
查看:
bash
ls -lh image.png
复制到手机相册:
bash
cp image.png ~/storage/shared/AI/output/
然后打开:
text
文件管理
→ Internal Storage
→ AI
→ output
即可查看结果图。
十二、常见问题
1)提示:
bash
Permission denied
执行:
bash
chmod +x yolov8
2)提示:
bash
cannot find xxx.ncnn.param
检查:
bash
ls
确认:
bash
yolov8n.ncnn.param
yolov8n.ncnn.bin
存在。
3)编译失败:
降低并行线程:
bash
make -j2
甚至:
bash
make -j1
手机内存不足容易出现此问题。
4)检测速度太慢
默认:
text
CPU推理
可开启 Vulkan:
修改:
bash
-DNCNN_VULKAN=ON
重新编译:
bash
make -j4
注意:
部分手机 GPU 驱动兼容性较差。
十三、后续可扩展
可进一步增加:
- 摄像头实时识别
- 视频流检测
- CCTV RTSP 接入
- YOLO11
- YOLO-Seg
- YOLO-Pose
- OCR
- RK3588边缘部署
- NCNN + Vulkan GPU加速
- OpenClaw Agent 接入
- 多路视频检测
推荐下一步:
text
手机摄像头 → YOLO实时检测 → WebSocket → SpringBoot告警系统
架构:
text
Camera
↓
YOLO(NCNN)
↓
事件JSON
↓
WebSocket/MQTT
↓
SpringBoot
↓
告警中心
适合后续做边缘 AI 实战。
