import tqdm
import numpy as np
from matplotlib import pyplot as plt
import cv2 as cv
import tensorflow as tf
from tensorflow.keras.models import *
from tensorflow.keras.layers import *
from tensorflow.keras.losses import *
from tensorflow.keras.optimizers import *
from tensorflow.keras import backend as K
original = cv.imread('original77.jpg')
original = cv.resize(original,(224,224))
dress = cv.imread('dress77.jpg')
dress = cv.resize(dress,(224,224))
body = cv.imread('body77.jpg')
body = cv.resize(body,(224,224))
plt.figure(figsize=(16,8))
plt.subplot(1,3,1)
plt.title('Original')
plt.imshow(cv.cvtColor(original, cv.COLOR_BGRA2RGB))
plt.subplot(1,3,2)
plt.title('Person')
plt.imshow(cv.cvtColor(body, cv.COLOR_BGRA2RGB))
plt.subplot(1,3,3)
plt.title('Dress')
plt.imshow(cv.cvtColor(dress, cv.COLOR_BGRA2RGB))
dress = cv.imread('dress77.jpg',0)
body = cv.imread('body77.jpg',0)
### ENCODE DRESS ###
dress[dress == 255] = 0
dress[dress > 0] = 255
dress = cv.resize(dress,(224,224))
### ENCODE BODY ###
body[body == 255] = 0
body[body > 0] = 255
body = cv.resize(body,(224,224))
### ENCODE SKIN ###
skin = body - dress
plt.figure(figsize=(16,8))
plt.subplot(1,3,1)
plt.title('Person/Background')
bg = (255 - body)/255
plt.imshow(bg)
plt.subplot(1,3,2)
plt.title('Skin')
skin = (255 - skin)/255
plt.imshow(skin)
plt.subplot(1,3,3)
plt.title('Dress')
dress = (255 - dress)/255
plt.imshow(dress)
gt = np.zeros((224,224,3))
gt[:,:,0] = (1-skin)
gt[:,:,1] = (1-dress)
gt[:,:,2] = bg
plt.figure(figsize=(6,6))
plt.imshow(gt)
images_original = []
images_gt = []
mean = np.zeros((224,224,3))
n_img = 77
for i in tqdm.tqdm(range(1,n_img+1)):
original = cv.imread('./original77.jpg')
original = cv.resize(original,(224,224))
images_original.append(original)
mean[:,:,0]=mean[:,:,0]+original[:,:,0]
mean[:,:,1]=mean[:,:,1]+original[:,:,1]
mean[:,:,2]=mean[:,:,2]+original[:,:,2]
body = cv.imread('./body77.jpg',0)
dress = cv.imread('./dress77.jpg',0)
dress[dress == 255] = 0
dress[dress > 0] = 255
dress = cv.resize(dress,(224,224))
body[body == 255] = 0
body[body > 0] = 255
body = cv.resize(body,(224,224))
skin = body - dress
bg = (255 - body)/255
skin = (255 - skin)/255
dress = (255 - dress)/255
gt = np.zeros((224,224,3))
gt[:,:,0] = (1-skin)
gt[:,:,1] = (1-dress)
gt[:,:,2] = bg
images_gt.append(gt)
mean = mean / n_img
mean = mean.reshape((-1,224,224,3))
images_original = np.asarray(images_original)
images_gt = np.asarray(images_gt)
def get_unet(mean_pixels, do_rate=0):
inputs = Input((None, None, 3))
preproc = Lambda(lambda x: (x - tf.constant(mean_pixels, dtype=tf.float32)))(inputs)
conv1 = Dropout(do_rate)(Conv2D(32, (3, 3), padding='same', activation='relu')(preproc))
conv1 = Dropout(do_rate)(Conv2D(32, (3, 3), padding='same', activation='relu')(conv1))
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
conv2 = Dropout(do_rate)(Conv2D(64, (3, 3), padding='same', activation='relu')(pool1))
conv2 = Dropout(do_rate)(Conv2D(64, (3, 3), padding='same', activation='relu')(conv2))
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
conv3 = Dropout(do_rate)(Conv2D(128, (3, 3), padding='same', activation='relu')(pool2))
conv3 = Dropout(do_rate)(Conv2D(128, (3, 3), padding='same', activation='relu')(conv3))
pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)
conv4 = Dropout(do_rate)(Conv2D(256, (3, 3), padding='same', activation='relu')(pool3))
conv4 = Dropout(do_rate)(Conv2D(256, (3, 3), padding='same', activation='relu')(conv4))
pool4 = MaxPooling2D(pool_size=(2, 2))(conv4)
conv5 = Dropout(do_rate)(Conv2D(512, (3, 3), padding='same', activation='relu')(pool4))
conv5 = Dropout(do_rate)(Conv2D(512, (3, 3), padding='same', activation='relu')(conv5))
up6 = concatenate([Conv2DTranspose(256, (2, 2), strides=(2, 2), padding='same')(conv5), conv4], axis=3)
conv6 = Dropout(do_rate)(Conv2D(256, (3, 3), padding='same', activation='relu')(up6))
conv6 = Dropout(do_rate)(Conv2D(256, (3, 3), padding='same', activation='relu')(conv6))
up7 = concatenate([Conv2DTranspose(128, (2, 2), strides=(2, 2), padding='same')(conv6), conv3], axis=3)
conv7 = Dropout(do_rate)(Conv2D(128, (3, 3), padding='same', activation='relu')(up7))
conv7 = Dropout(do_rate)(Conv2D(128, (3, 3), padding='same', activation='relu')(conv7))
up8 = concatenate([Conv2DTranspose(64, (2, 2), strides=(2, 2), padding='same')(conv7), conv2], axis=3)
conv8 = Dropout(do_rate)(Conv2D(64, (3, 3), padding='same', activation='relu')(up8))
conv8 = Dropout(do_rate)(Conv2D(64, (3, 3), padding='same', activation='relu')(conv8))
up9 = concatenate([Conv2DTranspose(32, (2, 2), strides=(2, 2), padding='same')(conv8), conv1], axis=3)
conv9 = Dropout(do_rate)(Conv2D(32, (3, 3), padding='same', activation='relu')(up9))
conv9 = Dropout(do_rate)(Conv2D(32, (3, 3), padding='same', activation='relu')(conv9))
conv10 = Conv2D(3, (1, 1), activation='sigmoid')(conv9)
model = Model(inputs=inputs, outputs=conv10)
model.compile(optimizer=Adam(lr=1e-3), loss='binary_crossentropy', metrics=['accuracy'])
return model
model = get_unet(mean)
model.fit(images_original, images_gt, epochs=120)
model.save('./fashion_unet.h5')
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于CNN卷积神经网络的衣服识别系统python源码+运行说明.zip基于CNN卷积神经网络的衣服识别系统python源码+运行说明.zip基于CNN卷积神经网络的衣服识别系统python源码+运行说明.zip基于CNN卷积神经网络的衣服识别系统python源码+运行说明.zip基于CNN卷积神经网络的衣服识别系统python源码+运行说明.zip 如何运行本项目: 1.安装依赖 ```bash pip install tensorflow==2.7.0 pip install opencv-python pip install matplotlib ``` 2.运行Train_UNET.ipynb 3.运行Extract_Dress.ipynb 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论




























收起资源包目录























共 20 条
- 1
资源评论


onnx
- 粉丝: 1w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 软件配置管理规定(1).docx
- 电子商务B第17讲(1).pptx
- XX药业信息化建设(1).ppt
- 对于信息化教学手段运用的思考(1).docx
- 图书管理系统课程设计报告(2)(1).docx
- 计算机网络安全中数据加密技术应用研究(1).docx
- 牙刷传动杆轴承嵌入治具--机械制造与自动化毕业设计论文(1).doc
- 软件工程学习心得体会(1).docx
- C语言简答题答案(5页).doc
- 行动导向教学法在中职计算机网络教学中的应用研究(1).docx
- 基于-区域定位-的停车场和实时交通查询并迅捷停车系统的软件可行性分析报告(2)(1).doc
- c语言超市管理系统课程设计(1)(1).doc
- 面向中国制造2025的计算机辅助工业设计教学改革(1).docx
- 中小企业计算机网络安全管理细则(2)(1).doc
- 【推荐下载】【盘点】2016年工业自动化行业十大新闻(1).pdf
- 编译原理讲义PPT资料(1).pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
