之前参加了一个比赛,简单说一说,源代码放到了github。
题目背景:
随着科学发展观的贯彻落实,生态保护意识深入人心,越来越多的人们意识到了保护生物多样性的重要性,并且愿意通过自己的行动为生物多样性的保护献出自己的力量,但是目前市面上并没有类似的应用。借助于互联网络时效性强、影响面广、信息量大等特点设计开发基于互联网的应用系统成为当今国内外生物多样性信息系统建设的发展方向和必然趋势。因此,我们设计了“Pandora生态”系统,首先鼓励大众使用移动端手机app以“随手公益”的方式记录身边的生物多样性信息,从而形成真正意义上的生物多样性大数据;其次,通过专家系统为生物学专家提供技术支持,帮助专家为热爱自然的公众提供研究自然体验、智力资源和科学保障;最后,将数据分析的结果整理后,在PC后台系统对管理员进行可视化展示并定期形成可供决策部门采信的报告。
系统编写语言涉及到多种语言
移动端:Android,PC端:HTML,CSS,JSP,PHP,大约为一万行
系统展示:
android登录首页:
系统基本功能
功能介绍
“Pandora生态”系统共分为移动端、PC后台系统和专家系统三部分。
2.1 移动端
系统的移动端为“Pandora”手机app,旨在给大众热爱自然的公众提供一个“随手公益”的工具。
功能一:物种识别。用户可以通过手机拍照功能拍摄生物的照片,然后通过人工智能图像识别技术鉴定物种,把鉴定成功的物种名称和对应位置信息进入数据库,并且将物种信息展示给用户。
功能二:专家辅助识别。对于工智能无法准确鉴定的物种,将数据存储到数据库并在专家系统进行展示,交由专家鉴定,鉴定后的物种名称和位置信息进入数据库。
功能三:多样性大数据。用户可以随时随地通过“Pandora”手机app记录身边的生物多样性信息,从而形成真正意义上的生物多样性大数据。
功能四:爱心募捐。爱心用户可以向指定自然保护区或者珍稀动物繁殖基地,例如成都大熊猫繁殖基地等进行爱心捐赠,为生物多样性的保护献出自己的力量。
功能五:动物领养。繁殖基地或者自然保护区可以发布领养信息,满足领养条件的组织或个人可以通过app在线进行领养申请。繁殖基地或者自然保护区管理员在线对领养者提供的信息进行初步审核,审核通过后再进行线下领养流程。从而简化流程,消除信息不对称的情况。
功能六:用户注册。用户通过手机号进行注册,手机号需要接收验证码进行验证,验证通过后可以完善用户个人信息。
2.2 PC后台系统
PC后台系统为管理员后台。
功能一:用户管理。为管理员提供登录注册、评论管理、会员管理、管理员管理等管理功能。
功能二:动物管理。为管理员提供动物信息管理、动物图片管理、动物分布查询等功能。
功能三:数据分析与数据可视化。通过数据表、折线图、动物分布地图等方式,将数据分析的结果进行可视化展示,并定期形成可供决策部门采信的报告。
功能四:募捐管理。为管理员提供发布募捐、查看修改募捐信息、查询统计爱心用户募捐、管理订单等功能。
功能五:系统统计。对系统信息进行统计,包括用户增长情况、图片数据增长情况、动物数据增长情况等。
2.3 专家系统
Pandora专家系统的主要目的是为动物学专家提供一个平台,帮助专家为热爱自然的公众提供科学的支持,对人工智能未能准确识别的生物图片进行人工识别。
功能一:专家登录。专家通过帐号密码登录专家系统。
功能二:图片展示。专家可以通过该系统浏览未识别图片、点击图片查看详情、向上向下翻页。
功能三:人工识别。专家通过该系统查看图片后可以进行人工识别操作,对生物名称和濒危程度进行人工判定并提交,提交后信息会保存到数据库,同时将未识别的图片保存到已识别表中。
数据库实现:
数据库共有七张表,分别对应专家信息、动物信息、动物分布信息、后台管理员信息、未识别动物信息、已识别动物信息和用户信息。
(1)专家系统
专家信息表(professor)存储专家基本信息,包含下列字段。
Pid(主键),pname(名字),paccount(帐号),pcode(密码),pphone(手机号),pemail(邮箱)
附带说明:
1.pphone记录要检测手机号是否等于11位。
2.pemail记录要检测是否含有@等符号。
3.panme,paccount,pcode长度不超过20位。
(2)动物信息
动物信息表(animal)存储动物信息,包含以下字段:
aid(主键),aname(动物名),degree(濒危程度,等级1-7,1灭绝,7无危险),image(动物图片,base64格式)
(3)动物分布表
动物分布表(distribution)存储动物在全国的分布数据,包含以下字段:
did(主键),aid(动物Id),aname(动物名),province(省份),city(城市)
(4)后台系统管理员
后台系统管理员表(admin)存储管理员信息,包含以下字段:
aid(主键),aname(管理员名称),aacount(帐号),acode(密码)
(5)未识别动物表(专家识别后,将信息转入已识别动物表)
未识别动物表(unidentified)存储未识别动物的信息,包含以下字段:
uid(主键),uname(名称),uimage(未识别动物图片,base64格式)
(6)已识别动物表(管理员查看之后,将信息存入动物信息表并删除相应信息)
已识别动物表(identified)存储已经被识别的动物的信息,包含以下字段:
id(主键)、name(动物名)、image(动物图片,base64格式)、uid(识别此动物的专家)、pid(提交此动物图片的用户)
(7)用户信息
用户信息表(user)存储系统用户的信息,包含以下字段:
uid(主键),uname(用户名),uaccount(帐号),ucode(密码),uphone(手机),uemail(邮箱)
移动端功能:
移动端“Pandora”手机app使用原生android开发,编程语言为java语言,开发工具为android studio。
1、物种识别功能
首先用户通过通过帐号密码登录系统,系统对用户身份进行验证。用户点击拍摄照片按键,app调用手机相机,使用手机拍照功能拍摄生物的照片。用户拍照完成后,调用图像识别API,人工智能对图像进行识别,将识别结果进行反馈,展示给用户并存储到后台数据库当中。
对于成功识别的物种照片,存储到已识别物种库中,等待审核,管理员查看之后,将信息存入动物信息表,形成生物多样性大数据,供后台进行分析处理和展示。
2、募捐功能
爱心用户通过移动端app查看管理员发布的募捐信息,然后可以选择相应的动物保护机构进行爱心捐赠,提交捐赠请求后生成支付订单,如果支付成功订单完成,可以在已完成捐赠中查看;如果支付不成功,订单转入未完成订单中,用户可以在未完成订单中进行查看,并可以继续进行支付。
3.4 PC后台系统功能实现
PC后台系统后台使用PHP语言,数据可视化框架为echarts,通过ajax实现前台和后台的交互。
(1)管理员登录功能
管理员用户通过管理员帐号和密码,登录PC后台系统后台。若帐号密码匹配,则登陆成功,否则登录失败。
(2)系统统计功能
从数据库中查询系统的使用数据,包括用户数量、评论数量、动物数量、图片数量和未识别生物数量,统计它们的每日、每周。每月的增长情况,以统计表和可视化折线图的形式进行展示。
(3)动物管理功能
动物管理功能包括已经记录的动物数据查看和动物全国分布查询功能。管理员输入动物名称,即可在中国地图上显示该动物存在的省份以及数量(数据为测试数据,仅供参考)。
通过ajax实现前台和后台的交互,通过echarts插件进行数据可视化展示。
(4)管理员管理功能
后台管理员具有登录系统后台、使用系统后台功能的权限,因此不能开放注册,只能由超级管理员手动添加。在管理员管理界面,可以实现对已有管理员的查看与管理以及添加新的管理员。
(5)会员管理功能
后台管理员可以通过会员管理界面查看系统已经注用户的信息。
(6)募捐管理功能
为管理员提供发布募捐、查看修改募捐信息、查询统计爱心用户募捐、管理订单等功能。
PC端功能:
3.5 专家系统功能实现
专家系统流程图:
专家系统后台采用ssm框架(Spring+SpringMVC+MyBatis),通过ajax实现前台和后台的交互,编程语言为Java+Html+javaScript。
SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使用spring MVC负责请求的转发和视图管理,spring实现业务对象管理,mybatis作为数据对象的持久化引擎。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便,适合轻量级的web应用开发。
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。Ajax可使web应用程序更小、更快,更友好。
专家系统实现了未识别图片浏览功能、查看图片详情等功能,专家查看图片后可以进行识别操作,识别完成以后识别信息会保存到数据库,同时将未识别的图片保存到已识别表中。