基于InceptionV3和迁移学习的 猫咪种类识别和管理系统(第一阶段)

本文介绍了开发一个猫咪种类识别系统的项目,旨在解决猫咪品种识别问题。采用InceptionV3进行迁移学习,降低训练成本,应对小数据集。项目分为三个阶段,包括数据爬取、数据增强、使用QT构建基本界面,并逐步实现功能,如图形界面美化、数据库连接、猫咪识别功能等。最后展示了模型与UI的结合,以及在实际应用中的效果。
摘要由CSDN通过智能技术生成

选题背景

目前随着猫咖、猫店等网红店铺的兴起,养猫这一爱好逐渐进入了大众的视野。从原本小众化的兴趣爱好变身为时尚潮流,意味着越来越多的爱猫养猫人士其实对猫咪品种其实并不熟悉。

猫咪品种种类纷繁复杂,对于刚刚接触的人来说,想要分清并不容易。一方面可能在买猫时会被店家宰割,本来是一只较便宜的土猫,在店家的口中摇身一变变成了进口的波斯猫。另一方面,猫的品种也决定了猫的生活习性和喜好,我们应该根据猫的品种来对猫咪进行照顾。

这一系列的现实原因使得我们萌生了通过开发软件,来对猫的种类进行识别的想法,从而解决了猫咪主人与店家的信息不对称和如何更好的照顾猫咪等问题。

image-20191122200237832

意义分析

对于顾客方面,我们想要开发的软件解决了猫咪主人与店家的信息不对称和如何根据猫的品种更好的照顾猫咪的问题。我们可以对识别出的猫咪快速在系统内实现备案,方便用户记录猫咪的生活照顾情况。
对于店家方面,通过识别系统店家可以快速对店内的猫咪实现管理,对于用户或进货方送往店家的猫咪可以快速进行档案的建立和修改,从而满足管理的需要。

我们选用迁移学习这一训练方法的意义:

  • 训练成本可以很低:如果采用导出特征向量的方法进行迁移学习,后期的训练成本非常低,用 CPU 都完全无压力,没有深度学习机器也可以做。

  • 适用于小数据集:对于数据集本身很小的情况,从头开始训练具有几千万参数的大型神经网络是不现实的,因为越大的模型对数据量的要求越大,过拟合无法避免。这时候如果还想用上大型神经网络的超强特征提取能力,只能靠迁移学习。

第一阶段进展

  • 爬取数据

    ​ 利用爬虫在Google image 爬取到1500张图片作为数据集,计划将数据集8:2分为训练集和测试集,以防止大型的网络由于数据集过小而出现过拟合的情况 。

    image-20191122200651593

  • 数据增强

    在深度学习训练过程中,训练数据是很重要的,在样本量方便,一是要有尽量多的训练样本,二是要保证样本的分布够均匀,也就是各个类别下的样本量都要足够,不能有的很多,有的特别少。但是在我们实际采集猫数据的过程中,虽然已经找到了约1500张,但还是不够多,这就很容易导致训练出的模型过拟合,泛化能力不足。

    于是我们使用了数据增强方法,从已有的图像样本中生造出更多的样本数据,使用一些方法,来随机变换生成一些可信图像,这些通过随机变换生成的图像,要保证从逻辑上不会给模型辨认带来困扰,也就是从分类的角度应该依然属于其原本图像同一类,但是又要与原本的图像有一些区别,这样模型在训练时就不会两次看到完全相同的图像,这样就能够观察到更多的内容,也就提升了泛化能力。

    ImageDataGenerator是keras.preprocessing.image包下的一个类,可以设置图像的这些随机扰动来生成新的图像数据,简单的代码如下所示:

    # -- coding: utf-8 --
    import numpy as np
    from keras.preprocessing import Image
    from keras.preprocessing.image import ImageDataGenerator
    import cv2 as cv
    import os
    
    img = cv.imread("./photo.png")
    img = Image.img_to_array(img)
    img = img.reshape((1,) + img.shape)
    datagen = ImageDataGenerator
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值