mcpField
S
senior-computer-vision

senior-computer-vision

github.com/alirezarezvani开发29.0k1.2k 次安装今天更新
代码仓库

关于 senior-computer-vision

senior-computer-vision 是面向计算机视觉工程的技能,涵盖检测、分割、数据准备、模型优化与部署。它提供脚本化流程,帮助构建训练配置、整理数据集并评估推理优化方案。

主要功能

  1. 01生成视觉模型训练配置
  2. 02构建数据集转换与增强流程
  3. 03清理并划分数据集
  4. 04基准测试和优化推理模型
  5. 05涵盖检测、分割与视觉部署

适用场景

  1. 01为 YOLO 或 Faster R-CNN 配置训练
  2. 02将标注格式转换为 COCO
  3. 03为训练集执行清理和增强
  4. 04将模型导出并优化至目标运行时

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill senior-computer-vision

安装后在 Claude Code 中输入/senior-computer-vision确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
computer_vision_architectures.md
object_detection_optimization.md
production_vision_systems.md
reference-docs-and-commands.md
scripts/
dataset_pipeline_builder.py
inference_optimizer.py
vision_model_trainer.py

详细介绍

高级计算机视觉工程师

面向目标检测、图像分割和视觉 AI 系统部署的生产级计算机视觉工程技能。

目录

快速开始

# Generate training configuration for YOLO or Faster R-CNN
python scripts/vision_model_trainer.py models/ --task detection --arch yolov8

# Analyze model for optimization opportunities (quantization, pruning)
python scripts/inference_optimizer.py model.pt --target onnx --benchmark

# Build dataset pipeline with augmentations
python scripts/dataset_pipeline_builder.py images/ --format coco --augment

核心能力

本技能提供以下方面的指导:

  • 目标检测:YOLO 系列(v5-v11)、Faster R-CNN、DETR、RT-DETR
  • 实例分割:Mask R-CNN、YOLACT、SOLOv2
  • 语义分割:DeepLabV3+、SegFormer、SAM(Segment Anything)
  • 图像分类:ResNet、EfficientNet、Vision Transformers(ViT、DeiT)
  • 视频分析:目标跟踪(ByteTrack、SORT)、动作识别
  • 3D 视觉:深度估计、点云处理、NeRF
  • 生产部署:ONNX、TensorRT、OpenVINO、CoreML

技术栈

类别技术
框架PyTorch、torchvision、timm
检测Ultralytics(YOLO)、Detectron2、MMDetection
分割segment-anything、mmsegmentation
优化ONNX、TensorRT、OpenVINO、torch.compile
图像处理OpenCV、Pillow、albumentations
标注CVAT、Label Studio、Roboflow
实验跟踪MLflow、Weights & Biases
服务化Triton Inference Server、TorchServe

工作流 1:目标检测流水线

从零开始构建目标检测系统时使用此工作流。

步骤 1:定义检测需求

分析检测任务需求:

Detection Requirements Analysis:
- Target objects: [list specific classes to detect]
- Real-time requirement: [yes/no, target FPS]
- Accuracy priority: [speed vs accuracy trade-off]
- Deployment target: [cloud GPU, edge device, mobile]
- Dataset size: [number of images, annotations per class]
步骤 2:选择检测架构

根据需求选择架构:

需求推荐架构原因
实时(>30 FPS)YOLOv8/v11、RT-DETR单阶段,针对速度优化
高精度Faster R-CNN、DINO两阶段,定位更准确
小目标YOLO + SAHI、Faster R-CNN + FPN多尺度检测
边缘部署YOLOv8n、MobileNetV3-SSD轻量级架构
基于 TransformerDETR、DINO、RT-DETR端到端,无需 NMS
步骤 3:准备数据集

将标注转换为所需格式:

# COCO format (recommended)
python scripts/dataset_pipeline_builder.py data/images/ \
    --annotations data/labels/ \
    --format coco \
    --split 0.8 0.1 0.1 \
    --output data/coco/

# Verify dataset
python -c "from pycocotools.coco import COCO; coco = COCO('data/coco/train.json'); print(f'Images: {len(coco.imgs)}, Categories: {len(coco.cats)}')"
步骤 4:配置训练

生成训练配置:

# For Ultralytics YOLO
python scripts/vision_model_trainer.py data/coco/ \
    --task detection \
    --arch yolov8m \
    --epochs 100 \
    --batch 16 \
    --imgsz 640 \
    --output configs/

