1. 引言
我国改革开放带来智能手机和社交网络快速发展的同时,国内网民的规模数量也一直保持着平稳增长的趋势,截至2018年12月,我国网民规模增加到8.29亿 [1]。作为主要信息传播媒体之一的数字图片,过去几年中呈现爆炸式增长,使得用户对图片管理的需求持续增加。一方面,这些社交网络上产生的图片日积月累、反复移动使得用户难以保管和再次加工利用这些图片;另一方面,由于图片种类变得越来越多,用户寻找精美的图片和针对性的图片需求难以得到满足。
图片管理系统一直存在社会需求,并且一直存在有这样的系统。不过通常的图片管理系统功能比较简单,主要以单机版为主,浏览和管理的图片仅仅是本地图片 [2]。现在随着B/S (Browser/Server,浏览器/服务器)模式的软件开发越来越成熟,图片管理系统逐渐从单机模式过渡到B/S模式。基于B/S模式的图片管理系统最明显优势是方便可靠、数据同步,用户不用担心图片丢失,且随时可以通过网络访问。但是目前为止所有的这些图片管理应用系统基本上只能局限于用户本身的图片数据,缺乏开放性,即用户只能对自己上传的图片进行操作,没有扩展到整个互联网,甚至不能使不同用户之间产生交互。
本文结合已有的图片管理系统的特点,对专业设计师图片管理和普通大众照片管理进行综合性用户需求分析,设计并实现了一款新的图片云端管理系统,该系统运用大数据和人工智能技术帮助用户有效分类管理大量杂乱无章的图片数据、实时动态地从网络爬取针对性图片设计素材、以图搜图快速准确地实施图片检索等功能,使用户从中体验到智能化图片管理所带来的便利性。为了同时满足专业用户和普通用户对图片管理的需求,本文的图片云端管理系统目前实现了七大功能。第一,图库人工更新:用户可人为选择并预览本地图片,经用户确认后上传到后端图库;第二,图库自动更新:系统主动搜寻本地图片,对后端图库实时地、自动地进行更新;第三,用户主动分类:允许用户对图片添加自定义标签,使用户根据自己的需求进行主动图片分类;第四,系统自动分类:系统可自动识别标签,完成图片分类;第五,图片分享功能:用户之间可以通过收藏图片、点赞和评论获得社交需求;第六,网络实时爬图,动态更新图库:系统能够以用户指定感兴趣的图片为目标,用网络爬虫从互联网上实时抓取类似的图片,并能保存到自己的图片库中;第七,图片推荐:系统能够根据用户的爱好,实时地向用户推荐感兴趣的图片。图片管理系统的智能化一直以来都是整个系统实现的关键。本系统最终给用户提供了一个安全可靠、智能化、基于社交和面向互联网的图片云端管理平台。
2. 系统需求分析
2.1. 系统定位
本文图片云端管理系统目标是给用户提供安全可靠、网络化、智能化、社交化等便利性的图片管理功能。
系统功能定位:为用户提供一款图片分类(主动分类或被动分类)、图片搜索(本地化搜索或网络化搜索)、个性化图片推荐(本地图片推荐或网络图片推荐)、图片分享等功能的网络化云端图片素材管理系统。
系统用户定位:本系统初衷针对特殊用户(专业图片设计师)而打造,为了更好地进行项目推广,拓展用户群体,本系统同时兼顾普通用户日常照片管理。
1) 特殊用户
特殊用户指独具专长的图片设计师,比如:服装设计师、电子产品设计师、汽车设计师等。图片分类方面,设计师工作时,不断地保存设计作品版本,日积月累会产生大量的图片,甚至有很多重复的图片,系统图片分类(主动分类或被动分类)功能明显可以提高设计师的创作效率,让他们把更多的时间、精力花在创作上,而不是浪费在对零散的、杂乱的图片素材管理上。图片检索方面,如果利用操作系统(比如:Windows)自带的文件查找功能,有两点明显不足:第一,只能查找本机文件;第二,本机各种文件数量居多,很难快速地、精准地找到想要的那张图片素材。设计师在工作过程中利用图片云端管理系统,仅专门管理设计相关的图片素材,可以快速查找相关的图片素材,云端图片库中目前缺少或没有的设计素材,还能利用爬虫实时地、主动地从网络抓取针对性图片,更新丰富图片素材库。个性化图片推荐方面,如果设计师当前正在设计某个作品,比如:设计一款杯子,本系统会从图片库中向设计师主动推荐杯子相关的图片素材,还会主动去互联网上爬取跟杯子相关的图片素材,主动推荐给设计师,拓展设计师的设计思路,有利于设计师快速完成作品设计,提高设计工作效率和作品效果等。
2) 普通用户
普通用户可以放心地将自己的照片等图片交给本系统管理,可以对图片素材进行主动分类或被动分类,可以进行本地化图片搜索或网络化图片搜索,存储云端图片素材通过互联网可随时随地访问图片,并通过社交分享图片等良好体验。
2.2. 需求分析
本图片管理系统根据系统定位,对专业设计师图片管理和普通大众照片管理进行综合性用户需求分析,设计了一款新的图片云端管理系统,从实现角度具体化该系统总体功能需求,主要分为用户账号管理功能、用户对图册的操作功能、图片分类功能、图片搜索功能、图片推荐功能和社交功能等六大主要功能。
1) 用户账号管理功能
用户账号管理功能作为图片云端管理系统的入口,需要提供注册、登录、修改用户信息和退出系统等功能。
2) 用户对图册的操作功能
用户可以创建有具体主题的图册,并往指定图册上传图片,还能对指定图册进行编辑修改或删除。系统也可以自动创建标签图册,可以按日期或主题自动创建图册,免去了用户很忙没时间整理图片素材导致图片素材混乱、查找困难的局面。
3) 图片分类功能
图片分类的方式有两种,第一种方法需要用户的参与,即需要用户输入图片所在图册的类别和标签,其中类别是必须输入的信息且只有一个值,而标签可以为空或多个。第二种方法则是系统通过图像分类算法进行自动分类的,这种分类结果由于是从系统角度判别的,所以可以作为参考,也可以和第一种方法形成互补。
4) 图片搜索功能
图片搜索分为两种方式,第一种是在输入框输入关键字,关键字可以是图片名字,也可以是类别和标签。第二种方法是利用基于图片内容的图像搜索算法实现的,简称以图搜图 [3]。
5) 图片推荐功能
本系统中的图片推荐功能是系统本身的行为,本系统可以根据用户的兴趣爱好向其推荐相似的图片,并且允许用户把这些图片添加到自己的图库中。
6) 社交功能
随着互联网与智能手机技术的发展,人们意识观念的改变与文化程度的成熟,图片社交已经成为当下最流行的一种网络新兴社交方式 [4]。本系统主要向用户提供两种图片社交的途径。第一,用户浏览其他用户的图册或图片时可以点赞和收藏图片,以及关注图片的作者。第二,不同用户对同一图册或图片进行讨论和评论。
3. 图片云端管理系统设计
3.1. 技术架构
本文图片云端管理系统的总体结构采用B/S模式,前端由HTML (Hypertext Markup Language,超文本标记语言) + JavaScript开发实现,后端则使用Django + MVT (Model View Template)框架开发实现,以MySQL数据库作为结构化数据的存储方式,无结构化的图像数据则直接以文件形式存储,并把图片的存储路径保存在数据库中。
实现图片云端管理系统的开发工具和支持软件包括Windows 10操作系统、Django框架、Python 3编程语言、Pycharm代码编辑器、Chrome浏览器、Git版本管理器、MySQL数据库和Apache服务器。
图片云端管理系统所涉及的人工智能算法有基于CNN (Convolutional Neural Network,卷积神经网络)的图像特征提取、分类算法、图像检索和静态网络爬虫等技术。
本文项目主要使用卷积神经网络实现图片分类功能,具体过程是运用TensorFlow构建训练模型,这里对卷积神经网络和TensorFlow进行适当介绍。
TensorFlow是Google开发的、用来实现神经网络或其他算法的API (Application Programming Interface,应用程序接口)库。TensorFlow是一个基于数据流编程的符号数学系统,它拥有多层级结构(见图1),可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于各类机器学习算法的编程实现和各领域的科学研究 [5]。
本文的卷积神经网络是利用TensorFlow搭建的。说起卷积神经网络算法,不得不提传统机器学习算法线性回归。线性回归是根据样本x和已知y学得y = W * x + B (其中W为权值,B为偏差)的预测模型。在深度学习中,全连接神经网络(见图2)相当于线性回归的加强版,而卷积神经网络是在全连接神经网络的基础上添加了卷积的处理过程。这里卷积和图像处理的滤波类似,是通过一个适当大小的矩阵对更大矩阵进行卷积的一个过程。卷积神经网络的结构分为一个输入层、若干个卷积层、若干个池化层和若干个全连接层,以及输出层(见图1)。有了卷积层的过滤后,神经网络的抽象特征能力更强,也降低了计算量。池化层的作用相当于将高分辨率的图像转化成低分辨率的图像,进一步减少了计算中的参数。
对图1中卷积神经网络训练模型输入图片时,按照卷积神经网路算法输入数据要求对图片数据进行预处理,主要是将输入的图片转化成输入层指定大小(长、宽、深度)和指定类型(整型或者浮点型)的矩阵。这样可将一张图像看作是一个个像素值组成的矩阵,那么对图像的分析就是对矩阵的数字进行分析,而图像的典型特征,就隐藏在这些数字规律中。图1中的卷积神经网络训练模型采用深度学习,输入图像矩阵数据,然后经过卷积层和池化层作用自动提取图像特征,从而达到对图像识别和分类的目的。卷积层和池化层提取图像特征的好坏关键在于卷积核表示图像局部特征的准确性,开始只是随机初始化卷积核的参数,然后以使模型预测值和真实值之间的误差最小化为指导,经过图2所示的全连接神经网络层,通过反向传播算法,自适应地调整卷积核的参数,从而得到准确度高的卷积核。总之,通过反向传播最终确定卷积核参数,经过卷积层和池化层提取到最终图像特征,这就是CNN提取图像特征的过程。

