# API_final_project
**Repository Path**: guo_zi_fei/api_final_project
## Basic Information
- **Project Name**: API_final_project
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-22
- **Last Updated**: 2021-01-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
API期末项目——“物之观”(动植物鉴别app)
| 项目名称 | 发布日期 | 发布现状 | 项目主人 |
| :-----------: | :-----------: |:-----------: |:-----------: |
| 物之观 | 2021-01-22 |更新中|郭子菲
## 一、MVP价值主张
### 1、价值主张宣言
- 当今科技飞速发展,让我们足不出户即可了解世界,动植物也不例外,网上有非常多对于动植物的科普,增长我们的见解,丰富我们的知识库。但是这些仅仅只是在网上通过文字、音频与视频呈现出来。当我们走出家门,走到公园中,看到动物,摸到树叶,嗅到花香,当小孩子问“这是什么?”时,你是否还能辨别出来呢?对于户外动植物信息的言论你是否只是道听途说,无奈没有辨别力呢?因此,一款集动植物图像识别与科普的app能为家长们完美地解决这个问题。通过使用百度AI的动植物识别与apishop中的宠物大全与植物大全功能,对拍照上传的动植物进行识别,并给出动植物的名称,而在此基础上,给出此动植物的相关信息。
### 2、问题描述及解决方案
#### (一)核心价值
- 本产品着眼于对动植物的图像识别与科普与教育,能在户外中的动植物识别出来并给予用户更多的相关信息,物之观app利用百度ai图像识别与apishop中动植物大全功能,提供用户一个集趣味科普与教育的平台。
- 价值主张画布

