基于图像哈希的社交网络热点事件检测系统

2020-11-18 14:00陈毅铧陈震海谭荣庆
现代计算机 2020年28期
关键词:数字图像哈希控件

陈毅铧,陈震海,谭荣庆

(广西师范大学计算机科学与信息工程学院,桂林541004)

0 引言

随着互联网和多媒体技术的发展,网络社交已经成为人们生活中不可或缺的一部分。在社交网络中,每时每刻都有大量的信息被上传,夺人眼球的标题配上富有冲击力的图片就有机会吸引大量热度。热点事件通常会引爆社会舆情舆论,虚假的事件不仅会中伤他人还会对社会造成负面影响。利用感知图像哈希算法检索一段时间内的相似图像,如果相似图片数量超过阈值,就可以认为包含这些图像的信息变成了热点事件。根据此原理,社交网络管理者能够快速判定并处理热点事件,有效控制负面的热点事件破坏社会的和谐。

热点事件往往伴随大量的图片编辑修改和转发,因此可使用图像哈希算法检测社交网络中的热点事件。图像哈希算法是将数字图像映射成一串短小的数字序列即图像哈希序列,数字图像可以用这串数字序列唯一表示。从本质上看,图像哈希反映了数字图像的视觉内容,视觉内容相似的图像具有相同或相似的哈希序列。采集某一时间段内用户上传的图像,视觉内容相似的图像越多,则说明与图像关联的事件热度越高,如果热度超过系统预先设置的阈值,则认为这批图像关联的事件为热点事件,反之,则为一般事件。

本文使用Python 语言实现基于不变特性的彩色图像哈希算法[1],并利用该算法开发了一个高效的社交网络热点事件检测软件。该软件界面美观,操作方便,实现了单热点事件检测和多热点事件检测的功能。

1 软件设计

本文设计的社交网络热点事件检测软件能够快速定位热点事件。该软件将接收图像作为输入,计算其图像哈希,并通过图像间的相似度来检测社交网络热点事件,最后将检测结果输出。软件主要包含图像采集、单热点事件检测、多热点事件检测和设置共四个功能模块,功能模块图如图1 所示。

软件模块的功能介绍如下。①图像采集:从社交网络中采集公开的图像数据。②单热点事件检测:选择单幅图像作为检测源,并与本地图像库中的图像数据逐一比较相似度,最后显示检测源的热度并保存。③多热点事件检测:选择多幅图像作为检测源,并与本地图像库中的图像数据逐一比较相似度,最后显示检测源的热度并保存。④系统设置:修改相似图像判定阈值、热点事件热度判定阈值,并能够恢复默认设置。

2 软件处理流程

软件使用网络爬虫程序采集社交网络中的公开图像,其处理流程如图2 所示。用户设置采集时长后即可启动采集任务,软件将从社交网络中采集公开的图像保存至预设的文件夹下,同时将图像的发布者、关联事件内容、图像本地路径、发布时间等信息被存储在内存中,任务完成后以JSON 格式保存到预设的路径。

图2 图像采集处理流程

软件的单热点事件检测的处理流程如图3 所示。用户选择一幅图像作为检测源,系统按照预设的参数使用图像哈希算法计算检测源哈希,并与本地图像库中的图片逐一比较,最后根据检测源热度判断与检测源关联的事件是否为热点事件。

图3 单热点事件检测处理流程

软件的多热点事件检测的处理流程如图4 所示。用户选择多幅图像作为检测源,系统按照预设的参数使用图像哈希算法计算检测源哈希并关联检测源间的相似图像,检测源自关联后与本地图像库中的图片逐一比较,最后根据检测源自关联热度判断与检测源关联的事件是否为热点事件。

图4 多热点事件检测处理流程

3 软件核心算法

