1.促进人们对旅游及生态环境区的了解
2.作为高中生认识大学的一个平台(留一个接口出来做排名)校园宣传
3.帮助本校相关植物专业的老师和学生提供便利
1.用户拍照上传地图图片(对应后台地图API)
2.用户拍照上传植物图片
3.识别返回植物信息(及病害返回植物养护知识)
4.将植物信息上传至地图(若无此植物则上传)
5.用户可查看地图直接寻找植物(对应地理信息)
结果:形成对应的植物地理地图
1.各个地方的绿化排名:留一个接口出来做排名
2.前期
2.待定……
本项目需要用到百度智能云的植物图像识别API服务
由于计算资源有限,可用到Resnet50等CNN模型进行特征提取
Milvus 是一款全球领先的开源向量数据库,赋能 AI 应用和向量相似度搜索,加速非结构化数据检索。用户在任何部署环境中均可获得始终如一的用户体验。Milvus 2.0 采用存储与计算分离的架构设计。该重构版本的所有组件均为无状态组件,极大地增强了系统弹性和灵活性。
from milvus import default_server
default_server.start()
检验数据库是否启动成功
from pymilvus import connections, utility, db
connections.connect(host='127.0.0.1', port=default_server.listen_port)
print("Milvus version:", utility.get_server_version())
Milvus version: v2.3.1-lite
创建一个命名为 plant
的数据库。
database = db.create_database("plant")
db.using_database("plant")
1.定义集合名
2.定义数据列
3.创建schema
4.创建数据集合
5.检查集合创建是否成功
我们需要对embeddings
字段建立索引,才可进行后续的向量搜索、向量比对等操作。可以用到IVF_FLAT
索引类型orIVF_SQ8
等压缩算法以节省内存消耗。
植物图像识别直接调用百度智能云提供的植物图像识别接口AipImageClassify.plantDetect
将百度智能云的识别接口封装到一个命名为plantRec
的函数中,其中baike_num
参数能够在返回植物种类的同时返回该植物对应的百度百科词条,可直接当成知识库内容使用。
串联植物图像识别的流程,往数据库里插入了一张的图片。此时如果用户上图片,根据向量比对结果,用户上传的图像特征与数据库里面已有的图像特征之间具有较高的相似度,因此它们的距离应该非常相近。 如果距离<20(阈值可根据经验确定),即代表用户图像特征和数据库图像特征具有可靠的匹配度,直接返回植物名和植物介绍结果。 反之,即认为数据库里面没有相似图像匹配,此时就调用植物图像识别接口,获取植物名和植物介绍。
配置数据库,用于存储用户上传的图像和模型的相关数据。
编写 Django 模型和视图用于处理用户上传的图像和返回识别结果。
将前面1-6的模型集成到Django项目中。
创建 Django API,定义相应的 POST 和 GET 请求用于上传图像和获取植物识别结果。
测试和调试:使用合适的测试工具对后端 API 进行测试,确保接口的正确性和稳定性。同时,根据需要进行调试和优化。
将 Django 项目部署到服务器上,并配置好相应的环境变量和依赖关系。确保后端服务可以正常运行。