Figure 1. Training model of convolutional neural network based on TensorFlow
图1. TensorFlow构建的卷积神经网络训练模型

Figure 2. Fully connected neural network
图2. 全连接神经网络
3.2. 系统框架
本项目的图片云端管理系统实现功能总体可以分为六大功能模块,分别是账号管理模块、图册管理模块、图片分类模块、图片搜索模块、图片推荐模块、社交功能模块,如图3所示。账号管理模块包括用户注册、用户登录、用户信息修改、退出系统等功能;图册管理模块包括图册创建、图片上传、图册修改、图册删除和设置访问权限等功能;图片分类模块包括标签分类、算法自动分类等功能;图片搜索模块包括本地搜索、云端图库搜索、互联网搜索等功能,可以按标签搜索,也可以按图片内容搜索,即以图搜图;图片推荐模块包括基于标签推荐、基于内容推荐等功能;社交功能模块包括点赞、评论、关注、收藏等功能。

Figure 3. The function modules of image management system
图3. 图片管理系统整体功能架构
3.3. 开发与运行环境
这里介绍本图片云端管理系统采用的各种软件开发工具,以及系统前端与后端的运行环境。
1) 为了提高开发效率,本项目的开发过程使用了大量的开源框架和免费工具,本系统采用的开发工具如表1所示。
2) 图片云端管理系统分为前端和后端,前端的运行环境在用户终端,而后端需要部署到云服务器上,本系统的运行环境如表2所示。
4. 图片云端管理系统实现
本文图片云端管理系统实现了账号管理模块、图册管理模块、图片分类模块、图片搜索模块、图片推荐模块、社交功能模块共六大功能模块。为了实现这些功能,本系统使用了基于CNN的图片分类方法和网络爬虫。这里依次详细介绍实现过程。
1) 账号管理模块
账号管理模块是用户系统的主要功能,是整个系统的基本功能,系统其它功能模块正常、有序运行都建立在用户的账号上。用户系统模块的设计与实现,包括账户注册、登录、修改账户信息和退出系统。
2) 图册管理模块
图册管理模块包括创建图册、上传图片、修改图册、删除图册和设置访问权限等功能。
用户在个人空间页面可以创建图册并上传多张图片,输入的图册信息有图册标题、类别、标签和相关描述。创建图册的关键信息是图片,图片由用户在本地文件选择且预览,预览包括删除不需要图片和将某张图片设置为图册封面,最终点击确认完成上传图片到后端的过程。
用户在个人空间,可以对已创建的图册进行编辑、修改、删除等。编辑修改图册的界面和创建图册的界面是一样的,不同的是数据库操作,创建图册需要用户输入信息或者系统生成信息并在数据库添加一条图册数据,而编辑图册只是在原来的数据上进行编辑修改,然后在数据库更新这个图册的数据。编辑图册的界面效果如图4所示。
设置图册访问权限功能的作用是保护用户的隐私,图册访问权限的等级分为三级,分别为所有人可以访问、仅关注的人可访问和仅自己可见。因为权限只有三个等级,设置方法是在用户前端使用“Select”下拉列表显示三个权限等级,供用户选择。