本文使用一种基于不变特性的彩色图像哈希算法计算图像哈希,算法处理过程如图5 所示。该算法由以下三个步骤组成:首先是图像预处理,将输入图像转化为统一规格的标准图像,这一步的目的是保证不同分辨率图像的哈希序列长度相同;然后将预处理后的图像从RGB颜色空间分别转换到HIS颜色空间和YCbCr颜色空间。最后,依次从颜色空间的各个分量上提取特征生成图像哈希。

图5 算法处理过程示意图

3.1 图像预处理

对输入的图像统一进行归一化处理。为了减少高频成分以及缓解轻微的图像修改所带来的哈希值的改变,使用双线性插值算法将输入图像大小调整为m×m,并利用高斯低通滤波器平滑图像。通过以上预处理可以确保任意图像的哈希值长度相同并能够抵抗缩放攻击。

3.2 图像颜色空间转换

为了提取到鲁棒性更强的图像特征,将彩色图像从RGB颜色空间转换为HSI颜色空间。其中R、G、B分别是红、绿、蓝分量,其取值范围均为[0,255],可通过以下公式将图像从RGB颜色空间转换到HSI颜色空间:

其中,H、S、I分别代表色调、饱和度和明度信息,min(R,G,B)表示R、G和B中的最小值,角度θ的定义为:

另外,考虑到常用的JPEG 图像文件格式均釆用YCbCr 颜色空间,因此也将RGB 彩色图像转换到YCb⁃Cr 颜色空间。该操作的目的是使提取到的图像特征能抵抗压缩操作,其转换公式如下所示。

其中,Y、Cb和Cr分别代表像素的亮度、蓝色色差和红色色差。至此,一共提取到图像的6 个颜色分量[3]。

3.3 特征提取

不变矩最早由Hu[1]提出,对平移、伸缩、镜像和旋转等操作具有不变性。通常,一幅图像的不变矩描述了该图像的全局形状特征,并提供了关于该图像的大量的、不同类型的几何特征信息,例如大小、位置和方向等。本文选取不变矩作为图像特征,主要考虑不变矩具有旋转不变性,目的是使图像对旋转变换稳健。

对于一幅大小为M×N的灰度图像,设f(x,y)为第x 行第y 列的像素灰度值,其中,0 ≤x≤M,0 ≤y≤N。于是,图像的七个不变矩可通过下列公式计算得到:

其中,归一化(p+q)阶中心矩ηpq(p,q=0,1,2,…)定义为:

其中,γ的计算公式为:

而相应的中心矩μpq则由下列公式计算得到:

其中:

而Mpq则是图像的( )

p+q阶矩,定义如下:

对于图像的每个颜色分量,分别用公式(4)~(10)提取七个不变矩。依次连接六个不同颜色分量的不变矩,即可得到最终的图像哈希序列。因此,基于不变矩的算法的哈希序列长度为42 个十进制数。

3.4 图像相似度比较

比较图像哈希序列的相似度有多种方法,例如:L2范数、汉明距离、相关系数、最大最小比值法等。本文采用L2范数作为距离测度,用于判定图像哈希序列的相似性。L2范数的定义如下:

其中,h1(l)和h2(l)分别的h1和h2的第l位哈希值,N 为哈希长度。两幅图像越相似,其对应图像哈希的L2范数就越小;反之就越大。如果两个图像哈希的L2范数小于阈值T,则两幅图像的视觉内容相似;否则,认为是不同图像或存在重要视觉内容差异。

3.5 热点事件判定

一般,网络热门图像与热点事件息息相关,且与事件热度成正比关系,而热点事件判定是依据用户评论数、转发次数、图像重复上传次数等信息。由于网络平台会对热点事件进行大量的推送以及用户对热门图像的转发,故热点事件可以通过同一个或者同一组图像在不同用户重复上传的次数判定。因此,采用网络爬虫技术采集一段时间内的用户图像到本地图像库中,被检测图像的哈希与本地图像库的哈希逐一进行相似度比较时,若检测到一幅相似图像则将其的热度值增加一个单位值,否则不增加。比较结束后,逐一对图像的热度值进行判断,若达到或者超过预先设定的阈值Thot,可以认为其关联的事件是社交网络热点事件,否则是一般事件。

