代码
FastSAM-MindSpore:加速图像分割的革命性技术

FastSAM-MindSpore:加速图像分割的革命性技术

FastSAM-MindSpore:加速图像分割的革命性技术

作者:梁启航 昇思开发者、湖北工业大学硕士研究生,研究方向为深度学习和机器视觉

在计算机视觉领域,图像分割技术一直是研究的热点。随着技术的发展,分割任意模型(SAM)在图像分割、图像描述和图像编辑等任务中发挥了重要作用。然而,SAM的高计算成本限制了其在实际场景中的应用。为了解决这一问题,中科院自动化所提出了FastSAM模型,通过将分割一切任务重新划分为全实例分割和提示指导选择两个子任务,用带实例分割分支的常规 CNN 检测器以高出50倍的运行速度实现了与SAM方法相当的性能,是首个实时分割⼀切的基础模型。本文将探讨FastSAM-MindSpore技术,即FastSAM在昇思MindSpore AI框架下的实现,以及其应用。

FastSAM的网络架构可分为两个阶段:全实例分割和提示引导选择。在全实例分割阶段,FastSAM使用卷积神经网络来对图像中的所有对象或区域进行划分。在提示引导选择阶段,它采用包括点提示、框提示和文本提示的各种提示来选出关注对象。与基于Transformer的方法不同,FastSAM融合了与视觉分割任务紧密相关的先验知识,例如局部连接和对象分配策略。这使得它以更低地参数量和计算量下更快地收敛。

基于昇思MindSpore实践

0****1 无提示生成

你可以使用以下代码生成所有的掩码和可视化结果。


from mindyolo.models import create_model
from Inference import segment
from prompt import FastSAMPrompt

network = create_model(
        model_name=args.network.model_name,
        model_cfg=args.network,
        num_classes=args.data.nc,
        sync_bn=False,
        checkpoint_path=args.weight,
        )
        
result_dict = segment(
        network=network,
        img=image,
        conf_thres=args.conf_thres,
        iou_thres=args.iou_thres,
        conf_free=args.conf_free,
        nms_time_limit=args.nms_time_limit,
        img_size=args.img_size,
        stride=max(max(args.network.stride), 32),
        num_class=args.data.nc,
        is_coco_dataset=is_coco_dataset,
        )
prompt_process = FastSAMPrompt(image, result_dict,)

# everything prompt
ann = prompt_process.everything_prompt()

prompt_process.plot(annotations=ann,output_path='./output/dog.jpg',)

0****2 点提示生成

通过给出点的位置,和点的类别,1是前景,0是背景。


# Box prompt (xywh)
python Inference.py --weight ./weights/FastSAM.pt --image_path ./images/dogs.jpg  --box_prompt "[[570,200,230,400]]"

0****3

框提示生成

通过给出框的位置。


# Everything mode
python Inference.py --weight ./weights/FastSAM.pt --image_path ./images/dogs.jpg

FastSAM-MindSpore的关键特性

0****1

高效的分割解决方案

FastSAM-MindSpore通过将任务转换为实例分割任务,并仅使用SAM作者发布的SA-1B数据集的1/50数据直接训练现有的实例分割方法,实现了与SAM相当的性能。这种方法不仅减少了数据需求,也降低了训练成本。

0****2 快速部署

FastSAM-MindSpore支持快速部署到边缘设备,使得模型能够快速应用于实际场景中,如列车部件状态检测、矿石颗粒自动分割和器官、组织、细胞分割等。

在昇思大模型平台AI实验室中,你可以快速体验FastSAM-MindSpore的分割效果。你可以上传一张自定义的图片,点击分割按钮,就可以得到一个满意的分割结果。

基于FastSAM-MindSpore实现的应用

0****1 全列车部件状态检测

通过全景分割,FastSAM-MindSpore能够将列车车体、轮对、制动系统、电气系统等不同部件分割为独立区域,自动分析其状态。同时,对关键部件(如车门、车窗、天线等)进行完整性检测,发现缺失或异常情况。

0****2

矿石颗粒自动分割

FastSAM-MindSpore的全景分割能力可以将图像中的矿石颗粒逐一分离,包括不同形状、大小、颜色的颗粒。无需人工逐一标注矿石颗粒,大幅提高分析效率。无需额外训练,能够不考虑矿石的其他特征而单独分割出不同种类的矿石,实现粒度检测的自动化。

0****3

器官、组织、细胞分割

在显微镜拍摄的图像中,FastSAM-MindSpore能够自动将每个细胞分离出来,明确地定义每个细胞的边界。对组织切片或培养皿中的细胞进行自动化分析,提高了分割效率和精度,有效降低了人工误差。