干部测评统计论文

时间:2021-08-31

  1需求分析

  通过对干部测评的内容和标准进行分析,我们发现干部测评的内容较多,测评项目变化比较频繁,如果系统采用统一的测评格式不能满足用户的需要。同时,大部分单位采用“无记名投票”的方式对干部进行评价,这种方式简单易行,用户容易接受。我们对用户的选票进行对比后发现:用户的选票的内容和数目虽然各不相同,但是基本格式比较类似,可以归类实现。因此,我们决定从选票着手,对选票进行扫描转换成图像格式,利用图像识别和分析算法对选票进行分析计算,从而得到准确的测评数据。

  通过对基于图像识别的相关系统进行对比,我们发现对于图像的识别可以分为三类:①对复杂的图像进行识别,如人脸、指纹的识别。②利用的专用的硬件设备对专用的卡片进行识别,如考试答题卡的识别。③对简单图像的模式识别;如对汽车牌照数字的识别。我们使用的选票(测评表如图1所示)是普通的表格(图1),既没有指纹的复杂图像,也没有答题卡的标准格式。在每个表格中一般是用户填写的勾或圈。如果系统进行模式识别,需要存储大量的勾或圈的特征模式库,将用户的勾和模式库中的图像数据进行对比,这样识别结果受到模式库大小的限制,同时识别的速度较慢。因此我们采用“定位识别区域,比较像素数目”的方法对测评表图像进行识别,这种识别方法在保证识别正确率的同时,提高了识别的速度。

  系统完成对测评表图像的识别后,得到了测评数据。我们需要对测评数据进行存储。测评系统的数据主要包括:测评主体信息,测评表信息、测评数据和系统配置信息。系统中没有多媒体数据,数据量不大,因此,采用小型的数据库系统可以满足数据的存储需求。

  系统需要为用户提供统计结果。因为测评的内容较多,并每个测评项目包括多个测评小项,所以,系统要提供对不同测评项目的结果进行统计,同时将得票数加权计算成百分制,最后按照不同的排序方式直观地显示给用户。

  最后,不同的测评表具有不同的格式,相同的表包括测评项目不同,因此,系统需要提供修改测评表类型和测评项目的表定制功能。

  1.2系统结构

  根据系统的需求分析,系统采用三层结构:数据库层、数据处理层和用户接口层,如图2所示。

  (1)数据库层是存储数据的数据库系统。为了达到较小的数据冗余,保证数据记录间逻辑关系合理,在测评项目修改时,减少对测评数据的影响。数据库的设计按照“数据表尽量小,多表连接”的原则,使用小型的数据表存储基本数据,将基本表连接后提供不同的数据视图。数据库的结构如图3所示,数据库中主要包括7个表:测评数据表、人员信息表、测评客体表、测评内容表(测评小项表)、测评等级表、测评大项表和表基本信息表。各个表之间按照惟一的ID号进行关联。从而构成完整的测评数据库。(2)数据处理层包括数据的读写、分析和统计接口。这一层是系统的核心部分,它负责从底层数据库中读取数据,将数据统计分析后,提交给上层界面显示;并且从用户接口层接收到输入的数据进行处理,最后写入到数据库中存储。处理层包含系统主要的类:初始化和连接数据库的CADORecordset类和CADOConnection类,用于数据管理的CDataMgr类,用于数据统计的CDataStat类。

  (3)用户接口层包括图像识别、数据显示、系统设置和打印排序等功能。图像识别功能提供了用户选择测评主体和显示识别进度的界面。数据显示功能具有按照测评项目、测评小项、测评等级等多种形式显示测评结果的能力。系统设置包括对测评主体、测评表类型、测评表等级、测评表项目等信息的设置。排序操作提供了对测评结果按照不同属性进行排序的功能。打印操作和普通系统的打印功能不相同,它将测评结果数据导出到Word中显示,用户可以根据自己的需要,修改格式后打印。它避免了部分系统不能完全显示打印数据的缺陷,同时提高了打印操作的灵活性。用户接口层含有最多的类,其中有:完成打印功能的CDataPrint类,提供排序的CDataSort类,显示主窗口的CMainFrame类,显示主要框架的CUserInfoView类和CUserListView类,还有实现系统设置功能的类。

  2关键技术

  2.1图像识别

  由于经过扫描设备扫描生成的是8位BMP灰度图像文件,文件的每个字节数据对应图像的单个像素,根据这一特点对图像的每个有关像素进行读取和分析。

  处理步骤如下:

  (1)将文件中的数据读入缓冲区中,并得到位图文件的大小,如图像高度、宽度以及每一行的像素个数。

  (2)从数据缓冲区的一个较小偏移处开始顺序读取。为了避免扫描图像出现黑边干扰判读,取值应避免是图像边界,以后每读到图像边界都应跳过边界范围。

  (3)由于对于位图的读取是按照从下至上、从左至右的顺序逐行逐个像素点读取。因此,理想情况下得到的第一个深色像素点且满足两根线交叉点条件的点应是表格的左下角点,如果得到的第一个这样的点经过判定不是左下角点,则应该是图像出现右下倾斜的情况,得到的应是右下角点。为避免这种情况,可给出一定的判定条件,保证得到的第一个满足这些条件的点应是表格的左下角点。

  (4)根据表格的特点和实际测评对象数沿线搜索得到评价区域的左下起始位置点。在搜索过程中,通过得到的一些与表格起始位置点同行或同列的点的情况,判断出表格是否发生倾斜,如果倾斜超过一定程度,则应认为这个图像出错,应重新扫描这个表格生成新的图像文件。

  (5)找到评价区域左下起始点后,从通用性来讲,应该找到第一行每个单元格的下边界点,从而以此为依据得到每一列单元格的宽度;再找到第一列每个单元格的左边界点,从而可以得到每一行单元格的高度。根据这些宽度和高度值得到每一个单元格的四个角点的位置,确定每一个单元格的范围。

  (6)根据每个单元格的范围,取一定的子范围搜索每个单元格内的深色像素点的个数,为避免可能将边框包括在内的情况,对于单元格中同行或同列的深色像素点只按照一个深色像素点来计数,这样即使将四个边框都包括进来,也只会认为只有四个像素点,不会对结果有大的影响。