首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >利用TensorRT的视觉辅助设备为盲人和视力受损者提供帮助

利用TensorRT的视觉辅助设备为盲人和视力受损者提供帮助

作者头像
GPUS Lady
发布2023-05-30 08:13:14
发布2023-05-30 08:13:14
7360
举报
文章被收录于专栏:GPUS开发者GPUS开发者

嘿!你知道吗,盲人和视力受损者经常会遇到一些挑战,这些挑战使他们难以独立生活和参与社会。但是,由于机器学习的奇妙之处,我们现在有一些非常酷的辅助技术,可以帮助他们。例如,这位小哥,开发了一种设备,利用图像字幕和文本转语音技术,为那些最需要帮助的人提供帮助。

很棒,对吧?

如果你对技术方面感兴趣,让我告诉你他是如何使用TensorRT优化深度学习模型的经验吧。

这个小哥使用了一款来自SeeedStudio的reComputer NVIDIA Jetson Xavier NX作为系统的核心 - 这家伙可以提供高达21 TOPS的性能,非常适合嵌入式和边缘系统的高性能计算和人工智能。

但他遇到了一个问题 - 这些设备的内存有限,只有8G,这使得部署复杂的深度学习模型非常困难。幸运的是,通过TensorRT找到了解决方案 - 它通过减少内存占用来帮助在边缘设备上执行这些模型。

现在可以制作一些非常智能的技术,而不会占用太多空间!

图像字幕模型部署流程

小哥使用了流行的Microsoft COCO 2014(COCO)基准数据集来训练ExpansionNet v2图像字幕模型。该数据集包含123,287张图像,每张图像有五个人工注释的字幕,共计超过600,000个图像文本对。他使用Karpathy分割策略将数据集分为训练集(113,287张图像)、验证集(5,000张图像)和测试集(5,000张图像),以进行离线评估。

为了训练用于Kazakh字幕的模型,小哥遵循了ExpansioNet v2中定义的模型架构。使用预训练的Swin Transformer作为骨干网络,从输入图像中生成视觉特征。该模型在Nvidia DGX-2服务器上的4个V100上进行了训练。

最终,将图像字幕模型ExpansionNet v2部署到了Nvidia Jetson Xavier NX板上。通过按下按钮触发相机拍摄一个分辨率为640×480像素的RGB图像。然后,将拍摄的图像调整大小为384×384,并将其传递给ExpansionNet v2模型以生成字幕。接下来,使用文本转语音模型将生成的字幕文本转换为音频。在研究中,小哥使用KazakhTTS模型将Kazakh文本转换为语音。最后,生成的音频通过用户的耳机播放,使盲人或视力受损者能够理解他们面前的事物。

关于ONNX

ONNX是一种用于机器学习和深度学习模型的开放格式。它允许你将来自不同框架(如TensorFlow、PyTorch、MATLAB、Caffe和Keras)的深度学习和机器学习模型转换为单一格式。

该工作流程包括以下步骤:

-将普通的PyTorch模型文件转换为ONNX格式。ONNX转换脚本可以在此处找到:

https://github.com/jchenghu/ExpansionNet_v2/tree/master/onnx4tensorrt

-使用trtexec实用程序创建一个TensorRT引擎

代码语言:javascript
复制
trtexec --onnx=./model.onnx --saveEngine=./model_fp32.engine --workspace=200

-运行TensorRT引擎的推理

使用TensorRT进行推理优化

想象一下,你正在进行深度学习推理,需要一个高效的工具,那么TensorRT就是你需要的。这是由NVIDIA开发的一个强大的工具,可以优化神经网络模型并生成高度优化的推理引擎,可以在NVIDIA GPU上运行。它使用一系列的静态和动态优化来实现高效的推理,包括层融合、内核自动调优和精度校准。这意味着,使用TensorRT模型可以比PyTorch模型更快地处理图像,甚至在文件大小较小的情况下也是如此,可以节省约50%的时间。

相比之下,PyTorch是一种广泛用于研究和开发的深度学习框架。它提供了一个动态计算图,允许用户即时定义和修改模型,这使得尝试不同的架构和训练方法变得容易。然而,与TensorRT相比,它的速度可能会慢一些。

简而言之,如果速度和效率是你的首要考虑因素,那么TensorRT可能是更好的选择。这对于大多数实时物体检测应用程序已经足够快了。

在推理过程中,你可以使用jetson-stats实用工具检查Nvidia Jetson开发板的当前性能。您可以实时监测模型使用的资源,并充分利用硬件。

原型产品方案

图说明了图像字幕辅助系统的现实世界实验,包括一个摄像头、一个单板深度学习计算机(Nvidia Jetson Xavier NX)、一个按钮和耳机。摄像头通过通用串行总线(USB)连接到单板计算机上,而按钮和耳机分别连接到单板计算机的通用输入/输出(GPIO)引脚和音频端口上。摄像头通过可调节的带子固定在用户的额头上,用户在操作期间佩戴耳机,并将单板计算机(和电源)放在背包里携带。

结论和进一步改进

视力受损和盲人在日常生活中面临着独特的挑战,包括无法独立访问视觉信息。图像字幕技术在为这个群体提供帮助方面表现出了很好的前景。

除了现有的图像字幕和文本转语音技术,小哥希望未来将视觉问答(VQA)功能纳入这个视力障碍者和盲人辅助设备中。这将使用户能够就图像提出问题并获得口头回答。

为了进一步优化深度学习模型并提高其性能,他将从FP32到FP16或INT8执行量化。这将减少推理所需的内存占用和计算时间,使辅助设备更加高效。

这个项目代码请访问:

https://github.com/IS2AI/kaz-image-captioning

更多

用Python和NVIDIA Jetson NANO做一个自动驾驶滑板坡道

串口通信,玩转Jetson AGX Orin开发套件:调试神器,我命由我不由天!

ChatGPT 和 GPT-4 如何用于 3D 内容生成

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

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

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结论和进一步改进
  • 更多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档