首页 > 系统相关 >Ubuntu20.04下DeepStream Python环境安装

Ubuntu20.04下DeepStream Python环境安装

时间:2023-12-18 17:00:00浏览次数:48  
标签:Ubuntu20.04 DeepStream deepstream Python sudo python nvidia 安装

引子

  最近工作学习中遇到多路视频解码抽帧的需求,考虑到项目上大多数用到的都是Nvidia的显卡,常规CPU软解显然无法满足多路的需求,故考虑使用N卡的硬解码功能。然后我就毫不犹豫的去找轮子了,ChatGPT这么火,那就先问问它吧。嗯,呃,貌似下图红框里答案只有那么一点点靠谱(不要问我为啥用ChatGPT3.5,别问,问,就是穷),但...... 好吧,还是Google靠谱,了解到 “DeepStream是一套数据流分析工具包,DeepStream应用程序框架具有硬件加速构建块,可将深层神经网络和其他复杂处理任务带入流处理管道。开发者只需专注于构建核心深度学习网络和IP,而不是从头开始设计端到端解决方案。” 官方的这段话,可以说明DeepStream对算法工程师很贴心的。那么最后一个问题,为什么要选择python环境安装,很简单,人生苦短,我选python。OK,那就让我们开始吧!

 

 

一、机器配置 电脑:台式机 系统:Ubuntu 20.04.1 显卡:RTX 2060,6G显存 软件版本: (1)deepstream:6.1.1 (2)显卡驱动版本:515.86 (3)CUDA版本:11.7.1 (4)cudnn版本:8.6.0 (5)TensorRT版本:8.4.3.1 二、安装教程 (所有的安装步骤都可以参考官方的教程:https://docs.nvidia.com/metropolis/deepstream/6.1.1/dev-guide/text/DS_Quickstart.html) 1、软件对应版本要求 注意对应安装软件的系统版本要与deepstream要求的对应,可参考以下这张图: 0 2、安装 (1)安装显卡驱动 a、下载安装包 https://www.nvidia.cn/drivers/unix/linux-amd64-display-archive/ b、运行如下指令 在安装驱动之前,可能会遇到缺少gcc的情况,这里先安装一些依赖库,执行如下指令: sudo apt-get update sudo apt-get install build-essential 再安装驱动文件,执行以下命令: chmod +x NVIDIA-Linux-x86_64-515.76.run sudo sh ./ NVIDIA-Linux-x86_64-515.76.run -no-x-check 之后就一直按enter选择默认选项,安装成功后,用nvidia-smi指令查看是否安装完成: nvidia-smi 0 (2)安装NVIDIA Container Toolkit a、配置源 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list b、安装NVIDIA Container Toolkit sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit c、验证 systemctl restart docker docker run --rm -it --gpus all -v /home/nick/DeepStream:/workspace linewell_deepstream:v1.0 /bin/bash sudo su nvidia-smi 0 (3)安装CUDA a、下载安装包(我这里最后用的是 cuda_11.7.1_515.65.01_linux.run) https://developer.nvidia.com/cuda-toolkit-archive b、运行如下指令进行安装 apt-get install libxml2 chmod +x cuda_11.7.1_515.65.01_linux.run sudo sh ./cuda_11.7.1_515.65.01_linux.run 刚开始时间有一点点久,之后会弹出以下窗口,选择Continue: 再输入accept: 在下一步中,因为已经安装完了驱动了,这里我只选择安装了CUDA Toolkit 11.7,如下图所示: 然后选确定,往下安装即可。 c、添加环境变量 打开~/.bashrc,在文件末尾把cuda的路径添加进去,如下所示: 0 source ~/.bashrc nvcc -V 0 (4)安装cudnn a、下载安装包 https://developer.nvidia.com/rdp/cudnn-archive b、解压/复制文件 解压tar包 tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz 把cudnn/include的头文件复制到cuda的include路径 cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/* /usr/local/cuda-11.7/include/ 把cudnn/lib的文件复制到cuda的lib路径 cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/* /usr/local/cuda-11.7/lib64/ (5)安装DeepStream依赖 sudo apt install libssl1.1 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstreamer-plugins-base1.0-dev libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev gcc make git python3 (6)安装TensorRT a、下载安装包 https://developer.nvidia.com/nvidia-tensorrt-download b、解压并添加路径 cd /home/nick/DeepStream/soft/ tar -xvf TensorRT-8.4.3.1.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz 0 source ~/.bashrc (7)安装DeepStream SDK a、下载 https://developer.nvidia.com/deepstream_sdk_v6.1.1_x86_64.tbz2 b、安装 apt-get install libjson-glib-1.0-0 tar -xvf deepstream_sdk_v6.1.1_x86_64.tbz2 -C / cd /opt/nvidia/deepstream/deepstream-6.1/ sudo ./install.sh sudo ldconfig 可能会遇到的问题: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link 解决方法参考:https://blog.csdn.net/weixin_44120025/article/details/129795572 (8)运行示例 切换到deepstream的示例config路径 切换到:/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app cd /opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app 运行如下指令进行测试 设置不显示 vi source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt 0 deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt 0 显存使用 0 三、Python接口使用 1、下载拷贝代码 cd /opt/nvidia/deepstream/deepstream/sources cp /workspace/deepstream_python_apps-1.1.4.zip ./ unzip deepstream_python_apps-1.1.4.zip mv deepstream_python_apps-1.1.4 deepstream_python_apps 2、安装依赖 apt install libcairo2-dev apt-get install gir1.2-gst-rtsp-server-1.0 3、安装python app包 下载whl https://github.com/NVIDIA-AI-IOT/deepstream_python_apps/releases cd /home/nick/DeepStream/soft/ pip install pyds-1.1.4-py3-none-linux_x86_64.whl 0 3、测试 (1)本地文件读取 cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test3 python deepstream_test_3.py -i file:///home/nick/DeepStream/sample_1080p_h264.mp4 --no-display -s 0 0 (2)rtsp读取 python3 deepstream_test_3.py -i rtsp://xxxxxxxxxxxxx/Streaming/Channels/1 --no-display -s 0 (3)图片保存 cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-imagedata-multistream python3 deepstream_imagedata-multistream.py file:///home/nick/DeepStream/sample_1080p_h264.mp4 frames cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-getframe  四、Docker镜像安装   读到这里的一定有同学说,干嘛这么麻烦,直接英伟达网站上拉取官方镜像不就完了( docker pull nvcr.io/nvidia/deepstream:6.1-samples),那我建议这个同学去试试看...... 好吧,因为qiang的原因,其实这样子是拉不到官方镜像的,我的梯子搭过去,依然网络不稳定(这就不知道是梯子问题,还是官网的问题了),拉不完整......   那么,如果为了方便部署,只有自己镜像里安装这个了。这里注意下,我在镜像容器中按照二中的安装教程安装了一遍后,在执行python接口的时候依然有如下报错,看报错信息 ,应该是有些库没有找到,那么,只要把宿主机中/usr/lib/x86_64-linux-gnu目录拷贝到容器中即可。

 

 

 

 

 

 

 

标签:Ubuntu20.04,DeepStream,deepstream,Python,sudo,python,nvidia,安装
From: https://www.cnblogs.com/nick-algorithmer/p/17911607.html

相关文章

  • python celery的使用
    celery本生就不介绍了感兴趣的看https://c.biancheng.net/view/s0j4eth.html这个人家介绍的挺好的1.安装部署Celery涉及任务队列和结果存储,我们使用Redis,做例子前要先安装好redis。我们可以通过命令行方式下载和安装指定版本:#安装Celerypipinstallcelery==5.2.3#......
  • python3.8 模块 paramiko报错 AttributeError: 'NoneType' object has no attribute '
    报错信息Exceptionignoredin:<functionBufferedFile.__del__at0x7f4886fbd160>Traceback(mostrecentcalllast):File"/usr/local/python3/lib/python3.8/site-packages/paramiko/file.py",line67,in__del__File"/usr/local/python3/......
  • 标题:Python脚本:将Excel文件拆分成多个工作表
    简介:本博客介绍了一个实用的Python脚本,旨在帮助用户处理和重塑Excel数据。这个脚本允许用户将一个包含多列数据的Excel文件拆分成多个新的Excel文件,每个文件包含10列数据。特别适用于需要将大型数据集分解为更小、更易管理的部分的场合。功能特点:用户友好的交互:脚本通过命令行......
  • Python 提取 Word 文档中的文本和图片
    将内容从Word文档中提取出来可以方便我们对其进行其他操作,如将内容储存在数据库中、将内容导入到其他程序中、用于AI训练以及制作其他文档等。第三方库 Spire.DocforPython 提供了一个简单的方法直接提取Word文档中的内容,包括文本和图片,而不需要大量的复制粘贴操作,也不......
  • Python自动化软件测试:接口测试Requests模块从0到精通
    Requests模块是Python中一个非常流行的第三方库,用于处理HTTP请求。在接口自动化测试中,Requests模块可用于模拟发送HTTP请求并检查响应数据,以验证API的功能和性能。以下是与Requests模块相关的一些知识点,这些知识点都是从事接口自动化测试,必须要掌握的内容:安装和导入Requests模块:使......
  • Python selenium实现自动化测试
    一、安装selenium打开命令控制符输入:pipinstall-Uselenium火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能SeleniumIDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能,IDE录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发......
  • Python+Selenium自动化测试——输入,点击操作
    这是我的第一个真正意思上的自动化脚本。1、练习的测试用例为:打开百度首页,搜索“胡歌”,然后检索列表,有无“胡歌的新浪微博”这个链接2、在写脚本之前,需要明确测试的步骤,具体到每个步骤需要做什么,既拆分测试场景,考虑好之后,再去写脚本。此测试场景拆分如下:1)启动Chrome浏览器2)打开百......
  • Python的鸭子类型
    编程语言具有类型概念,例如Python中有数字类型、字符串类型、布尔类型,或者更加复杂的结构,例如元组 tuple 、列表 list 、集合 set 和字典类型 dict 等等。根据如何将类型解析并赋值给各种构造(例如变量,表达式,函数,函数参数等),编程语言可以归类为“鸭子类型”,“结构化类型”或“......
  • 一篇文章带你了解Python之Selenium自动化爬虫
    Python之Selenium自动化爬虫0.介绍Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器(2018年开发者说暂停开发,chromedriver也可以实现同样的功能)),可以接收指令,让浏览器自动加......
  • Python多线程应用于自动化测试操作示例
    本文实例讲述了Python多线程应用于自动化测试操作。分享给大家供大家参考,具体如下:多线程执行测试用例实例:importthreadingfromtimeimportsleep,ctimefromseleniumimportwebdriver#测试用例1deftest_baidu(browser,search):print("开始,现在时间是%s"%ctime())print("......