1.本发明属于智慧水利领域,涉及一种从社交媒体获取洪水灾害信息的新方法,尤其涉及一种基于selenium自动化与yolo神经网络的社交媒体洪水信息获取方法。
背景技术:2.洪水预报中水文模型的建立通常依据传统水文观测站的数据,但由于空间布局的限制,传统水文站往往无法观测市区等人员密集区域的水位数据,而亲历者或者旁观者在社交媒体上分享的大量关于洪水灾害的实时图像、语音、视频、文本和数字等信息可提供除传统水文观测站点外的有效灾情信息,利用这些数据能够对洪水预报模型进行更好的验证,以提高洪水预报的精度。通过网络爬虫技术可以高效收集在社交网络平台中的洪水灾害数据,但这些数据往往数据量极大、重复率极高,且有夸大、延时、虚假等问题存在,并不能直接进行获取、利用。机器学习技术则可以充分识别社交媒体中收集的有效信息并加以利用。
3.基于selenium自动化工具的网络爬虫直接在浏览器中通过运行测试脚本模拟用户操作完成应用程序的终端测试,通过模拟用户登陆的方式解决requests无法执行javascript代码的问题。
4.机器学习让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。在机器学习用于现实任务时,描述样本的特征通常需由人类专家来设计,这称为“特征工程”(feature engineering)。特征的好坏对泛化性能有至关重要的影响,人类专家设计出好特征也并非易事。基于深度学习的卷积神经网络(convolutional neural network,cnn)引入,解决了机器学习中滑动窗口选择和人工提取特征的问题,使得目标检测的实时性和准确性有了大幅提升。2015年yolo v1被提出,其核心思想为将整幅图片作为网络的输入,并直接在输出层实现边界框位置和分类的确定。yolo v5卷积神经网络在网络轻量化上更进一步,训练与识别的速度更快。
技术实现要素:5.为解决现有技术不足,本发明的目的在于提供一种基于selenium自动化与yolo神经网络的从社交媒体获取洪水灾害信息的方法,以有效利用社交媒体上的洪水灾害相关数据。
6.为实现上述目标,本发明采用的技术方案如下:
7.一种从社交媒体获取洪水灾害信息的方法,其特征在于,包含以下步骤:
8.(1)利用selenium自动化工具模拟用户登录以从社交媒体获得洪水灾害发生时的文字与图片信息;
9.(2)以获得的洪水相关图片数据,使用yolo v5卷积神经网络训练模型进行洪水中关键物体与关键部位的识别;
10.(3)利用预定的关键部位高度标准将洪水文字信息与图片识别结果转换成水位数
据。
11.上述技术方案中,进一步的,步骤(1)中所述的社交媒体为微博。
12.更进一步的,步骤(1)包括:
13.确定需要获取的洪水灾害信息的关键词与分类地点;
14.采用selenium自动化工具模拟用户登录、页面点击、滚动与输入操作,根据关键词获得文字与图片数据;
15.调用微博api获取发布的时间与地点,与洪水灾害的发生时间进行对比,剔除其中的无关数据后,对保存的文字信息进行删重处理,保留发布时间最早的重复信息,在保存图片信息时若包含分类地点,则将图片按地点分类保存,将获取的图片重采样后计算哈希值,利用哈希值求汉明距离,对图片进行删重处理。
16.进一步的,步骤(2)中采用yolo v5卷积神经网络进行图像识别,具体包括图片中关键物体识别模型与关键物体部位识别模型两部分,将含有指定关键物体的图片作为输入对关键物体识别模型进行训练,将标记有关键物体部位及序号的图片作为输入对关键物体部位识别模型进行训练;训练后对步骤(1)得到的图片信息进行识别。
17.进一步的,步骤(3)中图片识别结果为带有对象标识框的图片,便于直接观察图片识别结果;并保存有识别结果数据,包括:图片名称、识别得到的部位序号、识别框中心点位置、识别框的长宽;
18.进一步的,步骤(3)中的标准具体为:通过查阅所指定的关键物体的相关制造标准,确定所指定的关键物体部位所代表的高度,从而形成关键部位高度标准;
19.对于某一关键物体,设置若干关键部位,取图像中识别到其最低关键部位对应的高度为水位信息,若未能识别到其任一关键部位则认为水位深度达到其最高关键部位对应的高度,从而得到所述关键物体对应水位信息;当在图片中识别到多个关键物体时,将各个关键物体对应的水位信息进行比对,剔除异常值,将水位信息取平均值得到该地水位信息。关键部位设置越多采用该方法检测精度会越高。
20.本发明的有益效果是:
21.本发明考虑了selenium自动化模拟网页时的防反爬虫效果与yolo v5卷积神经网络的识别效率和准确度,通过微博等社交媒体平台获取除常规水文站点外的更多洪水数据,以便更好地建立准确的水文模型。
附图说明
22.图1为本发明的一个具体实例流程示意图。
23.图2为获取的图片信息的关键物体识别结果示例。
24.图3为获取的图片信息的关键物体部位识别结果示例1。
25.图4为获取的图片信息的关键物体部位识别结果示例2。
26.图5为图片信息分析过程示例。
具体实施方式
27.下面通过实例,并结合附图,对本发明的技术方案做进一步详细说明。
28.如图1所示为整个信息获取流程。
29.一种从社交媒体获取洪水灾害信息的方法,包含以下步骤:
30.(1)利用selenium自动化工具模拟用户登录以从社交媒体获得洪水灾害发生时的文字与图片信息;所述的社交媒体可以为微博,也可以是其他的社交媒体;其中文字与图片信息的具体定义为:
31.1)文字信息包括经过去重处理的带有关键词的微博文字内容、用户名称、用户等级、发布时间、评论点赞转发量、关键词、话题的名称讨论数与热度;
32.2)图片信息为微博的附图,以及调用微博api获取的时间与地点信息。
33.从社交媒体获取信息的具体过程为:
34.1)确定需要获取的洪水灾害信息的关键词与分类地点。
35.2)利用selenium自动化工具模拟用户登录、页面点击、滚动与输入操作,以便获取更多数据;
36.3)按关键词从“话题”栏搜索与水文灾害关键词相关的话题,保存各话题网址;
37.4)从获取的“话题”网址获取页面文字内容与其他数据并保存,文字信息以excel表格形式保存,图片信息以jpg格式保存,调用微博api获取发布的时间与地点,与洪水灾害的发生时间进行对比,剔除时间跨度过大的数据;对保存的文字信息进行删重处理,保留发布时间最早的重复信息;在获取图片信息时,调用微博api获取发布的时间与地点,若包含分类地点,则将图片按地点分类,并保存;
38.5)将获取的图片重采样为8像素*8像素,计算重采样图片哈希值,利用哈希值求汉明距离对图片进行删重处理。
39.在上述过程中需要注意要剔除包含大量官方文字通告与其他不相关图片,筛除重复图片,排除关键物体或关键信息无法识别的图片(如识别到关键物体但未能识别到任何关键物体的部位,无法确定是关键物体识别误差或完全淹没)。
40.(2)以获得的洪水相关图片数据,使用yolo v5卷积神经网络训练模型进行洪水中关键物体与关键部位的识别;
41.具体包括图片中关键物体识别模型与关键物体部位识别模型两部分,将含有指定关键物体的图片作为输入对关键物体识别模型进行训练,将标记有关键物体部位及序号的图片作为输入对关键物体部位识别模型进行训练;训练后对步骤(1)得到的图片信息进行识别。关键物体的识别结果决定后续采用何种部位识别的模型,关键物部位的识别结果将直接决定图片代表的水位深度。经过试验,将六百张图片输入训练得到的部位识别模型,部位识别的准确率达到0.84。
42.(3)利用预定的关键部位高度标准将洪水文字信息与图片识别结果转换成水位数据。图片识别结果为带有对象标识框的图片,便于直接观察图片识别结果;并保存有识别结果数据,包括:图片名称、识别得到的部位序号、识别框中心点位置、识别框的长宽;当在图片中识别到多个关键物体时,将各个关键物体对应的水位信息进行比对,剔除异常值,将水位信息取平均值得到该地水位信息。
43.对于文字信息,通过将获取的微博文字内容与统计得到的常用水位描述关键词自动比对,若文字内容中存在常用水位描述关键词,则保留该地点的水位信息;若不存在则剔除该文字信息。
44.所述标准具体为:通过查阅所指定的关键物体的相关制造标准,确定所指定的关
键物体部位所代表的高度,从而形成关键部位高度标准;若图像中识别到关键部位则认为水位深度未能淹没该部位,从而根据标准以确定该处水位未能到达的深度。具体的指定关键物体可以为各类车型、人等,通过参阅相关的国内制造标准与生物资料,确定选取关键物体的基本尺寸与部位高度,从高到低依次排列,若识别出该部位都会生成一个高度的反馈,标准中的高度以毫米为单位。
45.下面结合具体实例对上述方法进行说明,先确定需要获取的洪水灾害,譬如2019年造成巨大经济伤亡的利奇马洪水,选定关键词“利奇马”,根据现有的水文站点确认缺少的数据地点,试选取四个地点a、b、c、d。
46.通过selenium自动化工具向搜索栏传递关键词,获取话题网址,并进一步获取话题中2019年8月10日至2019年8月16日的微博数据,剔除重复及无关数据,可得到文字信息三千条,图片信息五千张,表1为selenium自动化工具抓取微博文字信息示例。
47.本次图片分析选择的关键物体为“汽车”,“汽车”包含“轿车(car)”、“公交(bus)”、“卡车(truck)”三个子类;汽车的关键部位为“车后灯(back_light)”、“车门(car_door)”、“轮胎(tyre)”。关键物体与关键部位的识别均使用yolo v5卷积神经网络,表2为本次实例使用的标准。利用水位识别模型对图片进行识别,可得到每个地点包含图片的水位信息,如表3所示。图片数据分析过程如图5所示,该数据可辅助用于城市洪水预报预警的模型验证。
48.经过统计,本次实例中水位识别准确率达到0.97,其中误差原是因为图片拍摄地点地势起伏较大,关键物体正好位于积水中导致水位识别错误。
49.表1 selenium自动化工具抓取微博文字信息示例
[0050][0051]
[0052]
表2关键物体及其部位信息高度转换标准
[0053]
类别后车灯车门轮胎轿车300mm100mm50mm公交400mm200mm70mm卡车500mm300mm100mm
[0054]
表3各图片样本识别的水位深度(mm)
[0055][0056][0057]
以上所述仅对本发明的实例实施而已,并不用于限制本发明。本发明中对待关键物体和部位选定、标准的制定也可根据不同的研究问题具体制定。对于本领域的研究者来说,本发明可以有各种更改和变化。凡是在本发明的权利要求限定范围内,所做的任何修改、等同替换、改进等,均应在本发明的保护范围之内。
技术特征:1.一种从社交媒体获取洪水灾害信息的方法,其特征在于,包含以下步骤:(1)利用selenium自动化工具模拟用户登录以从社交媒体获得洪水灾害发生时的文字与图片信息;(2)以获得的洪水相关图片数据,使用yolo v5卷积神经网络训练模型进行洪水中关键物体与关键部位的识别;(3)利用预定的关键部位高度标准将洪水文字信息与图片识别结果转换成水位数据。2.根据权利要求1所述的从社交媒体获取洪水灾害信息的方法,其特征在于,步骤(1)中所述的社交媒体为微博。3.根据权利要求2所述的从社交媒体获取洪水灾害信息的方法,其特征在于,步骤(1)包括:确定需要获取的洪水灾害信息的关键词与分类地点;采用selenium自动化工具模拟用户登录、页面点击、滚动与输入操作,根据关键词获得文字与图片数据;调用微博api获取发布的时间与地点,与洪水灾害的发生时间进行对比,剔除其中的无关数据后,对保存的文字信息进行删重处理,保留发布时间最早的重复信息,在保存图片信息时若包含分类地点,则将图片按地点分类保存,将获取的图片重采样后计算哈希值,利用哈希值求汉明距离,对图片进行删重处理。4.根据权利要求1所述的从社交媒体获取洪水灾害信息的方法,其特征在于,步骤(2)中采用yolo v5卷积神经网络进行图像识别,具体包括图片中关键物体识别模型与关键物体部位识别模型两部分,将含有指定关键物体的图片作为输入对关键物体识别模型进行训练,将标记有关键物体部位序号的图片作为输入对关键物体部位识别模型进行训练;训练后对步骤(1)得到的图片信息进行识别。5.根据权利要求1所述的从社交媒体获取洪水灾害信息的方法,其特征在于,步骤(3)中图片识别结果为带有对象标识框的图片,便于直接观察图片识别结果;并保存识别结果数据,包括:图片名称、识别得到的部位序号、识别框中心点位置、识别框的长宽。6.根据权利要求1所述的从社交媒体获取洪水灾害信息的方法,其特征在于,步骤(3)中的标准,具体为:通过查阅所指定的关键物体的相关制造标准,确定所指定的关键物体部位所代表的高度,从而得到关键部位高度标准。7.根据权利要求1所述的从社交媒体获取洪水灾害信息的方法,其特征在于,对于某一关键物体,设置若干关键部位,取图像中识别到其最低关键部位对应的高度为水位信息,若未能识别到其任一关键部位则认为水位深度达到其最高关键部位对应的高度,从而得到所述关键物体对应水位信息;当在图片中识别到多个关键物体时,将各个关键物体对应的水位信息进行比对,剔除异常值,将水位信息取平均值得到该地水位信息。
技术总结本发明涉及一种从社交媒体获取洪水灾害信息的方法,该方法是基于Selenium自动化工具与YOLO v5卷积神经网络实现的,包括:(1)利用Selenium自动化工具模拟登录获取洪水灾害发生时的文字与图片数据;(2)基于获取的洪水图片数据,采用YOLO v5卷积神经网络对洪水中关键物体与关键部位进行识别;(3)洪水文字信息与图片信息的识别结果根据预定的标准转换成为水位深度。本发明考虑了Selenium自动化模拟网页时的防反爬虫效果与YOLO v5卷积神经网络的识别效率和准确度,通过微博等社交媒体平台获取除常规水文站点外的更多洪水数据,以便更好地建立准确的水文模型。好地建立准确的水文模型。好地建立准确的水文模型。
技术研发人员:张凌嘉 梁汉远 顾海挺 江衍铭 许月萍
受保护的技术使用者:浙江大学
技术研发日:2022.03.25
技术公布日:2022/7/4