首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何在手机上轻松识别多种鸟类?我们发现了更简单的秘密……

如何在手机上轻松识别多种鸟类?我们发现了更简单的秘密……

原创
作者头像
CoovallyAIHub
发布2025-11-28 09:59:41
发布2025-11-28 09:59:41
560
举报

导读

基于深度学习与迁移学习技术,只需一部手机,就能让每个人轻松识别鸟类物种——本文将详细介绍如何利用MobileNetV2构建高精度鸟类识别模型,并探讨如何借助Coovally平台高效实现从开发到部署的全流程。>>更多资讯可加入CV技术群获取了解哦~

观鸟在能够识别你所观察的鸟类物种时会变得更加令人兴奋。但如果你对鸟类了解不多,这项任务可能会很困难。为了让每个人都能轻松完成这项任务,你可以使用一个深度学习模型,只需通过手机摄像头就能识别你正在观察的物种!

screenshot_2025-11-26_14-17-53.png
screenshot_2025-11-26_14-17-53.png

迁移学习是机器学习中使用的一种技术,即在一个任务上训练好的模型被重新用作另一个相关任务的起点。它通过将从前一个问题中获得的知识应用到新问题中来工作。这节省了时间和计算资源,因为模型不需要从头开始训练。

鸟类分类是一项非常适合卷积神经网络(CNN) 的任务。CNN是一种专为分析视觉数据而设计的人工神经网络,能够自动学习并从图像中提取特征。这些网络由多个协同工作的层组成,用于识别边缘、纹理和形状等模式。

通过迁移学习,我们不需要从头开始训练所有这些层。相反,我们可以重用预训练网络。许多预训练模型是可用的,在这个项目中,我使用 MobileNetV2 作为基础模型。

数据集

该数据集包含525种不同鸟类的图像,总计12,136张图片!这些图像被组织在三个文件夹中:训练集、验证集和测试集。

screenshot_2025-11-26_14-20-49.png
screenshot_2025-11-26_14-20-49.png

使用 MobileNetV2 

如前所述,起点是MobileNetV2。MobileNetV2是一种高效、轻量级的卷积神经网络(CNN),专为计算资源有限的移动和嵌入式设备优化。它由谷歌于2018年推出。

为了能将我们的鸟类图像与此模型一起使用,我们只需要重新缩放我们的图像,这可以准备好模型期望的图像尺寸和像素缩放比例。这在加载数据时完成:

代码语言:javascript
复制

train_datagenerator = ImageDataGenerator(rescale=1/255.)
val_datagenerator = ImageDataGenerator(rescale=1/255.)
test_datagenerator = ImageDataGenerator(rescale=1/255.)

MobileNetV2是在ImageNet数据库中的超过100万张图像上训练的。它可以将图像分类为1000个类别,包括许多日常物品和几种动物。凭借其157层结构,它已经学习了许多视觉特征。我们只需要帮助它学习特定于鸟类物种的特征。

为此,我们冻结前120层,这样模型就不会忘记它已经学会的通用模式。接下来,我们解冻并重新训练后面的一些层,使它们适应我们的鸟类数据集。最后,我们添加新的自定义层进行分类:

代码语言:javascript
复制

from tensorflow.keras.applications import MobileNetV2
base_model = MobileNetV2(
    input_shape=IMG_SHAPE,
    include_top=False,
    weights='imagenet'
)
base_model.trainable = True
# 仅冻结前 ~120 层
for layer in base_model.layers[:120]:
    layer.trainable = False
global_average_layer = tf.keras.layers.GlobalAveragePooling2D()
drop_layer = tf.keras.layers.Dropout(0.2)
dense_layer = tf.keras.layers.Dense(len(class_names), activation='softmax')
model = tf.keras.Sequential([
    base_model,
    global_average_layer,
    drop_layer,
    dense_layer
])

通过这样做,模型利用了它已有的所有知识,并将其调整以适应我们的新数据。现在我们只需要编译我们的模型并选择优化器和损失函数:

代码语言:javascript
复制

from keras import optimizers
model.compile(optimizer=optimizers.Adam(learning_rate=1e-5),
              loss='categorical_crossentropy',
              metrics=['accuracy'])

我们选择一个较小的学习率来避免模型对数据过拟合。

结果

该模型取得了令人印象深刻的性能:

  • 训练准确率: 98%
  • 验证准确率: 94%
  • 测试准确率(未见过的图像): 97%

这些图表显示了仅用5个周期,准确率如何提高以及误差如何降低!

screenshot_2025-11-26_14-21-58.png
screenshot_2025-11-26_14-21-58.png

在手机摄像头上测试模型

为了用手机摄像头测试模型,我参考了一个教程,并对其进行了修改以适用于我们的鸟类分类器。在导入训练好的模型后,我将其连接到手机的实时摄像头馈送。

screenshot_2025-11-26_14-22-41.png
screenshot_2025-11-26_14-22-41.png

与 Coovally 平台的集成

看到上述描述是否还在纠结如何看到项目详细,其实在构建和部署此类AI模型时,像 Coovally 这样的平台可以极大地简化流程。Coovally 是一个端到端的AI开发平台,它提供了从数据准备、模型训练、评估到部署的一系列工具。

Coovally操作动图.gif
Coovally操作动图.gif

在这个鸟类识别项目中,Coovally 可以在以下方面提供帮助:

  • 数据管理:轻松上传、版本控制和预处理包含多个物种的大型鸟类图像数据集。
  • 模型开发:Coovally 支持包括 TensorFlow 和 Keras 在内的多种框架,平台已集成MobileNetV2 等1000+模型,一键调用。
  • 训练与评估:平台可以管理训练任务,并提供类似本项目中的可视化图表,跟踪准确率和损失等指标,方便比较不同实验的结果。
  • 模型部署:训练好的模型可以一键部署到云端或边缘设备(如手机),类似于本项目中将模型连接到手机摄像头的步骤,但流程可能更标准化和自动化。
模型转换.GIF
模型转换.GIF

通过利用 Coovally,开发人员可以更专注于模型设计和业务逻辑,而不是底层的基础设施管理,从而加速像这个鸟类识别应用一样的AI方案的开发与落地。

结论

迁移学习是一个强大的工具,它使我们能够用更少的资源训练出高性能的模型。在这个项目中,使用MobileNetV2使得鸟类分类模型能够快速高效地达到出色的准确率。结合手机摄像头,这成为了一个对于任何对观鸟感兴趣的人都易于使用的工具。而像 Coovally 这样的平台,进一步降低了AI开发的门槛,为更多创新应用的实现提供了可能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据集
  • 使用 MobileNetV2 
  • 结果
  • 与 Coovally 平台的集成
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档