版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AbstractWith the development of economy, life has become increasingly rich, people on the degree of concern about family safety problems is becoming stronger. Many burglary case because no clues that crime go unpunished, and buying expensive surveillance equipment and widely ordinary families cannot
2、 accept. Now if the use of the original image capture at home device (for example, camera, digital camera) and a computer, can the family monitoring. Even far away, the home of all the cases do under control. Family monitoring system as a new type of software system, main holds unmanned surveillance
3、 duties. But this system on the basis of traditional monitoring system joined the humanoid detection function, will stand in natural state the nature of human body shape judgment out. In humanoid examination aspect, through the picture, will go to the miscellaneous collection complete with sports gr
4、aphics contain information collected. Again through computer algorithm processing, the human body scale to get the information. According to the famous Italian painter leonardo Da Vinci proposed human golden section law, carries on the image pattern matching, will stand under the natural state of no
5、rmal human shape features detected, and passed to the next module operate.Key words: family monitoring; Picture collect; Image pattern matching; Humanoid detection1.1 研究家庭摄像头监控系统的意义当您在办公室工作,当您在郊外旅游的时候,突然收到一条短信,提醒您家里有“异常情况的时候,你可以马上通过 或者笔记本电脑等设备来开启你的邮箱,及时的查看家里发生的情况。如果,您发现了有窃贼的入侵,您可以马上采取措施来阻止或者减少家庭财产的损
6、失,并且留下的证据将对警方的调查起到非常有力的帮助。可以说,家庭摄像头监控系统是在突破了空间条件限制,而进行的无需人工看守的自动监控系统。当你离开家门,外出活动时,系统也能正常的运作,并且发现异常时及时进行报警,提醒你家中发生的情况。人形检测功能在家庭摄像头监控系统的意义图像编程,一直以来都是一个难度比拟大的课题。而且将图像编程应用到日常的应用软件中更是少之又少。然而,现在市场上用普通摄象头制作的监控软件非常的多,而且都有一个共同的缺点,就是监控机制相对落后。大多数监控软件,都是采取前后两张画面来做比照,当出现变化时,就发出报警。这样的话,对很多养宠物的家庭来说,无疑是一个监控瓶颈。如果小猫小
7、狗在画面上出现,那么将会自动的被判别为“异常情况,然后通知家里的主人。这样的话,您的 就会不断的接到信息,那确实是一件很烦人的事情。基于这一情况,我们制作出了一个带人形检测的家庭摄像头监控系统。只有当“人形特征出现在画面上的时候,才判定为“异常情况。这样,便可大大的方便用户对家中异常情况的了解,也防止了错误信息对用户带来的干扰。2.1 市场需求市面上已经有不少家庭监控软件存在,例如:“天眼家庭监控软件、“安心e家在线家庭监控软件、“超级门卫等。但是,这些家庭监控软件都有一个共同的缺点,那就是早在2004年,中国视频监控行业应用市场总产值就已经到达151亿元人民币,相比2003年的123亿元人民
8、币增长了近23,并以每年20左右的速度不断增长。分析机构调研显示,随着生活节奏的不断加快,家庭用户对平安感的需求正在逐渐增加,对于家庭监控、安防的要求也日趋成熟。由于视频监控系统在保护平安、预防犯罪方面起到不可低估的作用,个人用户对家庭平安需求的增长必将带动住宅监控系统的开展。来自普通消费者家庭的视频监控需求正成为视频监控应用的新兴市场,并有望在未来几年中呈现显著增长态势。近期产业报告也都表示看好家庭应用市场,将监控目的从平安转向安心,用户也由企业、政府及医院等转向一般消费者。换句话说,家庭监控系统在市场需求上将呈现出不断递增,并且加速递增。 业务需求软件的方便性,灵敏度,可靠性是一个家庭软件
9、的重要表达。方便性,即用户能很方便,快捷地使用监控系统,不用做很繁琐的操作和准备。灵敏度,即硬件扩展,硬件的选择,变更不会受到很大限制。可靠性,即系统的使用是否能到达目标要求,各项功能是否能正常使用,如日常监控,报警机制等,是否可靠等等。2.3 用户需求从用户的实际操作情况考虑,设计一个简洁,实用,操作方便的监控系统。所以我们尽量使系统界面简洁,操作简便,硬件要求简单。用户要使用我们的系统,只需拥有一台电脑, 一台,一个摄像头,和具备最根本的电脑操作能力就满足使用本系统的条件。用户只要把摄像头连接到电脑上,并翻开我们的软件,按照自己的需要进行简单的设置,就可以使用我们的监控系统了。通过简便的操
10、作,简单的硬件要求,使所有的家庭用户都能很方便地使用我们的系统,而不用大费周章,花费心思地去使用我们的系统。2.4 功能需求在功能方面,因为本系统是一个家用软件,所有为了方便,无需人工值守。“人形判断功能,即当画面发生变化,就会自动报警。而在画面判断方面,我们考虑到有些家庭有养宠物的情况,针对这类情况,我们设计了一个功能,就是当画面上出现人形图像时,我们才判断有外人进入,从而不会因为宠物的走动而产生误判。同时,一个监控系统还必须有报警功能。当用户在外,家里没人时,我们系统可以进行远程报警,即发短信通知用户,同时还会把当时图片发送到用户邮箱,以便用户查看。这样,无论用户在任何地方,都可以第一时间
11、发觉家里的异常情况,让用户可以安心的离开家门去忙自己的事情。一个监控系统,还必须有证据捕获机制。我们的系统在画面发生变更时,或有人形图像出现是,就会截图,除了在本地保存以外,还会把截下来的图片发送到用户邮箱,进行证据的保存。由于本系统针对的用户是家庭用户,主要用于家里没人,用户外出的情况,所以监控系统就有必要拥有远程控制功能。本系统除了可以发送短信通知用户家里的情况以外,还可以接收用户发回来的短信指令,从而实现远程控制系统的开关。当用户远门在外,或不方便回家,而又有亲人或朋友回家了,这时监控系统检测到有人形图像出现,就会启动报警机制,发送信息通知用户。为了不用受到这不必要的打搅,我们设置了一个
12、远程开关系统的功能,用户只要通过 发送简单的指令,就可以对系统进行远程开关控制,而不用受到不必要的打搅。3.系统整体功能概述3.1 运动画面的捕获与处理模块运动画面的捕获与处理模块,作为整个系统的信息输入与获取接口。通过外部图像获取设备,将电脑前得画面通过摄像头捕获下来。并通过计算机算法,将运动图形捕获出来。再通过图像处理算法,将图像存在的噪点去除。3.2 人形检测模块经过前一步的操作,我们可以得到一张400300规格的图片。此图片里包含着运动物体的点集,除运动点集外其他点的RGB值均设置为R=0,G=0,B=0。按400300规格的图片来计算,如果要遍历整张图片的点,将进行400300=12
13、0000次循环。这将大大消耗了计算机处理的资源。所有这里通过计算机算法,将有价值画面点的位置提取出来并记录在二维数组里。以后如需要遍历到运动点集的信息,只需直接遍历二维数组即可,这将大大减少计算机处理的次数。接下来便可进行按比例计算,所谓的按比例计算,就是通过一定的比例分割,把图形分割后,得到的比例或者长度作为我们以后要用到的信息。通过按比例计算,让我们把从图形里得到的信息进行扩展,让原有的信息计算出新的信息,并为我们所使用。当掌握了我们所需要的信息之后,便可以进行进行人形特征匹配。人形特征匹配,是基于人体比例的条件约束来规定的。在我们刚刚算出来的数值中,我们可以和人体比例约束联系起来。按照这
14、个约束,我们可以把人类某个状态自然站立下的形状特征给检测出来。人形检测模块作为整个系统的核心处理局部,依据意大利著名画家达芬奇提出的人体黄金比例约束规律进行分析。人形检测模块包含了画面收集,按比例计算,人形特征匹配三个局部。将从运动画面的捕获与处理模块得到的信息进行进一步处理,分析出是否含有疑似人类外形的图片,并将信息传递给下一个模块,做出相应的反应。 当报警机制被激活时,通过调用系统API函数,启动发送邮件通知用户,并启动鼠标键盘模拟操作通讯工具。这里使用飞信软件作为一个例子进行演示,在不违法修改飞信软件和截取软件接口的前提下,只是使用普通的鼠标键盘模拟,模拟人类操作向用户的 发信息。这样,
15、无论您在任何地方,都可以第一时间发觉家里的异常情况,让你可以安心的离开家门去忙自己的事情。当画面发生变化时,软件将自动把变化的画面生成图片,然后保存在计算机里。并且,这些图片将会以画面变动的具体时间来作为图片名。同时,软件将通过邮件里面的附件功能,把这些图片打包成为附件,然后向用户的邮箱里发送。用户可以随时随地的翻开邮箱,来查看家里发生的异常。万一发生入窃事件,保存在邮箱里的图片将会给警方破案带来极大的帮助。控制模块作为系统与用户远程交互的桥梁,可以使用户方便地进行远程开启与关闭系统,更进一步的表达了人机交互的过程。3.4 系统UI设计一个友好美观的界面会给人带来舒适的视觉享受,拉近人与电脑的
16、距离,为商家创造卖点。界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计。所以界面设计要和用户研究紧密结合,是一个不断为最终用户设计满意视觉效果的过程。本系统软件外观设计方面,从普通用户群体出发,设计一种适合这一群体操作习惯的软件界面。在视觉与操作设计上都遵循用户的体验感受来制作开发。3.5 系统流程图 图3-1 系统流程图4.相关编程语言解析编程语言介绍C#(读做 “C sharp,中文译音暂时没有。专业人士一般读“C sharp,现在很多非专业一般读“C井。C#是 HYPERLINK :/baike.baidu /view/397
17、84.htm t _blank 微软公司发布的一种面向对象的、运行于.NET Framework之上的高级 HYPERLINK :/baike.baidu /view/17674.htm t _blank 程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与 HYPERLINK :/baike.baidu /view/29.htm t _blank Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的
18、一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。C#是一种平安的、稳定的、简单的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性例如没有宏和模版,不允许多重继承。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。1简洁的语法语法中的冗余是C+中的常见的问题,比方const和#define、各种各样的字符类型等等。C#对此进行了简化,只保存了常见的形式,而别的冗余形式从它的语法结构中被去除了
19、出去。2精心地面向对象设计C#具有面向对象的语言所应有的一切特性:封装、继承与多态性,这并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#建造广泛组件的绝对选择。3完整的平安性与错误处理语言的平安性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型平安在内的完整的平安性能。为了减少开发中的错误,
20、C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地防止了错误的发生。4版本处理技术C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加轻易地开发和维护各种商业用户。升级软件系统中的组件模块是一件容易产生错误的工作。在代码修改正程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式声明,而不会象在C+或java中经常发生的那样不经意地被进行,这可以防止代码级错误和保存版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便地开发
21、和升级。5灵活性和兼容性在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比方:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,在学习过程中你将发现,它仍然是那样的灵巧。5.人形检测模块模块解析模块理论分析 画面收集理论分析我们进行判断的时候是用了400300规格的图片进行比拟处理。那么每次处理将要进行400300=120000次的循环,软件运行的速度将会大大减低。为此,我们必须寻找一个更快速遍历图像信息的方法。经过不断的测试与探讨,我们发现,运动物体所在的图片里面存在着很多不需要的信息。我们所要收集的信息只是运动的那局部图形,其余的局部并没有任何价值。所以,我们
22、决定将运动的图形存进一个二维数组,而存进数组的不再是原来的象素颜色的值,而是某一个图象点的坐标。以后通过二维数组来遍历图片,将会大大减少时间复杂度。图5-1 画面收集演示图按比例计算理论分析按比例计算,就是通过一定的比例分割,把图形分割后,得到的比例或者长度作为我们以后要用到的信息。通过按比例计算,让我们把从图形里得到的信息进行扩展,让原有的信息计算出新的信息,并为我们所使用。 图5-2 参考资料插图达芬奇是欧洲文艺复兴时代意大利的著名画家。在长期的绘画实践和研究中,他发现并提出了一些重要的人体绘画规律:标准人体的比例为头是身高的1/8,肩宽是身高的1/4,平伸两臂的宽度等于身长,两腋的宽度与
23、臀部宽度相等,大腿正面厚度等于脸的厚度,跪下的高度减少1/4。这一人体比例规律在今天仍被认为是十分有价值的。关于人体美的规律最伟大的发现,是关于“黄金分割定律的发现。所谓黄金分割定律,是指把一定长度的线条或物体分为两局部,使其中一局部对于全体之比等于其余一局部对这局部之比。这个比值是0.618111。首先,我们一起来分析一下,我们能从图片里得到什么信息。如果我们从左上角开始,从左到右扫描,当到达最右边时那么换行扫描。那么,我们很容易可以得到图像的最高点和最低点。而且,还可以得到图像每一行的宽。这将给我们接下来的操作提供了非常重要的信息。接下来,我们要继续分析,有了这个根底后,我们还能怎么做,怎
24、么才可以得到更多的信息。我们先从一张人体模型图像入手。图5-3 人体模型图我们可以很直观的发现,人体的一个很重要特点,那就是头和肩的宽度的差异。从头到脖子再到肩膀,呈现出一个“几字的形状。那么,我们将可以通过上面我们提到的信息中,得到更多的信息扩展。根据以上的信息,我们可以归纳出,一个健全的人类,在身体比例方面,必定有某个阈值为波动范围的约束。因此我们将按比例计算主要计算内容归纳为以下几个主要信息。第一,头部线。头部线指的是以自然站立为标准,头部与颈部连接点的横向分割线。第二,喉咙线。喉咙线指的是以自然站立为标准,喉结的横向分割线。第三,头部中线。头部中线指的是以自然站立为标准,头颅局部以眉心
25、为基准的纵向分割线。第四,整体中线。整体中线指的是以自然站立为标准,人类整体纵向的中心分割线。当头部线和喉咙线之间存在相互关联条件,并且头部中线与整体中线之间也在相互关联条件范围内时,我们便可以分析出运动的物体含有疑似人形。这里需要说明的是,本系统分析的疑似人形,指的是在自然站立状态下健全的人体轮廓。接下来,我们需要解决的问题是,如何从获取的图像里面获取以上四个重要信息。 图像图形匹配分析人形特征匹配,是基于人体比例的条件约束来规定的。在我们刚刚算出来的数值中,我们可以和人体比例约束联系起来。比方,喉结的位置和头部线和肩部线应该在某个阈值的范围里。头长与肩膀宽的比例应该在某个阈值的范围里。头部
26、的中线与整体的中线应该也在某个阈值的范围里。那么,我们就有了判断人形特征的约束,按照这个约束,我们将可以把人类某个状态自然站立下的形状特征给检测出来。模块流程框图 图5-4 模块流程框图以下是画面收集的主要实现方法: int, a = new int120000, 2; unsafe for (int i = 0; i data.Height; i = i + 1) for (int j = 0; j data.Width; j = j + 1) b = (byte*)(int)data.Scan0 + (i * data.Stride) + (j * 3); if (b0 != 0 & b1
27、 != 0 & b2 != 0) ak, 0 = i; ak, 1 = j; k+; 首先对去杂点处理后的图片进行遍历,假设所遍历到的点的RGB不等于0,0,0,那么把该点的横坐标和纵坐标分别读取出来,然后存进二维数组里,以便后面的计算。当画面收集完成之后,我们可以从图像里获得最高点和最低点。而且,还可以得到图像每一行的宽。那么,我们可以这样设想,我们可以通过头和肩的宽度差,来确定头部与颈部连接点的分割线。知道了头部与颈部连接点的分割线,那么我们可以知道脖子和头的总长度。因此,我们可以得到头部的平均宽度和头部的中线。主要代码如下: tryif (as, 0 != as - 1, 0) /换行操
28、作 nop+; /记录图象的行数 p = as - 1, 1; /记录上一行的尾 sum = p - q; /宽度 q = as, 1; /记录新一行的头 middle = sum / 2 + q; /每行的中间线 pj = pj + middle; /总的中间线 cc_lenght = sum;/把所有宽度存进数组 c_lenght+;catch 此处数组a为之前画面收集的点的存放处。当as, 0 不等于 as - 1, 0时,表示图形进行了换行操作如下列图:图5-5 操作分析图sum为每行的宽度,数组c是一个存放每行图像宽度数据的数组,nop记录图像的行数,middle记录了每行图像的中间
29、位置,pj累加记录总的中间位置值的总和。在此,当整副图像的宽度值都存放进数组c之后,我们可以得到整体中线的值=pj/nod。根据人体自然形态,从头到脖子再到肩膀,呈现出一个“几字的形状。我们可以发现,从头部到脖子再到肩膀,图形从上到下扫描的宽度值得变化比拟大。从头部到脖子扫描的宽度在缓慢将少,从脖子到肩膀扫描的宽度急剧增加。主要代码如下: for (int i = 0; i 20&i5) head_down = i + a0, 0; pj_sum = (int)(z_sum / i); /平均宽度 pj_sum = pj_sum / 2; break; catch 这个循环主要是对数组c进行遍
30、历,对存在数组c里面的图像宽度信息读取出来使用。经过测试,我们发现一般情况下,出现在画面中的图像头部线和肩部线之间距离在5个像素点之上。因此,我们对算法进行这样规定,当画面的前一个宽度值与后5个宽度值得差距在20个像素点之上时,可以确定头部线的位置。但是也不排除一些特殊的情况,比方画面的第1行的宽度可能和后几行的宽度差超过规定的像素范围。因此为了减少误判,我们在这里又做出另一个约束条件,只有同时满足已扫描行数超过5行的前提下,才可以做出认定。因此我们可以得到头部线的值=已扫描行数+画面起始纵坐标的值。同时,记录下画面总宽度,通过总宽度除以总行数,可以得到整体平均宽度值。有了头部线的值,之后我们
31、可以得到更多信息,主要代码如下: for (int s = 0; s (head_down - head_top); s+) try if (as, 0 != as - 1, 0) /换行操作 head_nop+;p = as - 1, 1; /记录上一行的尾 sum = p - q; /宽度 q = as, 1; /记录新一行的头 middle = sum / 2 + q; /每行的中间线head_sum = head_sum + middle; catch 通过前一步获得的头部线信息,我们可以循环读取出头颅局部图像每行的宽度值。middle记录头部图像每行的中间线值。head_sum记录头
32、部图像每行的中间线值的总和。 head_middle = head_sum / head_nop;通过,头部图像每行的中间线值的总和除以头部图像总行数计算出头部平均中线的值。head_lefty = (head_middle - (int)pj_sum);head_righty = (head_middle + (int)pj_sum)通过头部平均中线的值与整体平均宽度的二分之一值,可以得出头部左边界与头部右边界纵向的值。图5-6 人体模型图如图,我们得出了最高点线,最低点线,头部线,肩部线,头部左边界,头部右边界,整体中线,头部中线。有了这些信息,将会对我们下一步操作提供了十分有利的条件。根
33、据意大利的著名画家达芬奇提出的人体黄金比例。1。) + head_top;因此,我们可以计算出肚脐横向分割线的值。nop是图像总行数,head_top是图像起始点的横向分割线的值。hlx = (dqx - head_top) - (int)(dqx - head_top) / 1.618) + head_top;根据得到的肚脐横向分割线的值,又可以得出喉咙线喉结的横向分割线,如下列图所示。图5-7 人体模型图经测试,我们把各分割线之间的波动范围规定为,头部横向分割线的值与喉结横向分割线的约束范围不超过15个像素,头部纵向平均分割中线与整体纵向平均分割中线的约束范围不超过9个像素。并且为了减少误
34、判,我们又加多了一个约束条件,只有同时图像的总点数超过1000时,才可以做出判定。5.4人形特征匹配测试下面我们给出一些图片的测试。第一组测试:原图:图5-8 例如图经过背景减和去杂处理后:图5-9 例如图经过“按比例计算后:图5-10 例如图测试结果:肩部线,喉咙线,头部下边界在规定阈值范围内头部中线,整体中线在规定阈值范围内判定结果:符合人形特征第二组测试:原图:图5-11 例如图经过背景减和去杂处理后:图5-12 例如图经过“按比例计算后:图5-13 例如图测试结果:肩部线,喉咙线,头部下边界在规定阈值范围内头部中线,整体中线在规定阈值范围内判定结果:符合人形特征第三组测试:原图:图5-14 例如图经过背景减和去杂处理后:图5-15 例如图经过“按比例计算后:图5-16 例如图测试结果:肩部线,喉咙线,头部下边界不在规定阈值范围内头部中线,整体中线在规定阈值范围内判定结果:不符合人形特征第四组测试:原图:图5-17 例如图经过背景减和去杂处理后:图5-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学(简便运算)计算题专项练习与答案
- 联合企业激励协议书(2篇)
- 癌症康复课件教学课件
- 南京航空航天大学《电机学》2021-2022学年期末试卷
- 南京工业大学浦江学院《信息交互设计》2022-2023学年第一学期期末试卷
- 南京工业大学浦江学院《设计原理与设计管理》2021-2022学年第一学期期末试卷
- 分数的产生和意义说课稿
- 蹲踞式跳远示范说课稿
- 银凯工业园孵化产业园一区二期工程施工组织设计
- 《夏天的雷雨》的说课稿
- 事业单位招聘《综合基础知识》考试试题及答案
- 《突发事件应急预案管理办法》知识培训
- 江苏省南京市建邺区2024-2025学年九年级上学期期中考试物理试题(无答案)
- 中小学师德师风建设各项制度汇编
- 2024年保安员证考试题库及答案(共260题)
- 公务员2024年国考申论真题(地市级)及参考答案
- XXXX酒店管理公司成立方案
- 民用无人机操控员执照(CAAC)考试复习重点题及答案
- 疼痛科整体规划和发展方案
- 2024年中国南水北调集团水网水务投资限公司及下属单位社会招聘高频难、易错点500题模拟试题附带答案详解
- (新版)食品生产企业食品安全员理论考试题库500题(含答案)
评论
0/150
提交评论