当前位置: 首页 > news >正文

深度学习:python动物识别分类检测系统 Django框架 CNN算法 深度学习 卷积神经网络 TensorFlow (建议收藏)✅

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅

点击查看作者主页,了解更多项目!

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅

2、最全计算机专业毕业设计选题大全(建议收藏)✅

1、项目介绍

技术栈:
python语言、django框架、TensorFlow、CNN卷积神经网络模型、Echarts可视化

2、项目界面

(1)首页
在这里插入图片描述

(2)上传图片检测识别
在这里插入图片描述

(3)识别结果
在这里插入图片描述

(4)词云图分析
在这里插入图片描述

(5)个人中心
在这里插入图片描述

(6)动物信息
在这里插入图片描述

(7)动物大全
在这里插入图片描述

(8)后台管理
在这里插入图片描述

(9)注册登录

在这里插入图片描述

3、项目说明

一、卷积神经网络模型

这段代码使用了 TensorFlow 和 Keras 库来构建和训练一个卷积神经网络(CNN)模型,用于图像分类任务。模型的流程如下:

  1. 设置 Django 环境:
    代码首先设置了 Django 项目的环境变量,以便在脚本中使用 Django 的设置。

  2. 数据路径和参数设置:
    定义了训练数据和测试数据的路径,以及批量大小(batch_size)和训练周期(epochs)。

  3. 数据预处理:
    使用 ImageDataGenerator 类来生成图像数据的增强版本,包括缩放、旋转、平移、剪切、缩放和水平翻转。

  4. 加载数据集:
    使用 flow_from_directory 方法从指定目录加载训练集和测试集,并将图像大小调整为 224x224 像素,模式设置为分类(categorical)。

  5. 获取批量图像和标签:
    从训练生成器和测试生成器中获取一批图像和对应的标签。

  6. 模型训练函数 train_model
    定义了一个函数 train_model,用于构建、编译、训练和保存模型。

  7. 构建模型:

    • 如果模型文件已经存在,则加载已存在的模型。
    • 如果模型文件不存在,则创建一个新的顺序模型(Sequential),并添加多个卷积层(Conv2D)和最大池化层(MaxPooling2D)。
    • 添加一个展平层(Flatten),将多维输入一维化。
    • 添加全连接层(Dense),其中包含一个 128 个单元的隐藏层和一个 10 个单元的输出层(因为类别数量为 10)。
  8. 编译模型:
    使用 Adam 优化器和分类交叉熵损失函数(categorical_crossentropy)来编译模型,并设置准确率(accuracy)作为性能指标。

  9. 训练模型:
    使用训练生成器的数据训练模型,指定周期数和批量大小。

  10. 模型预测和评估:

    • 使用训练好的模型对测试集进行预测。
    • 计算准确率和精确率(precision),精确率使用 precision_score 函数计算,这里使用了加权平均(weighted)。
    • 打印出准确率和精确率。
  11. 保存模型:
    将训练好的模型保存到指定的文件路径。

  12. 执行训练函数:
    如果这是主程序,则调用 train_model 函数开始训练模型。

总结来说,这段代码展示了使用 TensorFlow 和 Keras 构建和训练一个简单的 CNN 模型的完整流程,包括数据预处理、模型构建、编译、训练、评估和保存。

4、核心代码

