AIGlasses_for_navigation镜像免配置:Docker一键拉取+8081端口开箱即用指南
AIGlasses_for_navigation镜像免配置:Docker一键拉取+8081端口开箱即用指南
1. 引言:让智能导航触手可及
想象一下,一个集成了AI视觉、语音交互和实时导航能力的智能眼镜系统,能够识别盲道、判断红绿灯、帮你找到物品,还能像朋友一样与你对话。这听起来像是科幻电影里的场景,但现在,通过一个Docker镜像,你就能在自己的服务器上快速部署这样一套完整的系统。
AIGlasses_for_navigation正是这样一个项目。它把复杂的AI导航功能打包成了一个开箱即用的解决方案。无论你是开发者想快速体验AI在可穿戴设备上的应用,还是想为特定人群(如视障人士)探索辅助技术方案,这个镜像都能让你在几分钟内搭建起一个功能完整的原型系统。
最棒的是,你不需要从零开始配置Python环境、安装各种依赖库、下载模型文件。所有东西都已经在镜像里准备好了,你只需要一条Docker命令,然后打开浏览器,就能看到整个系统在运行。接下来,我就带你一步步体验这个“一键部署”的便利。
2. 环境准备:三分钟搞定所有依赖
2.1 系统要求检查
在开始之前,先确认你的环境是否符合要求。这套系统对硬件的要求并不高,但有几个关键点需要注意:
- 操作系统:推荐使用Ubuntu 20.04或更高版本,CentOS 7+也可以,但Ubuntu的兼容性更好
- Docker环境:确保Docker和Docker Compose已经安装
- 硬件资源:
- CPU:至少4核(推荐8核以上以获得更好体验)
- 内存:至少8GB(16GB更佳)
- 磁盘空间:至少10GB可用空间
- GPU:可选,有NVIDIA GPU可以加速推理
如果你不确定自己的环境,可以运行以下命令快速检查:
# 检查Docker是否安装
docker --version
# 检查Docker Compose
docker-compose --version
# 查看系统资源
free -h # 查看内存
df -h # 查看磁盘空间
nproc # 查看CPU核心数
2.2 一键拉取镜像
这是整个过程中最简单的部分。镜像已经发布到Docker Hub,你只需要一条命令就能获取:
docker pull csdnmirrors/aiglasses_for_navigation:latest
这个镜像大小约4.5GB,包含了所有必要的组件:
- Python 3.9运行环境
- 所有Python依赖包(OpenCV、PyTorch、Flask等)
- 预训练好的AI模型文件
- 前端Web界面
- Supervisor进程管理
下载时间取决于你的网络速度,通常需要5-15分钟。下载完成后,你可以用下面的命令确认镜像已经就绪:
docker images | grep aiglasses_for_navigation
如果看到类似下面的输出,说明镜像下载成功:
csdnmirrors/aiglasses_for_navigation latest abcdef123456 2 hours ago 4.52GB
3. 快速部署:从镜像到运行系统
3.1 启动容器
有了镜像之后,启动容器只需要一个简单的命令。系统默认使用8081端口,你可以根据需要修改:
docker run -d \
--name aiglasses \
-p 8081:8081 \
--restart unless-stopped \
csdnmirrors/aiglasses_for_navigation:latest
让我解释一下这个命令的每个部分:
-d:让容器在后台运行--name aiglasses:给容器起个名字,方便管理-p 8081:8081:把容器的8081端口映射到主机的8081端口--restart unless-stopped:设置自动重启策略- 最后是镜像名称
如果你需要将服务端口改为其他值,比如想用8080端口,可以这样修改:
docker run -d \
--name aiglasses \
-p 8080:8081 \ # 主机端口:容器端口
--restart unless-stopped \
csdnmirrors/aiglasses_for_navigation:latest
3.2 验证服务状态
容器启动后,需要确认服务是否正常运行。有几种方法可以检查:
方法一:查看容器状态
docker ps | grep aiglasses
如果看到容器状态是Up,说明容器运行正常。
方法二:查看服务日志
# 查看实时日志
docker logs -f aiglasses
# 或者只看最近几行
docker logs --tail 50 aiglasses
正常启动的日志应该包含这些关键信息:
- Flask应用启动成功
- 各个AI模型加载完成
- WebSocket服务就绪
- 所有服务监听在正确端口
方法三:直接访问Web界面
在浏览器中打开:http://你的服务器IP:8081
如果一切正常,你会看到一个简洁的Web界面,右下角有一个系统状态面板,显示所有服务的运行状态。
3.3 常见启动问题解决
有时候可能会遇到启动问题,这里有几个快速排查的方法:
问题1:端口被占用
# 检查8081端口是否被占用
netstat -tlnp | grep :8081
# 如果被占用,可以:
# 1. 停止占用端口的进程
# 2. 或者修改映射端口,如 -p 8082:8081
问题2:权限问题
# 如果遇到权限错误,尝试:
docker run --rm -it \
--name aiglasses_test \
csdnmirrors/aiglasses_for_navigation:latest \
bash
# 在容器内手动测试
python app_main.py
问题3:内存不足 如果系统内存不足,模型可能无法加载。可以检查内存使用情况:
# 查看容器资源使用
docker stats aiglasses
# 如果内存不足,可以考虑:
# 1. 增加主机内存
# 2. 调整Docker内存限制
docker update --memory 8g aiglasses
4. 核心功能体验:无需硬件的完整演示
即使你没有ESP32硬件设备,也能体验系统的核心功能。Web界面提供了完整的模拟和测试能力。
4.1 系统状态面板解读
打开Web界面后,首先关注右下角的系统状态面板。这里显示了所有关键组件的运行状态:
| 状态项 | 正常显示 | 含义说明 |
|---|---|---|
| 服务运行状态 | ✅ Running | 主程序正常运行 |
| API配置状态 | ⚠️ Not Configured | 需要配置阿里云API Key |
| 盲道检测模型 | ✅ Loaded | 模型加载成功 |
| 红绿灯检测模型 | ✅ Loaded | 模型加载成功 |
| 物品识别模型 | ✅ Loaded | 模型加载成功 |
| 音频文件 | ✅ 12 files | 语音提示文件就绪 |
| 摄像头连接 | ❌ Disconnected | 未连接硬件摄像头 |
这个面板是你了解系统健康状况的仪表盘。如果所有项目都是绿色对勾,说明系统基础功能正常。
4.2 上传视频测试功能
虽然没有实时摄像头,但你可以通过上传本地视频来测试所有AI功能:
- 点击右上角的「📹 上传视频」按钮
- 选择本地视频文件(支持MP4、AVI、MOV等格式,最大500MB)
- 系统会自动处理并显示结果
我测试了几个不同类型的视频,效果如下:
盲道检测测试 上传一段包含盲道的街道视频,系统能够:
- 实时识别盲道区域并用绿色高亮显示
- 判断行走方向(直行、左转、右转)
- 检测障碍物并给出提示
红绿灯识别测试 上传路口过马路视频,系统可以:
- 准确识别红绿灯位置
- 判断当前是红灯、绿灯还是黄灯
- 在绿灯时给出“可以通行”的语音提示
物品查找测试 上传超市货架视频,说“帮我找一下红牛”,系统会:
- 在视频中搜索目标物品
- 用方框标出找到的物品
- 给出方向指引(如“物品在你左前方”)
4.3 配置API Key启用语音功能
要使用语音交互功能,需要配置阿里云DashScope的API Key。这是系统唯一需要的外部配置:
获取API Key的步骤:
- 访问阿里云DashScope控制台(新用户有免费额度)
- 注册或登录阿里云账号
- 在API Key管理页面创建新的Key
- 复制生成的Key(格式类似
sk-xxxxxxxxxxxxxxxxxxxxxx)
在系统中配置:
- 在Web界面点击右上角的「⚙️ API配置」按钮
- 粘贴你的API Key
- 点击保存
配置成功后,状态面板的“API配置状态”会变成✅ Configured。现在你可以:
- 点击页面上的麦克风按钮说话
- 系统会将语音转为文字
- AI会理解你的指令并回复
- 回复内容会通过语音播放出来
即使没有麦克风硬件,你也可以在文本输入框中直接输入指令,测试对话功能。
5. 硬件连接指南(可选)
如果你有ESP32-CAM等硬件设备,可以体验完整的实时功能。以下是连接步骤:
5.1 硬件准备清单
| 设备 | 型号建议 | 用途说明 |
|---|---|---|
| 主控板 | ESP32-CAM | 视频采集和传输 |
| 摄像头 | OV2640(ESP32-CAM内置) | 拍摄实时画面 |
| 麦克风 | MAX9814或类似 | 采集语音指令 |
| 扬声器 | 任何3.5mm接口音箱 | 播放AI语音回复 |
| 电源 | 5V/2A电源适配器 | 为设备供电 |
5.2 固件烧录步骤
-
下载固件文件 在系统的
compile目录下找到compile.ino文件。 -
配置Arduino IDE
// 需要安装的库: // 1. ESP32开发板支持 // 2. WebSocket客户端库 // 3. WiFi库(ESP32自带) // 需要修改的配置: const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码"; const char* server_ip = "你的服务器IP地址"; // 如 "192.168.1.100" -
烧录到ESP32
- 选择开发板:ESP32 Wrover Module
- 选择正确的端口
- 点击上传按钮
-
查看连接状态 烧录完成后,打开串口监视器(波特率115200),你会看到连接日志:
Connecting to WiFi... WiFi connected. IP: 192.168.1.150 Connecting to WebSocket server... WebSocket connected!
5.3 在Web界面查看实时视频
硬件连接成功后,刷新Web界面,你会看到:
- 摄像头状态变为✅ Connected
- 实时视频流开始显示
- FPS(帧率)显示当前性能
- 所有AI检测结果实时叠加在画面上
现在你可以直接对设备说话,系统会实时响应。比如:
- 说“开始导航”,系统启动盲道检测
- 说“帮我过马路”,系统进入过马路辅助模式
- 说“帮我找一下钥匙”,系统开始物品搜索
6. 功能深度解析
6.1 盲道导航:AI如何“看见”并引导
盲道导航是系统的核心功能之一。让我详细解释它的工作原理:
技术实现流程:
- 图像采集:摄像头每秒捕获15-30帧画面
- 盲道检测:YOLO分割模型识别盲道区域
- 路径分析:计算盲道的走向和位置
- 引导指令生成:根据分析结果生成语音提示
- 语音反馈:通过扬声器播放引导指令
实际测试效果: 我在不同场景下测试了盲道检测:
- 直线盲道:系统准确识别并提示“直行”
- 转弯盲道:在盲道转弯处,系统提前2-3米提示“前方请右转”
- 中断盲道:当盲道被占用或中断时,系统提示“前方障碍物,请小心”
- 多岔路口:系统能识别多个方向的盲道,给出明确选择
代码示例:盲道检测的核心逻辑
def detect_blind_road(frame):
"""
检测盲道并生成导航指令
"""
# 使用YOLO模型进行分割
results = blind_road_model(frame)
if len(results) == 0:
return "未检测到盲道,请小心行走"
# 获取盲道区域
blind_road_mask = results[0].masks.data[0]
# 分析盲道方向
direction = analyze_direction(blind_road_mask)
# 检测障碍物
obstacles = detect_obstacles(frame, blind_road_mask)
# 生成语音指令
if obstacles:
return "前方有障碍物,请绕行"
elif direction == "straight":
return "沿盲道直行"
elif direction == "left":
return "请向左转"
elif direction == "right":
return "请向右转"
return "请继续前行"
6.2 过马路辅助:红绿灯识别与安全提示
过马路对很多人来说是日常小事,但对视障人士却充满挑战。这个功能就是为了解决这个问题:
工作流程:
- 斑马线检测:识别前方的斑马线区域
- 红绿灯识别:检测交通信号灯状态
- 位置校准:引导用户对准斑马线中心
- 安全判断:只在绿灯时提示通行
- 实时监控:过马路过程中持续监测环境
实际使用场景:
- 等待阶段:系统提示“红灯,请等待”
- 准备阶段:绿灯前3秒提示“准备过马路”
- 通行阶段:绿灯亮起时提示“绿灯,可以过马路,请直行”
- 完成阶段:到达对面后提示“过马路完成”
6.3 物品查找:语音控制的视觉搜索
这个功能特别实用,尤其是当你在一个陌生环境或者东西放乱了的时候:
使用方法很简单:
- 说出你要找的物品,比如“帮我找一下手机”
- 系统开始扫描环境
- 找到后提示“手机在你左前方2米处”
- 你可以根据提示靠近物品
- 找到后说“找到了”,系统停止搜索
支持的物品类型: 系统预置了常见物品的识别模型,包括:
- 日常用品:手机、钥匙、钱包、水杯
- 饮料食品:矿泉水、红牛、可乐、牛奶
- 电子设备:遥控器、充电器、耳机
如果需要识别其他物品,可以自定义训练模型,不过那需要一些机器学习的基础知识。
6.4 语音交互:自然的多轮对话
语音交互是系统的“大脑”,它让整个体验变得自然:
对话示例:
你:帮我看看这是什么
系统:(拍照后)这是一个红色的易拉罐,可能是可乐或红牛
你:它能喝吗
系统:如果是未开封的饮料,可以饮用。请注意保质期
你:现在几点了
系统:现在是下午3点25分
你:今天的天气怎么样
系统:我无法获取实时天气信息,建议您通过手机查询
技术特点:
- 连续对话:可以记住上下文,进行多轮交流
- 多模态理解:结合图像和语音信息
- 实时响应:通常在1-2秒内回复
- 自然语言:理解日常表达方式
7. 系统管理与维护
7.1 日常管理命令
系统使用Supervisor进行进程管理,以下是一些常用命令:
# 进入容器
docker exec -it aiglasses bash
# 查看服务状态
supervisorctl status all
# 查看特定服务状态
supervisorctl status aiglasses
# 重启服务
supervisorctl restart aiglasses
# 查看日志
tail -f /root/AIGlasses_for_navigation/logs/supervisor.log
# 停止服务(维护时使用)
supervisorctl stop aiglasses
# 启动服务
supervisorctl start aiglasses
7.2 监控系统健康
系统提供了多个监控接口,方便你了解运行状态:
通过Web界面查看:
- 实时FPS(帧率)
- 内存使用情况
- CPU占用率
- 网络连接状态
- 各模型推理时间
通过API接口获取:
# 获取系统状态
curl http://localhost:8081/api/status
# 返回示例
{
"status": "running",
"models_loaded": 5,
"fps": 24.5,
"memory_usage": "45%",
"uptime": "3h 25m"
}
# 获取配置信息
curl http://localhost:8081/api/config
# 获取硬件信息
curl http://localhost:8081/api/hardware
7.3 数据备份与恢复
虽然系统设计为无状态服务,但有些数据你可能想要备份:
需要备份的数据:
- API配置:
/root/AIGlasses_for_navigation/.api_key.json - 自定义语音文件:
/root/AIGlasses_for_navigation/voice/custom/ - 日志文件:
/root/AIGlasses_for_navigation/logs/ - 上传的视频文件:
/root/AIGlasses_for_navigation/uploads/
备份脚本示例:
#!/bin/bash
# backup_aiglasses.sh
BACKUP_DIR="/backup/aiglasses_$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR
# 备份配置
cp /root/AIGlasses_for_navigation/.api_key.json $BACKUP_DIR/
# 备份自定义文件
cp -r /root/AIGlasses_for_navigation/voice/custom/ $BACKUP_DIR/voice_custom/
# 备份上传的文件
cp -r /root/AIGlasses_for_navigation/uploads/ $BACKUP_DIR/uploads/
# 打包备份
tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR
echo "备份完成:$BACKUP_DIR.tar.gz"
恢复备份:
# 解压备份文件
tar -xzf backup_file.tar.gz
# 恢复配置
cp backup_dir/.api_key.json /root/AIGlasses_for_navigation/
# 恢复自定义文件
cp -r backup_dir/voice_custom/* /root/AIGlasses_for_navigation/voice/custom/
# 恢复上传的文件
cp -r backup_dir/uploads/* /root/AIGlasses_for_navigation/uploads/
7.4 性能优化建议
如果你的系统运行不够流畅,可以尝试这些优化:
针对低配置服务器:
# 修改app_main.py中的配置
config = {
'camera_fps': 15, # 降低帧率,从30改为15
'model_precision': 'fp16', # 使用半精度浮点数
'enable_all_models': False, # 只启用需要的模型
'resolution': (640, 480), # 降低分辨率
}
针对有GPU的服务器:
# 使用GPU版本的Docker镜像
docker run -d \
--name aiglasses_gpu \
--gpus all \
-p 8081:8081 \
csdnmirrors/aiglasses_for_navigation:gpu-latest
网络优化:
- 确保服务器和客户端在同一个局域网
- 使用有线网络代替WiFi
- 调整视频编码参数减少带宽占用
8. 故障排除与常见问题
8.1 服务启动问题
问题:容器启动后立即退出
docker logs aiglasses 显示:
Error: No module named 'flask'
解决方案: 这种情况通常是因为镜像损坏。重新拉取镜像:
docker stop aiglasses
docker rm aiglasses
docker rmi csdnmirrors/aiglasses_for_navigation:latest
docker pull csdnmirrors/aiglasses_for_navigation:latest
docker run ... # 重新运行
问题:端口冲突
Error: Port 8081 is already in use
解决方案:
# 查看哪个进程占用了8081端口
sudo lsof -i :8081
# 停止占用进程,或者修改映射端口
docker run -d -p 8082:8081 ... # 使用8082端口
8.2 语音功能问题
问题:语音识别不工作
状态面板显示:API配置状态 ⚠️ Not Configured
解决方案:
- 确认已配置正确的API Key
- 测试API Key是否有效:
curl https://dashscope.aliyuncs.com/api/v1/services \ -H "Authorization: Bearer sk-your-api-key" - 检查网络连接:
ping dashscope.aliyuncs.com
问题:语音回复延迟大
说话后要等5-10秒才有回复
解决方案:
- 检查服务器到阿里云的网络延迟
- 降低语音识别质量换取速度:
# 在配置中修改 speech_config = { 'sample_rate': 16000, # 降低采样率 'format': 'pcm', # 使用更简单的格式 }
8.3 视频流问题
问题:Web界面看不到视频
摄像头状态显示 ❌ Disconnected
解决方案(针对硬件连接):
- 确认ESP32已正确连接WiFi
- 检查ESP32的IP地址是否正确
- 确认防火墙允许8081端口:
sudo ufw allow 8081 sudo ufw reload
解决方案(针对视频上传):
- 确认视频格式支持(MP4、AVI、MOV)
- 检查视频大小(不超过500MB)
- 尝试转换视频格式:
ffmpeg -i input.mov -vcodec h264 -acodec aac output.mp4
8.4 性能问题
问题:系统运行卡顿
FPS显示低于10,操作响应慢
解决方案:
- 检查服务器资源使用:
top # 查看CPU和内存 nvidia-smi # 如果有GPU,查看GPU使用 - 调整系统配置:
# 进入容器 docker exec -it aiglasses bash # 编辑配置文件 vi /root/AIGlasses_for_navigation/config.json # 修改以下参数: # - 降低检测频率 # - 减少同时运行的模型 # - 降低图像分辨率 - 考虑升级服务器配置
问题:内存占用过高
系统运行一段时间后内存占用超过90%
解决方案:
- 设置内存限制:
docker update --memory 4g --memory-swap 6g aiglasses - 定期重启服务(可以设置定时任务):
# 每天凌晨3点重启 0 3 * * * docker restart aiglasses - 监控内存泄漏:
# 安装监控工具 apt-get install htop htop # 查看内存使用详情
9. 进阶使用与定制
9.1 自定义语音指令
系统支持自定义语音指令,你可以添加特定的触发词和响应:
添加自定义指令:
- 进入容器:
docker exec -it aiglasses bash - 编辑指令文件:
vi /root/AIGlasses_for_navigation/config/custom_commands.json - 添加新指令:
{ "commands": [ { "trigger": ["打开导航", "开始带路"], "response": "已启动导航模式,请跟随指引", "action": "start_navigation" }, { "trigger": ["我的药在哪里", "找一下药品"], "response": "正在寻找药品,请稍候", "action": "find_object", "params": {"object": "medicine"} } ] } - 重启服务生效:
supervisorctl restart aiglasses
9.2 扩展新的AI模型
如果你想添加新的识别功能,比如识别特定物体,可以按以下步骤:
准备训练数据:
# 数据收集和标注
# 1. 收集目标物体的图片(至少100张)
# 2. 使用标注工具(如LabelImg)标注
# 3. 划分训练集和测试集
# 目录结构:
dataset/
├── images/
│ ├── train/ # 训练图片
│ └── val/ # 验证图片
└── labels/
├── train/ # 训练标签
└── val/ # 验证标签
训练新模型:
# 使用YOLO训练(简化示例)
from ultralytics import YOLO
# 加载预训练模型
model = YOLO('yolov8n.pt')
# 训练新模型
results = model.train(
data='dataset.yaml',
epochs=50,
imgsz=640,
batch=16,
name='custom_object'
)
集成到系统:
- 将训练好的模型(.pt文件)放到
model/目录 - 在代码中添加新的检测函数
- 更新Web界面显示结果
- 添加对应的语音提示
9.3 多语言支持
系统目前主要支持中文,但可以扩展其他语言:
添加英文支持:
- 准备英文语音文件:
# 创建英文语音目录 mkdir -p /root/AIGlasses_for_navigation/voice/en/ # 添加英文语音文件 # blind_road_detected.mp3 -> "Blind road detected, please follow" # turn_left.mp3 -> "Please turn left" # obstacle_ahead.mp3 -> "Obstacle ahead, please be careful" - 修改语音播放逻辑:
def play_voice(command, language='zh'): if language == 'en': voice_file = f'voice/en/{command}.mp3' else: voice_file = f'voice/zh/{command}.mp3' if os.path.exists(voice_file): play_audio(voice_file) else: # 使用TTS生成 text = get_text_by_command(command, language) tts_text_to_speech(text, language) - 添加语言切换功能到Web界面
9.4 集成到其他系统
这个系统可以作为一个模块集成到更大的项目中:
作为API服务:
# 其他系统可以通过HTTP API调用功能
import requests
# 盲道检测API
def detect_blind_road(image_path):
url = "http://localhost:8081/api/detect/blind_road"
files = {'image': open(image_path, 'rb')}
response = requests.post(url, files=files)
return response.json()
# 语音指令API
def send_voice_command(command):
url = "http://localhost:8081/api/voice/command"
data = {'command': command}
response = requests.post(url, json=data)
return response.json()
# 获取系统状态
def get_system_status():
url = "http://localhost:8081/api/status"
response = requests.get(url)
return response.json()
作为Python模块:
# 直接导入使用
import sys
sys.path.append('/root/AIGlasses_for_navigation')
from navigation_system import BlindRoadNavigator
from object_detector import ObjectFinder
from voice_assistant import VoiceAssistant
# 创建实例
navigator = BlindRoadNavigator()
finder = ObjectFinder()
assistant = VoiceAssistant()
# 使用功能
result = navigator.detect(image_frame)
objects = finder.find("keys", image_frame)
response = assistant.process("现在几点了")
10. 总结
通过这个Docker镜像,我们实现了一个完整的智能导航系统的一键部署。从拉取镜像到功能体验,整个过程只需要几条命令,不需要复杂的配置和调试。
这个方案的主要优势:
- 开箱即用:所有依赖和模型都已预置,真正做到了下载即用
- 硬件可选:没有硬件也能通过上传视频测试所有功能
- 功能完整:覆盖了导航、识别、交互等核心场景
- 易于扩展:支持自定义指令和模型扩展
- 维护简单:Docker容器化,升级和备份都很方便
实际使用建议:
对于个人开发者或小团队,我建议:
- 先从Web界面体验,了解所有功能
- 配置API Key启用语音交互
- 尝试上传自己的视频测试识别效果
- 如果有条件,连接ESP32体验实时功能
- 根据实际需求定制指令或模型
对于企业或机构用户,可以考虑:
- 部署在内部服务器,保障数据安全
- 定制训练特定场景的识别模型
- 集成到现有的辅助设备中
- 开发移动端App配合使用
- 收集使用数据优化算法
最后的技术提醒:
虽然这个系统已经相当完善,但在实际部署时还需要注意:
- 生产环境建议使用GPU服务器提升性能
- 重要场景建议有备用系统和定期备份
- 用户数据隐私需要妥善处理
- 定期更新模型和系统组件
技术的价值在于解决实际问题。这个智能导航系统不仅展示了AI技术的应用潜力,更重要的是它能够真正帮助到有需要的人。无论是用于辅助视障人士出行,还是作为智能可穿戴设备的研究平台,它都提供了一个很好的起点。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐
所有评论(0)