remotes/1718373473996375672/master
m6wxe5yrs 2 years ago committed by zimujun20
parent 05bddacd7f
commit 55159f0cb8

@ -1,27 +0,0 @@
### 工程简介:
#### 工程包括PC端以及android端其中PC端包括AI运算部分以及Web服务部分android端包括app以及网页部分。上述除Web服务部分均具有手语翻译功能且均可实现本地运算与云上运算。
#### android端包括app及网页部分在设备算力足够的情况下进行本地运算如果算力不足则可选择云上运算。如果您想为本项目贡献更多可以分享您的算力为他人提供运算。android端主要模块如下
```
media_camera()//获取摄像头的视频流
media_pipe()//获取云上视频流,为他人提供运算
hands_recegnation()//对手语进行识别,转化为自然语言
word_show()//在本地输出转化后的自然语言
word_send()//向云端发送转化后的自然语言,为他人提供运算
word_input()//本地输入自然语言转化为手语动画
word_recv()//接收云端的数据转化为手语
hands_translation()//将输入的自然语言转化为手语数据
hands_3d()//根据数据生成3d手语动画
```
#### PC端包括AI运算部分以及Web服务部分AI部分为其它设备提供算力支持Web服务部分则进行提供android端网页链接及设备算力共享服务。PC端主要模块如下
```
包含android所有算力共享服务
nginx-rtmp()//提供视频流传输服务
load_alancing()//负载均衡,为算力共享设备选择提供服务
Webserver()//为网页提供后端支持
```

@ -1,46 +0,0 @@
分析类图:
用例名:视频获取
业务目标:获取视频信息,
执行者:系统
前置条件:软件开启摄像头请求
基本交互动作:
1、软件请求摄像头
2、获取摄像头信息
3、传给本地或云端
扩展交互动作:
1a: 选择前置后置摄像头
用例名:文字获取
业务目标:获取文字信息,
执行者:系统
前置条件:云端或本地输入
基本交互动作:
1、读取文字信息
2、对文字进行分片处理
3、传给本地或云端
用例名:神经网络运算
业务目标:对信息进行分析运算
执行者:系统
基本交互动作:
1、分析信息类型
2、根据分析类型生成响应数据
3、将数据发送到云端或本地
4、生成信息给用户
扩展交互动作:
4a判断视频转化为文字或文字转化为动画
用例名:网络服务
业务目标负责负载均衡及web服务
执行者:网络服务器
基本交互动作:
1、推送网页内容
2、对于用户发来的算力共享请求进行分配
3、用户之间数据沟通视频数据等
扩展交互动作:
4a计算用户算力贡献