Figure 4. Affect picture of edit album information
图4. 编辑图册信息效果图
3) 图片分类模块
图片分类模块包括标签分类、算法自动分类两种图片分类功能。标签分类是用户自己创建图片类别标签,对图片进行人为分类,这是传统方式。
这里重点介绍算法自动分类的实现。本项目使用卷积神经网络实现图片分类功能,具体过程是运用TensorFlow构建训练模型 [6],目前训练的类别有7类,分别为人像、风景、美食、文档、建筑、动物和动漫。如果用户对象不同,关心的图像类别不同,用户可以利用模型建立其它类别的图片。构建TensorFlow训练模型的训练过程如图5所示。
得到分类模型后,将模型保存在后端,当发现用户上传图片到后端,后端系统利用前向传播获得预测值,即可得到相应的类别,最后在数据库中写入图片的类别字段。在前端,用户在个人空间的分类栏目可以看到系统自动完成的分类图片。
4) 图片搜索模块
图片云端管理系统的图片搜索分为两种方式,第一种是以图片名字或标签作为关键字搜索图片;第二种是基于图片内容的搜索方式,简称以图搜图。采用关键字搜索图片是传统的搜索方式,这里重点介绍基于内容的图片搜索方式。图像分类算法和基于内容的图像检索算法 [7] 是实现图片管理系统智能化的核心技术。
这里介绍以图搜图方式的具体过程。首先提取图片库里每张图片的特征,提取的特征为CNN训练输出的向量,然后把每张图片的特征矢量保存在数据库中。当要搜索某一张图片,先用CNN的前向传播提取矢量特征,然后将该特征向量和数据库里的每一个特征向量进行相似度计算,对所有的相似度结果进行排序,取前面最佳的几个,其对应的图片就是搜索的匹配结果。具体实现过程见图6的图片检索流程图。

