离线识别,在线百科,打造智能动物识别新体验。
背景
我的毕业设计是《Development of an AI-Powered Mobile Application for Animal Identification and Information》,开发一个可以识别动物的移动软件,在跟导师沟通后打算用Yolo作为深度学习识别模型,移动端软件使用原生的iOS开发,即在XCode上使用Swift+SwiftUI进行iOS开发,原本就一直对iOS开发很感兴趣,借这次机会好好学习一下原生的iOS开发。
开发

模型训练
数据集是Open Images V7 Animals YOLO,包含11类动物的50,000张图片。
我选择这个数据集的原因是它有yolo格式的标签,但是直到我完成训练,我发现数据集不是很好,它非常不平衡,如下图所示,近27000张“狗”的图片,但其他平均只有2000张,但我还是尝试训练模型,看看结果。
我使用YOLO11m训练模型,这是最新版本的YOLO,我使用默认参数进行训练,将epochs设置为200,我没有验证过拟合问题。
.pt模型性能
系统显示下面的图片是这个模型嵌入在我的小系统中,自动推断系统摄像头中的图像。

CoreML模型导出
因为我想在iOS上部署模型,所以我需要将模型导出为CoreML格式,我按照官方教程中的命令导出模型:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolov11m.pt")
# Export the model to CoreML format
model.export(format="coreml", nms=True) # creates 'yolo11n.mlpackage'
成功导出后,生成了一个名为yolo11m.mlpackage的文件,接下来就可以嵌入到我的iOS项目中,在XCode中可以对mlpackage进行预览,结果如下:

iOS App开发
App的主要功能包括实时动物识别、拍照识别和百科信息查询。