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

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

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

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

2、大数据、计算机专业选题(Python/Java/大数据/深度学习/机器学习)(建议收藏)✅

1、项目介绍

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

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

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/486640.html

相关文章:

  • app使用什么做的网站wordpress自动保存编辑器图片
  • 静态网页发布到wordpress河南关键词优化搜索
  • 从递归到迭代吃透树的层次——力扣104.二叉树的最大深度
  • 基于无监督深度学习方法的非迭代式、不确定性感知的磁共振成像肝脏脂肪定量评估|文献速递-文献分享
  • 如何能把网站做的更大宿主选择 网站建设
  • django rest framework:从零开始搭建RESTful API
  • springboot3加密配置文件的值
  • 抗干扰汽车微型网络(RAMN)开源测试平台的设计
  • wordpress 评测谷歌seo优化什么意思
  • C++手撕无锁线程池
  • kettle Spoon.bat启动报错:could not create the java virtual machine
  • 连云港做网站企业网站建设简单合同
  • DB-GPT AWEL工作流引擎深度解析
  • 提升应用性能:Go中的同步与异步处理
  • OpenAI 最新开源模型 gpt-oss 架构与训练解析
  • 网站片区韶关网站seo
  • 红帽Linux复习-从命令行管理文件、创建查看编辑文本文件
  • C++11(lambda和包装器)
  • 时钟特性约束(四)
  • 免费公司网站如何建立设计品牌网页设计
  • jQuery 尺寸
  • 做木工网站天河建设网站公司排名
  • 嵌入式软件--STM32 SPI通信(上)
  • PHP “真异步“ TrueAsync SAPI 与 NGINX Unit 集成
  • ARCGIS国土超级工具集1.7更新说明
  • 网站如何做信息表美图在线图片编辑器
  • 分布式专题——45 ElasticSearch基础数据管理详解
  • SQLBot:基于大模型与 RAG 的智能问数系统架构
  • 网站系统维护要多久福清市建设工程交易网站好像
  • 在Linux系统上执行 setenv CDS_XVNC_TENBASE + 后重启Virtuoso的作用