当前位置:   article > 正文

labelme AI 模型运用_labelme怎么用aimodel

labelme怎么用aimodel

一、lebelme

1、界面介绍

在这里插入图片描述
点击上图位置,选择对应的模型。这里我每个模型都测试了一下,EfficientSam这个模型最好用,准确率和速度都ok。

2、使用方法

  • 目标框标注方法:点左上角【编辑】-> 【Create Ai-Mask】就可以标志了,这个是标注的mske区域和目标框。但是mask区域无法修改,等同于获取目标框。目标检测项目标注方法。

  • 目标mask注方法:点左上角【编辑】-> 【Create Ai-Polygon】标注的是mask区域,这个区域是可以修改的,一般是用作语义分割等任务。

单击左键选择目标,双击左键目标标注就完成了,此时会出现选择目标标签的选项了。

二、模型介绍

注意,有encoder和decoder 两个。建议直接用EfficientSam (accuracy)对应的模型。

1、模型下载地址

# 模型下载地址

# sam_vit_b  "SegmentAnything (speed)"
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_b_01ec64.quantized.encoder.onnx",  
md5="80fd8d0ab6c6ae8cb7b3bd5f368a752c",
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_b_01ec64.quantized.decoder.onnx",   
md5="4253558be238c15fc265a7a876aaec82",


# sam_vit_l   "SegmentAnything (balanced)"
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_l_0b3195.quantized.encoder.onnx", 
md5="080004dc9992724d360a49399d1ee24b",
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_l_0b3195.quantized.decoder.onnx",  
 md5="851b7faac91e8e23940ee1294231d5c7",


# sam_vit_h   "SegmentAnything (accuracy)"    这个模型效果可以,速度巨慢
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_h_4b8939.quantized.encoder.onnx",    
md5="958b5710d25b198d765fb6b94798f49e",
url="https://github.com/wkentaro/labelme/releases/download/sam-20230416/sam_vit_h_4b8939.quantized.decoder.onnx",   
md5="a997a408347aa081b17a3ffff9f42a80",


# efficient_sam_vitt  "EfficientSam (speed)"
url="https://github.com/labelmeai/efficient-sam/releases/download/onnx-models-20231225/efficient_sam_vitt_encoder.onnx",  
md5="2d4a1303ff0e19fe4a8b8ede69c2f5c7",
url="https://github.com/labelmeai/efficient-sam/releases/download/onnx-models-20231225/efficient_sam_vitt_decoder.onnx",  
md5="be3575ca4ed9b35821ac30991ab01843",


#  efficient_sam_vits  "EfficientSam (accuracy)"     这个模型速度和效果都非常不错,建议直接用这个
url="https://github.com/labelmeai/efficient-sam/releases/download/onnx-models-20231225/efficient_sam_vits_encoder.onnx",  
md5="7d97d23e8e0847d4475ca7c9f80da96d",
url="https://github.com/labelmeai/efficient-sam/releases/download/onnx-models-20231225/efficient_sam_vits_decoder.onnx",  
md5="d9372f4a7bbb1a01d236b0508300b994",


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

2、模型保存位置

下载模型后,放到 /home/wqg/.cache/gdown 下,需要注意一下,要把模型的名称修改一下。

SegmentAnything系列,模型名称加上这个:

https-COLON--SLASH--SLASH-github.com-SLASH-wkentaro-SLASH-labelme-SLASH-releases-SLASH-download-SLASH-sam-20230416-SLASH-
  • 1

EfficientSam 系列,模型名称前加上这个:

https-COLON--SLASH--SLASH-github.com-SLASH-labelmeai-SLASH-efficient-sam-SLASH-releases-SLASH-download-SLASH-onnx-models-20231225-SLASH-
  • 1

最后的模型如下:
在这里插入图片描述

这里已经可以使用了,不过推荐模型有一点点慢,后面使用GPU加速后推荐模型推理非常快。

三、使用onnxruntime-GPU 做模型推理

模型推理需要安装cuda和cudnn。安装问题可以自己百度一下。推荐模型推理,大概占用显存4G左右。

1、代码位置。

安装好labelme后,记住安装的位置,一般存在anaconda的环境下,在对应环境下找site-packages。由于我是装在.local下。所以我的是如下位置。
在这里插入图片描述
打开后会有一个ai的文件夹。
在这里插入图片描述

找到 efficient_sam.pysegment_anything_model.py 文件,修改对应的 init 方法即可

# segment_anything_model.py
class SegmentAnythingModel:
    def __init__(self, encoder_path, decoder_path):
        self._image_size = 1024

		# 修改后
        providers = ['CUDAExecutionProvider','CPUExecutionProvider']   # if cuda else ['CPUExecutionProvider']
        self._encoder_session = onnxruntime.InferenceSession(encoder_path, providers=providers)
        self._decoder_session = onnxruntime.InferenceSession(decoder_path, providers=providers)

		#修改前
        # self._encoder_session = onnxruntime.InferenceSession(encoder_path)
        # self._decoder_session = onnxruntime.InferenceSession(decoder_path)

        self._lock = threading.Lock()
        self._image_embedding_cache = collections.OrderedDict()

        self._thread = None


# efficient_sam.py

class EfficientSam:
    def __init__(self, encoder_path, decoder_path):
		# 修改后
        providers = ['CUDAExecutionProvider','CPUExecutionProvider'] 
        self._encoder_session = onnxruntime.InferenceSession(encoder_path,providers=providers)
        self._decoder_session = onnxruntime.InferenceSession(decoder_path,providers=providers)
		#修改前
        # self._encoder_session = onnxruntime.InferenceSession(encoder_path)
        # self._decoder_session = onnxruntime.InferenceSession(decoder_path)
        
        self._lock = threading.Lock()
        self._image_embedding_cache = collections.OrderedDict()

        self._thread = None


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

这里给出 efficient_sam.py 文件的修改图。
在这里插入图片描述

四、百度云盘onnx下载链接

这里的模型是已经修改过名字的,不需要修改名称,直接放到对应位置就行。百度云链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/498908
推荐阅读
相关标签
  

闽ICP备14008679号