嘿,大家好!今天我们要谈论的是一项令人兴奋的技术——nanoSAM(Segment Anything Model),这是能在NVIDIA Jetson Orin平台上实时运行的炫酷模型哦!
首先,让我们搞清楚nanoSAM的名字里都隐藏了哪些秘密。"nano"表示它小巧但功能强大,"SAM"则代表"Segment Anything Model",也就是可以对图像进行分割的模型。而最令人兴奋的是,它可以在实时环境下运行!
在展示NanoSAM之前,我们深入探讨一下关于SAM(Segment Anything Model)和MobileSAM的有趣信息!SAM是一个神奇的模型,可以从输入提示(例如点或框)中生成高质量的对象掩码,用于从图像中剪裁出感兴趣的对象,而无需繁琐的手工工作。SAM经过了对1100万张图像和11亿个掩码的庞大数据集的训练,因此在各种分割任务中表现出色,尤其是在零样本情况下。
但是,尽管SAM的性能出色,它对于移动设备等资源有限的边缘设备来说仍然有些“重”。所以,为了让SAM也适用于这些设备,就有了MobileSAM的诞生。MobileSAM是SAM的轻量级版本,经过了一些巧妙的训练,它可以在资源有限的设备上运行得更快、更高效。
MobileSAM的训练过程中,我们将从原始的SAM中提取出ViT-H图像编码器的知识,并传递给一个轻量级的图像编码器。这个训练过程只需要不到一天的时间,在单个GPU上完成,而生成的MobileSAM模型比原始SAM小了60多倍,性能却媲美原始SAM。
在推理过程中,MobileSAM每处理一张图像只需约10毫秒的时间:图像编码器占用8毫秒,掩码解码器占用2毫秒。这使得MobileSAM在移动应用中表现出色,比其他模型如FastSAM小7倍、快4倍。
综上所述,MobileSAM是一个轻量级且高效的神奇模型,它继承了SAM出色的性能和多功能性,但更适合移动应用。
而nanoSAM是通过从未标记的图像中提炼MobileSAM的图像编码器而训练出来的。这听起来有点高级,但其实就是让nanoSAM学会了如何看懂图像,尽管这些图像没有标签。
看看nanoSAM在Jetson Orin平台上的性能:
注意:
† 移动SAM图像编码器经过了FP32精度的优化,因为当使用TensorRT构建为FP16精度时,它会产生错误的结果。而NanoSAM图像编码器则是使用FP16精度构建的,因为作者没有注意到显著的精度降低。所有管道都使用相同的掩码解码器,该解码器是以FP32精度构建的。对于所有模型,所报告的准确性使用与测量延迟的相同模型配置来计算。
‡ 准确性是通过使用COCO 2017验证数据集的真实对象边界框注释来提示SAM来计算的。然后,计算了SAM模型的掩码输出与对象的真实COCO分割掩码之间的IoU。mIoU是在COCO 2017验证集上,匹配目标对象大小(小、中、大)的所有对象的平均IoU。
那么nanoSAM有什么牛掰的用途呢?来看看这些有趣的示例:
示例1 - 利用边界框进行分割:
这个示例使用已知图像上的一个固定边界框,来控制nanoSAM进行分割。你可以把它想象成是让nanoSAM在图像中找到一个特定区域并把它标记出来,就像把一个框框住一样。
示例2 - 利用边界框进行分割(使用OWL-ViT检测):
这个示例更高级,它使用OWL-ViT来检测图像中的物体,而OWL-ViT是一个超酷的东西,它可以通过文本提示来识别物体。然后,nanoSAM会根据这些检测结果来进行分割。就像是在告诉nanoSAM:"嘿,这是一只狗,把它分割出来!"
示例3 - 利用关键点进行分割(离线使用TRTPose检测):
这个示例是关于人体姿势的,它使用TRTPose来检测人体的关键点,然后nanoSAM会根据这些关键点来进行分割。你可以把它想象成是在告诉nanoSAM:"嘿,看这个人的手臂,把它分割出来!"
示例4 - 利用关键点进行分割(在线使用TRTPose检测):
这个示例更炫酷,因为它可以在实时摄像头画面上进行操作。你可以把它想象成是在用你的动作来控制分割,就像在跟着镜头里的人一样玩耍。
示例5 - 分割并跟踪(实验性质的):
这个示例有点复杂,它展示了如何使用nanoSAM来进行分割跟踪。想象一下,你可以用它来追踪物体在画面中的运动轨迹,就像是在玩一个高级版本的跟踪游戏。
总之,nanoSAM是一个超级酷的技术,可以用在各种有趣的场景中,无论是图像分割、物体检测还是人体姿势分析,都能派上用场。它就像是一位小巧但聪明的助手,可以帮助我们更好地理解和操作图像世界。所以,让我们一起探索这个火热的技术吧!
项目地址:
https://github.com/NVIDIA-AI-IOT/nanosam?=&linkId=100000218450611&fbclid=IwAR3CmPBrkzOV3kFSpOmRt4tW-O96OmBbP_l3YR4-Kotgx5KeaAsvz3faehY