4 软件功能验证

本文设计的社交网络热点事件检测软件使用Py⁃thon 语言在JetBrains PyCharm 环境下设计并实现。软件用户图形界面使用PyQt5 工具包构造,使用OpenCV3 库和NumPy 库处理数字图像。该软件的运行界面如图5 所示。

主界面为用户提供功能的选择。主界面最上方是软件名称;软件名称下方是四个Button 控件,分别用于进行图像采集、系统算法参数设置、单热点事件检测以及多热点事件检测。下面分别对“图像采集”、“单热点事件检测”以及“多热点事件检测”功能模块进行测试。

图5 软件主界面

图像采集界面如图6 所示。选择图像采集的时长后点击“开始采集”按钮即可开始图像的采集。图像采集的进度通过进度条控件进行显示,采集结束后会将采集到的图像存储在系统预设的目录下,图像的相关信息则以JSON 文件方式保存在同一目录下。点击“查看信息”按钮即可查看采集到的图像信息。

图6 图像采集界面

单热点事件检测界面如图7 所示。单击“选择图片”按钮,在打开的对话框中选择将要进行检测的数字图像,确定后,左侧Label 控件上显示所选图像的缩略图,同时,系统将自行计算该幅数字图像的图像哈希序列并以文字形式显示在上面的Text Browser 控件中;接着,单击“选择文件夹”按钮,在弹出的对话框中选择包含数字图像的文件夹;选择好文件夹后,单击“计算哈希”按钮进行多幅数字图像哈希计算,运算的结果以JSON 文件的形式存储在当前选择的文件夹下;然后,单击“单个检测”按钮开始检测,检测的进度通过Pro⁃cess bar 控件进行显示,检测结束时Process bar 控件数值显示为100%,同时检测结果以文字形式显示显示在下面的Text Browser 控件中,如图8 所示。

图7 单热点事件检测界面

图8 单热点事件检测结果

多热点事件检测界面如图9 所示。单击“选择文件夹”按钮,在打开的对话框中选择将要检测的多个图像所在的文件夹;选择完成后,点击“计算图像哈希”按钮进行多幅数字图像哈希计算,并以JSON 文件方式存储在前面所选择的文件夹内;然后,点击“多图像相似检测”按钮进行多图像相似检测,其检测的结果以JSON 文件方式存储在前面所选择的文件夹内;最后,点击“检测结果显示”按钮,会弹出一个Result View 对话框,如图10 所示。在Result View 对话框中,单击“选择文件”按钮,在打开的对话框选择已经检测过的文件夹即文件内的图像已经执行过“多热点事件检测”功能,检测的结果将会在Table Widgets 控件中显示,如图11 所示。图像的热度若达到或超过阈值Thot,其关联的事件可认为是一个热点事件。

5 结语

本文利用Python 语言实现了一种基于不变特性的彩色图像哈希算法以及基于图像哈希的社交网络热点事件检测,并在JetBrains PyCharm 环境下设计和开发了一款有效的社交网络热点事件检测软件。该软件实现了图像哈希计算、热点事件检测功能,其可以有效检测经常规数字图像处理手段处理后的相似图像,并通过相似图像的比较进一步判断社交网络热点事件。

图9 多热点事件检测界面

图10 结果显示界面

图11 多热点事件检测结果

猜你喜欢
数字图像哈希控件
基于C++Builder 的电子邮件接收程序设计*
基于Blob算法的多特征联合数字图像转换仿真
使用“填表单”微信小程序 统计信息很方便
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
基于.net的用户定义验证控件的应用分析
文件哈希值处理一条龙
一种对矢量地图的理论研究
《数字图像处理》课程的驱动教学实践
巧用哈希数值传递文件