前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Jetson Orin上实现文本提示的目标检测与分割

在Jetson Orin上实现文本提示的目标检测与分割

作者头像
GPUS Lady
发布2024-05-06 14:54:23
1200
发布2024-05-06 14:54:23
举报
文章被收录于专栏:GPUS开发者GPUS开发者

通过文本提示进行目标检测和任意目标分割的功能在现代图像处理与机器视觉领域中具有极其重要的地位。这一功能的重要性主要体现在以下几个方面:

  1. 用户友好性和直观性:通过文本提示来指引系统进行目标检测和分割,用户无需具备专业的图像处理知识,只需通过简单的文字描述即可让系统识别并分割出图像中的特定目标,大大降低了用户操作的复杂性和门槛。
  2. 灵活性和通用性:文本提示的方式赋予了系统极大的灵活性,用户可以根据需要随时更改检测和分割的目标,无需对系统进行复杂的重新设置或训练,这使得该功能在多种应用场景下都具有广泛的适用性。
  3. 智能化和自动化水平提升:结合自然语言处理技术,系统能够理解和响应人类的自然语言指令,进一步推动了机器视觉技术向智能化和自动化的方向发展。

今天小编要介绍一个项目,来自于Huy Mai的《Realtime Language-Segment-Anything on Jetson Orin》,作者在Jetson Orin平台上,实现了通过文本提示进行目标检测和任意目标分割的功能。这一技术经过优化,特别适用于边缘部署,能够在保证性能的同时,满足实时交互的需求。通过高效的模型集成和算法改进,作者为用户提供了一个快速响应且准确的目标检测和分割解决方案,使得在边缘设备上处理复杂图像任务成为可能,极大地提升了实时应用的性能和用户体验。

让我们一起来看看吧!

原文地址: www.hackster.io/lurst811/realtime-language-segment-anything-on-jetson-orin-ccf6e1

项目概要

语言分割任意目标模型是一个两阶段模型,它结合了目标检测模型和分割模型的功能,允许用户通过文本提示来检测和分割任意目标。传统的语言分割任意目标模型通常结合GroundingDINO和SAM(Segment Anything Model,即任意分割模型)。然而,GroundingDINO和SAM的运行速度都太慢,无法在边缘设备(如Jetson Orin)上实现有意义的实时交互。

在本项目中,我通过将GroundingDINO替换为Yolo-world,将SAM替换为EfficientVitSAM,成功实现了语言分割任意目标模型6倍的速度提升。改进后的模型名为“Realtime-Language-Segment-Anything”,还包括视频和实时网络摄像头处理等新功能。

原始架构

“语言分割任意目标”的原始架构涉及将一张图像和一段文本提示输入到Grounding DINO模型中。然后,该模型会根据用户提示生成一张带有边界框的图像。接下来,将图像和边界框坐标一起输入到SAM模型中,以生成最终的图像,其中包括边界框以及检测到的对象的蒙版。这种方法通过使用SAM的生成式人工智能技术,可以根据任意文本输入,利用点、框或文本等提示,“裁剪”出图像中的任意对象,从而精确检测和分割图像中的任何区域。

改进架构

Grounding DINO和SAM都是基础模型,但它们运行时资源消耗较大。为了大幅度提高处理时间,我选择用YOLO-World替换Grounding DINO。

与Grounding DINO相比,YOLO-World的速度要快得多。这是因为它采用了视觉语言路径聚合网络,能够高效地结合图像和文本信息,实现快速处理。另外,YOLO-World在大量数据上进行了训练,因此它能够迅速识别出各种各样的物体。

为了进一步优化模型的速度,我还用EfficientViT-Sam替换了原始的SAM模型。EfficientViT-Sam保留了SAM模型轻量级的提示编码器和蒙版解码器,但将原本的计算量较大的图像编码器替换为了EfficientViT。EfficientViT-Sam的速度大约是原始SAM模型的48倍,但性能仍然与原始模型相当。

时序分析

为了观察新旧架构之间的性能差异,我进行了一系列测试,并记录了处理任务完成所需的时间。我所测试的基线模型可以在此存储库中找到。

两个模型都在Invidia Jetson AGX Orin 64GB上运行。无论是在单张图像预测还是批量预测(视频)方面,实时语言分割模型(Realtime-Language-Segment-Anything)的性能都明显优于原始模型。

在单张图像预测方面,实时语言分割模型的速度是原始模型的两倍。

对于通过视频片段进行的批处理,实时语言分割模型(Realtime-Language-Segment-Anything)的速度是语言分割模型(Language-Segment-Anything)的6倍。这是因为原始模型必须对每一帧进行提示编码,而实时语言分割模型只需在开始时进行一次提示编码。此外,实时语言分割模型使用YOLO模型作为目标检测的骨干网络,使用EfficientViT作为分割的骨干网络,这两个骨干网络都进行了速度优化,且没有损失太多性能。

总体而言,实时语言分割模型(Realtime-Language-Segment-Anything)能够实现每张图像处理时间为30毫秒,大致相当于每秒30帧的速度。凭借这一结果,实时语言分割模型可以轻松地在Jetson AGX Orin上使用网络摄像头的输入进行实时处理。

硬件安装

本项目的硬件设置包括鼠标、键盘和显示器,以便与Jetson Orin进行交互。网线为Jetson Orin提供互联网接入。最后,用USB摄像头使硬件能够实时捕捉图像。

安装步骤

  1. 在Jetson AGX Orin上将电源模式设置为MAX。
  2. 确保安装以下模块: Pytorch 2.1 Torchvision 0.16.1 请按照此说明在Jetson AGX Orin上安装上述软件包(/forums.developer.nvidia.com/t/pytorch-for-jetson/72048)。
  3. 安装opencv sudo apt install python3-opencv
  4. 克隆存储库 git clone https://github.com/TruonghuyMai/Realtime_Language_Segment_Anything.git
  5. 安装需求 pip3 install -r requirements.txt
  6. 安装Gradio pip3 install gradio
  7. 下载EfficientViT-SAM检查点(查看原文链接下载)
  8. 将检查点放入/assets/checkpoints/sam/
  9. 运行Gradio应用程序 python3 app.py

浏览器应该会打开,并允许您通过提示使用自己选择的图像、视频或网络摄像头来使用模型。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-29,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Grounding DINO和SAM都是基础模型,但它们运行时资源消耗较大。为了大幅度提高处理时间,我选择用YOLO-World替换Grounding DINO。
  • 与Grounding DINO相比,YOLO-World的速度要快得多。这是因为它采用了视觉语言路径聚合网络,能够高效地结合图像和文本信息,实现快速处理。另外,YOLO-World在大量数据上进行了训练,因此它能够迅速识别出各种各样的物体。
  • 为了进一步优化模型的速度,我还用EfficientViT-Sam替换了原始的SAM模型。EfficientViT-Sam保留了SAM模型轻量级的提示编码器和蒙版解码器,但将原本的计算量较大的图像编码器替换为了EfficientViT。EfficientViT-Sam的速度大约是原始SAM模型的48倍,但性能仍然与原始模型相当。
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com