论文部分内容阅读
图片识别算法的应用日趋广泛,而算法模型的训练需要大量的原始图片数据作为模型训练集和测试集。原始数据的质量良莠不齐,异常数据会直接降低算法模型的准确度。为了得到干净、准确的训练数据,数据清洗工作是十分必要的。本文分析了用户的功能性需求,首先满足用户对于干净图片的要求,然后对于非功能性需求,分别在实用性、可靠性、可维护性和可扩展性等方面进行了分析。针对整个系统框架,提出了概要设计,本文工作主要包括两个模块,数据清洗流水线和监控告警系统,其中数据清洗流水线包括数据清洗和数据取用两个子模块,监控告警系统包括日志监控、异常告警和结果展示三个子模块。在概要设计基础上,对于系统五个功能模块进行详细设计,区别于传统数据清洗脚本,本文构建了数据清洗和监控告警的完整系统。其中实现数据清洗环节的算法主要使用Python编写,数据传输环节主要使用shell脚本。以Jenkins任务并行的方式构建流水线。同时使用EFK(Elasticsearch Filebeat Kibana)软件构建监控告警系统。为实现对原始图片数据的清洗和整理,本文基于Jenkins构建了一条自动化流水线,具体包括去重复、去除模糊、去除无题干、倾斜旋转和版面分析五个环节。主要将原始图片集中的脏图片去除,倾斜图片复位,同时识别图片中的各种题型,比如横式、竖式和脱式,根据用户即算法模型构建者需求,将包含其所需题型最多的图片,称为有价值图片,提供给用户作为训练集。一部分种类的脏图片提供给用户作为测试集。为了实现对图片数据清洗情况的时刻把握,本文基于EFK构建了日志监控告警系统,通过对清洗过程日志的搜集,并定时监控,对于清洗出现的异常情况向用户告警,图形化展示清洗效果。EFK会在清洗过程中不断更新日志数据,并生成动态看板,展示实时的清洗效果。系统构建完毕后,分别对功能性需求和非功能性需求的相关属性进行测试,评估其质量是否能满足用户预期。本人负责了流水线的搭建,去除模糊,去重复,去除无题干算法的编写,监控告警系统的部署,以及后期的测试工作。