观赏鱼辨识系统说明-Day 01
在接下来的35天会制作一个完整的系统包含前端-手机/网页,后端-Nginx + Django,以及辨识模型YOLO的建立,详细构架如下图。
图1、观赏鱼辨识系统架构图
用户使用手机拍摄观赏鱼的照片,透过RESTful Web API上传到亚马逊AWS的EC2虚拟主机上,在主机上我们安装了Nginx网页服务器来接收网页需求,它会把RESTful Web API的请求转送到Python的Django网页框架,把图片传给YOLO的图像辨识模型进行辨识,得到预测结果后,把文字结果传给MariaDB数据库去获取更多的观赏鱼相关数据,如鱼的中文名称,生活习性等;把图片结果储存到文件中。并把这些信息转成JSON格式当成是RESTful Web API的回复,回传给用户,并呈现在手机上。画面会如下图所示。
图2、观赏鱼辨识系统操作画面
需要实作的观赏鱼辨识系统服务如下,共有五个功能需要完成,分别为使用者的操作界面、RESTful API、数据库、网站服务器以及图像辨识服务等。下表分别列出所需要的软硬体元件,主要的实作都是在AWS云上完成,如果时间允许,会考虑相关服务都转换成AWS的其他对应服务,如RESTful API与网站服务器使用Amazon API Gateway搭配Lambda与S3来完成,数据库用DynamoDB来完成,不用RDS的原因,是因为RDS需要租用整个实例而非使用空间,而图像辨识就以亚马逊的Sagemaker来取代,这样就可以完成无服务器的实作,只是需要时间来尝试,不确定是否可以完成。不过,光是目前的工作量就可以安排30天了。
表1、系统需要实作的服务列表
服务 | 软件 | 硬件 | 功能说明 |
---|---|---|---|
操作界面 | js | 手机/个人电脑 | 拍摄照片 压缩/调整照片大小 调用RESTful API上传照片 解析来自web服务器的响应 显示结果 |
RESTful API | Django/Python | AWS EC2 | 递交 RESTful API 与数据库交互 与YOLO模型交互 |
数据库 | MariaDB | AWS EC2 | 观赏鱼信息的处理 |
网站服务器 | Nginx | AWS EC2 | 提供经过处理的图像 |
图像辨识 | YOLO model | AWS EC2 | 训练数据集 测试/识别照片 |