Giter VIP home page Giter VIP logo

automaskcoco's Introduction

AutoMaskCOCO

AutoMaskCOCO是一个简单易用的图像分割数据集标注工具,它结合了Segment AnythingCOCO ViewerSegment Anything Labelling Tool (SALT) 三个开源项目的优势,为用户提供了一个自动生成掩码并创建COCO数据集的一站式解决方案。通过这个项目,我们旨在简化图像分割和数据集标注的过程,为计算机视觉研究人员和开发者节省宝贵的时间。

  • Segment Anything为AutoMaskCOCO提供了灵活的分割和掩码功能。
  • COCO Viewer项目为AutoMaskCOCO带来了一个直观的界面,方便用户查看和管理COCO数据集,对图像和标注进行有效的检查。
  • Segment Anything Labelling Tool (SALT) 为AutoMaskCOCO提供了一个用户友好的标注界面,让用户能够轻松地对图像进行分割、标注和编辑。

AutoMaskCOCO项目利用标点自动生成掩码,降低了图像分割数据标注的难度,同时还可以自动输出COCO数据集格式的结果,为计算机视觉任务的数据准备工作提供便利。

示例

How it Works Gif!

Panel Jpg!

COCOViewerPanel Jpg!

准备工作

  1. 克隆相关项目:
git clone https://github.com/917940234/SAM-Tool.git
git clone https://github.com/facebookresearch/segment-anything.git
  1. 下载预训练的SAM模型:sam_vit_h_4b8939.pth 并将其放入segment-anything项目主目录。
  2. 准备数据集:将图像放置在<dataset_path>/images/中,并在<dataset_path>下创建名为embeddings的空文件夹。
  3. SAM-Tool项目中的helpers文件夹复制到segment-anything项目的主目录。
  4. 安装环境:
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

提取图像Embeddings

运行extract_embeddings.py脚本以提取图像的embeddings:

python helpers\extract_embeddings.py --checkpoint-path sam_vit_h_4b8939.pth --dataset-folder <dataset_path>

参数说明:

  • checkpoint-path:预训练SAM模型的路径。
  • dataset-folder:数据集路径。
  • device:默认为cuda,如无GPU,可使用cpu(速度较慢)。 运行完成后,<dataset_path>/embeddings文件夹下会生成相应的npy文件。

转换模型格式

使用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

参数说明:

  • checkpoint-path:预训练SAM模型的路径。
  • onnx-model-path:导出的.onnx模型保存路径。
  • orig-im-size:数据集中图像的尺寸(height, width)。 注意: 生成的.onnx模型不支持动态输入大小。如果数据集中的图像尺寸不一致,可以使用不同的orig-im-size参数导出多个.onnx模型供后续使用。

标注图像

将生成的sam_onnx.onnx模型复制到SAM-Tool项目主目录,然后运行segment_anything_annotator.py进行标注:

python segment_anything_annotator.py --onnx-model-path sam_onnx.onnx --dataset-path <dataset_path> --categories cat,dog

参数说明:

  • onnx-model-path:导出的.onnx模型路径。
  • dataset-path:数据集路径。
  • categories:数据集的类别(每个类别以,分割,不要有空格)。 在对象位置点击鼠标左键添加掩码,点击右键去掉该位置掩码。最后生成的标注文件为COCO格式,保存在<dataset_path>/annotations.json

查看标注结果

SAM-Tool项目中运行cocoviewer.py查看全部的标注结果:

python cocoviewer.py -i <dataset_path> -a <dataset_path>\annotations.json

自定义设置

  1. 修改标注框线条宽度: 在salt/display_utils.py中,找到class DisplayUtils,修改self.box_width的值。
  2. 修改标注文本格式: 在salt/display_utils.py中,找到def draw_box_on_image函数,修改texttxt_colorfont等参数。
  3. 标注快捷键:
    • Esc:退出app
    • a:前一张图片
    • d:后一张图片
    • a:前十张图片
    • d:后十张图片
    • k:调低透明度
    • l:调高透明度
    • n:添加对象
    • r:重置
    • Ctrl+s:保存之前的操作
    • Ctrl+z:撤销对象

通过以上步骤,可以使用SAM标注工具为您的图像数据集生成COCO格式的标注。如有需要,可以根据自己的需求调整设置以优化标注过程。

automaskcoco's People

Contributors

anuragxel avatar zhouayi avatar 917940234 avatar daa98 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.