@ -1,148 +0,0 @@
## 1、系统说明
##### 手语翻译项目旨在构建一个手语翻译系统,方便手语与自然语言的相互转换,这个系统的主要功能有:
1. 实现手语视频录制,并转化为自然语言
2. 完成自然语言转化为手语动画
3. 实现设备间算力共享
##### 手语翻译系统只有一类用户:用户
功能12供用户使用
功能3根据用户意愿开启
##### 该系统必须满足以下限制:
1. 能以较低的性能要求实现运算
2. 仅在用户允许情况下使用算力共享
## 2、需求获取与分析
### 2.1系统初步用例图:
![](/home/smj/Work/work2/初步用例图.png)
### 2.2用例描述与顺序图:
**用例名**:输入自然语言
**业务目标**:用户输入需要翻译的自然语言
**执行者**:用户
**前置条件**app正常运行
**基本事件流**
1、用户打开手语翻译app
2、用户点击输入框
3、用户输入自然语言
4、用户提交自然语言
**扩展交互动作**
1a: 修改输入内容
1a1:直接在输入框进行文本编辑
**后置条件**:输入数据无损失
**可靠性需求**数据安全性无限接近100%
![](/home/smj/Work/work2/输入自然语言.png)
**用例名**:获取手语视频
**业务目标**用户上传视频到app
**执行者**:用户
**前置条件**app正常运行
**基本事件流**
1、用户打开手语翻译app
2、用户允许app开启摄像头
3、用户打开摄像头
4、app获取摄像头视频流
**扩展交互动作**
1a: 重新录制视频
1a1:删除已录制视频并重新录制
**后置条件**:硬件正常时,能获取无损视频
**可靠性要求**视频在传输过程中受损率无限接近0%
![](/home/smj/Work/work2/获取手语视频.png)
**用例名**:翻译自然语言为动画
**业务目标**将用户输入或云端获取的自然语言转换为3D动画
**执行者**:用户
**前置条件**
1、网络正常连接或本地算力足够
2、用户已输入自然语言
**基本事件流**
1、用户点击“语言翻译”按钮
2、app对获取自然语言进行翻译
**扩展交互动作**
1a: 选择本地运算或云端运算
1a1:根据选择来确定运算设备
**后置条件**:在词库内有对应数据时,可生成完整动画
**性能要求**响应事件小于200ms
**可靠性要求**保证词条对应数据100%正确
![](/home/smj/Work/work2/翻译自然语言为动画.png)
**用例名**:翻译视频为自然语言
**业务目标**:将用户输入或云端获取的视频转换为自然语言
**执行者**:用户
**前置条件**
1、网络正常连接或本地算力足够
2、用户已输入视频
**基本事件流**
1、用户点击“视频翻译”按钮
2、app对视频进行翻译
**扩展交互动作**
1a: 选择本地运算或云端运算
1a1:根据选择来确定运算设备
**后置条件**:当视频内容有效时,根据视频可生成对应自然语言
**性能要求**每秒处理速度达到30fps
**可靠性要求**翻译直译准确率达到90%以上
![](/home/smj/Work/work2/翻译视频为自然语言.png)
**用例名**:显示动画
**业务目标**在app显示数据转换后的3D动画
**执行者**:用户
**前置条件**app已经获取3D动画数据
**基本事件流**
1、app显示生成3D动画
**后置条件**:当动画生成后,在屏幕指定位置展示动画
**可靠性要求**动作混淆错位等错误发生率为0%
![](/home/smj/Work/work2/显示动画.png)
**用例名**:显示自然语言
**业务目标**在app显示数据转换后的自然语言
**执行者**:用户
**前置条件**app已经获取处理后的自然语言
**基本事件流**
1、app显示翻译后的自然语言
**后置条件**:当收到自然语言时,在屏幕指定位置生成文字
**可靠性要求**:保证数据准确度为100%
![](/home/smj/Work/work2/显示自然语言.png)
### 2.3分析类图:
![](/home/smj/Work/work2/分析类图.png)

Binary file not shown.

@ -1,44 +0,0 @@
## 3、体系结构设计
### 3.1体系结构的逻辑视图
![](/home/smj/Documents/软工/体系结构逻辑视图.drawio.png)
### 3.2体系结构设计的开发视图
![](/home/smj/Documents/软工/体系结构开发视图.drawio.png)
## 4、用户界面设计
### 4.1系统界面的外观设计及其类表示
#### 4.1.1视频翻译界面及其类表示:
![](/home/smj/Work/for_you/model/app/im1.png)
![](/home/smj/Work/work2/手语翻译.png)
#### 4.1.2文字翻译界面及其类表示:
![](/home/smj/Work/for_you/model/app/im2.png)
![](/home/smj/Work/work2/自然语言翻译.png)
#### 4.1.3设置界面及其类表示:
![im3](/home/smj/Work/for_you/model/app/im3.png)
![](/home/smj/Work/work2/设置.png)
### 4.2界面流的类表示:
![](/home/smj/Work/work2/界面流类表示.png)
### 4.3界面流的顺序图:
![](/home/smj/Work/work2/界面流顺序图.png)

Binary file not shown.

Binary file not shown.

@ -179,7 +179,7 @@ func SqliteQueryXYZ(c *gin.Context) {
func SqliteQueryTRANSLATION(c *gin.Context) { func SqliteQueryTRANSLATION(c *gin.Context) {
appG := app.Gin{C: c} appG := app.Gin{C: c}
s := c.Query("str") s := c.Query("str")
db, err := sql.Open("sqlite3", "info.db") db, err := sql.Open("sqlite3", "info1.db")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }

Loading…
Cancel
Save