Figure 5. Building flow chart for the classification model
图5. 建立分类模型流程图

Figure 6. Flow chart of the image retrieval
图6. 图片检索流程图
这里相似度的计算方法有很多种,有欧式距离、曼哈顿距离和余弦相似度等。考虑到项目中计算量较大,降低计算机在大量计算过程中的代价,消除欧式距离在开平方过程中取近似值而带来的累计误差,图4中两幅图像相似度计算采用曼哈顿距离。曼哈顿距离d计算为:
,
其中待检索图片特征向量为(
),图片数据库中标准图片特征向量为(
)。
5) 图片推荐模块
本系统的图片推荐功能目前是结合社交功能模块的响应来搜集用户行为,从而完成推荐。图片推荐可以提高用户使用系统的体验,通过系统社交功能检测到用户浏览其他用户图册行为,比如:看到喜欢图册就会点赞、或者收藏、或者评论,系统会记录这些用户的社交行为,然后根据社交行为推荐相似图片给用户。图片推荐实现过程见图7所示。

Figure 7. Flow chart of picture recommendation
图7. 图片推荐流程图
6) 社交功能模块
本系统的社交模块的作用是满足用户的社交需求,提高用户体验。用户在本系统的社交行为包括点赞、关注、收藏图册和对图册进行评论。
用户浏览其他用户的图册时,可以点击“点赞”按钮为图册点赞,以表示喜欢或对该用户的肯定。用户给图册“点赞”后,前端会往后端的数据库传递一条“点赞”的信息并存储在数据库,信息包括发出“点赞”的用户和被“点赞”的图册,然后该图册所属用户在登入之后便能收到“点赞”的消息。
用户浏览其他用户的图册时,可以点击收藏按钮收藏该图册,并在数据中保存这条收藏信息,包括主动收藏用户和被收藏图册。收藏成功后,用户在个人空间能看到自己收藏的图册,但是用户只能浏览图册而不能编辑删除图册。图册收藏的界面如图8所示。
用户在浏览其他用户的图册时,可以发表评论或回复其他用户的评论,保存在数据库的评论包括的信息有评论内容、父级评论和所属图册。

Figure 8. Affect picture of collection album
图8. 收藏图册效果图
5. 结论
本文基于用户对有效管理图片的需求,运用云端技术和人工智能打造了一款图片云端管理系统。为用户提供一个安全智能的云端图片管理系统来存储大量图片,而图像分类算法和基于内容的图像检索算法是实现本图片管理系统智能化的核心技术,并提供一些实用的功能帮助用户科学有效的管理零散而又杂乱的图片。最终,本系统通过图片推荐、网络爬虫、云端存储等技术使得普通用户和专业设计师都能方便快捷地管理和使用图片素材。
致谢
感谢成都信息工程大学教务处对大学生创新创业训练计划项目客观公正评审及经费支持。
基金项目
国家级大学生创新创业训练计划项目(20181062104、S201910621020),四川省大学生创新创业训练计划项目(S201910621081),成都信息工程大学创新创业训练计划项目(202010621128、202010621141)。