基于深度学习的蘑菇种类识别系统

前言介绍

项目背景和意义

  1. 在大自然丰富的生物多样性中,蘑菇家族成员繁多,据不完全统计,已知的蘑菇种类超过10万种。然而,蘑菇世界暗藏危机,野生蘑菇中相当一部分含有剧毒,且毒蘑菇与可食用蘑菇在外观上往往极为相似,难以仅凭肉眼准确区分。误食毒蘑菇的事件频繁发生,给人们的生命健康带来严重威胁。例如,2024年夏季,某乡村地区的居民在雨后采摘野生蘑菇食用,因误将剧毒鹅膏菌当作可食用蘑菇,导致10余人中毒,其中3人因救治无效不幸离世,这一事件为社会敲响了警钟。

  2. 传统的蘑菇识别方法主要依赖专业人员根据蘑菇的形态特征,如菌盖形状、颜色、菌褶特征、生长环境等进行判断,或是凭借民间积累的有限经验。但这些方法存在明显弊端,一方面,形态学识别需要专业人员具备深厚的真菌学知识和丰富的实践经验,对于普通民众而言门槛过高;另一方面,经验判断往往不够准确,在面对相似种类蘑菇时极易出错,无法满足大众对蘑菇准确识别的迫切需求。

  3. 基于深度学习的蘑菇种类识别系统的开发具有重大现实意义。在保障生命安全方面,该系统能够为广大民众提供便捷、准确的蘑菇识别工具,使人们在野外采摘或日常生活中能够快速判断蘑菇种类,有效降低误食毒蘑菇的风险,守护无数家庭的健康与幸福。从科研角度出发,系统可以自动收集、整理大量蘑菇图像及识别数据,为生物学家开展菌类分类、进化等研究提供丰富的数据资源,加速科研进程,推动真菌学领域的发展。此外,对于蘑菇相关产业,如食用菌种植、野生菌贸易等,准确的种类识别有助于规范市场、保障产品质量,促进产业的健康可持续发展。

01开发环境

1.1 Java 技术

1.2 Spring Boot 框架

1.3 MySQL数据库

1.4 B/S 结构

1.5 Vue.js 技术

1.6 深度学习算法图像识别,百度智能AI客服

02系统功能模块

亮点(深度学习算法图像识别,百度智能AI客服,人工客服,智能推荐)

1、数据管理:信息列表展示。

2、数据存储:mysql数据库。

3、深度学习算法图像识别

4、百度智能AI客服

5、前台智能推荐

03图片展示

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后台管理系统

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

05系统文档

5.1 系统文档
在这里插入图片描述
5.2 代码展示

/*
	 * 百度千帆AI(交流学习+vx:S20231025S)
	 */
	@RequestMapping("/baidu/askai")
	@IgnoreAuth
	public R baiduAskai(@RequestBody String ask) {
		return R.ok().put("data", BaiduUtil.qfChat(ask));
	}
}
class requestBody {
	private String ask;
	public String getAsk() {
		return ask;
	}
	public void setAsk(String ask) {
		this.ask = ask;
	}
}
    /**
     * 识别图片
     * @param imagePath
     */
    public static String generalString(String imagePath, boolean isNewline){
        try{
            HashMap<String, String> options = new HashMap<String, String>();
            options.put("language_type", "CHN_ENG");
            options.put("detect_direction", "true"); //是否检测图像朝向,默认不检测,即:false
            options.put("detect_language", "true"); 
            options.put("probability", "false"); //是否返回识别结果中每一行的置信度
            if(ocrClient==null) {
                ocrClient = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
                ocrClient.setConnectionTimeoutInMillis(5000);
                ocrClient.setSocketTimeoutInMillis(60000);
            }
            JSONObject jsonObject = ocrClient.basicAccurateGeneral(imagePath, options);
            String result = mergeString(jsonObject, isNewline);
            return result;
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return null;
    }

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