大模型机器视觉新突破,,,SAM进化版SAV来了:分割一切视频!!!!开源!!

    2023-07-19 16:18
    浏览:14355

      今年4月,,,Meta的AI模型Segment Anything Model(SAM,,,分割一切模型)发布,一键轻松实现图像分割,,难怪网友直呼太强。。。

     

      SAM模型之所以在计算机视觉领域产生重要影响,,,,是因为图像分割是许多任务中的基础步骤,,,,比如自动驾驶、、、人脸识别、、车牌识别等都有用到。。。。

     

      在这些应用过程中,,,,从目标检测、、分割再到识别的整个流程,,,,由算法自动完成,,无需人工干预,,,,而SAM模型正是专攻其中的图像分割。。。

     

      虽然SAM是图像分割的代表性模型,,,但不可避免存在以下短板:

     

      1.它能够处理图片分割,,,,但是不能处理视频,,,,尤其是不能对视频里边移动的物体做连续追踪。。

     

      2.它能分割,,但是并不认识所分割的区域到底是什么。。。。

     

      3.它存在过度分割的问题,,经常把一个完整的物体分割成不同的部分,,而人是把目标作为整体看待的。。。。

     

      一、、SAV模型

     

      现在,,,云创数据(835305.BJ)在SAM和YOLOv8的基础上,,,“分割一切”模型的进化版——分割一切视频Segment-Any-Video(SAV)来了,,,进一步丰富了计算机视觉成果。。

     

    图片SAV模型(图片来源:SAV)

     

      作为一种新的图像、、视频分割方法,,,SAV可以在图片或视频中实现全自动标注,,,一键分割物体。。。。

     

      同时,,,基于Zero-Shot Transfer(零样本迁移),,,,SAV无需额外训练,,,,即使是训练库中没有的图片,,,也可以实现轻松分割。。

     

      与SAM相比,,,,SAV升级主要表现在以下方面:

     

      1.既可以分割图片,,,也可以分割视频;

      2.可以明确目标对象并打标签;

      3.可得到语义上完整的目标区域。。。。

     

    图片SAV与SAM图像分割对比结果(图片来源:SAV)

     

      从上图可以看出,,SAV将巴士、、小汽车等分割成一个个完整的区域,,而SAM是把这些单个的物体又分割为不同的区域。。。。

     

      除了图片以外,,,通过SAV,,,,视频也可以进行清晰的目标分割和追踪。。。。

     

      二、、示例

     

      现在,,,,我们在网页版 demo (https://sav.szxa.org)上体验一下SAV,,可以直观地感受SAM和SAV两者的差异。。

     

      在首页可任意选择一张示例图片,,也可从本地上传图片,,然后点击Segment按钮,,就可以同时得到SAM和SAV的结果。。。

     

    demo首页示例图片(图片来源:SAV)

     

    图片分割结果:左侧为SAM,,,,右侧为SAV(图片来源:SAV)

     

      如果需要观察某个实例的详细效果,,,鼠标放置原图,,,,移动鼠标即可。。。。

     

    图片移动鼠标查看详细分割效果(图片来源:SAV)

     

      在上图中,,,,由SAV分割的两只小狗是完整而独立的色块,,,并不像左边分割结果所展示——小狗耳朵颜色和身体部分颜色不一,,,不是完整的目标对象。。。同时,,SAV分割的两只小狗都打上了“dog”的标签。。。

     

      需要说明的是,,本项目只关注算法自动分割的应用场景,,,所以SAV无需人工输入点、、、、曲线、、矩形框等提示信息。。。。

     

      更多示例如下:

     

     

     

    图片图片分割结果对比(图片来源:SAV)

     

      三、、、、原理

     

      如前所述,,, SAM的自动分割不返回标签信息,,,,并且一个实例(例如,,一辆车)可能会被拆分成多个小区域。。。

     

    自动分割模式下,,,SAM不返回标签信息,,车辆被分割成多个区域(图片来源:SAM)

     

      基于此,,研发团队在SAM的基础上加入YOLOv8检测模型,,,,YOLOv8返回的结果中包含目标框、、类别及置信度,,目标框可作为提示信息输入到SAM,,,,类别名称即为标签,,因此SAM加YOLOv8可有效地解决上述问题。。。

     

      该方法同样可用于视频分割任务,,与处理单幅图像不同的是,,,除了分割,,我们通常更关心目标的运动轨迹、、、目标重识别,,以及如何实现一键抠视频等。。因此研发团队在SAM和YOLOv8的基础上加入跟踪算法,,,持续关注感兴趣的目标,,,,这样比单纯地分割每帧图像更有实际意义。。。。

     

      考虑到使用了目标检测模型,,,,在跟踪方面,,,,研发团队选择Tracking-By-Detection(TBD) 范式的跟踪方法,,例如BoTSORT,,而TBD是目前多目标跟踪任务中特别有效的范式。。

     

      图像分割

     

      使用YOLOv8做前向推理,,获得n个目标框,,,将这n个目标框作为提示信息输入到SAM模型并推理,,即可完成目标框的实例分割并且得到n个对应的掩膜,,,,然后对这n个掩膜取并集,,,,结果记为m。。

     

    使用YOLOv8做前向推理(图片来源:SAV)

     

      然后使用SAM做一次全局自动分割,,,,将此时得到的掩膜图像记为m2。。。

     

    使用SAM做全局自动分割(图片来源:SAV)

     

      由于YOLOv8无法检测到它不能识别的物体,,,可以设置两个超参数来确定新的物体,,,,即未知区域与检测区域的交并比r,,,以及未知区域的像素个数n。。。具体而言,,按面积对m2中的区域作降序排序,,,,依次取出其中的区域,,,然后分别与m计算交并比,,若交并比r小于0.3且该区域的像素个数n大于100,,则认为该区域是一个新的物体。。。按照此方法处理m2中的所有区域,,,即可完成SAV分割单幅图像的全部流程。。。

     

    SAV分割单幅图像(图片来源:SAV)

     

      视频分割

     

      SAV视频分割的原理可以简单描述为:

     

      1.使用YOLOv8检测某帧图像中的所有目标;

      2.使用跟踪算法预测后续帧中的目标框;

      3.根据检测到的目标框与当前轨迹集合相关联,,获得每个目标的id;

      4.将目标矩形框输入SAM,,,,进行实例分割。。。

     

      重复上述1~4步骤,,,实现视频分割。。。。

     

    SAV视频分割算法框架图(图片来源:SAV)

     

      效果展示

     

    图像分割对比(图片来源:SAV)

     

      可以看出,,,SAV能够很好地解决文章开头提到的SAM存在的问题。。。

     

      四、、、潜在用途

     

      无人驾驶。。。。特斯拉无人驾驶汽车经常会把树桩或者墓碑当成行人,,,,这个对于无人驾驶来说是不利的,,,,因为如果是电线杆子在路边的话,,,,我们没必要让无人驾驶汽车减速,,但如果是一个行人准备过马路的话,,,,那么就需要预先作出处理。。。。SAV可以有效地解决这种问题。。

     

      无人机自主飞行。。。。无人机自主飞行在密林中或者建筑物中,,,,需要对所有的目标进行识别,,,并且做出恰当的反应。。。SAV将大大提高这种智能水平。。。。

     

      机器人视觉。。。。机器人行走在工厂或者街上的时候,,,,如果不认得障碍物,,,,不认得道路,,,,不认得其他移动的物体,,那将寸步难行。。。。SAV将为机器人装上智慧的眼睛。。。。

     

      重点区域防护。。。。可连续追踪和识别每个目标,,,结合其他的算法对目标的身份和行为进行识别。。确保重点区域的的每一个人,,,,每一辆车都在管控的范围内。。。

     

      五、、、、更多

     

      目前,,,SAV模型已开源,,并在GitHub正式上线。。感兴趣的朋友可以点击【阅读原文】或者直接前往https://github.com/cStor-cDeep/Segment-Any-Video了解,,,,也欢迎向研发团队订制更高性能的大模型算法,,,联系方式如下:

     

      联系人:张先生

      邮箱:zhangkun@szxa.org

      手机:15895885574(微信同号)

     

      参考文献

      [1] Kirillov A, Mintun E, Ravi N, et al. Segment anything[J]. arXiv preprint arXiv:2304.02643, 2023.

      [2] Dillon Reis, Jordan Kupec, et al. Real-Time Flying Object Detection with YOLOv8[J]. arXiv preprint arXiv:2305.09972, 2023.


    站点地图