# For Detectron2
python scripts/vision_model_trainer.py data/coco/ \
    --task detection \
    --arch faster_rcnn_R_50_FPN \
    --framework detectron2 \
    --output configs/
步骤 5:训练与验证
# Ultralytics training
yolo detect train data=data.yaml model=yolov8m.pt epochs=100 imgsz=640

# Detectron2 training
python train_net.py --config-file configs/faster_rcnn.yaml --num-gpus 1

# Validate on test set
yolo detect val model=runs/detect/train/weights/best.pt data=data.yaml
步骤 6:评估结果

需要重点分析的指标:

指标目标说明
mAP@50>0.7IoU 为 0.5 时的平均精度均值
mAP@50:95>0.5COCO 主要指标
Precision>0.8误报率低
Recall>0.8漏检率低
推理时间<33ms对应 30 FPS 实时

工作流 2:模型优化与部署

将训练好的模型准备用于生产部署时使用此工作流。

步骤 1:测量基线性能
# Measure current model performance
python scripts/inference_optimizer.py model.pt \
    --benchmark \
    --input-size 640 640 \
    --batch-sizes 1 4 8 16 \
    --warmup 10 \
    --iterations 100

预期输出:

Baseline Performance (PyTorch FP32):
- Batch 1: 45.2ms (22.1 FPS)
- Batch 4: 89.4ms (44.7 FPS)
- Batch 8: 165.3ms (48.4 FPS)
- Memory: 2.1 GB
- Parameters: 25.9M
步骤 2:选择优化策略
部署目标优化路径
NVIDIA GPU(云端)PyTorch → ONNX → TensorRT FP16
NVIDIA GPU(边缘)PyTorch → TensorRT INT8
Intel CPUPyTorch → ONNX → OpenVINO
Apple SiliconPyTorch → CoreML
通用 CPUPyTorch → ONNX Runtime
移动端PyTorch → TFLite 或 ONNX Mobile
步骤 3:导出为 ONNX
# Export with dynamic batch size
python scripts/inference_optimizer.py model.pt \
    --export onnx \
    --input-size 640 640 \
    --dynamic-batch \
    --simplify \
    --output model.onnx

# Verify ONNX model
python -c "import onnx; model = onnx.load('model.onnx'); onnx.checker.check_model(model); print('ONNX model valid')"
步骤 4:应用量化(可选)

使用校准进行 INT8 量化:

# Generate calibration dataset
python scripts/inference_optimizer.py model.onnx \
    --quantize int8 \
    --calibration-data data/calibration/ \
    --calibration-samples 500 \
    --output model_int8.onnx

量化影响分析:

精度大小速度精度下降
FP32100%1x0%
FP1650%1.5-2x<0.5%
INT825%2-4x1-3%
Step 5: 转换为目标运行时
# TensorRT (NVIDIA GPU)
trtexec --onnx=model.onnx --saveEngine=model.engine --fp16

# OpenVINO (Intel)
mo --input_model model.onnx --output_dir openvino/

# CoreML (Apple)
python -c "import coremltools as ct; model = ct.convert('model.onnx'); model.save('model.mlpackage')"
Step 6: 对优化后的模型进行基准测试
python scripts/inference_optimizer.py model.engine \
    --benchmark \
    --runtime tensorrt \
    --compare model.pt

预期加速比:

Optimization Results:
- Original (PyTorch FP32): 45.2ms
- Optimized (TensorRT FP16): 12.8ms
- Speedup: 3.5x
- Accuracy change: -0.3% mAP

工作流 3:自定义数据集准备

在为训练准备计算机视觉数据集时使用此工作流。

Step 1: 审计原始数据
# Analyze image dataset
python scripts/dataset_pipeline_builder.py data/raw/ \
    --analyze \
    --output analysis/

分析报告包括:

Dataset Analysis:
- Total images: 5,234
- Image sizes: 640x480 to 4096x3072 (variable)
- Formats: JPEG (4,891), PNG (343)
- Corrupted: 12 files
- Duplicates: 45 pairs

Annotation Analysis:
- Format detected: Pascal VOC XML
- Total annotations: 28,456
- Classes: 5 (car, person, bicycle, dog, cat)
- Distribution: car (12,340), person (8,234), bicycle (3,456), dog (2,890), cat (1,536)
- Empty images: 234
Step 2: 清洗与验证
# Remove corrupted and duplicate images
python scripts/dataset_pipeline_builder.py data/raw/ \
    --clean \
    --remove-corrupted \
    --remove-duplicates \
    --output data/cleaned/
