完全离线 YOLOv8n + ONNX Runtime Android 7.0+

手机拍照,一秒数清成堆的钢管

面向施工现场的钢管计数工具。手机端本地推理,不需要联网、不需要上传图片, 打开相册选一张图,自动标注每一根钢管并给出总数。

版本 v1.0 · 内置模型 11.7 MB · 兼容 Android 7.0 及以上(arm64 / armv7 / x86_64)

扫码下载钢管计数 App
扫码直接下载
用手机相机 / 微信扫一扫
打不开扫码?点顶部「下载 APK」按钮
97.9%mAP@50
0.2~0.7s单张识别耗时
568 根单图最多已测
0.05%验证集计数偏差

识别效果

以下均为手机端实际运行截图:红色框为逐根检测结果,底部给出总数与耗时

密集堆垛 307 根
密集堆垛307 根 · 625 ms
极限密集 568 根
极限密集568 根
中密度 100 根
中密度100 根 · 237 ms
少量钢管 41 根
少量钢管41 根 · 221 ms

点击任意截图可放大查看每根钢管的检测框

功能特性

施工现场常常没有稳定网络,所以整套识别都放在手机里

完全离线运行

模型直接打包进 APK,飞行模式下也能识别;照片不出手机,现场数据不留痕。

秒级给出结果

单张图片端侧推理 0.2~0.7 秒,选完图几乎立刻看到标注与总数,可连续处理多张。

密集堆垛也能数

针对成捆、成堆的钢管训练,单图最多可输出 1000 个目标,实测 568 根仍稳定标注。

计数精度可核查

验证集 mAP@50 97.9%、平均绝对误差 5.5 根;每个框都可放大复核,不做黑箱结论。

结果可视化

逐根绘制检测框,红框覆盖即计数依据;界面同时显示耗时,便于评估设备性能。

权限极简

只申请相册 / 相机权限,不读取通讯录、定位、设备信息,安装包无后台联网行为。

使用方法

从打开 App 到拿到数字,一共四步

打开 App

首次启动会加载内置模型,约 1 秒;状态栏出现「模型就绪」即可使用。

选择图片

点「从相册选择」挑一张现场照片,或直接点「拍照」现场采集。

等待识别

进度提示「识别中…」,通常 0.2~0.7 秒完成,密集图稍久。

读取结果

界面显示红框标注与「检测到钢管:N 根」,可继续换图反复计数。

安装到手机

  1. 手机扫码,或直接在浏览器打开 www.orange666.xyz;
  2. 点「下载安装包」,等待 81 MB 下载完成;
  3. 若提示「此类文件可能有害」,选择 仍要下载;
  4. 点击安装,系统提示「未知来源」时选择 允许来自此来源的应用;
  5. 安装完成后打开 App,若首次提示存储权限请选择允许。
⬇ 立即下载 app-debug.apk
钢管计数 App 下载二维码海报

在线体验(免安装)

不想先装 App?直接选一张现场照片(或点「用示例图片」),服务器用同一个模型算给你看

⚠️ 体验功能会把图片上传到服务器(仅用于快速对比效果,单张解析后不落盘)。 正式使用请安装 App —— 图片全程留在手机里,离线也能算。

识别结果会显示在这里

装不上怎么办

小米 / 红米需在「设置 → 更多设置 → 开发者选项」打开「USB 安装」与「未知来源应用安装」;其他机型在安全设置中允许安装未知来源应用即可。

识别偏慢或偏差大

尽量让钢管充满画面、避免强反光与严重遮挡;拍摄距离越近、单根越清晰,计数越准。

数据与隐私

安装版 App 的推理全部在手机本地完成,照片不上传;仅上方「在线体验」会把该张图片发到服务器计算,用完即弃、不做留存。

技术信息

算法链路与训练数据说明

检测模型
YOLOv8n(Ultralytics),输入 640×640,单类 pipe
端侧推理
PyTorch → ONNX(11.7 MB)→ onnxruntime-android,CPU 四线程
后处理
置信度阈值 0.35 · NMS IoU 0.50 · 最大目标数 1000
精度
mAP@50 97.9% / mAP@50-95 71.8%;验证集 69 张、9171 个实例,计数偏差 +0.05%、平均绝对误差 5.5 根
训练数据
Roboflow Pipe Counting 3(CC BY 4.0)+ 现场自标注图像(LabelImg / X-AnyLabeling)
开发环境
Python 3.12 · PyTorch cu121(RTX 4060 训练)· Android Studio / Kotlin 端侧
⬇ 下载安装包(81 MB · Android 7.0+)