Python作业
机器学习,人工智能,模式识别课程,鸟类识别检测系统。
这是一个鸟类识别项目,基于tensorflow,使用卷积神经网络实现对200种鸟类进行识别。
在数据集中收集了200中鸟类图片,每种鸟类都有着40~60张图片,通过对这些数据集进行训练,从而实现对这200中鸟类进行识别。
通过模型算法构建,在服务器上通过30次迭代,目前已将鸟类预测由0.005准确率(1/200)提升至0.5左右,准确率提升了100倍,符合预期效果。
提供后台管理系统,将识别数据保存进数据库中,并在管理系统中查看。
完整代码和训练模型下载地址:
链接:https://pan.baidu.com/s/1ErS8iB_na1-PXxK4Q1tWCg
提示框中显示的Yellow haded blackbird 即为鸟类名称,当然如果需要翻译中中文也可以。
模型迭代次数
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(64, (3, 3), input_shape=(256, 256, 3),
activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Conv2D(128, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(128, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Conv2D(256, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(256, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Conv2D(512, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(512, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Conv2D(512, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(512, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Conv2D(512, (3, 3), activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.GlobalAveragePooling2D(),
tf.keras.layers.Dense(1024, activation='relu'),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Dense(200)
])