#### (二)用户痛点与解决方案
| 核心价值 | 用户痛点 | 解决方案 |
| ---- | ---- | ---- |
| 灵活性 | 对于动植物不了解,道听途说 | 动植物大全 |
| 便捷性 | 对于户外植物的科普与教育 | 动植物识别 |
#### (三)人工智能概率性考量与用户痛点
> 结合第(二)点提出的用户痛点及问题,对比分析出百度AI开放平台的动植物识别技术、apishop平台的植物大全与宠物大全技术,分别有以下优势:
| 百度AI动植物图像识别功能优势/用户痛点 | apishop平台的植物大全与宠物大全优势/用户痛点 |
| ---- | ---- | ---- |
| 1. **集成方式灵活丰富**:提供REST API接口、离线SDK、在线SDK,充分满足大众拍照上传识别动植物功能,提供流畅自然的合成体验。 | 1. **技术成熟领先**:拥有广阔的数据信息,不断提高服务质量。| 1.**支持自助训练专属模型**:支持在语音自训练平台上自助训练模型,上传词汇文本即可零代码完成训练。 |
| 2. **EasyDL定制训练平台**:定制识别植物种类。适用于拍照识图、幼教科普、图像内容分析等场景。 | 2. **分类多样且丰富**:可查询相关植物信息,包含观花植物、观叶植物、多肉植物与流行植物,可按种类、花期与颜色分类,带植物图片。|
#### 结论:
* **据此,该产品动植物识别功能准确率有保障,通常不会出现与实际数据偏差太大的情况,但是由于此功能以外的因素(如拍摄角度等,动植物识别可能还不够丰富)会导致用户的体验感不是很好,容易乏味等现象。此概率事件可以通过技术的改进得到缓解,对用户的负面影响不会过大**。
* **该APP用户通过拍摄动植物并进行上传识别,实现对于动植物的识别科普与教育换。此功能技术准确率较高,普遍情况下返回结果比较精准。但由于一些不可预测因素,造成返回翻译结果不准确的状况,这些事件为小概率事件,对用户体验的负面影响不会压过正面影响的机率。**
## 二、问题需求
### 1、目标用户群体
- 家长
- 对动植物感兴趣的群体
### 2、用户画像及使用场景
- 使用场景:在放学路上时,看到小区楼下的花开了,颜色鲜艳,花香四溢。小孩问起了家长,这是什么花时,家长可以拿出手机给花拍一张照片,再上传到物之观上,就能迅速反馈回花的各种详情信息,方便家长对孩子进行科普与教育,也让孩子认识到植物,避免孩子误触碰或食用到有毒的植物。
- 
使用场景:在马路边的数上结了果子,虽然小但是结得多,有些人拿着塑料袋装回家吃,说可以吃很好吃的,有些人对此很震惊,说这不能吃,有毒。道听途说没有真正认识了解的人,这时可以对着果子拍一张照片,上传到物之观上,即可辨别出果子的物种与属性,即能矫正大家对果子的认识也能避免因误食而受伤。
### 3、需求列表与及优先级排序
| 优先级 | 用户需求 | 智能加值 | API接口 | 重要程度 |
| ---- | ---- | ---- | ---- |---- |
| 1 | 对遇到的动植物能立刻进行识别 | 是 | 动植物识别| A(重要)|
| 2 | 获得对识别到的动植物更多信息 | 是 | 动植物大全 | A(重要)|
| 3 | 获取对动植物的知识 | 是 | 动植物大全 | B(次重要)|
### 4、需求论证展示利害相关者分
| 主要利益相关者 | 行为 | 关注点 | 权利 | 获得利益 |
| ---- | ---- | ---- | ---- |---- |
| 公司(包括app开发团队) | 经过前期调研、分析用户痛点等相关操作,输出APP产品的价值主张画布,从而解决用户痛点及需求,在APP投入使用后,分析用户数据,考虑APP产品的迭代更新问题等 | 该产品的价值主张是否具有意义?该产品是否满足了用户可欲性、技术可行性和商业可行性? | 高 | 高|
| API使用者(用户) | 提出相关需求,使用该APP产品满足自己“动植物识别” 、“动植物大全”等需求,查看相关数据反馈,并可对该APP提出一定的意见反馈 | 该产品是否满足了自己的日常使用需求?该产品是否值得自己下载使用?该产品是否是免费供自己使用? | 高| 高|
| API提供者(百度AI开发平台、apishop) | 为APP设计开发团队提供相关API技术支持,为UI设计师提供使用API的输出等 | 为该产品提供API接口服务支持,是否能得到回报? | 中 | 高|
## 三、解决方案:界面流程及关键智能交互
1、[点击查看产品原型](https://modao.cc/app/679eaca669db47405d2ee6a3dd7285fc53d2985f?simulator_type=device&sticky)
### 1、针对该App产品的用户体验/旅程分析

### 2、产品结构图

#### (一)交互及界面设计
- 发现页界面设计及交互

- 搜索界面设计及交互


> **用户通过输入关键词对动植物进行搜索,在搜索结果页面中也有利用关键词进行筛选与概率排序,让用户有更多的选择。(此处利用了apishop中的植物与宠物大全,解决了对用户进行动植物的科普。)**
- 拍照上传设计及交互

> **用户通过点进拍照选项进入拍摄页面,拍摄成功后进入搜索结果页面,操作简单快速。(此处利用了百度ai的动植物识别api,拍照上传即可辨别出动植物详情。)**
## 四、解决方案:数据流程及关键智能API使用
### 1、数据流程图

### 2、产品使用可行性及用户可欲性
#### (一)技术方面可行性
* 该产品具有明确的核心价值和使用需求。
* 在多种实现产品功能的技术中,我们选择了精准度高、符合用户痛点的API加值。
* 该产品API存在小低率的技术风险,但是此小概率风险对用户体验的负面影响不会压过正面影响的机率。
#### (二)市场方面可行性
* 用户需求明显,且最小可行性功能可满足需求。
* 用户群体广泛,如在校学生、职场人士、退休人员皆可使用,产品的市场未来需求趋势在逐步增长。
#### (三)商业方面可行性
* 与教育辅导平台合作,进行相关动植物科普,用户可以通过点击外链跳转到相应的购买页面对动植物科普书籍进行购买。
* 首页的内容展示的是动植物的画像,可以与人气高的用户进行签约,将其内容放入首页展示,更新吸引新的用户使用。
### 3、API 产品使用及输出展示
#### (一)动植物图像识别
**百度ai动植物识别**
- **接口描述:**
该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出动物识别结果。
- **接口地址:** [动植物识别api](https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Zk3bcxdfr)
- **请求示例:** HTTP
- **方法:** POST
- **请求URL:** https://aip.baidubce.com/rest/2.0/image-classify/v1/animal
- **案例展示**

- **代码展示**
```
# 先获取access_token
# encoding:utf-8
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=lVWTlC0SWweMHR533GrpOYNf&client_secret=UR186wzOVTuwyi7QOWDbjbyAaInmB06V'
response = requests.get(host)
if response:
print(response.json())
```
```
# encoding:utf-8
import requests
import base64
'''
动物识别
'''
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/animal"
# 二进制方式打开图片文件
f = open('C:\Users\Administrator\Desktop\gaobaidi.jpeg', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = '24.595ad51261fd02ae3bd2d5e5e5bb64f8.2592000.1613986058.282335-23580483'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json())
```
- **结果如下**
```
HTTP/1.1 200 OK
x-bce-request-id: 73c4e74c-3101-4a00-bf44-fe246959c05e
Cache-Control: no-cache
Server: BWS
Date: Tue, 18 Oct 2016 02:21:01 GMT
Content-Type: application/json;charset=UTF-8
{
"log_id": 7392482912853822863,
"result": [{
"score": "0.993811",
"name": "叉角羚",
"baike_info": {
"baike_url": "http://baike.baidu.com/item/%E5%8F%89%E8%A7%92%E7%BE%9A/801703",
"description": "叉角羚(学名:Antilocapra americana):在角的中部角鞘有向前伸的分枝,故名。体型中等,体长1-1.5米,尾长7.5-10厘米,肩高81-104厘米,成体重36-60千克,雌体比雄体小;背面为红褐色,颈部有黑色鬃毛,腹部和臀部为白色,颊面部和颈部两侧有黑色块斑;毛被下面为绒毛,上覆以粗糙、质脆的长毛,由于某些皮肤肌的作用,能使其毛被呈不同角度,以利于保暖或散热。植食。叉角羚奔跑速度非常快,最高时速达100千米。一次跳跃可达3.5-6米。善游泳。夏季组成小群活动,冬季则集结成上百只的大群。为寻找食物和水源,一年中常进行几次迁移。性机警,视觉敏锐,能看到数千米外的物体。遇险时,臀部的白色毛能立起,向同伴告警。分布于北美洲。"
}
},
{
"score": "0.000289439",
"name": "印度羚"
},
{
"score": "0.000186248",
"name": "藏羚羊"
},
{
"score": "0.000147176",
"name": "跳羚"
},
{
"score": "0.000134434",
"name": "驯鹿"
},
{
"score": "9.86555e-05",
"name": "高鼻羚羊"
}]
}
```
#### (二)植物大全
- **接口文档:** [植物大全api](https://www.apishop.net/#/api/detail/?productID=199)
- **接口地址:** https://api.apishop.net/common/plantFamily/queryPlantListByKeyword
- **请求协议:** HTTP、HTTPS
- **请求方式:** POST
- **请求格式:** JSON
- **返回格式:** JSON
- **请求示例:** https://api.apishop.net/common/plantFamily/queryPlantListByKeyword?apiKey=您的apiKey&page=参数1&pageSize=参数2&keyword=参数3
- **代码展示:**
```
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 测试环境: python2.7
# 安装requests依赖 => pip install requests/ easy_install requests
# 导入requests依赖
import requests
import json
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
def apishop_send_request(method, url, params=None, headers=None):
'''
转发请求到目的主机
@param method str 请求方法
@param url str 请求地址
@param params dict 请求参数
@param headers dict 请求头
'''
method = str.upper(method)
if method == "POST":
return requests.post(url=url, data=params, headers=headers)
elif method == "GET":
return requests.get(url=url, params=params, headers=headers)
else:
return None
method = "POST"
url = "https://api.apishop.net/common/plantFamily/queryPlantListByKeyword"
headers = None
params = {
"apiKey" : "vBqlVXl40a93061d67a24f7f2e03e64b1a561310f8d945b", #apiKey
"page" : "1", #页码(默认为1)
"pageSize" : "30", #当前页面植物数量(默认为30)
"keyword" : "羊", #关键字
}
result = apishop_send_request(method=method, url=url, params=params, headers=headers)
if result:
body = result.text
response = json.loads(body)
status_code = response["statusCode"]
if (status_code == "000000"):
# 状态码为000000, 说明请求成功
print("请求成功:%s" % (body,))
else:
# 状态码非000000, 说明请求失败
print("请求失败: %s" % (body,))
else:
# 返回内容异常,发送请求失败
print("发送请求失败"")
```
- **结果展示:**
```
HTTP/1.1 200 OK
x-bce-request-id: 73c4e74c-3101-4a00-bf44-fe246959c05e
Cache-Control: no-cache
Server: BWS
Date: Tue, 18 Oct 2016 02:21:01 GMT
Content-Type: application/json;charset=UTF-8
{
"log_id": 7392482912853822863,
"result": [{
"score": "0.993811",
"name": "叉角羚",
"baike_info": {
"baike_url": "http://baike.baidu.com/item/%E5%8F%89%E8%A7%92%E7%BE%9A/801703",
"description": "叉角羚(学名:Antilocapra americana):在角的中部角鞘有向前伸的分枝,故名。体型中等,体长1-1.5米,尾长7.5-10厘米,肩高81-104厘米,成体重36-60千克,雌体比雄体小;背面为红褐色,颈部有黑色鬃毛,腹部和臀部为白色,颊面部和颈部两侧有黑色块斑;毛被下面为绒毛,上覆以粗糙、质脆的长毛,由于某些皮肤肌的作用,能使其毛被呈不同角度,以利于保暖或散热。植食。叉角羚奔跑速度非常快,最高时速达100千米。一次跳跃可达3.5-6米。善游泳。夏季组成小群活动,冬季则集结成上百只的大群。为寻找食物和水源,一年中常进行几次迁移。性机警,视觉敏锐,能看到数千米外的物体。遇险时,臀部的白色毛能立起,向同伴告警。分布于北美洲。"
}
},
{
"score": "0.000289439",
"name": "印度羚"
},
{
"score": "0.000186248",
"name": "藏羚羊"
},
{
"score": "0.000147176",
"name": "跳羚"
},
{
"score": "0.000134434",
"name": "驯鹿"
},
{
"score": "9.86555e-05",
"name": "高鼻羚羊"
}]
}
```
### 4、API各平台使用比较分析
#### (一)讯飞物体识别api
- 讯飞对照片要求不超过800k
- 讯飞要授权登陆
- 讯飞数据库与百度相比较为逊色
- 百度识别较为精确
- 
#### (二)阿里云云市场花伴侣智能植物识别
- 信息少且比较简陋
- 价格相比较高
apishop价格

花伴侣价格

### 5、人工智能概率性考量/使用后风险报告

## 五、心得总结
- **心得:** 在制作本项目中,我感悟良多,从中学习到了许多关于产品关于api的知识,同时也复习与弄清楚了关于价值宣言,用户体验,产品原型制作等专业性问题,也让弄明白我从产品经理的角度出发去面对一个产品所需要考虑的东西,收获颇多。
- **建议:** 在制作这份文档时,首先要准确了解自己到底要做什么,要有一定的规划,不能像想到什么写什么。其次要对于老师的要求有一定的理解,学会提炼与把握。最重要的是要有耐心,有恒心!
- **感谢各大开放平台提供api接口的支持**
[百度ai开放平台](https://ai.baidu.com/tech/imagerecognition/animal)
[apishop](https://www.apishop.net/#/api/detail/?productID=199)