import os
import django
import numpy as np
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras import layers, models
from tensorflow.keras.models import Sequential
from sklearn.metrics import precision_score
from tensorflow.keras.models import load_model
from pathlib import Path# 设置 Django 环境
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "animalProject.settings")
django.setup()# 数据路径
data_path = '动物十大分类/train'
test_data_path = '动物十大分类/valid'# 参数
batch_size = 16
epochs = 10# 数据预处理
train_datagen = ImageDataGenerator(rescale=1. / 255,rotation_range=20,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True,fill_mode='nearest'
)# 加载训练集和测试集
train_generator = train_datagen.flow_from_directory(data_path,target_size=(224, 224),batch_size=batch_size,class_mode='categorical',shuffle=True
)test_generator = train_datagen.flow_from_directory(test_data_path,target_size=(224, 224),class_mode='categorical',shuffle=True
)# 获取一个批量的图像和标签
images, labels = train_generator.next()
test_images, test_labels = test_generator.next()# 模型训练
def train_model():# 获取当前工作目录current_dir = os.getcwd()# 定义模型文件的路径,保存在当前目录下model_path = Path(current_dir) / "imgPreAnim.h5"# 检查模型文件是否存在if model_path.exists():print("加载已存在的模型...")model = load_model(model_path)else:print("创建新的模型...")model = models.Sequential()model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)))model.add(layers.MaxPooling2D(pool_size=(2, 2)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.MaxPooling2D((2, 2)))# 增加其他层可以按照需求解注释# model.add(layers.Conv2D(128,(3,3),activation='relu'))# model.add(layers.MaxPooling2D((2,2)))# model.add(layers.Conv2D(256,(3,3),activation='relu'))# model.add(layers.MaxPooling2D((2,2)))# model.add(layers.Conv2D(512,(3,3),activation='relu'))# model.add(layers.MaxPooling2D((2,2)))model.add(layers.Flatten())# 增加更多层也可以解注释# model.add(layers.Dense(512,activation='relu'))# model.add(layers.Dense(256,activation='relu'))model.add(layers.Dense(128, activation='relu'))model.add(layers.Dense(10, activation='softmax'))  # 10是类别数量# 编译模型model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型model.fit(train_generator, epochs=epochs, batch_size=batch_size)# 使用模型进行预测predictions = model.predict(test_images)correct_predictions = np.argmax(predictions, axis=1) == np.argmax(test_labels, axis=1)accuracy = np.mean(correct_predictions)print(f'准确率:{accuracy}')# 计算精确率prediction = precision_score(np.argmax(test_labels, axis=1), np.argmax(predictions, axis=1), average='weighted')print(f'精确率:{prediction}')# 保存模型model.save(model_path)if __name__ == '__main__':train_model()import os
from tensorflow.keras.preprocessing import image
from tensorflow import keras
import numpy as npdef predAni(img_path):labelNames = ['狗','羊','马','猴','牛','猪','兔','鸡','蛇','虎']# 获取当前脚本所在目录路径,并拼接模型文件路径model_path = os.path.join(os.path.dirname(__file__), 'imgPreAnim.h5')# 加载模型model = keras.models.load_model(model_path)# 处理图片img = image.load_img(img_path, target_size=(224, 224))img_array = image.img_to_array(img)img_array = np.expand_dims(img_array, axis=0)img_array = img_array / 255  # 归一化# 预测predictions = model.predict(img_array)predicted_class = np.argmax(predictions, axis=1)print('预测结果:')print(labelNames[predicted_class[0]])return labelNames[predicted_class[0]]if __name__ == '__main__':predAni('./00000004.jpg')  # 确保这个路径是正确的

🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目编程以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌

5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅

点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻

http://www.dtcms.com/a/598591.html

相关文章:

  • 【C++基础与提高】第四章:运算符与表达式——构建程序逻辑的工具
  • 专业提供网站制作双语言网站源码
  • 太原论坛网站开发公司芜湖网站公司
  • 深度学习模型CNN识别恶意软件
  • 模型-详解 Vision Transformer (ViT)
  • 广州专业做网站公司热门网页设计制作代码
  • 温岭 网站制作企业网站自己可以做
  • 虚拟机做网站有用吗关键词seo排名优化推荐
  • Springboot-WebService 服务端发布与客户端调用
  • CentOS7 + VMware 搭建 K3s 集群遇到的网络问题全记录与解决方案
  • flowable03任务
  • 手机软件网站京东网页版
  • 国外网站设计大全营销业务应用系统
  • 每日算法刷题Day84:11.11:leetcode 动态规划9道题,用时2h
  • 网站建设开发设计营销公司山东建设网站平台合同范本
  • 网站建设玖金手指谷哥四网站对一个关键词做排名怎么做
  • Windows 系统上安装 Kafka
  • 不成立公司怎么做企业网站php网站开发占比
  • 机加工如何用网站开发客户php实现网站消息推送
  • 百日挑战——单词篇(第十九天)
  • RabbitMQ 小项目之扫盲班
  • 自己如何在网上做网站黄页88网企业名录
  • 信宜做网站动漫制作专业就业方向
  • 国外网站会让国内人做吗ts431p 做网站
  • 酒店网站制作公司企业网站要怎么建设
  • 微信开发网站制作宣传片拍摄报价明细
  • 鹤山市住房和城乡建设局网站深圳做网页
  • LayUI基础入门
  • 56_AI智能体运维部署之实战指南:编写生产级docker-compose部署脚本
  • 公司制作一个网站价格全屋定制一般多少钱