• sam安装教程:
○ 参考教程:
§ 使用Segment Anything(SAM)模型进行自动标注(csdn)
§ 基于Segment anything的实例分割半自动标注(csdn)
○ 配合参考教程使用,下面是方便安装及验证
○ 环境配置:
§ 下载项目:
项目1:https://github.com/zhouayi/SAM-Tool
项目2:https://github.com/facebookresearch/segment-anything
使用git命令
git clone https://github.com/zhouayi/SAM-Tool.git
git clone https://github.com/facebookresearch/segment-anything.git
cd segment-anything
pip install -e .
下载SAM模型:https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
§ 安装sam-tool所需要的环境,environment.yaml
§ conda env create -f .\SAM-Tool\environment.yaml
§ conda create --name sam_tool python=3.9(上一步走通无需要这一步)
§ pip install onnx onnxruntime torch torchaudio torchvision distinctipy opencv-python pillow==9.4.0 PyQt5 timm -i https://pypi.tuna.tsinghua.edu.cn/simple
onnx
onnxruntime
torch
torchaudio
torchvision
distinctipy
opencv-python
pillow==9.4.0
PyQt5
timm
scikit-image
○ 代码运行:
# cd到项目2的主目录下
python helpers\extract_embeddings.py --checkpoint-path sam_vit_h_4b8939.pth --dataset-folder .\images\ --device cpu
§ 运行generate_onnx.py将pth文件转换为onnx模型文件
□ python helpers\generate_onnx.py --checkpoint-path sam_vit_h_4b8939.pth --onnx-model-path ./sam_onnx.onnx --orig-im-size 1080 1920
§ 将生成的sam_onnx.onnx模型复制到项目1的主目录下,运行segment_anything_annotator.py进行标注
□ python segment_anything_annotator.py --onnx-model-path sam_onnx.onnx --dataset-path images --categories 40090001
□ 在对象位置处点击鼠标左键为增加掩码,点击右键为去掉该位置掩码。
§ 运行cocoviewer.py查看全部的标注结果
□ python cocoviewer.py -i images -a images\annotations.json
○ 报错处理:
报错:image_name = self.coco_json["images"][image_id]["file_name"]
IndexError: list index out of range。因为导入的图片是大写的JPG格式,而该函数只支持小写的jpg和png,解决方案有两个:1、修改图片后缀为小写的jpg和png;2、扩展dataset_explorer.py里144行,get_image_data里的大写JPG格式代码