软件杯 深度学习猫狗分类 - python opencv cnn

本文介绍了如何使用卷积神经网络(CNN)进行猫狗图像的分类,包括数据集的准备、Tensorflow模型构建、训练过程和预测效果展示。作者详细描述了数据集处理步骤,并展示了训练1万步后模型的平均测试准确率达到了0.82。
摘要由CSDN通过智能技术生成

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 **基于深度学习猫狗分类 **

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

在这里插入图片描述

1 课题背景

要说到深度学习图像分类的经典案例之一,那就是猫狗大战了。猫和狗在外观上的差别还是挺明显的,无论是体型、四肢、脸庞和毛发等等,
都是能通过肉眼很容易区分的。那么如何让机器来识别猫和狗呢?这就需要使用卷积神经网络来实现了。
本项目的主要目标是开发一个可以识别猫狗图像的系统。分析输入图像,然后预测输出。实现的模型可以根据需要扩展到网站或任何移动设备。我们的主要目标是让模型学习猫和狗的各种独特特征。一旦模型的训练完成,它将能够区分猫和狗的图像。

2 使用CNN进行猫狗分类

卷积神经网络 (CNN)
是一种算法,将图像作为输入,然后为图像的所有方面分配权重和偏差,从而区分彼此。神经网络可以通过使用成批的图像进行训练,每个图像都有一个标签来识别图像的真实性质(这里是猫或狗)。一个批次可以包含十分之几到数百个图像。

对于每张图像,将网络预测与相应的现有标签进行比较,并评估整个批次的网络预测与真实值之间的距离。然后,修改网络参数以最小化距离,从而增加网络的预测能力。类似地,每个批次的训练过程都是类似的。
在这里插入图片描述

3 数据集处理

猫狗照片的数据集直接从kaggle官网下载即可,下载后解压,这是我下载的数据:
在这里插入图片描述在这里插入图片描述
相关代码



    import os,shutil
    
    original_data_dir = "G:/Data/Kaggle/dogcat/train"
    base_dir = "G:/Data/Kaggle/dogcat/smallData"
    if os.path.isdir(base_dir) == False:
        os.mkdir(base_dir)
    
    # 创建三个文件夹用来存放不同的数据:train,validation,test
    train_dir = os.path.join(base_dir,'train')
    if os.path.isdir(train_dir) == False:
        os.mkdir(train_dir)
    validation_dir = os.path.join(base_dir,'validation')
    if os.path.isdir(validation_dir) == False:
        os.mkdir(validation_dir)
    test_dir = os.path.join(base_dir,'test')
    if os.path.isdir(test_dir) == False:
        os.mkdir(test_dir)
    
    # 在文件中:train,validation,test分别创建cats,dogs文件夹用来存放对应的数据
    train_cats_dir = os.path.join(train_dir,'cats')
    if os.path.isdir(train_cats_dir) == False:
        os.mkdir(train_cats_dir)
    train_dogs_dir = os.path.join(train_dir,'dogs')
    if os.path.isdir(train_dogs_dir) == False:
        os.mkdir(train_dogs_dir)
    
    validation_cats_dir = os.path.join(validation_dir,'cats')
    if os.path.isdir(validation_cats_dir) == False:
        os.mkdir(validation_cats_dir)
    validation_dogs_dir = os.path.join(validation_dir,'dogs')
    if os.path.isdir(validation_dogs_dir) == False:
        os.mkdir(validation_dogs_dir)
    
    test_cats_dir = os.path.join(test_dir,'cats')
    if os.path.isdir(test_cats_dir) == False:
        os.mkdir(test_cats_dir)
    test_dogs_dir = os.path.join(test_dir,'dogs')
    if os.path.isdir(test_dogs_dir) ==
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值