如何行使深度学习模型构建选举体系?(详细案例分析)


全文共3095字,展望学习时长9分钟

来源:Pexels

本文将注释如何整相符深度学习模型,构建服装选举体系。

吾们想要竖立一个服装选举体系,能够行使四栽深度学习模型来获取用户服装行使的主要特征。

选举体系可分为4类:

基于产品特性的选举基于其他用户对产品的走为的选举基于用户清淡特征的选举基于上述众项标准的选举

来源:Pexels

在案例中,吾们将按照用户和产品特性挑出提出。计入考虑的用户特征是性别、年龄和体重指数(BMI)。计入考虑的产品特征是用户所穿的衣服类型。因此,吾们必要一张用户的照片,对一切特征进走展望,选举响答的服装。

将从用户的全身图像中获得服装特征。

行使名为AlphaPose的人体姿态推想体系来确定用户是否完善。AlphaPose检测一幼我的19个点。倘若检测到起码17个点,就认定是完善人形。

图1: AlphaPose推想体系

吾们重新训练了网上最著名的其中一栽分类器——YOLO v3。YOLO同时也是最准确的图像分类器之一。用于训练的数据集是一组重大的 MMLAB 数据集,DeepFashion。

行使的另一个模型是 Dlib,get_frontal_face_detector()函数。此模型由 5 个 HOG 筛选器构建。模型检测前视图面和侧视图面。之因此选择该模型是由于它速度快且准确。在检测年龄和性别时,吾们按照数据科学的文章,行使 openCV 和卷积神经网络对年龄和性别进走分类。

基于一篇名为《行使Keras和迁移学习从人脸图像中推想身体质量指数》(Estimating Body Mass Index from face images using Keras andtransfer learning)的文章对IMC进走推想。

图2:选举体系的体系组织

模型集成

一切代码都是行使一些计算机视觉库(如 OpenCV)和一些深度学习框架(如Keras)在 Python3.5 中编写的。

detector =dlib.get_frontal_face_detector()# Carga de modelos# CNNage_net, gender_net =load_caffe_models()# Boddy Mass Indexmodel_bmi = get_trained_model()### Face Detectionimg_h, img_w, _ = np.shape(image)detected = detector(image, 1)faces=np.empty((1,config.RESNET50_DEFAULT_IMG_WIDTH, 3))config.RESNET50_DEFAULT_IMG_WIDTH,detection= {}if len(detected) > 0: for i,d in enumerate(detected): x1, y1, x2, y2, w, h = d.left(),d.top(), d.right() 1, d.bottom() 1, d.width(), d.height() xw1 = max(int(x1 - margin * w), 0) yw1 = max(int(y1 - margin * h), 0) xw2 = min(int(x2 margin * w), img_w - 1) yw2 = min(int(y2 margin * h), img_h - 1) cv2.rectangle(image, (xw1, yw1),(xw2, yw2),新闻中心 (255, 0, 0), 2) #Get Face face_img = frame[yw1:yw2,xw1:xw2].copy() # Estimación age, gender = get_age_and_gender(face_img,age_net, gender_net) # Boddy Mass Index faces[0,:,:,:]=cv2.resize(face_img,(config.RESNET50_DEFAULT_IMG_WIDTH,3 )) /255.00 bmi = round(float(model_bmi.predict(faces)[0][0]),2) detection[i]={'gender':gender, 'age':age, 'bmi':bmi}

经历这些代码,将模型添载到RAM中进走姿态推想(poseestimation)。为了估测年龄、性别和BMI,吾们还剪切了脸部所在的区域。然后,行使 YOLO 对衣服进走分类,表现选举的衣服类型。

def eval_cloth(img_test,categoria_test, size_test): filename = './ClothEmbedding/X_reduced2.sav' X_reduced, hasher, pca, df =joblib.load(filename) img = cv2.imread(img_test) img_c = cv2.resize(img, (80, 80), interpolation=cv2.INTER_CUBIC) img_data_test = img_c.reshape(-1).astype(np.float32) img_transformed =hasher.transform(img_data_test.reshape(1, -1)) img_reduced =pca.transform(img_transformed) # Distancia entre la muestra y la basede datos dist = [np.linalg.norm(img_reduced-e) for e in X_reduced] df['distance'] =dist df_test = df.sort_values(['distance']) # Se conserva sólo la categiríarequerida df_test = df_test[df_test['categoria2'] == categoria_test] # Se conservan sólo las tallasrequeridas cat_ns = ['tacones', 'chanclas', 'botas', 'bolsa', 'ropa_interior'] ifnot(categoria_test in cat_ns): if(len(size_test) == 2): true_table = [(size_test[0] in sizes_r or size_test[1] in sizes_r) for sizes_r in df_test['tallas']] else: true_table = [size_test[0] in sizes_r for sizes_r in df_test['tallas']] df_test = df_test[true_table] returndf_test

末了一个功能会授与人和衣服的一切新闻。将服装特性与数据库中的服装进走比对。会选举与用户身着相通的服装。

末了,考虑到用户体验,就做了一个前端。

图3:为选举体系构建Web试图

感谢浏览!记得踊跃说话哟~

留言点赞关注

吾们一首分享AI学习与发展的干货

如转载,请后台留言,按照转载规范