目录

介绍

加载数据集

从Keras加载预训练模型 (VGG16)

下一步


  • 下载源 - 120.7 MB

介绍

DeepFashion等数据集的可用性为时尚行业开辟了新的可能性。在本系列文章中,我们将展示一个人工智能驱动的深度学习系统,它可以帮助我们更好地了解客户的需求,从而彻底改变时装设计行业。

在这个项目中,我们将使用:

  • Jupyter Notebook作为IDE
  • 库:
    • TensorFlow 2.0
    • NumPy
    • MatplotLib
  • DeepFashion数据集的自定义子集——相对较小以减少计算和内存开销

我们假设您熟悉深度学习的概念,以及Jupyter Notebooks和TensorFlow。如果您是 Jupyter Notebooks的新手,请从本教程开始。欢迎您下载项目代码。

在上一篇文章中,我们讨论了要使用的数据子集,并制定了问题。在本文中,我们将迁移学习应用于VGG16深度网络,以对来自DeepFashion数据集的图像中的衣服进行分类。我们将微调VGG16预训练模型以适应将衣服分为15个不同类别的任务。网络将在包含9,935张图像的子集上进行训练。

加载数据集

在这个项目中,我们将使用TensorFlow和Keras对VGG16进行微调,因为Keras提供了用于加载数据、加载预训练模型和微调的易于使用的工具。ImageDataGenerator工具将帮助我们加载、规范化、调整大小和重新缩放数据。

首先,让我们导入我们需要的库:

import os
import matplotlib.pyplot as plt
import matplotlib.image as img
import tensorflow.keras as keras
import numpy as np
import tensorflow as tf
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
tf.compat.v1.keras.backend.set_session(tf.compat.v1.Session(config=config))

现在我们有了基础知识,让我们导入ImageDataGenerator,添加我们的数据目录,然后开始加载训练和验证数据。验证数据将仅占我们训练数据的10%:我们只需要验证数据在训练期间微调VGG16的超参数。我们在这部分代码中设置了批量大小。您可以设置其值以适合您的机器能力和内存。

datasetdir = r'C:\Users\myuser\Desktop\\DeepFashion\Train'
os.chdir(datasetdir)
from tensorflow.keras.preprocessing.image import ImageDataGenerator
batch_size = 3def DataLoad(shape, preprocessing): '''Create the training and validation datasets for a given image shape.'''imgdatagen = ImageDataGenerator(preprocessing_function = preprocessing,horizontal_flip = True, validation_split = 0.1,)height, width = shapetrain_dataset = imgdatagen.flow_from_directory(os.getcwd(),target_size = (height, width), classes = ['Blazer', 'Blouse', 'Cardigan', 'Dress', 'Jacket','Jeans', 'Jumpsuit', 'Romper', 'Shorts', 'Skirts', 'Sweater', 'Sweatpants', 'Tank', 'Tee', 'Top'],batch_size = batch_size,subset = 'training', )val_dataset = imgdatagen.flow_from_directory(os.getcwd(),target_size = (height, width), classes = ['Blazer', 'Blouse', 'Cardigan', 'Dress', 'Jacket','Jeans', 'Jumpsuit', 'Romper', 'Shorts', 'Skirts', 'Sweater', 'Sweatpants', 'Tank', 'Tee', 'Top'],batch_size = batch_size,subset = 'validation')return train_dataset, val_dataset

现在DalaLoad函数已设置,让我们使用它来提取我们的训练和验证数据,并将图像调整为适合我们预训练模型的形状:224 x 224 x 3。

train_dataset, val_dataset = DataLoad((224,224), preprocessing=vgg16.preprocess_input)

我们现在可以在顺序加载单个数据集的图像时将ImageDataGenerator的next函数用作迭代器。使用next,您将分别将训练图像和标签保存在X_train和y_train参数中。您可以将相同的函数应用于验证和测试数据。

# Function for plots images with labels within jupyter notebook
X_train, y_train = next(train_dataset)

如您所见,我们有7,656张图像作为训练数据,属于15个不同的类别,以及842张验证图像。

从Keras加载预训练模型 (VGG16)

是时候从Keras加载VGG16网络并显示其基线了:

vgg16 = keras.applications.vgg16
conv_model = vgg16.VGG16(weights='imagenet', include_top=False)
conv_model.summary()

接下来,我们加载该网络的ImageNet权重,以便我们可以在迁移学习期间使用它们。

conv_model = vgg16.VGG16(weights='imagenet', include_top=False, input_shape=(224,224,3))

加载网络基线及其相应的权重后,让我们开始重构VGG16以对15种不同的服装类别进行分类。为此,我们将添加一个展平层、三个100个节点的密集层、一个15层的密集层代表15个服装类别,以及一个Softmax层来显示类别(类别)概率。

# flatten the output of the convolutional part:
x = keras.layers.Flatten()(conv_model.output)
# three hidden layers
x = keras.layers.Dense(100, activation='relu')(x)
x = keras.layers.Dense(100, activation='relu')(x)
x = keras.layers.Dense(100, activation='relu')(x)
# final softmax layer with 15 categories
predictions = keras.layers.Dense(15, activation='softmax')(x)# creating the full model:
full_model = keras.models.Model(inputs=conv_model.input, outputs=predictions)
full_model.summary()

下一步

