前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NanoSAM:让您在Jetson Orin上享受实时分割的卓越体验

NanoSAM:让您在Jetson Orin上享受实时分割的卓越体验

原创
作者头像
GPUS Lady
发布2023-09-15 12:36:22
2850
发布2023-09-15 12:36:22
举报
文章被收录于专栏:GPUS开发者GPUS开发者

嘿,大家好!今天我们要谈论的是一项令人兴奋的技术——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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档