
导读
基于深度学习与迁移学习技术,只需一部手机,就能让每个人轻松识别鸟类物种——本文将详细介绍如何利用MobileNetV2构建高精度鸟类识别模型,并探讨如何借助Coovally平台高效实现从开发到部署的全流程。>>更多资讯可加入CV技术群获取了解哦~
观鸟在能够识别你所观察的鸟类物种时会变得更加令人兴奋。但如果你对鸟类了解不多,这项任务可能会很困难。为了让每个人都能轻松完成这项任务,你可以使用一个深度学习模型,只需通过手机摄像头就能识别你正在观察的物种!

迁移学习是机器学习中使用的一种技术,即在一个任务上训练好的模型被重新用作另一个相关任务的起点。它通过将从前一个问题中获得的知识应用到新问题中来工作。这节省了时间和计算资源,因为模型不需要从头开始训练。
鸟类分类是一项非常适合卷积神经网络(CNN) 的任务。CNN是一种专为分析视觉数据而设计的人工神经网络,能够自动学习并从图像中提取特征。这些网络由多个协同工作的层组成,用于识别边缘、纹理和形状等模式。
通过迁移学习,我们不需要从头开始训练所有这些层。相反,我们可以重用预训练网络。许多预训练模型是可用的,在这个项目中,我使用 MobileNetV2 作为基础模型。
该数据集包含525种不同鸟类的图像,总计12,136张图片!这些图像被组织在三个文件夹中:训练集、验证集和测试集。

如前所述,起点是MobileNetV2。MobileNetV2是一种高效、轻量级的卷积神经网络(CNN),专为计算资源有限的移动和嵌入式设备优化。它由谷歌于2018年推出。
为了能将我们的鸟类图像与此模型一起使用,我们只需要重新缩放我们的图像,这可以准备好模型期望的图像尺寸和像素缩放比例。这在加载数据时完成:
train_datagenerator = ImageDataGenerator(rescale=1/255.)
val_datagenerator = ImageDataGenerator(rescale=1/255.)
test_datagenerator = ImageDataGenerator(rescale=1/255.)MobileNetV2是在ImageNet数据库中的超过100万张图像上训练的。它可以将图像分类为1000个类别,包括许多日常物品和几种动物。凭借其157层结构,它已经学习了许多视觉特征。我们只需要帮助它学习特定于鸟类物种的特征。
为此,我们冻结前120层,这样模型就不会忘记它已经学会的通用模式。接下来,我们解冻并重新训练后面的一些层,使它们适应我们的鸟类数据集。最后,我们添加新的自定义层进行分类:
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
])通过这样做,模型利用了它已有的所有知识,并将其调整以适应我们的新数据。现在我们只需要编译我们的模型并选择优化器和损失函数:
from keras import optimizers
model.compile(optimizer=optimizers.Adam(learning_rate=1e-5),
loss='categorical_crossentropy',
metrics=['accuracy'])我们选择一个较小的学习率来避免模型对数据过拟合。
该模型取得了令人印象深刻的性能:
这些图表显示了仅用5个周期,准确率如何提高以及误差如何降低!

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

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

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

通过利用 Coovally,开发人员可以更专注于模型设计和业务逻辑,而不是底层的基础设施管理,从而加速像这个鸟类识别应用一样的AI方案的开发与落地。
迁移学习是一个强大的工具,它使我们能够用更少的资源训练出高性能的模型。在这个项目中,使用MobileNetV2使得鸟类分类模型能够快速高效地达到出色的准确率。结合手机摄像头,这成为了一个对于任何对观鸟感兴趣的人都易于使用的工具。而像 Coovally 这样的平台,进一步降低了AI开发的门槛,为更多创新应用的实现提供了可能。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。