# API 期末项目
**Repository Path**: mrtfate/api---final-project
## Basic Information
- **Project Name**: API 期末项目
- **Description**: No description available
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-03-07
- **Last Updated**: 2025-03-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
| 文档名称 | 手影:手语识别应用 —— 产品需求文档 |
| :--: | :-- |
| 产品名称 | 手影 |
| 产品描述 | 一款能够通过照片、视频方式识别手语并翻译成通用语言,或是将用户输入语言转换为手语教程图片的应用程序 |
| 产品版本 | 1.0 |
| 文档作者 | 区思莹 |
[带语音旁白投影片](https://gitee.com/bannngo/api---final-project/blob/master/ppt/20x20%E5%B8%A6%E8%AF%AD%E9%9F%B3%E6%97%81%E7%99%BD%E6%8A%95%E5%BD%B1%E7%89%87.pptx)(音频总时长4分55秒)
---
## 一、MVP加/价值主张宣言
### 1. 加值宣言
我们生活的这个世界里被各种声音充斥着,人言、鸟语,各种各样的声音在我们耳边响起。我们通过声音交流,声音让这个世界丰富了起来。但这个世界上有那么一群人他们因为先天又或是后天的原因与声音无缘,他们拥有自己安静的语言,但这依然不足以支撑他们与人正常的交流。手语作为一门经认证的语言,对于我们来说依然犹如一门外语,陌生且需要学习。囿于种种现实的原因,交流困难时常存在于我们与他们之间。针对这个问题,产品利用百度AI开放平台上的“手部关键点识别”,配合相关手语数据与图片、视频识别技术,将手语翻译成通用语言。
### 2. 核心价值
利用“手部关键点识别”、“图像主体检测”、“视频内容分析”,对用户上传的图片、视频进行分析处理并输出相应手语翻译。
### 3. 问题及解决方案说明(融合人工智能概率性考量)
| 问题 | 人工智能概率性考量 | 解决方案 |
| :--: | :-- | :-- |
| 用户缺少一个有这方面功能的app | 百度AI开放平台提供全球领先的语音、图像、NLP等多项人工智能技术,是全球领先的人工智能服务平台。在视觉技术方面,百度已经形成了包括图像、视频、AR/VR、重要垂类、软硬一体化五大方向在内的特色视觉技术矩阵 | 利用百度AI开放平台的API功能,实现手语手势的识别与含义解释 |
| 用户缺少一个准确率较高的app | 如今百度开放了从大规模数据集、深度学习框架算法,到场景化和个性化AI计算能力的全方面基础设施,百度AI图像技术准确率更是高达95% | 利用百度AI图像技术中的“图像主体检测”,准确检测上传图片的主体内容,便于识别手势 |
| 大数据时代人人害怕隐私泄露,在人工智能的领域中是否能确保自己的隐私安全 | 百度建立了自上而下的隐私保护体系,成立数据隐私保护委员会、建立数据隐私“3C原则”,使数据保护纳入公司战略,加强隐私保护制度建设,完善隐私保护流程要求。在数据收集、授权、使用等层面,充分尊重用户,提升用户参与度和控制权 | 操作均需获得同意,不设“流氓”条款,让用户得知每一步操作。app在获取用户手机相册图片时需先向用户索要读取相册的权限,给予用户充分的控制权,而不是强迫用户。在得到用户允许后才利用api功能进行相应处理。 |
---
💡 💡 💡 💡 💡
## 二、问题需求
### 1. 用户洞察

(包含用户痛点)
#### 用户问题表述
随着人权问题逐渐被世界更加关注,不同群体的不同需求逐渐汇聚成了一股股声音让我们听到。我们希望能了解拥有听觉障碍、语言障碍的群体现阶段的真实需求,他们也希望能与我们有更多交流……
### 2. 使用情景说明&用户画像


### 3. 需求列表
| 优先级 | 用户需求 | API智能加值 | API类型 | 级别 |
| :--: | :-- | :-- | :-- | :--: |
| 1 | 翻译手语 | 用户通过app识别到手势语言含义 | 百度AI手部关键点识别 | 重要 |
| 2 | 上传图片识别手语 | 用户上传图片并识别手势 | 百度AI图像分析 | 次重要 |
| 3 | 上传视频识别其中所含手语 | 用户上传视频并识别视频中一系列手势 | 百度AI视频内容分析 | 次重要 |
### 4. 需求论证之利害相关者分析

---
🌏 🌏 🌏 🌏 🌏
## 三、解决方案:界面流程及关键智能交互
### 1. 产品原型
- 交互原型:[产品原型交互演示链接](https://modao.cc/app/0c90bbf67c93b0a5ef51ca8bcf27e2dbae7e5a1f?simulator_type=device&sticky)

- 原型图:[原型图仓库](https://gitee.com/bannngo/api---final-project/tree/master/%E9%AB%98%E4%BF%9D%E7%9C%9F%E5%8E%9F%E5%9E%8B%E5%9B%BE)
### 2. 用户旅程

### 3. 界面交互流程图

- 用户可直接上传相册内容或直接摄制的内容,两种方式交由用户根据自身实际选择。用户在拥有较大自主控制权的同时只需简单操作便可以享受app功能。
- 图片/视频由用户上传后通过“图像主体检测”、“视频智能识别” api进行图像主体(手)的识别处理,随后调用“手部关键点识别”api功能输出相关数据。
#### 从用户可欲性分析:
如今高速发展的社会中人权问题不断被更加重视,不同群体人的利益、权利被更尊重。为了能与拥有听觉障碍、语言障碍的残障人士群体实现更加便利的沟通,让社会关注到他们所面临的问题,保障他们的权利,app将利用“手部关键点识别”、“图像主体检测”、“视频智能识别”的api功能来帮助用户通过图片或是视频的方式,将手语翻译成通用语言。利用api准确、便利地捕捉到每一个手势,再精确地输出释义,建立在此基础上的沟通非常吸引当今由此需求的用户及相关公益组织。
#### 从技术可行性分析:
- 准确度:百度开放了从大规模数据集、深度学习框架算法,到场景化和个性化AI计算能力的全方面基础设施,百度AI图像技术准确率更是高达95%
- 技术性:百度ai在图像技术方面有较高造诣,已研发种类丰富的的开放api,不论是图像特效、图像识别或是图像增且类功能都非常强大,值得信赖。
- 可信度:百度大脑AI大生产平台已开放210多项核心AI能力,日调用量过万亿次,开发者超过150万,企业用户发布模型超过16.9万个,用户群体广泛,用户体验佳,有很大的可信度。百度建立了自上而下的隐私保护体系,加强隐私保护制度建设,完善隐私保护流程要求。
#### 从商业可行性分析:
随着时代发展,人工智能等技术实力也成为大国角力的重要赛点。在乌镇智库发布的《全球人工智能发展报告》中,中国人工智能在企业数量、融资规模等方面势头强劲。20世纪60年代后,电子技术、计算机技术有了相当的发展,数字图像技术开始进入了高速发展时期。经过几十年的发展,数字图像技术目前已经广泛应用于多个领域。
人工智能技术的社会关注度不断升高,api技术通过更新迭代功能越来越强。由此可见,图像技术api在未来的市场中将会处于上升阶段,市场价值仍有很大的上升空间。而且“手部关键点识别”、“图像主体检测”、“视频智能识别”API调用成本低,智能加值在满足用户的同时,可以节约成本,发挥了很好的商业价值。
---
🆗📱 🆗📱 🆗📱 🆗📱 🆗📱
## 四、数据流程及关键智能API使用
### 1. 流程图
#### 用户流程图

#### 数据流程图

#### 从用户可欲性分析:
用户只需拍摄上传便可以即刻获得手势释义,在与残障人士的沟通交流中无疑提供了极大的帮助,这让他们更能理解对方;同时对于用户手语学习的过程来说,这样简便的功能让他们不再需要一次一次动用搜索引擎,十分具有吸引力。
#### 从技术可行性分析:
技术层面上讲,操作难度适宜。结合云数据库的帮助能更好地在后台收纳手语释义,并反馈给查询的用户。
#### 从商业可行性分析:
后台储存转换成功的照片数据后,可以对它们进行分析,在这些数据中提取信。根据用户返回的信息让app功能更加丰满,满足用户各方面的需求,从而获得更高的商业利益。
### 2. 智能API使用水平
#### 识别图片主体
- 官方api文档:[百度AI开放平台图像主体检测](https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Xk3bcxdum)
- 接口描述:检测出图片中最突出的主体坐标位置,可使用该接口裁剪出图像主体区域,配合图像识别接口提升识别精度。
- 接口url:```https://aip.baidubce.com/rest/2.0/image-classify/v1/object_detect```
- 请求方法: ```POST```
##### 示例
获取access_token
输入:
```python
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
print(response.json())
```
返回:
```python
{'refresh_token': '25.2b46841cac6c2e5a3b624154d348c07c.315360000.1926769126.282335-23581166', 'expires_in': 2592000, 'session_key': '9mzdDovDJWGFY7EMsv1a36/9kxYkzRwuJc35R1XVmLyrLISWkoxFzxDezjq9yb1j5V13uQbfv43IahYmQ04s7nw1Ao94TA==', 'access_token': 【生成的access_token】, 'scope': 'public vis-classify_dishes vis-classify_car brain_all_scope vis-classify_animal vis-classify_plant brain_object_detect brain_realtime_logo brain_dish_detect brain_car_detect brain_animal_classify brain_plant_classify brain_ingredient brain_advanced_general_classify brain_custom_dish brain_poi_recognize brain_vehicle_detect brain_redwine brain_currency brain_vehicle_damage brain_hand_analysis wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base smartapp_mapp_dev_manage iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理 smartapp_component smartapp_search_plugin', 'session_secret': '6b186de647bdd0a29cea00b74138ca45'}
```
上传带有清晰手势动作的照片
输入:
```python
def baidu_imageclsfy(image):
""" 百度ai图像识别 - 图像单主体识别 """
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/object_detect?access_token=" + access_token
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {
"image":img
}
headers = {
'content-type': 'application/x-www-form-urlencoded'
}
response= requests.post(request_url, data=params, headers=headers)
return response.json()
```
返回:
```python
{
"log_id": "9202655495210156119",
"result": {
"width": 244,
"top": 34,
"left": 159,
"height": 406
}
}
```
效果展示:

#### 视频内容分析
- 官方api文档:[京东人工智能开放平台视频内容分析](https://aidoc.jd.com/thirdDocs/7/2dca72ed32764fc2847c090192ac780f-630.html)
- 接口描述:视频内容分析支持用户上传一段需要处理的视频, 根据需要进行结构解析,静态摘要,动态摘要中的一种或多种服务
- 静态摘要:服务支持用户上传一段视频,生成并返回该段视频的静态视频摘要结果,以关键帧(keyframe)JPG格式存储在staticThumbnail文件中, 同时返回镜头(shot)解析文档和场景(scene)解析文档。视频[静态摘要上传接口](https://aidoc.jd.com/thirdDocs/7/2dca72ed32764fc2847c090192ac780f-630.html#12-%E9%9D%99%E6%80%81%E6%91%98%E8%A6%81%E4%B8%8A%E4%BC%A0%E6%8E%A5%E5%8F%A3) 提供用户上传待处理视频至处理服务。[静态摘要状态查询接口](https://aidoc.jd.com/thirdDocs/7/2dca72ed32764fc2847c090192ac780f-630.html#12-%E9%9D%99%E6%80%81%E6%91%98%E8%A6%81%E7%8A%B6%E6%80%81%E6%9F%A5%E8%AF%A2%E6%8E%A5%E5%8F%A3) 提供用户查询处理进度,以及最终输出压缩文件(.zip)的下载链接。
- 动态摘要:服务支持用户上传一段视频,生成并返回该段视频的动态视频摘要结果,以MP4格式存储在motionThumbnail文件中, 同时返回镜头(shot)解析文档和场景(scene)解析文档。视频[动态摘要上传接口](https://aidoc.jd.com/thirdDocs/7/2dca72ed32764fc2847c090192ac780f-630.html#13-%E5%8A%A8%E6%80%81%E6%91%98%E8%A6%81%E4%B8%8A%E4%BC%A0%E6%8E%A5%E5%8F%A3) 提供用户上传待处理视频至处理服务。[动态摘要状态查询接口](https://aidoc.jd.com/thirdDocs/7/2dca72ed32764fc2847c090192ac780f-630.html#13-%E5%8A%A8%E6%80%81%E6%91%98%E8%A6%81%E7%8A%B6%E6%80%81%E6%9F%A5%E8%AF%A2%E6%8E%A5%E5%8F%A3) 提供用户查询处理进度,以及最终输出压缩文件(.zip)的下载链接。
- 接口url:
- 结构解析上传接口:```https://aiapi.jd.com/jdai/structure_analysis```
- 静态摘要上传接口:```https://aiapi.jd.com/jdai/static_thumbnail```
- 动态摘要上传接口:```https://aiapi.jd.com/jdai/motion_thumbnail```
- 结构解析查询接口:```https://aiapi.jd.com/jdai/structure_analysis_status```
- 静态摘要查询接口:```https://aiapi.jd.com/jdai/static_thumbnail_status```
- 动态摘要查询接口:```https://aiapi.jd.com/jdai/motion_thumbnail_status```
- 请求方法:```POST```
##### 示例
上传视频
输入:
```python
url = 'https://aiapi.jd.com/jdai/static_thumbnail'
img = 【路径】
params = {
'video' : video.mp4,
'appkey' : appkey,
'secretkey' : secretkey
}
response = results( url, params, img=img )
print( response.text )
```
查询状态
输入:
```python
url = 'https://aiapi.jd.com/jdai/static_thumbnail_status'
bodyStr = '{"task_id":""}'
params = {
'Content-Type' : application/json,
'appkey' : appkey,
'secretkey' : secretkey
}
response = results( url, params, bodyStr=bodyStr )
print( response.text )
```
#### 手部关键点识别
- 官方api文档:[百度AI开放平台手部关键点识别](https://ai.baidu.com/ai-doc/BODY/Kk3cpyxeu)
- 接口描述:对于输入的一张图片(可正常解码,且长宽比适宜),检测图片中的手部,输出每只手的坐标框、21个骨节点坐标信息。
- 接口url:```https://aip.baidubce.com/rest/2.0/image-classify/v1/hand_analysis```
- 请求方法:```POST```
##### 示例
根据上传图片识别图片中的手部
输入:
```python
def baidu_imageclsfy(image):
""" 百度ai图像识别 - 手部关键点识别 """
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/hand_analysis" + access_token
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {
"image":img
}
headers = {
'content-type': 'application/x-www-form-urlencoded'
}
response= requests.post(request_url, data=params, headers=headers)
return response.json()
```
返回:
```python
{
"log_id": "4653273132348525916",
"hand_num": 1,
"hand_info": [
{
"hand_parts": {
"0": {
"y": 707,
"x": 829,
"score": 0.81601244211197
},
"1": {
"y": 620,
"x": 873,
"score": 0.6850221157074
},
"2": {
"y": 533,
"x": 916,
"score": 0.75532239675522
},
"3": {
"y": 467,
"x": 938,
"score": 0.79282909631729
},
"4": {
"y": 380,
"x": 993,
"score": 0.88114696741104
},
"5": {
"y": 424,
"x": 829,
"score": 0.90723776817322
},
"6": {
"y": 358,
"x": 862,
"score": 0.62833058834076
},
"7": {
"y": 391,
"x": 916,
"score": 0.77525424957275
},
"8": {
"y": 456,
"x": 927,
"score": 0.87964057922363
},
"9": {
"y": 402,
"x": 775,
"score": 0.91389346122742
},
"10": {
"y": 325,
"x": 786,
"score": 0.85947573184967
},
"11": {
"y": 249,
"x": 818,
"score": 0.88918441534042
},
"12": {
"y": 151,
"x": 840,
"score": 0.85277211666107
},
"13": {
"y": 424,
"x": 720,
"score": 0.81941932439804
},
"14": {
"y": 347,
"x": 720,
"score": 0.83918035030365
},
"15": {
"y": 282,
"x": 720,
"score": 0.84135395288467
},
"16": {
"y": 194,
"x": 731,
"score": 0.85115605592728
},
"17": {
"y": 489,
"x": 687,
"score": 0.84704375267029
},
"18": {
"y": 434,
"x": 644,
"score": 0.88782823085785
},
"19": {
"y": 391,
"x": 622,
"score": 0.86267304420471
},
"20": {
"y": 325,
"x": 567,
"score": 0.91110396385193
}
},
"location": {
"height": 556,
"width": 426,
"top": 151,
"score": 17.495880126953,
"left": 567
}
}
]
}
```
(返回数据示例来自百度AI开放平台)
### 3. 使用比较分析
主要竞争者:腾讯
#### 百度AI图像技术对比腾讯云图像技术
| | 百度AI | 腾讯AI |
| --: | :-- | :-- |
| | 图像特效类 | 图像分析 |
| | 图像增强类 | |
| | 图像识别类 | |
| | 图像搜索类 | |
对比百度AI开放平台,腾讯AI提供的有关图像技术方面的开放API选择较少。由此可见,在功能的选择与细化考量上,百度AI平台更难满足多样化的需求。
#### 价格对比
- 百度AI
图像识别
| 状态 | 免费调用额度 | 超过免费额度 | QPS限制 |
| :-- | :-- | :-- | :-- |
| 免费状态 | 拥有 | 不响应请求 | 2QPS |
| 付费状态 | 拥有 | 可继续请求 | 10QPS |
| API | 免费调用额度 | 超出免费额度 |
| :--: | :-- | :-- |
| 图像主体检测 | 500次/日 | 可开通按调用量后付费或购买次数包,按次计费,支持购买QPS叠加包 |
| 手部关键点识别 | 总共10000次 | 可开通按调用量后付费或购买次数包,按次计费,支持购买QPS叠加包 |
- 腾讯AI

#### 总结
- 从内容上看,腾讯ai更注重于人脸识别方面的人工智能api,在图像技术方面的人工智能api较少;百度ai十分注重多样化的技术发展,在图像技术方面开发了很多有趣的、热门的人工智能api,类型很丰富,大量的api接口可供选择。
- 从价格上看,百度ai的性价比更高,最高单价为0.0023元/次,而腾讯则为0.0025元/次。
因此选择百度ai更为合适。
### 4. 智能API使用的人工智能概率性考量
- 百度AI开放平台提供全球领先的语音、图像、NLP等多项人工智能技术,是全球领先的人工智能服务平台。在视觉技术方面,百度已经形成了包括图像、视频、AR/VR、重要垂类、软硬一体化五大方向在内的特色视觉技术矩阵,百度AI图像技术准确率更是高达95%。所以,选择百度ai开放平台中的“图像主体检测”api和“手部关键点识别”api可以很好地解决用户目前的需求。
- 随着人工智能渗透更多场景,用户对隐私也将有新的理解和感知,而百度在保障隐私的同时,也带领用户对全新的智能场景进行探索和认知,让用户能够放心畅享未来生活。百度建立了自上而下的隐私保护体系,成立数据隐私保护委员会、建立数据隐私“3C原则”,加强隐私保护制度建设。app在打开用户相册、读取手机的照片时,要申请获得读取相册的权限,充分给予用户控制权和选择权。上色后和增强清晰度后的图片数据将储存于后台,用户也可以从云储存库里查看已转换成功的照片。不仅仅是这些图片数据,用户的基本信息数据也会被保护起来,有效地防止了隐私的泄露。
---
🆗📈 🆗📈 🆗📈 🆗📈 🆗📈
## 五、心得总结及感谢
#### 心得总结:
在本学期的《API、机器学习与人工智能》(后简称API)课程的学习中,我获益良多。API课程的学习对于我来说算得上是有难度,但这付出的背后给我带来了极大的收获,不单单是让我了解了何为API,机器学习与人工智能到底是怎么一回事,更多地是让我全身心地投入到其中感受到我到底能用它来做什么。像是如今设计的这一款产品,正是在学习后结合智能API完成的一个构思,它不完美,但它体现了我所收获到的丰硕果实。
在设计的过程中,更是让我了解了如何正确、有条理有逻辑地去攥写产品需求文档,其中的内容、架构。也让我对API接口的调用和阅读产品文档的能力更为熟练,同时学会思考在实现这些功能是否以人为中心,从用户的需求出发。每个方面的设计都需要我们去思考其市场前景、价值、是否能满足用户需求解决用户痛点,要结合IDEO三要素(用户可欲性、技术可行性、商业可行性)思考。
#### 感谢:
非常感谢提供想项目参考的黄滢师姐!以下是参考的作品url:
- [黄滢师姐——Savor](https://github.com/NFUNM032/app-of-savor)
还有丁晓莹师姐!
- [丁晓莹——add color](https://gitee.com/hiuying/api/blob/master/%E4%B8%AA%E4%BA%BA%E9%A1%B9%E7%9B%AEPRD.md)
感谢百度AI开放平台及其它API技术开放平台,给予技术支持及技术文档:
- [百度AI开放平台](https://ai.baidu.com/)
- [京东人工智能开放平台](http://neuhub.jd.com/)
感谢以下的的网站为我提供便利的制图服务、产品原型设计:
- [墨刀 - 在线原型设计与远程协作平台](https://modao.cc/) 感谢墨刀给予我一个在线的平台让我完成产品的基础界面设计,以及制作产品交互设计。
- [ProcessOn](https://www.processon.com/) 感谢ProcessOn强大的流程图制作功能,然我做出一张张实用图表。
以及给予我更多知识帮助的人人都是产品经理网站:
- [人人都是产品经理](http://www.woshipm.com/)
---
- 独特非重复有效外链:12条
- 高水平原创图/表:10张(已排除不计入的图表)