AIGlasses_for_navigation步骤详解:修改app.py后supervisorctl重启生效验证方法
1. 项目背景介绍
AIGlasses_for_navigation是一个基于YOLO分割模型的智能导航系统,专门为视觉障碍人士设计。这个系统能够实时检测和分割图片、视频中的盲道和人行横道,为使用者提供准确的导航指引。
系统最初是作为AI智能盲人眼镜导航系统的核心组件开发的,现在以镜像形式提供,让更多开发者能够快速部署和使用。系统内置了多个预训练模型,可以根据不同的使用场景进行切换,包括盲道分割、红绿灯检测和商品识别等功能。
2. 为什么需要修改和重启
在实际使用过程中,我们经常需要根据不同的需求切换模型。比如在街道导航时使用盲道分割模型,在过马路时需要切换到红绿灯检测模型。这种模型切换需要通过修改配置文件来实现。
修改app.py文件只是第一步,因为:
- 应用程序在启动时加载配置和模型
- 修改配置文件后,运行中的程序不会自动感知变化
- 需要重启服务才能让新的配置生效
这就是为什么修改app.py后必须使用supervisorctl重启服务的原因。下面我们来详细讲解具体的操作步骤和验证方法。
3. 修改app.py的详细步骤
3.1 定位配置文件
首先需要找到app.py文件的位置。在AIGlasses_for_navigation系统中,这个文件通常位于:
/opt/aiglasses/app.py你可以使用以下命令来确认文件位置:
find / -name "app.py" | grep aiglasses3.2 理解模型配置参数
打开app.py文件,找到模型路径配置的部分。通常你会看到类似这样的代码:
# 默认使用盲道分割模型 MODEL_PATH = "/root/ai-models/archifancy/AIGlasses_for_navigation/yolo-seg.pt"系统支持三种不同的模型,对应的路径分别是:
# 盲道分割模型(默认) MODEL_PATH = "/root/ai-models/archifancy/AIGlasses_for_navigation/yolo-seg.pt" # 红绿灯检测模型 MODEL_PATH = "/root/ai-models/archifancy/AIGlasses_for_navigation/trafficlight.pt" # 商品识别模型 MODEL_PATH = "/root/ai-models/archifancy/AIGlasses_for_navigation/shoppingbest5.pt"3.3 安全修改配置文件
修改配置文件时,建议先备份原文件:
# 备份原配置文件 cp /opt/aiglasses/app.py /opt/aiglasses/app.py.backup # 使用nano编辑器修改文件 nano /opt/aiglasses/app.py在编辑时,只需要修改MODEL_PATH这一行的值,将其改为你想要的模型路径。修改完成后保存退出。
重要提示:修改时确保路径完全正确,包括大小写和斜杠方向。错误的路径会导致服务启动失败。
4. 使用supervisorctl重启服务
4.1 supervisorctl基础命令
supervisorctl是一个进程管理工具,可以方便地控制服务的启动、停止和重启。以下是常用命令:
# 查看服务状态 supervisorctl status aiglasses # 重启服务(最常用) supervisorctl restart aiglasses # 停止服务 supervisorctl stop aiglasses # 启动服务 supervisorctl start aiglasses # 重新加载配置(修改supervisor配置后使用) supervisorctl reload4.2 重启服务的具体操作
修改完app.py后,执行重启命令:
supervisorctl restart aiglasses这个命令会先停止当前运行的服务,然后重新启动。在重启过程中,服务会重新读取app.py中的配置,包括你刚刚修改的模型路径。
4.3 查看重启状态
重启命令执行后,建议查看服务状态确认重启是否成功:
supervisorctl status aiglasses如果看到类似这样的输出,表示服务正常运行:
aiglasses RUNNING pid 1234, uptime 0:00:30如果状态显示为FATAL或BACKOFF,说明启动失败,需要查看日志排查问题。
5. 验证修改生效的方法
5.1 直接查看日志验证
最直接的验证方法是查看服务日志:
# 查看最新日志 tail -100 /root/workspace/aiglasses.log在日志中寻找模型加载信息。如果修改生效,你会看到类似这样的日志:
Loading model from: /root/ai-models/archifancy/AIGlasses_for_navigation/trafficlight.pt Model loaded successfully in 2.3s如果看到的还是原来的模型路径,说明修改没有生效,可能需要重新检查修改和重启步骤。
5.2 通过功能测试验证
除了查看日志,还可以通过实际功能测试来验证:
测试盲道分割模型:
- 上传包含盲道的图片
- 点击"开始分割"
- 检查是否能正确识别盲道区域
测试红绿灯检测模型:
- 上传包含交通信号灯的图片
- 检查是否能识别红灯、绿灯等状态
测试商品识别模型:
- 上传包含AD钙奶或红牛饮料的图片
- 检查是否能正确识别商品
如果功能符合新模型的预期,说明修改已经生效。
5.3 通过API接口验证
如果你是开发者,还可以通过调用API接口来验证:
# 获取当前模型信息 curl http://localhost:7860/api/model-info正常的响应应该包含当前加载的模型路径信息。
6. 常见问题与解决方法
6.1 服务启动失败
如果重启后服务无法启动,可以按照以下步骤排查:
# 查看详细错误信息 supervisorctl tail aiglasses stderr # 检查配置文件语法 python -m py_compile /opt/aiglasses/app.py # 检查模型文件是否存在 ls -la /root/ai-models/archifancy/AIGlasses_for_navigation/常见问题包括:
- 模型路径错误
- 模型文件不存在或损坏
- app.py文件语法错误
6.2 修改后不生效
如果修改后似乎没有生效,检查以下几点:
- 确认修改了正确的文件:有时候可能有多个app.py文件
- 确认执行了重启命令:修改后必须重启服务
- 检查是否有缓存:某些情况下可能需要清除缓存
6.3 性能问题
切换模型后如果发现性能下降:
# 查看GPU内存使用情况 nvidia-smi # 查看系统资源使用 top大型模型可能需要更多GPU内存,如果显存不足会导致性能下降。
7. 总结
通过本文的详细讲解,你应该已经掌握了AIGlasses_for_navigation系统中修改app.py配置并使用supervisorctl重启服务的完整流程。关键要点包括:
- 准确定位:找到正确的app.py配置文件位置
- 正确修改:准确修改MODEL_PATH参数,选择需要的模型
- 必要重启:修改后必须使用supervisorctl restart命令重启服务
- 验证生效:通过查看日志、功能测试或API调用验证修改是否生效
记住这个流程:修改配置 → 重启服务 → 验证效果。只要按照这个步骤操作,就能顺利完成模型切换和各种配置调整。
这套方法不仅适用于模型切换,也适用于其他配置修改场景。掌握了supervisorctl的使用,你就能更好地管理和维护AIGlasses_for_navigation系统。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。