作品简介

响应“十四五”林业草原保护发展规划对保护野生动植物的号召及《国家重点保护野生动物名录》和《国家重点保护野生植物名录》首次全面调整,为了更好地普及野生动植物知识,满足教师、学生、动植物爱好者的需求,我们基于人工智能和微信小程序技术,推出了支持热点快讯、动植物辞典、AI识别、AI问答、答题挑战等功能的AI自然卫士微信小程序。

主要功能如下:

​ 1. 展示关于自然保护、野生动植物的热点消息和相关政策,支持图文和视频两种展示形式。

​ 2. 提供野生动植物的百科全书,支持根据保护级别和动植物类别筛选查看。

​ 3. 基于图像识别技术,可识别近八千种动物、超过2万种常见植物和近8千种花卉。

​ 4. 答题挑战:提供有关动植物的趣味问题,用户答题后可参与排行榜。

​ 5. AI问答助手:支持百科问答和聊天,方便给用户答疑解惑

安装说明

使用方式1: 在手机微信首页下拉。然后搜索小程序“AI自然卫士”,即可进入打开。

使用方式2:使用联网的手机微信扫描以下二维码即可打开(小程序二维码如下所示)。

image-20220531100810218

使用方式3: 打开微信开发者工具,点击导入,选择项目文件夹,选择小程序模式/普通编译 编译运行即可。

作品暂未开源,感兴趣的小伙伴们敬请期待~

作品效果图

一、首页

image-20220531100544188

二、热点资讯

image-20220531100553228

image-20220531100559836

三、动植物百科辞典

image-20220531100608339

image-20220531100614454

四、图像识别

image-20220531100621589

image-20220531100628562

五、答题挑战

image-20220531100636199

image-20220531100642211

六、智能问答

image-20220531100649293

设计思路

一、需求分析

社会背景

国家林业和草原局在“十四五”林业草原保护发展规划中确定了我国生物多样性保护目标,将从多种野生动植物入手,实现物种的全面保护。2021年2月和9月,新调整的《国家重点保护野生动物名录》和《国家重点保护野生植物名录》相继正式发布,这是两个《名录》发布施行以来首次系统、全面调整。

野生动植物是自然生态系统的重要组成部分,加强野生动植物保护是维护生物多样性、建设生态文明的重要举措。

但全国野生动植物资源调查结果显示,我国87.7%的野生动物种群因栖息地缩减、割裂、质量下降、人为活动干扰等原因,生存空间不断受挤压,不少濒危物种的栖息地、鸟类集群活动区域及迁飞通道面临着土地开发、农业开垦、环境污染等威胁,前景堪忧,形势仍很严峻。

竞品分析

image-20220531100720433

二、概要设计

功能分解图

image-20220531100727446

整体架构图

image-20220531100732994

系统结构分层图

image-20220531100738144

系统流程图

image-20220531100744305

三、详细设计

前端

我们深知用户界面对一个产品的重要影响。在前端,基于小程序原生高颜值的组件库ColorUI进行设计,它提供鲜亮的高饱和度色彩,专注视觉,能为用户提供更加友好美观的界面。同时,我们也使用了Lin UI组件库来提升开发效率,简洁,易用的设计规范。为了尽最大可能提升用户体验,我们不断对细节进行调整,具体展示见作品效果图。

后端

在项目构思开始阶段,打算使用基于SpringBoot的Web框架和MySQL数据库进行开发,但是后来注意到微信官方平台提供的云开发新模式,使用云开发可以免去部署服务器的步骤,直接使用微信提供的云函数、云数据库。云函数无需维护鉴权逻辑,直接调用微信官方接口,云数据库则免部署运维,支持可视化管理、数据读写、数据库事务、自动备份回档等功能。使用云开发,既方便又可靠,是微信官方提倡的开发方式,使得我们可以更注重业务逻辑,更好的提升用户体验。

数据库设计

数据库采用微信云数据库,它支持免部署运维,可视化管理,数据读写、数据库事务、自动备份回档等功能,能够较大的简化开发流程。

本项目共包含五张数据表,ER图如下所示:

image-20220531100659326

关键技术

  1. 微信云开发

云端一体化开发多种端应用,避免了应用开发过程中繁琐的服务 器搭建及运维,开发者可以专注于业务逻辑的实现,开发效率更高。

  1. AI图像识别

可识别超过2万种常见植物、近8千种花卉和近八千种动物,接口返回动植物名称和置信度信息,支持获取识别结果的百科信息,可以为动植物爱好者提供分别有趣的交互和方便的功能。

  1. AI智能问答

百度大脑UNIT平台搭载业界领先的需求理解,对话控制及底层自然语言处理、知识挖掘等核心技术,通过对接该平台为动植物爱好者提供丰富的问答功能。

四、测试报告

通过微信小程序官方测试程序进行测试,得分优秀。另外,本项目已经通过审核正式上架小程序商店,可用性得到充分证明。

image-20220531100708355

重点难点

  1. 前端样式问题。由于第一次独立开发一个完整的前端项目,在配置环境、引用外部样式和组件库方面花了不少精力。另外,我在一开始的开发过程中,过于专注细节性的设计,而忽略的大局观,导致效率较低,最后先做出产品原型图再进行设计开发效率得到明显提升。

  2. 前后端的数据联动问题。通过后端查询到数据库字段后,通过setData方法将数据展示的时候,前端没有响应,经过反复排查,最终发现,小程序在异步请求之后直接this.setData({}) 是不起作用的,因为this丢失,需要在请求之前定义e = this,使用e.setData({}) 才可以,另外,e不能写成全局变量,一定要写在方法里,并且是异步请求之前才行。

  3. 后端部分第一次使用微信云开发、对云函数和云数据库不了解,但通过对官方文档的学习和钻研最终成功实现了相应的功能。

  4. 云函数中通过HTTP向百度图像识别接口发送请求的时候,出现以下问题:首先百度返回信息一直提示提示参数错误,但是当时反复排查也觉得没有问题,最终还是通过仔细阅读文档解决。第二个问题是尽管百度返回值是正确定,但是前端获得的result字段依然为空,通过在互联网上查阅相关资料,最终发现是由于云函数的异步机制导致的,由于JavaScript的异步机制,所以在HTTP请求未结束的时候主程序就已经退出了。

  5. 目前存在以下难点

​ (1)小程序未作推广,用户数量较少,下一步计划通过微信公众号、微信朋友圈、QQ聊天群等方式进行宣传。

​ (2)小程序目前数据量不足,下一步计划通过Python爬虫获取相关动植物资料,打造更加完善的数据库。

评价

本作品积极响应国家“十四五”林业草原保护发展规划,针对野生动植物的濒危处境和保护意识宣传力度普遍不足的现状,提供了一个解决方案。

本作品具有较强的实际意义,以微信小程序为载体,结合当今热门的图像识别和智能问答技术,

面向青少年和广大动植物爱好者科普野生动植物保护知识,能够真正做到寓教于乐,起到加强野生动植物保护、建设生态文明的重要作用。同时,本作品使用微信官方推荐的云开发的方式进行开发,结合云数据库和云函数,相比传统的Web开发更为安全、更为方便。