Step 3: 转换标注格式
# Convert VOC to COCO format
python scripts/dataset_pipeline_builder.py data/cleaned/ \
    --annotations data/annotations/ \
    --input-format voc \
    --output-format coco \
    --output data/coco/

支持的格式转换:

源格式目标格式
Pascal VOC XMLCOCO JSON
YOLO TXTCOCO JSON
COCO JSONYOLO TXT
LabelMe JSONCOCO JSON
CVAT XMLCOCO JSON
Step 4: 应用数据增强
# Generate augmentation config
python scripts/dataset_pipeline_builder.py data/coco/ \
    --augment \
    --aug-config configs/augmentation.yaml \
    --output data/augmented/

检测任务推荐的数据增强:

# configs/augmentation.yaml
augmentations:
  geometric:
    - horizontal_flip: { p: 0.5 }
    - vertical_flip: { p: 0.1 }  # Only if orientation invariant
    - rotate: { limit: 15, p: 0.3 }
    - scale: { scale_limit: 0.2, p: 0.5 }

  color:
    - brightness_contrast: { brightness_limit: 0.2, contrast_limit: 0.2, p: 0.5 }
    - hue_saturation: { hue_shift_limit: 20, sat_shift_limit: 30, p: 0.3 }
    - blur: { blur_limit: 3, p: 0.1 }

  advanced:
    - mosaic: { p: 0.5 }  # YOLO-style mosaic
    - mixup: { p: 0.1 }   # Image mixing
    - cutout: { num_holes: 8, max_h_size: 32, max_w_size: 32, p: 0.3 }
Step 5: 创建训练集/验证集/测试集划分
python scripts/dataset_pipeline_builder.py data/augmented/ \
    --split 0.8 0.1 0.1 \
    --stratify \
    --seed 42 \
    --output data/final/

划分策略指南:

数据集规模训练集验证集测试集
<1,000 张图像70%15%15%
1,000-10,00080%10%10%
>10,00090%5%5%
Step 6: 生成数据集配置
# For Ultralytics YOLO
python scripts/dataset_pipeline_builder.py data/final/ \
    --generate-config yolo \
    --output data.yaml

# For Detectron2
python scripts/dataset_pipeline_builder.py data/final/ \
    --generate-config detectron2 \
    --output detectron2_config.py

架构选择指南

目标检测架构
架构速度精度最适合
YOLOv8n1.2ms37.3 mAP边缘设备、移动端、实时场景
YOLOv8s2.1ms44.9 mAP速度与精度平衡
YOLOv8m4.2ms50.2 mAP通用场景
YOLOv8l6.8ms52.9 mAP高精度
YOLOv8x10.1ms53.9 mAP最高精度
RT-DETR-L5.3ms53.0 mAPTransformer,无需 NMS
Faster R-CNN R5046ms40.2 mAP两阶段,高质量
DINO-4scale85ms49.0 mAPSOTA Transformer
分割架构
架构类型速度最适合
YOLOv8-seg实例分割4.5ms实时实例分割
Mask R-CNN实例分割67ms高质量掩码
SAM可提示分割50ms零样本分割
DeepLabV3+语义分割25ms场景解析
SegFormer语义分割15ms高效语义分割
CNN 与 Vision Transformer 的权衡
方面CNN(YOLO、R-CNN)ViT(DETR、DINO)
所需训练数据1K-10K 张图像10K-100K+ 张图像
训练时间快慢(需要更多轮次)
推理速度更快更慢
小目标借助 FPN 表现良好需要多尺度
全局上下文有限出色
位置编码隐式显式

参考文档

→ 详见 references/reference-docs-and-commands.md

性能指标

指标实时高精度边缘
FPS>30>10>15
mAP@50>0.6>0.8>0.5
延迟 P99<50ms<150ms<100ms
GPU 显存<4GB<8GB<2GB
模型大小<50MB<200MB<20MB

资源

  • 架构指南: references/computer_vision_architectures.md
  • 优化指南: references/object_detection_optimization.md
  • 部署指南: references/production_vision_systems.md
  • 脚本: scripts/ 目录,包含自动化工具

评论

支持 Markdown