Computer Vision Helper 是一个用于指导实现图像分析和视觉 AI 任务的技能。它覆盖从基础的图像分类到复杂的目标检测与分割,帮助用户有效利用现代计算机视觉技术。资料说明,计算机视觉已被深度学习和视觉语言模型改变,该技能同时覆盖传统方法(CNN、预训练模型)与前沿技术(CLIP、GPT-4V、Segment Anything),并帮助用户根据准确率要求、可用数据和部署约束选择合适方案。
一、用途与适用场景 该技能用于指导构建视觉 AI 应用,例如产品识别、文档分析、医学影像等。它适合需要在不同任务类型和数据条件下选择并实现计算机视觉方案的用户。
二、核心工作流
- 选择计算机视觉方案:先定义任务——分类(图像属于什么类别)、检测(物体在图像中的位置)、分割(像素级物体边界)、OCR(从图像中提取文字)、相似度(查找相似图像)、生成(创建或修改图像);再评估可用资源,包括训练数据数量与质量、计算预算(训练和推理)、延迟要求、准确率需求;然后根据任务与数据情况选择方案。资料给出对应表:分类在无训练数据时可选 CLIP、GPT-4V,小数据集用迁移学习,大数据集用微调/训练;检测在无训练数据时可选 GPT-4V、Grounding DINO,小数据集微调 YOLO,大数据集训练自定义模型;分割无训练数据用 SAM,小数据集微调 SAM,大数据集训练自定义模型;OCR 可用云 API、Tesseract,小数据集微调,大数据集训练自定义。最后规划实现并记录方案理由。
- 实现图像分类:准备数据(使用 torchvision 的 transforms 组合进行缩放、中心裁剪、随机水平翻转、颜色抖动、转为张量、归一化;用 ImageFolder 和 DataLoader 加载);设置模型(从预训练 ResNet50 迁移学习,冻结早期层,替换分类头);带验证训练;在测试集评估;为部署优化。
- 部署视觉模型:优化模型(INT8 量化、剪枝、ONNX 导出、TensorRT 优化);设置推理管道(VisionPipeline 类封装模型加载、预处理、单张与批量预测的后处理);部署到目标环境;监控性能。
三、快速参考 资料列出触发方式:选择方案——“What CV approach for [task]”;分类图像——“Build image classifier”;检测物体——“Object detection for [use case]”;提取文字——“OCR from images”;零样本视觉——“Classify images without training data”;优化模型——“Speed up vision model”。
四、最佳实践 从预训练开始,除非必要不要从头训练(通用视觉用 ImageNet 预训练模型,有领域模型时用领域模型,零样本能力用 CLIP/GPT-4V);数据质量重于数量(移除错误标注和重复图像,平衡类别或使用加权训练,测试集包含边缘情况);合理增强(增强应反映真实变化,匹配生产条件,不要破坏任务相关特征,需验证增强是否有帮助);正确验证(按唯一图像而非增强版本划分,考虑按主体划分,如不同照片中的同一人,在真正留出的数据上测试);为目标硬件优化(了解边缘与云端部署约束,分析并优化瓶颈,考虑批量大小以提升吞吐量);处理边缘情况(不同光照、旋转、模糊、遮挡、异常宽高比、分布外输入)。
五、高级技术
- 视觉语言模型零样本:使用 CLIP 无需训练进行分类,示例代码加载 "ViT-B/32",预处理图像,构造 "a photo of a {label}" 文本提示,编码图像与文本特征,计算相似度并 softmax 返回各标签得分。
- GPT-4V 视觉分析:使用多模态 LLM 处理复杂视觉任务,示例将图像 base64 编码后调用 gpt-4-vision-preview,返回回答内容。
- YOLO 目标检测:使用 ultralytics 的 YOLO("yolov8n.pt")加载预训练模型,在自定义数据集上微调(data、epochs、imgsz、batch),推理并输出边界框、置信度和类别。
- Segment Anything(SAM):加载 sam_model_registry["vit_h"] 检查点,创建 SamPredictor,设置图像,支持点提示(point_coords、point_labels)和框提示(box)进行分割。
- 模型优化管道:导出 ONNX(opset_version=13,动态 batch 轴),使用 onnxruntime.quantization 的 quantize_dynamic 进行 INT8 量化,再用 onnxruntime 基准测试。
六、常见陷阱 资料列出:迁移学习可行时仍从头训练;未根据任务合理增强数据;训练/测试划分不当导致数据泄漏;忽略训练数据类别不平衡;无正则化导致过拟合;未在多样真实图像上测试;未测试延迟和吞吐量即部署;假设模型对所有图像类型都有效而未测试。
七、限制与未提供信息 该技能托管在 skills.sh 的 jmsktm/claude-settings 下,资料未提供其具体安装方式、收费或价格、支持平台、性能数据或效果保证,这些信息暂未提供。