28
I 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER] 受控状态:■受控 □非受控 保密级别:□公司级 □部门级 ■项目级 □普通级 采纳标准:CMMI DEV V1.2 智能衣物搭配系统 Clothes Partner 项目开发文档 Version 1.0 2018.05.16 Written by 四个菜鸡 Squard All Rights Reserved

智能衣物搭配系统 - Intel Developer Zone...18-65 岁的女人一生挑选合适的衣服累计 耗时约5 个月,而有选择性障碍症的女性,一生花在选衣服上的时间

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • I

    文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER] 受控状态:■受控 □非受控 保密级别:□公司级 □部门级 ■项目级 □普通级 采纳标准:CMMI DEV V1.2

    智能衣物搭配系统 Clothes Partner

    项目开发文档 Version 1.0

    2018.05.16

    Written by 四个菜鸡 Squard

    All Rights Reserved

  • II

    目录

    1 引言......................................................................................................................... 1 1.1 编写目的 ................................................................................................... 1 1.2 项目背景 ................................................................................................... 1 1.3 术语和缩略语 ........................................................................................... 1 1.4 参考资料 ................................................................................................... 2 1.5 项目定位 ................................................................................................... 2

    1.5.1 应用场景 ............................................................................................ 3 1.5.2 目标人群 ............................................................................................ 3

    1.6 项目目标 ................................................................................................... 3 1.7 解决思路 ................................................................................................... 3

    2 需求分析 ................................................................................................................ 3 2.1 功能需求 ................................................................................................... 4

    2.1.1 功能模块结构图 ................................................................................ 4 2.1.2 核心功能模块描述 ............................................................................ 4

    2.2 非功能性需求 ........................................................................................... 5 2.2.1 扩展性和可维护性 ............................................................................ 5 2.2.2 易用性 ................................................................................................ 5

    2.3 运行需求 ................................................................................................... 5 2.3.1 硬件接口 ............................................................................................ 5 2.3.2 软件接口 ............................................................................................ 5

    2.4 用例图 ....................................................................................................... 6 3 概要设计 ................................................................................................................ 6

    3.1 处理流程 ................................................................................................... 6 3.2 总体结构和模块设计 ............................................................................... 7 3.3 功能分配 ................................................................................................... 7 3.4 接口设计 ................................................................................................... 7

    3.4.1 外部接口 ............................................................................................ 7 3.4.2 内部接口 ............................................................................................ 8

    3.5 数据结构设计 ........................................................................................... 8 3.5.1 逻辑结构设计 .................................................................................... 9 3.5.2 物理结构设计 .................................................................................... 9 3.5.3 数据结构与程序的关系 .................................................................... 9

    3.6 运行设计 ................................................................................................. 10 3.6.1 运行模块关系 .................................................................................. 10 3.6.2 运行控制 .......................................................................................... 10 3.6.3 运行时间 .......................................................................................... 10

    3.7 错误/异常处理设计 ............................................................................... 11 3.7.1 错误/异常输出信息 ........................................................................ 11 3.7.2 错误/异常处理对策 ........................................................................ 11

    3.8 系统配置策略 ......................................................................................... 12

  • III

    3.9 系统部署方案 ......................................................................................... 12 4 数据库设计 .......................................................................................................... 13

    4.1 逻辑模型 ................................................................................................. 13 4.2 物理模型 ................................................................................................. 14 4.3 ER 图 ...................................................................................................... 15 4.4 字段详细说明 ......................................................................................... 15

    4.4.1 服装表 .............................................................................................. 15 4.4.2 图片表 .............................................................................................. 16 4.4.3 用户选择衣物历史表 ...................................................................... 16 4.4.4 用户表 .............................................................................................. 16

    5 详细设计 .............................................................................................................. 17 5.1 服务端功能模块 ..................................................................................... 17

    5.1.1 功能描述 .......................................................................................... 17 5.1.2 性能描述 .......................................................................................... 17 5.1.3 输入 .................................................................................................. 17 5.1.4 输出 .................................................................................................. 17 5.1.5 程序逻辑 .......................................................................................... 18 5.1.6 限制条件 .......................................................................................... 18

    5.2 客户端功能模块 ..................................................................................... 18 5.2.1 功能描述 .......................................................................................... 18 5.2.2 性能描述 .......................................................................................... 18 5.2.3 程序逻辑 .......................................................................................... 19

    5.3 衣物解析功能模块 ................................................................................. 19 5.3.1 功能描述 .......................................................................................... 19 5.3.2 性能描述 .......................................................................................... 19 5.3.3 输入 .................................................................................................. 19 5.3.4 输出 .................................................................................................. 19 5.3.5 算法 .................................................................................................. 19 5.3.6 程序逻辑 .......................................................................................... 21

    5.4 服装搭配 ................................................................................................. 21 5.4.1 功能描述 .......................................................................................... 21 5.4.2 输入 .................................................................................................. 21 5.4.3 功能描述 .......................................................................................... 21 5.4.4 算法 .................................................................................................. 22

  • IV

    记录更改历史 序号 更改原因 版本 作者 更改日期 备 注

    1 完成了需求分析 0.1 队员 1 5.13

    2 完成了概要设计 0.2 队员 2 5.14

    3. 补充了需求分析 0.21 队员 2 5.14

    4 完成了部分详细

    设计 0.3 队员 4 5.16

  • V

  • 项目名称 文件编号:四个菜鸡 SWC2018-Squard

    1

    1 引言

    1.1 编写目的

    明确任务和需求 使得软件开发人员知道软件开发流程,软件测

    试时更有条理。

    1.2 项目背景

    在人们物质文化需求日益增长的今天,“穿的好看”已经越来越

    多的受到人们的重视。现在,人们穿衣除了要满足以前的基本需求外,

    还要追求漂亮、体面、适合等高端需求。然而,现实中多数人群常常

    因为衣物的各式各样的款式以及五花八门的颜色而烦恼,很难再琳琅

    满目的衣物中快速选择出合适、漂亮、得体的搭配。同时,随着网络

    购物的兴起,人们在享受网购的便捷的同时,也面临着无法预知衣物

    是否合体的困境。据统计,18-65 岁的女人一生挑选合适的衣服累计

    耗时约 5 个月,而有选择性障碍症的女性,一生花在选衣服上的时间

    更是倍增。如何才能使得衣物的选择与搭配更加便捷,并且符合适合

    客户本身?因此,本团队开发了这款“智能衣物搭配系统”来尝试解

    决这些难题

    1.3 术语和缩略语

    [1] Android: Android 是一种基于 Linux 的自由及开放源代码的

    操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    2

    公司和开放手机联盟领导及开发。

    [2] AI: Artificial Intelligence,即人工智能。研究、开发用于模拟、

    延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术

    科学。

    [3] 神经网络:它是一种模仿动物神经网络行为特征,进行分布

    式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通

    过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

    [4]CNN: 卷积神经网络,是一种前馈神经网络,人工神经元可

    以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层

    和池化层。

    1.4 参考资料

    [1] Pongsate Tangseng, Zhipeng Wu, Kota Yamaguchi. Looking at

    Outfit to Parse Clothing. ICCV. 2017.

    [2] Jonathan Long, Evan Shelhamer, Trevor Darrell. Fully

    Convolutional Networks for Semantic Segmentation. CVPR. 2015.

    [3] P Krähenbühl,Vladlen Koltun. Efficient Inference in Fully

    Connected CRFs with Gaussian Edge Potentials. NIPS. 2012.

    [4]. Song X, Feng F, Liu J, et al. NeuroStylist: Neural Compatibility

    Modeling for Clothing Matching[C]//Proceedings of the 2017 ACM on

    Multimedia Conference. ACM, 2017: 753-761.

    [5]. Girshick R. Fast r-cnn[J]. arXiv preprint arXiv:1504.08083, 2015.

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    3

    [6]. Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time

    object detection with region proposal networks[C]//Advances in neural

    information processing systems. 2015: 91-99.

    [7] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification

    with deep convolutional neural networks[C]//Advancaes in neural

    information processing systems. 2012: 1097-1105.

    1.5 项目定位

    1.5.1 应用场景

    在线上购衣时为客户提供客观有效的评分作为购衣时的参考,同

    时为客户推荐更为合适的穿着。

    1.5.2 目标人群

    该项目目标人群为处在 14-60 年龄段参与线上购物的女性群体。

    1.6 项目目标

    能够为目标人群在购物时提供准确有效的参考。

    1.7 解决思路

    2 需求分析

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    4

    2.1 功能需求

    2.1.1 功能模块结构图

    2.1.2 核心功能模块描述

    表 核心功能模块描述

    功能模

    块 功能 功能描述 优先级

    评分模

    块 为客户的穿

    着评分 能够接受客户的穿着图片,并返回用

    户该着装的评分 A

    推荐模

    块 为用户进行

    推荐 为用户提供可能喜欢衣服的推荐

    B

    换衣模

    为用户更换

    更喜欢的衣

    在用户选择衣物后将衣服与提供图片

    的衣物进行置换

    D

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    5

    2.2 非功能性需求

    2.2.1 扩展性和可维护性

    在实现以上功能的基础上,软件能当能在需求变更时能够轻易拓

    展新的功能。

    2.2.2 易用性

    软件要求初次使用的用户也能轻松使用软件的功能,在令用户困

    惑的地方需要拥有提示语。

    2.3 运行需求

    2.3.1 硬件接口

    服务端运行于 Intel 或其他微型计算机上,内存需求为 4G 及以

    上,硬盘需在 20G 以上。

    客户端运行于拥有现代浏览器的终端或安卓设备上。

    2.3.2 软件接口

    服务端要求系统应为 CentOS6.0 及以上或 ubuntu14.04 及以上,

    需要安装有 IntelCaffe,python3 等软件。

    客户端系统应在 Android4.4 以上或装有 Chrome52+或 Firefox52+。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    6

    2.4 用例图

    3 概要设计

    3.1 处理流程

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    7

    3.2 总体结构和模块设计

    3.3 功能分配

    系统整体上分为三个模块:衣物解析模块,穿着评分模块和置换

    衣物模块。其中衣物解析模块的功能是解析出用户上传图片中的上下

    装,穿着评分模块的功能是对解析出的上下装的搭配程度进行评分,

    置换衣物模块的主要功能是提供衣物推荐清单和在线网络试衣。

    3.4 接口设计

    3.4.1 外部接口

    外部接口主要为直接和用户进行交互的接口。

    接口 功能说明

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    8

    上传图片 用户上传具有上下装的图片的接口,上

    传的图片作为衣物解析、穿着评分、置

    换衣物的基础 注册 系统获取用户基本信息的接口 登录 用户登录系统的接口

    3.4.2 内部接口

    接口 功能说明 衣物解析模块和穿着

    评分模块之间的接口 定义数据传递时的格式

    置换衣物模块和数据

    库之间的接口 查询衣物数据

    推荐服务层和数据库

    之间的接口 根据用户画像产生个性化推荐数据

    3.5 数据结构设计

    衣物解析模块数据结构设计:

    穿着评分模块数据结构设计:

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    9

    3.5.1 逻辑结构设计

    3.5.2 物理结构设计

    对数据库表建立索引以提高数据库查询效率。

    3.5.3 数据结构与程序的关系

    衣物推荐和在线换装功能需要访问数据库数据结构,也对就是数

    据库进行查询和修改。

    物理数据结构主要用于各模块之间函数的信息传递。接口传递的

    信息将是以数据结构封装了的数据,以参数传递或者返回值的形式在

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    10

    各模块之间传输。

    3.6 运行设计

    3.6.1 运行模块关系

    在用户上传图片后,衣物解析模块和着装评分模块将相继被调用,

    随后根据用户的穿衣习惯为用户进行衣物推荐和在线换装服务,此时

    衣物推荐模块和在线试衣模块将会被调用。

    3.6.2 运行控制

    运行控制将严格按照各模块间函数调用关系来实现。在各模块中,

    需对运行控制进行正确的判断,选择正确的运行控制路径。

    在网络传输方面,客户端在发送数据后,将等待服务器的确认信

    号,收到该信号后,再次等待服务器发送应答数据,然后对数据进行

    确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据

    库后,将返回信息返回客户端,并等待确认。

    3.6.3 运行时间

    在软体的需求分析中,对运行时间的要求为必须对作出的操作有

    较快的反应。网络硬件对运行时间有最大的影响,当网络负载量大时,

    对操作反应将受到很大的影响。所以系统各模块尽量避免在客户端与

    服务器之间建立连接,以减少网络传输上的开销。其次是服务器的性

    能,如内存大小、CPU 性能、显卡性能等,这将影响对数据库访问时

    间即操作时间的长短,影响加大客户机操作的等待时间。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    11

    3.7 错误/异常处理设计

    3.7.1 错误/异常输出信息

    程序在运行时主要会出现两种错误:1、由于输入信息无法满足

    要求时产生的错误称为软错误。2、由于其他问题,如网络传输超时

    等,产生的问题,称为硬错误。

    对于软错误,须对在用户接口处获取到的用户上传的数据进行预处理,

    对不符合系统要求的数据抛出异常,并在客户端进行错误提示。

    对于硬错误,可将模块初始化后进行重试。返回到输入阶段,出

    错信息必须给出相应的出错原因。例如:网络连接中断,服务器未响

    应等。

    3.7.2 错误/异常处理对策

    所有的客户端及服务器都必须安装不间断电源以防止停电或电

    压不稳造成的数据丢失的损失。若真断电时,客户端上将不会有太大

    的影响,主要是服务器上:在断电后恢复过程可采用数据库的日志文

    件,对其进行 ROLLBACK 处理,对数据进行恢复。

    在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主

    网络断路时数据的通信。

    在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可

    靠性。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    12

    3.8 系统配置策略

    系统应尽量配置显卡性能较强的服务器,由于比赛限制使用 intel-

    caffe,则配置服务器内存应在 4G 以上,以便有足够的内存加载必要

    的两个模型。

    3.9 系统部署方案

    该系统使用 docker 搭建环境,方便一键部署。同时系统部署在服

    务器上,主体上采取 C/S 结构,进行集中式部署,系统用户可以通过

    互联网访问系统。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    13

    4 数据库设计

    4.1 逻辑模型

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    14

    4.2 物理模型

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    15

    4.3 ER 图

    4.4 字段详细说明

    4.4.1 服装表

    该表中存放有我们使用爬虫爬取的服装,包括它的来源 url,以

    便在进行推荐时提供源地址 字段名 类型 约束 默认值 可 否 为

    NULL 描述

    Id Bigint Primary 否 服装表用来索引的

    id ClothesType Int 否 服装的类

    型 SourceURL Varchar(128) 可 图片来源

    站点 url imageId bigint(20) 可

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    16

    4.4.2 图片表

    在该项目中图片表中主要存有服装对应图片的物理路径,图片指

    纹。

    字段名 类型 约束 默认值 可否为NULL

    描述

    id bigint(20) PRI

    imageFinger int(32)

    变 换 图 片

    到 32*32 使用 DCT 变换 后 取 左

    上 8*8 像素作 为 图 片

    指纹。

    imagePath varchar(128)

    4.4.3 用户选择衣物历史表

    记录用户选择推荐衣物的历史

    字段名 类型 约束 默认值 可否为NULL

    描述

    id bigint(20) PRI 否 userId bigint(20) MUL 否 clothesId bigint(20) MUL 否

    4.4.4 用户表

    存有用户基本信息的表。

    字段名 类型 约束 默认值 可否为NULL

    描述

    id bigint(20) PRI NULL 否

    password_hash

    varchar(64) NULL 否

    username varchar(32) NULL 可

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    17

    lastLogintime timestamp CURRENT_TIMESTAMP

    registerTime timestamp CURRENT_TIMESTAMP

    userFinger bigint(20) NULL 否 用户在未注册时的唯一认证。

    5 详细设计

    5.1 服务端功能模块

    5.1.1 功能描述

    接受前端发送的图片,进行基本的判断是否符合模型接受的条件

    后,调用模型输入图片得到结果。

    5.1.2 性能描述

    使用 apache bench 进行压力测试, 可以达到每秒 892 请求数,受

    限于后端计算能力,平均请求完成时间在 0.7s-2.3s 之间。

    5.1.3 输入

    客户端 http 请求。

    5.1.4 输出

    服务端 http 响应。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    18

    5.1.5 程序逻辑

    5.1.6 限制条件

    发送的 http请求的 content-type限定为multiart格式以传输图片,

    在用户为注册情况下会在客户端生成 uuid 标识用户身份。

    5.2 客户端功能模块

    5.2.1 功能描述

    客户端主要从终端获取输入图片通过 http 协议传输给服务端获

    得评分和推荐。

    5.2.2 性能描述

    客户端性能取决于用户终端设备性能,在主流设备下皆可流畅运

    行。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    19

    5.2.3 程序逻辑

    5.3 衣物解析功能模块

    5.3.1 功能描述

    从用户上传的带有上下装的图片中解析出上装和下装。

    5.3.2 性能描述

    评价衣物解析模块的性能时可以使用 IOU 指标,即交并比。

    5.3.3 输入

    衣物解析模块的输入为用户上传的图片。

    5.3.4 输出

    衣物解析模块的输出为解析出的上装和下装。

    5.3.5 算法

    FCN-8s FCN-8s 深度学习模型是一种全卷积神经网络模型,模型具有像素级敏感的

    特点,能够针对图片中的每一个像素点进行多分类,此特点适合用来进行衣物的

    分类与分割。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    20

    fully-connected CRF fully-connected CRF 模型的提出是为了解决 FCN-8s 像素级敏感带来的分割

    区域不连续、离散度高的问题。该模型作为 FCN-8s 的后置模型,在一定程度上平滑了分割区域,改善了分割质量。原理层面上,我们巧妙地利用了如下目标函

    数(1):

    𝐸𝐸(𝑥𝑥) = ∑ 𝛷𝛷(𝑥𝑥𝑖𝑖) + ∑ 𝜓𝜓(𝑥𝑥𝑖𝑖,𝑥𝑥𝑗𝑗)𝑖𝑖

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    21

    5.3.6 程序逻辑

    衣物解析模块模型训练: 第一步,用户输入模型的图片会首先被处理成 hdf5 格式,得到 hdf5 格式的

    训练集,以方便模型处理。 第二步,基于 Intel Caffe,利用 FCN-32s 模型进行训练。 第三步,将 FCN-32s 模型的输出结果作为 CRF 模型的输入。 第四步,利用 ground truth 数据和 CRF 模型的输出结果,评估模型的优劣。 衣物解析模块模型应用: 第一步,用户输入模型的图片仍然会首先被处理成 hdf5 格式,得到 hdf5 格

    式的训练集,以方便模型处理。 第二步,基于 Intel Caffe,利用 FCN-32s 模型得到解析出的上下装结果。

    5.4 服装搭配

    5.4.1 功能描述

    服装搭配是女性“出门难”的主要因素之一。由于服装搭配的评分缺乏

    统一的标准,不能量化到具体的数字,并且,由于服装的造型各异,如果通

    过学习数据集中衣物的深度特征来做服装搭配,会降低模型的泛化能力,即

    对数据集之外的数据不能进行合理有效的搭配推荐。为了解决以上两个问题,

    我们通过爬虫抓取时尚网站上获得设计师好评的衣物搭配进行抓取,并通过

    类似于 Triplet loss 的方法进行模型训练,避免了量化搭配问题,取得了良好的结果。

    5.4.2 输入

    我们利用爬虫抓取了时尚网站 Ployvore 上获得设计师高度好评的服装搭配图片,同时也抓取了这些图片的文字描述信息(改进方向)。考虑到服装的

    样式、条纹和颜色多种多样,避免模型在数据集中出现过拟合的情况,我们

    选择使用训练在 ImageNet 上的 AlexNet 进行特征提取,而不是训练一个新的模型。提取完的 4096 维特征以 pkl 的方式进行存储。此外,由于 Caffe 支持的数据读入方式特殊,我们利用 LMDB 存储数据并作为网络的输入。(代码参考)

    5.4.3 功能描述

    接受衣物解析模块传来的衣物, 给予适当的评分。

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    22

    5.4.4 算法

    本项目主要采用的 Loss 函数为 Triplet Loss 类,Triplet Loss 函数主要在于通过生成 Positive Samples 和 Negative Samples,保证 positive samples 之间的距离小于 negative samples 之间的距离从而达到训练的目的。实际效果参考下图:

    整个模型如下图所示:

    其中,Pre-trained CNNs 我们使用了在 ImageNet 上已经收敛的

    AlexNet,并提取出 AlexNet 中 fc7 层输出的 4096 维特征并将其保存为 pkl的格式,以 LMDB 的形式存储之后将其作为网络的输入。

    整个网络的 Objective Function 如下:

    ℒ = ℒ𝑝𝑝𝑝𝑝 + 𝜇𝜇ℒ𝑝𝑝𝑟𝑟𝑐𝑐 +𝜆𝜆2

    ||Θ||𝐹𝐹2

    其中,ℒ𝑝𝑝𝑟𝑟𝑐𝑐表示 Auto-encoder Loss,具体表示如下:

    ℒ𝑝𝑝𝑟𝑟𝑐𝑐 = � (𝑙𝑙(𝑣𝑣𝑖𝑖𝑝𝑝) + 𝑙𝑙(𝑣𝑣𝑗𝑗𝑏𝑏) + 𝑙𝑙(𝑣𝑣𝑘𝑘𝑏𝑏))𝑖𝑖,𝑗𝑗,𝑘𝑘

    where 𝑙𝑙(𝑥𝑥) =12

    ||𝑥𝑥� − 𝑥𝑥||22

    其中,ℒ𝑝𝑝𝑝𝑝表示 Personalized Ranking Loss,具体公式如下:

  • 项目名称 文件编号:[TEAMNAME]-SWC2018-[TEAMNUMBER]

    23

    ℒ𝑝𝑝𝑝𝑝 = �− ln(𝜎𝜎(𝑚𝑚𝑖𝑖𝑗𝑗 − 𝑚𝑚𝑖𝑖𝑘𝑘))𝑖𝑖,𝑗𝑗,𝑘𝑘

    where σ(x) = 1/(1 + 𝑒𝑒−𝑥𝑥)

    𝑚𝑚𝑖𝑖𝑗𝑗 = (𝑣𝑣𝑖𝑖𝑝𝑝)𝑇𝑇𝑣𝑣𝑗𝑗𝑏𝑏

    而𝜆𝜆2

    ||Θ||𝐹𝐹2表示约束项,用来防止 over-fitting。

    1 引言1.1 编写目的1.2 项目背景1.3 术语和缩略语1.4 参考资料1.5 项目定位1.5.1 应用场景1.5.2 目标人群

    1.6 项目目标1.7 解决思路

    2 需求分析2.1 功能需求2.1.1 功能模块结构图2.1.2 核心功能模块描述

    2.2 非功能性需求2.2.1 扩展性和可维护性2.2.2 易用性

    2.3 运行需求2.3.1 硬件接口2.3.2 软件接口

    2.4 用例图

    3 概要设计3.1 处理流程3.2 总体结构和模块设计3.3 功能分配3.4 接口设计3.4.1 外部接口3.4.2 内部接口

    3.5 数据结构设计3.5.1 逻辑结构设计3.5.2 物理结构设计3.5.3 数据结构与程序的关系

    3.6 运行设计3.6.1 运行模块关系3.6.2 运行控制3.6.3 运行时间

    3.7 错误/异常处理设计3.7.1 错误/异常输出信息3.7.2 错误/异常处理对策

    3.8 系统配置策略3.9 系统部署方案

    4 数据库设计4.1 逻辑模型4.2 物理模型4.3 ER图4.4 字段详细说明4.4.1 服装表4.4.2 图片表4.4.3 用户选择衣物历史表4.4.4 用户表

    5 详细设计5.1 服务端功能模块5.1.1 功能描述5.1.2 性能描述5.1.3 输入5.1.4 输出5.1.5 程序逻辑5.1.6 限制条件

    5.2 客户端功能模块5.2.1 功能描述5.2.2 性能描述5.2.3 程序逻辑

    5.3 衣物解析功能模块5.3.1 功能描述5.3.2 性能描述5.3.3 输入5.3.4 输出5.3.5 算法5.3.6 程序逻辑

    5.4 服装搭配5.4.1 功能描述5.4.2 输入5.4.3 功能描述5.4.4 算法