8497d0eb1d80962e8f6ce38a8d1752cfe8c4aef8
FishServer 核心仓库(已瘦身)
本目录面向 FishMeasure(SVO2 称重/点云)、FishAction(MP4 行为 X3D) 与 fish_api(FastAPI 网关) 的部署与运行,已去掉训练数据、历史推理产物、旧版 Django 前端和 SlowFast 训练栈等大体积非运行时内容。
目录结构
| 路径 | 说明 |
|---|---|
fish_api/ |
FastAPI:uv sync 后 uv run uvicorn app.main:app,见其中 README.md |
FishMeasure/ |
双目链路:predict_weigth_from_svo2.py、fish_video_weight_evaluation.py、weight_estimator/、pointcloud_classifier/ 等 |
FishAction/ |
行为推断:predict_video_x3d_3class.py、train_pytorchvideo_x3d.py、checkpoints/(X3D) |
packaging/ |
单一 Conda 环境:网关 + 两条算法依赖定义,见 packaging/README.md |
scripts/start_fresh.sh |
在已激活的 fishserver 环境中清空缓存后启动 uvicorn |
scripts/start_no_fresh.sh |
保留 SQLite 与推理缓存启动 uvicorn |
一键打包成「单环境」运行(推荐服务器)
bash packaging/bootstrap_fishserver.sh
conda activate fishserver
bash packaging/patch_cuda_torch.sh # Linux + NVIDIA 时建议
# 再按 packaging/README.md 安装 ZED SDK 与 pyzed
PORT=8001 bash scripts/start_fresh.sh
多 Conda 环境、分别设置 PYTHON_FISH_MEASURE / PYTHON_FISH_ACTION 的方式仍支持,见 fish_api/README.md。
已删除内容(需训练/旧功能时可从备份找回)
FishMeasure/output_weight_estimator/、output-yolo-sam/:推理输出FishMeasure/datasets/:训练集FishMeasure/project_jiuzhou01/:九州 Django + 前端工程FishMeasure/measure/、detect_refbox/dataset、detect_refbox/runs:独立实验数据与跑次FishMeasure/runs/predict、runs/segment:旧预测/分割输出FishMeasure/utils/data/:工具附带大数据FishMeasure/weight_estimator/runs/中除dgcnn_20260312_171043/外的历史训练目录FishAction/slowfast/:SlowFast 训练代码(当前网关仅走 PyTorchVideo X3D)- 根目录重复
yolo*.pt、fish_video_weight_evaluation__v1.py等
仍占空间的大文件(运行时一般需要)
FishMeasure/sam_vit_h_4b8939.pth(约 2.4GB):SAMvit_h。若未放置,可从 Segment Anything 官方权重 下载到FishMeasure/下同名文件。FishMeasure/runs/train/fish_detection_20251127_104658/weights/best.pt:YOLO 检测,与fish_api默认环境变量一致。FishMeasure/weight_estimator/runs/dgcnn_20260312_171043/best.pt:DGCNN 体重估计。FishAction/checkpoints/ptv_x3d_m/checkpoint_best.pt:行为分类(已删除其它实验版 checkpoint 目录以省空间;若需恢复请从备份拿回)。
Git 与体积
FishMeasure/、FishAction/ 内嵌各自 .git,其中 FishMeasure 历史对象可能很大(含 LFS)。仅部署运行时可用 rsync 排除版本库:
rsync -avz --exclude '.git' --exclude 'fish_api/.venv' ...
接口说明
- 业务 API 契约可参考仓库根目录
接口文档.docx(若仍保留)。 - HTTP 网关路径以
fish_api/app/routers/为准。
同步到服务器示例
rsync -avz --delete \
--exclude '.venv' --exclude 'fish_api/.venv' --exclude '__pycache__' \
./ ubuntu@192.168.10.93:/home/ubuntu/projects/FishServer/
(按实际 IP、用户与路径修改;--delete 慎用,会删远端多余文件。)
Description
Languages
Python
98%
Shell
1.9%