在接下来的文章中,我们将向你展示如何训练VGG19以认识人们穿的什么衣服。敬请关注!

https://www.codeproject.com/Articles/5297322/Preparing-Data-for-AI-Fashion-Classification

(二)为AI时尚分类准备数据相关推荐

  1. (四)在真实数据上运行AI时尚分类

    目录 介绍 评估测试图像 计算错误分类图像的数量 使用特定数据集评估模型 使用相机图像评估模型 提升网络性能 下一步 下载源 - 120.7 MB 介绍 DeepFashion等数据集的可用性为时尚行 ...

  2. 【数据竞赛】京东AI时尚挑战赛总结

    比赛名称:京东AI时尚挑战赛 比赛链接:https://fashion-challenge.github.io 比赛类型:计算机视觉.图像分类/检索 分享内容:比赛介绍 & 优胜选手思路 比赛 ...

  3. 大数据早报:合肥公证机构启用人脸识别系统;阿里AI时尚助手进驻全国13家门店 (11.16)

    数据早知道,上乐投网看早报! 『融资』众盟数据完成3亿元B轮系列融资,以线下数据资产化赋能新零售 近日,国内最大的线下数据服务平台ZMT众盟(简称众盟数据)宣布完成1.8亿元B+轮融资,本轮融资由云锋 ...

  4. 38-博客网站数据库-博文分类信息数据操作(二)

    38-博客网站数据库-博文分类信息数据操作(二) 项目描述 当今网上微博.博客发布信息已经成为主要的信息发布.传播的系统,如何对这些数据进行管理,本项目主要是对博客网站中的博文分类信息表.博文信息表进 ...

  5. 极市电大 | 京东AI时尚挑战赛Top3技术方案

    一.京东AI时尚挑战赛Top3﹀ 北京时间2018年9月16日,由京东AI平台与研究部发起的从七月开始的京东AI时尚挑战赛正式在ChinaMM2018大会上圆满落幕! 大会现场 而经过两个多月的角逐, ...

  6. 【科普】AI的分类与演进

    来源:物联网智库 摘要:AI是人工通过高强度的计算能力,并基于大量的环境数据.行为数据.历史数据等大数据支持,或是一定规则的自学习机制,来分析特定输入的情况下,事物的相关性.影响和可能处理方法,从而使 ...

  7. cuda二维数组内存分配和数据拷贝

    uda二维数组内存分配和数据拷贝 2016-04-20 10:54 138人阅读 评论(0) 收藏 举报 分类: 机器学习(11) 人工智能(9) 版权声明:本文为博主原创文章,允许转载. 因为cud ...

  8. AI时尚前沿趋势,时尚黑客聚集ing |FashionHack专栏

    - AI DISCOVERY - 算法 + 怀旧 + 2020  = 我们的未来 央美讲座<后疫情时代艺术.时尚和品牌对社会的贡献> 法国奢侈品牌路易威登现任男装艺术总监 Virgil A ...

  9. Adaboost方法分类新闻数据

    使用Adaboost方法,以一级决策树树桩(Stump)为基础建立弱分类器,形式为:(feature, threshold, positive/negtive). 设定的最大轮数为20,最终使用了16 ...

最新文章

  1. react-router-dom v6 中的Routes
  2. SAP PM入门系列33 - IP16 维修计划报表
  3. Python 生成exe文件报错:ImportError: unable to find Qt5Core.dll on PATH
  4. XCode中安装cocoapods步骤
  5. RedisDesktopManager客户端可视化工具下载安装与使用
  6. windows下nodejs环境配置
  7. git(6)---Repo 命令参考资料
  8. “别了,小黄文” 微信打击低俗小说:2019年处理违规账号6.6万+
  9. python命名实体识别工具_Day14:使用斯坦福 NER 软件包实现你自己的命名实体识别器(Named Entity Recognition,NER)...
  10. gvdp哪个工厂用_ppr铝塑管和ppr水管哪个更适合家装?
  11. sql server小知识
  12. C#反编译工具ilspy下载地址
  13. ajax异步数据加载
  14. 36.42. schemata
  15. 二维码扫码功能流程图
  16. 2019 年中国搜索引擎市场份额排行榜
  17. Parallels Desktop 网络初始化失败
  18. 联想国产自主计算机,实现零的突破,第一款纯国产电脑诞生,网友:此刻联想怎么想?...
  19. 看表情读情绪:AI“察言观色”背后的表情识别数据
  20. VMware下载安装、虚拟机创建、CentOS8镜像下载配置的具体步骤

热门文章

  1. 还服务器网站被k,导致网站被K的主要原因,看看你有没有中招!
  2. 64位树莓派运行linux,树莓派3B+安装64位debian GUN/Linux系统
  3. c保留小数点后三位数没有则为0_C语言中……“计算结果保留三位小数。”怎么表示?...
  4. 一稿过的Banner模板素材!做电商的你一定需要
  5. 海报设计素材|中国风的插画设计,国画浓抹中国色彩
  6. 手机应用UI设计示例+模板|为了在下一个应用程序设计项目找到灵感
  7. 海报设计素材模板|炫彩创意PSD分层时尚艺术海报 ​​​​
  8. ssm如何在mapper插入实时的时间_第一个ssm整合
  9. Bottlerocket:一套专用型容器操作系统
  10. java定时器每一分钟执行一次_2行代码搞定一个定时器