ZONGXP的博客

让技术为产业赋能
私信 关注
ZONG_XP
码龄9年
  • 1,980,490
    被访问量
  • 199
    原创文章
  • 1,364
    作者排名
  • 6,308
    粉丝数量
  • 于 2012-09-25 加入CSDN
获得成就
  • 博客专家认证
  • 获得1,521次点赞
  • 内容获得1,086次评论
  • 获得5,217次收藏
荣誉勋章
兴趣领域
  • #算法
    #TensorFlow#CV(computer vision)
  • #后端
    #Python#Linux#C/C++
  • #人工智能
    #算法#图像处理#TensorFlow#视觉/OpenCV#深度学习#Python
TA的专栏
  • deepstream
    14篇
  • NVIDIA Jetson
    30篇
  • NVIDIA
    6篇
  • 人工智能
    49篇
  • 深度学习
    4篇
  • gstreamer开发手册
    14篇
  • gstreamer基础教程
    17篇
  • TensorFlow
    20篇
  • OpenCV
    16篇
  • Python
    61篇
  • Linux
    60篇
  • 视频开发
    12篇
  • 强化学习
    6篇
  • Qt
    36篇
  • ROS
    14篇
  • 编程开发
    11篇
与我联系
邮箱: zongxp123@gmail.com
微信: zongxp118(请备注公司/学校+交流方向)
位置: 北京,海淀
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Python之OpenCV相机标定方法

本文结合OpenCV官方样例,对官方样例中的代码进行修改,使其能够正常运行,并对自己采集的数据进行实验和讲解。一、准备OpenCV使用棋盘格板进行标定,如下图所示。为了标定相机,我们需要输入一系列三维点和它们对应的二维图像点。在黑白相间的棋盘格上,二维图像点很容易通过角点检测找到。而对于真实世界中的三维点呢?由于我们采集中,是将相机放在一个地方,而将棋盘格定标板进行移动变换不同的位置,然后对其进行拍摄。所以我们需要知道(X,Y,Z)的值。但是简单来说,我们定义棋盘格所在平面为XY平面,即Z=0。对于
转载
54阅读
1评论
3点赞
发布博客于 15 天前

Jetson之代码编辑器code-oss使用

jetson平台代码编辑器
原创
1339阅读
2评论
2点赞
发布博客于 15 天前

Python之pipreqs自动生成requirements.txt

0 背景当我们要把我们的 python 项目发布,或打包给别人使用时,需要指定各个软件的版本,即生成 requirements.txt,这个过程可以自动生成,不需要手写。有人会说,直接使用 pip freeze 工具也可以生成 requirements.txt,但这种方式有以下三个局限:pip freeze 只保存通过 pip install 安装的软件包; pip freeze 会保存当前用户下所有的 python 软件包,实际上有很多软件是其它项目中应用的(除非是在 virtualenv
原创
46阅读
1评论
2点赞
发布博客于 18 天前

NVIDIA Jetson之OTA远程升级Jetpack

0 背景使用过 Jetson 系列产品的同学都知道,NVIDIA Jetpack 更新速度较快,每次升级之后都需要使用 NVIDIA SDK Manager 工具来进行刷机,重新安装开发环境,耗费很多精力。不过,从 Jetpack 4.4.0 开始,这个苦恼就可以避免了,因为 NVIDIA 提供了方便的 OTA(Over-the-Air)线上升级的方法,不需要重新配置环境,无疑是一个很方便的方式,本文对升降方式进行一个介绍。1 版本信息首先查看下我们现在系统的版本信息可以看到是 Je
原创
264阅读
1评论
2点赞
发布博客于 1 月前

Linux之gstreamer视频编解码测试指令

0 背景gstreamer 是一个流媒体处理框架,可以使用插件的方法创建 pipeline,快速验证某些功能。NVIDIA 推出的 deepstream便是基于 gstreamer 开发的 sdk,也推出了自己的插件,如硬件编解码模块 NVCODEC。在开发过程中,我们习惯用 gst-launch-1.0 工具来搭建 pipeline,因此本文整理一下常见的 pipeline 方法,并不断完善补充。关于 gstreamer 的基本使用,可以参考《gstreamer基础教程》和《gstreame.
原创
1268阅读
6评论
4点赞
发布博客于 1 月前

CMakeLists.txt 语法介绍与实例演练

在《C++之makefile写法》文章中,我们介绍了 makefile 的写法,对 makefile 的语法有一个认识,实际使用时,很多项目是通过 cmake 工具自动生成 makefile 文件,因此本文对 CMakeLists.txt 的写法进行一个介绍。一、Cmake 简介cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。二、常用命令1. 指定 cmake 的最小版本cmake_min
转载
103阅读
0评论
2点赞
发布博客于 1 月前

VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率

近日,NVIDIA 开源了适用于 Python 的视频处理框架「VideoProcessingFramework(VPF)」。该框架为开发人员提供了一个简单但功能强大的 Python 工具,可用于硬件加速的视频编码、解码和处理类等任务。同时,由于 Python 绑定下的 C ++代码,它使开发者可以在数十行代码中实现较高的 GPU 利用率。解码后的视频帧以 NumPy 数组或 CUDA 设备指针的形式公开,以简化交互过程及其扩展功能。目前,VPF 并未对 NVIDIA Video Codec SDK
转载
194阅读
0评论
2点赞
发布博客于 1 月前

DeepStream5.0系列之车牌识别

利用 deepstream 构建车牌识别 pipeline,实现实时车辆检测、车牌检测车牌识别功能。
原创
1439阅读
3评论
4点赞
发布博客于 1 月前

DeepStream5.0系列之Python SDK介绍

deepstream python 版本 sdk 介绍
原创
445阅读
0评论
2点赞
发布博客于 2 月前

深度学习之目标检测faster rcnn算法解读

0 背景faster rcnn 作为目标检测领域内的经典算法,其思想值得仔细研究学习,本文系统性地对 faster rcnn 系列文章进行导读,总结归纳核心思想。首先了解下该系列文章的时间轴: R-CNN(CVPR,2014) --> SPP-Net(ECCV,2014) --> Fast RCNN(ICCV,2015) --> Faster RCNN(NIPS,2015)因此本文也会按照这个顺序展开。1 R-CNN论文:《Rich feature hierarchie
原创
313阅读
0评论
2点赞
发布博客于 3 月前

TensorRT之yolov4模型量化

0 背景在《DeepStream5.0系列之yolov4使用》中我介绍过 deepstream 调用 yolov4 的方法,但是只支持 FP32 和 FP16 精度,如果要想调用 INT8 精度的 engine 模型,需要额外生成一个量化表。本文是在 Jetson Xavier AGX 上部署测试,另外 NX 也支持 int8,其它型号的 jetson 就不要试了1 环境配置项目基于https://github.com/jkjung-avt/tensorrt_demos,因此先配置相关环境.
原创
787阅读
0评论
3点赞
发布博客于 3 月前

深度学习之语义分割unet算法解读

https://www.jianshu.com/p/14641b79a672
原创
645阅读
0评论
2点赞
发布博客于 3 月前

DeepStream5.0系列之Triton部署模型

0 背景
原创
938阅读
6评论
3点赞
发布博客于 3 月前

NVIDIA之TLT迁移学习训练自己的数据集

0 背景问题记录:root@bc0beb6b6ba7:/workspace/examples/faster_rcnn/specs# tlt-evaluate faster_rcnn -e default_spec_resnet50.txt --gpus 4Using TensorFlow backend.Traceback (most recent call last): File "/usr/local/bin/tlt-evaluate", line 8, in ...
原创
3430阅读
8评论
12点赞
发布博客于 8 月前

22 款神经网络的设计和可视化工具【转载】

前言深度学习领域,最常见的就是各种网络模型,那么在写论文或者文章,介绍网络模型的时候,最好的办法当然就是展示代码画图,今天介绍的 Github 项目,就是整理了 22 个设计和可视化网络结构的工具,其地址如下:https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network22 款工具名称分别是,其中我用的文章封面图就是第 16 款工具实现的结果,非常的炫酷和让人眼前一亮:
转载
679阅读
1评论
5点赞
发布博客于 9 月前

Qt创建多线程接收惯导UDP数据

0 背景项目需求,要用Qt接收惯导数据,数据采用UDP传输,在Qt中提供了QUdpSocket类来进行UDP数据报(datagrams)的发送和接收。这里我们还要了解一个名词Socket,也就是常说的“套接字”。 Socket简单地说,就是一个IP地址加一个port端口。因为我们要传输数据,就要知道往哪个机子上传送,而IP地址确定了一台主机,但是这台机子上可能运行着各种各样的网络程序,我们要往...
原创
6684阅读
1评论
8点赞
发布博客于 3 年前

caffe参数模型配置说明

参考:胡超伟博客利用caffe训练神经网络时,需要配置solver.prototxt文件里边的参数,现将文件中的参数意义说明如下base_lr初始学习率lr_policy这个参数是用来表示学习率随着时间是如何变化的“step”——需要设置stepsize。根据gamma参数和stepsize参数来降低学习率,base_lr * gamma ^ (floor(iter / stepsize))。it...
原创
836阅读
0评论
1点赞
发布博客于 3 年前

Linux之cuda、cudnn安装及版本切换

0 背景我们在用不同框架做深度学习时,难免会遇到需要不同版本的cuda和cudnn版本的情况,如果把原来版本的卸载掉重新安装新版本,则会影响其它框架的使用,最好的方法是在主机上安装多个版本的cuda和cudnn,需要用到哪种就切换到哪种,这样就免去了重复卸载安装的工作关于tensorflow对应的cuda和cudnn版本,参考官网链接,注意在1.13以上版本的tensorflow,都需要用...
原创
7918阅读
0评论
7点赞
发布博客于 3 年前

DeepStream5.0系列之动态增减输入源

点击查看系列文章目录0 背景从 DS4.0 开始就调试了 deepstream 动态增减源的功能,好长时间没接触,又生疏了。好记性不如烂笔头,趁着今天回顾代码,把过程记录一下1 先跑起来NVIDIA 官方其实已经发布过 runtime_source_add_delete 模块,见https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps我们先把他跑起来,然后我再介绍一下这代码的思路,以及我调试过程中遇到的一些问题在 /opt.
原创
1431阅读
5评论
6点赞
发布博客于 3 月前

TensorFlow 2 实战之从零开始构建 yolov3 目标检测网络

https://tensorflow.google.cn/install
原创
7603阅读
12评论
14点赞
发布博客于 3 月前

深度学习之语义分割DeepLabv3+算法解读

0 背景语义分割领域,deeplab系列是经典网络,本文对该系列网络进行汇总与解读。在此之前,对语义分割的相关背景进行介绍。1 语义分割https://zhuanlan.zhihu.com/p/130358170https://www.jianshu.com/p/295dcc4008b42 DeepLab v13 DeepLab v24 DeepLab v35 DeepLab v4...
原创
835阅读
0评论
1点赞
发布博客于 3 月前

如上所答,Read timed out 这个是源的问题,加上 -i 指定清华源即可

回答的问题 #Linux中安装tensorflow2.0出现如下问题
回答了问题于 4 月前

你这个大概率是版本匹配问题,如果对环境配置不熟悉的话,建议使用 docker 来部署应用 tensorflow https://tensorflow.google.cn/install/docker

回答的问题 #为什么我的tensorflow2.0.0报错找不到cuda9.0?
回答了问题于 4 月前

GPU利用率低可能有多方面的原因,首先要知道在训练过程中,不是所有的操作都是在GPU中进行,有一些前处理、后处理、日志记录等是在CPU上进行的,这就导致GPU并不是一直处于工作状态,可以通过运行 watch -n 1 nvidia-smi 来观察 GPU 的周期变化,可以看到是时高时低的,解决方法可以参考这篇博客https://blog.csdn.net/m0_38064529/article/details/103168172

回答的问题 #用tensorflow-gpu跑SSD-Mobilenet模型GPU使用率很低这是为什么
回答了问题于 4 月前

加载模型的时候指定by_name=True试试,如下

model.load_weights('base_model.h5', by_name=True)

回答的问题 #tensorflow2.x 如何用已经保存的模型参数直接预测
回答了问题于 4 月前

从你的输出上看不出具体原因,你这个情况是偶发性的呢还是每次都这样呢?推荐你看看这篇博客https://zongxp.blog.csdn.net/article/details/82015126,对object_detection的训练介绍得比较详细

回答的问题 #在训练Tensorflow模型(object_detection)时,训练在第一次评估后退出,怎么使训练继续下去?
回答了问题于 4 月前

最好的学习资料就是官网文档,tensorflow 官网也有针对新手入门的教程,参考https://tensorflow.google.cn/tutorials/quickstart/beginner。

这里也有一个对官方文档的介绍可以参考:https://mp.weixin.qq.com/s/ecmK2SVnScP5lTRyEOpFYg

回答的问题 #对于AI新手怎么能快速上手TensorFlow
回答了问题于 4 月前

机器学习教程首先推荐吴恩达的机器学习视频教程,可以在B站上找到。

另外,如果使用 tensorflow 做开发的话,推荐TensorFlow 官方频道中的《机器学习基础》系列课程(全 10 讲),链接是https://www.bilibili.com/video/BV1Ja4y1W7as

 

回答的问题 #求机器学习入门教程!
回答了问题于 4 月前

这个问题有点“老生常谈”了,tensorflow 从2015年发布以来,版本变化确实比较多,更新速度也比较快,这也是很多人“吐槽”的一个点,刚熟悉了一个接口,过一段时间可能就更新变化了。

如果你是从零开始学习 tensorflow,建议直接从 tensorflow2 开始,原因有以下几个方面:

(1)TF2 提供高级 keras API,构建、训练模型很方便,也允许创建更复杂的网络结构;

(2)TF2 支持 Eager 模式,在 TF1 中把图计算的定义和执行分离开了,称为“静态图”模式,不利于调试与查找问题,而使用 Eager 模式后,就拥有了“动态图”能力,可以达到交互模式的效果,每做一步就可以看到对应结果,很方便;

(3)从框架设计的角度来讲,版本迭代意味着完善功能,修复bug,TF2 是对 TF1 的升级,必然解决了很多开发者在 TF1 中遇到的问题。

因此,如果入门开始学习的话,直接从 TF2 开始就行,没必要再学习旧版本内容了。

关于入门资料,可以参考官网文档https://tensorflow.google.cn/guide

回答的问题 #从零接触TensorFlow,我该选择1.0还是2.0版本?
回答了问题于 4 月前

DeepStream5.0系列之yolov5使用

点击查看系列文章目录0 背景之前介绍了在deepstream中使用yolov3、yolov4的方法,现在已经有yolov5了,在性能上有了很大的提升,本文对deepstream中使用yolov5的方法做一介绍测试环境: Ubuntu 18.04, CUDA 10.21 安装流程1.1 创建conda环境conda create -n yolov5 python=3.61.2 下载源码mkdir deepstream_yolov5cd deepstream_yolov5.
原创
4144阅读
37评论
11点赞
发布博客于 5 月前

DeepStream5.0系列之yolov4使用

点击查看系列文章目录0 背景deepstream 5.0 GA版本的 SDK 中包含有 yolov3 的检测,还没有正式加上 yolov4 的功能,不过 nvidia 官方也在 github 上发布了相关的代码,本文对使用方法做一个介绍1 代码准备找到 deepstream sdk 的安装路径,默认为 /opt/nvidia/deepstream/deepstream-5.0,进入 source 路径,克隆代码git clone https://github.com/NVIDIA-AI
原创
3665阅读
14评论
3点赞
发布博客于 6 月前

NVIDIA之Triton Inference Server环境部署安装

0 背景Triton是什么?Triton是 NVIDIA 推出的 Inference Server,专门做 AI 模型的部署服务。客户端可以同伙HTTP/REST或gRPC的方式来请求服务,特性包括以下方面:支持多种框架,例如 Tensorflow、TensoRT、Pytorch、ONNX甚至自定义框架后端; 支持 GPU 和 CPU 方式运行,能最大化利用硬件资源; 容器化部署,集成 k8s,可以方便的进行编排和扩展; 支持并发模型,支持多种模型或同一模型的不同实例在同一GPU上运行 支持
原创
2955阅读
1评论
4点赞
发布博客于 6 月前

Linux之NVIDIA显卡驱动安装方法(重启失效解决方法)

在官网链接下载显卡驱动搜索后点击下载、同意协议即可先卸载原先驱动,如果以前是通过ppa源安装的显卡驱动,则使用下边的命令卸载sudo apt-get remove --purge nvidia*如果以前是通过runfile安装的,则通过下边的命令卸载sudo ./NVIDIA-Linux-x86_64-418.116.00.run --uninstall禁用nouveausudo vim /etc/modprobe.d/blacklist.conf 在最后两行添加
原创
1195阅读
1评论
3点赞
发布博客于 6 月前

NVIDIA之TLT迁移学习口罩实时检测

0 背景处理流程1 安装首先按照我之前的文章《NVIDIA之TLT迁移学习训练自己的数据集》部署一下容器环境,进入容器环境中git clone https://github.com/NVIDIA-AI-IOT/face-mask-detection.gitcd tlt-ds-face_mask_detectpython -m pip install -r requirements.txt2 数据集准备2.1 下载数据集Faces with Mask Kaggle Me
原创
971阅读
0评论
2点赞
发布博客于 6 月前

NVIDIA Jetson之刷机后配置大全

0 背景NVIDIA Jetson刷jetpack之后有很多重复操作,本文记录下如何在一个裸的jetpack中进行相关环境的配置,如有其它软件的需求,欢迎留言,我会完善补充1 开发环境搭建1.1 替换apt源《Ubuntu更换apt源之arm版》1.2 pipsudo apt install curlcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.pysudo python get-pip.pysudo python3
原创
591阅读
0评论
3点赞
发布博客于 7 月前

Jetson之opencv硬件编码输出rtsp

我们使用 python 做 opencv 开发时,会遇到需要把处理过的 mat 编码输出到 rtsp,尤其是在服务端上开发的时候,便于可视化结果,本文介绍相关实现方法#!/usr/bin/env pythonimport cv2import gigi.require_version('Gst', '1.0')gi.require_version('GstRtspServer', '1.0')from gi.repository import GObject, Gst, GstRtspServ
原创
1117阅读
6评论
6点赞
发布博客于 5 月前

如何规范你的Git commit?【转载】

阿里妹导读:commit message应该如何写才更清晰明了?团队开发中有没有遇到过让人头疼的git commit?本文分享在git commit规范建设上的实践,规定了commit message的格式,并通过webhook在提交时进行监控,避免不规范的代码提交。背景Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇百怪,.
转载
204阅读
0评论
2点赞
发布博客于 7 月前

Linux之网络带宽监控工具bmon

0 背景在 linux 上做网络设备开发时,往往需要查看带宽占用情况,这里介绍一个我使用感觉不错的工具 bmon1 工具介绍安装方法很简单sudo apt-get install bmon安装好之后查看使用方法nvidia@jxresearch:~$ bmon -hbmon 4.0Copyright (C) 2001-2015 by Thomas Graf <tgraf@suug.ch>Copyright (C) 2013 Red Hat, Inc.bmon
原创
240阅读
0评论
3点赞
发布博客于 7 月前

Python之命令行参数解析

Python 做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现)。如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活。Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解。getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 argparse,使其更加容易的编写
转载
371阅读
0评论
1点赞
发布博客于 7 月前

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=120 背景
原创
1376阅读
4评论
7点赞
发布博客于 8 月前

DeepStream5.0系列之TLT模型调用

点击查看系列文章目录0 背景在《NVIDIA之TLT迁移学习训练自己的数据集》文章中,我们用NVIDIA的TLT工具对模型进行训练、剪枝,得到一个检测效果较好的模型,接下来如要进行部署应用,在deepstream里应用是一个很好的选择。我们知道,TLT支持两种方式导出模型:tlt-export工具导出etlt格式的模型,支持FP32/FP16/INT8类型 tlt-converter工具导出engine格式的模型但是平台相关的,如果部署平台与导出平台不一致,模型会不能用,因此我们使用第一
原创
2016阅读
4评论
7点赞
发布博客于 8 月前

Linux之/dev/sda占用100%清理(ncdu使用)

0 背景开发过程中,发现服务器/dev/sda6占满了,如下$ df -hFilesystem Size Used Avail Use% Mounted onudev 126G 0 126G 0% /devtmpfs 26G 2.6G 23G 11% /run/dev/sda6 160G 152G 54M 100% /tmpfs 126G 1.1M 126G 1%
原创
1923阅读
0评论
2点赞
发布博客于 8 月前

为 CmakeLists.txt 添加 boost 组件

boost 具有很好的平台独立性, 因此会作为首选的 api 来完成特定的功能.我在项目中使用了 boost 的 filesystem 功能来获取程序的运行目录.#include <boost/filesystem/path.hpp> #include <boost/filesystem/operations.hpp> int main(){ ... std::string exePath = boost::filesystem::initial_p
转载
719阅读
0评论
2点赞
发布博客于 9 月前

Tensorflow之环境版本匹配问题

相信很多同学在用tensorflow的时候,都被环境折磨得不要不要的…只要有某一个包不匹配,就会出现运行错误……版本高了低了都可能出现问题……(真的是恶心)万幸,有人把环境做了一个系统的整理,只需要找到你安装的tensorflow版本,就可以看到你需要匹配的其它包的版本信息链接是:https://docs.floydhub.com/guides/tensorflow/比如你要安装tensorflow-1.14,你可以看到其它python包的版本信息如下absl-py==0.8.0anno
原创
3448阅读
2评论
9点赞
发布博客于 9 月前

Python之pdb代码调试

调试程序对于开发人员是一项非常重要的技能,它使得我们能够查看程序的运行过程,帮助我们准确的定位程序中的错误。然而,令人意外的是,无数的Python工程师居然不知道如何对Python代码进行单步调试,遇到问题的时候只能通过print函数打印变量中间值这种低效的方式。究其原因,还是因为这类Python工程师没有意识到Python的强大,仅仅用Python来解决一些很简单的事情,如果总是写非常短小的Python代码,可能确实不需要调试器。但是,如果代码量大,逻辑复杂以后,还是用print函数打印变量中间值的方
转载
645阅读
0评论
1点赞
发布博客于 9 月前

DeepStream5.0系列之性能分析工具使用

0 简介1 安装方法安装依赖sudo apt install libgstreamer1.0-devsudo apt install graphviz libgraphviz-devsudo apt install octave epstool babeltrace下载源码git clone https://github.com/RidgeRun/gst-shark.gitcd gst-shark./autogen.sh $OPTIONS # OPTIONS 选项..
原创
1355阅读
0评论
4点赞
发布博客于 9 月前

RGB像素提取器.rar

获取鼠标位置对应的像素值,包括pixel、RGBA、HEX、HSB、CMYM值,支持放大缩小等功能。。。
rar
发布资源于 10 月前

NVIDIA之获得显卡GPU_ARCHS值的方法

我们在使用源码编译带cuda的opencv时,需要设置显卡的CUDA_ARCH_BIN,本文介绍一下获得该值的方法方法一安装好cuda之后,可以从cuda sample中获得cd /usr/local/cuda/samples/1_Utilities/deviceQuerysudo make./deviceQuery如上,运行后输出信息如下nvidia@nvidia-X10SRA:/usr/local/cuda/samples/1_Utilities/deviceQuery$ .
原创
1346阅读
1评论
4点赞
发布博客于 10 月前

Linux之分析bin文件的10种方法

这世界有10种人,一种人懂二进制,另一种人不懂二进制。 ——鲁迅大家好,我是良许。二进制文件是我们几乎每天都需要打交道的文件类型,但很少人知道他们的工作原理。这里所讲的二进制文件,是指一些可执行文件,包括你天天要使用的 Linux 命令,也是二进制文件的一种。Linux 系统给我们提供了非常多用于分析二进制文件的工具,不管你在 Linux 下从事的是何种工作,知道这些工具也会让你对你的系统更加了解。在本文中,将介绍几种最常用的用于分析二进制文件的工具及命令,这些工具在大部分发...
转载
808阅读
0评论
1点赞
发布博客于 10 月前

Linux之ubuntu查看媒体信息工具

在linux上开发时,经常要与媒体文件交互,如图片、视频、音频文件,交互时需要获得媒体信息,如视频帧率、视频宽高、视频时常、编解码格式等,本文对查看媒体信息的方法进行总结,常用的工具是mediainfo和ffprob1 mediainfo在ubuntu18.04上安装方法很简单sudo apt-get install mediainfo安装后查看版本信息$ mediainfo --versionMediaInfo Command line, MediaInfoLib - v17.
原创
534阅读
0评论
3点赞
发布博客于 11 月前

boostdesc_bgm.i等文件.rar

opencv make时报错fatal error: boostdesc_bgm.i: No such file or directory,下载该文件拷贝到opencv_contrib/modules/xfeatures2d/src/ 路径下,重新编译即可
rar
发布资源于 1 年前

DeepStream系列文章目录

介绍 DeepStream 的安装及各种应用案例
原创
1732阅读
0评论
3点赞
发布博客于 1 年前

Linux之常用的压缩解压缩命令

记录一下平时常用到的压缩解压缩命令,免去每次查找的麻烦(不断完善)1 解压命令tar -xvf filename.tar tar -zxvf filename.tar.gz tar -jxvf filename.tar.bz2 tar -xZvf filename.tar.Z unrar e filename.rar unzip filename.zip2 压缩命令tar -zcvf filename.tar.gz filename zip filename.zip fil
原创
199阅读
2评论
1点赞
发布博客于 1 年前

Linux之ubuntu离线安装软件包

方法一在可上网的ubuntu电脑上,使用apt-get install安装软件,然后到/var/cache/apt/archives目录下拷贝安装包到离线ubuntu电脑上。比如要安装samba,步骤如下:# sudo apt-get install samba# sudo cd /var/cache/apt/archives然后到将下载的 samba_3.6.18-1ubuntu...
转载
1503阅读
0评论
2点赞
发布博客于 1 年前

Tensorflow之deeplab训练cityscapes数据集

在《TensorFlow之deeplab语义分割API接口调试》文章中,介绍了如何安装tensorflow model以及训练自己的语义分割模型,本文介绍对cityscapes数据集的训练方法...
原创
1906阅读
3评论
3点赞
发布博客于 1 年前

DeepStream5.0系列之环境安装

在前边的文章中,我们介绍过deepstream4.0 SDK的安装方法,最近deepstream更新到5.0版本,因此介绍一下5.0的安装方法。官网介绍SDK的运行环境如下(T4环境),jetson环境下直接刷jetpack即可安装好•Ubuntu 18.04•GStreamer 1.14.1•NVIDIA driver 440+•CUDA 10.2•TensorRT 7...
原创
6054阅读
7评论
6点赞
发布博客于 1 年前

Gstreamer应用开发手册14:替换管道元件

动态改变管道在本节中,我们讨论一些用于动态修改管道的技术。我们正在专门讨论在PLAYING状态下且不中断数据流的情况下更改管道。建立动态管道时,需要考虑一些重要事项:从管道中删除元件时,请确保未链接的衬垫上没有数据流,因为这将导致致命的管道错误。断开衬垫连接之前,请始终阻塞source衬垫(在推模式下)或sink衬垫(在拉模式下)。另请参见更改管道中的元件。 将元件添加到管道中时,请...
翻译
568阅读
1评论
3点赞
发布博客于 1 年前

Gstreamer应用开发手册13:管道中添加删除数据

手动在管道中添加/删除数据许多人希望使用自己的源将数据注入到管道中,也有人希望获取管道的输出并在应用程序中处理它。强烈建议不要使用这些方法,但GStreamer会为它们提供支持。由于没有基类的任何支持,因此你需要彻底了解状态更改和同步。如果它不起作用,则有百万种方法可以使自己陷入困境。最好只编写一个插件并让基类对其进行管理。有关此主题的更多信息,请参见《插件编写者指南》。你可以将两个可能的...
翻译
1244阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册12:探测函数

管道控制本文将讨论如何在你的应用程序控制管道的几种方法。本文的有些部分明显的有点难度,所以你在阅读本文之前需要一些编程知识。接下来将要讨论的包括如何如何将数据从应用程序插入到管道中, 如何从管道读取数据, 如何控制管道的速度、长度、起始点, 如何监听管道的数据处理过程。使用探测最好将探测视为可以访问Pad侦听器。从技术上讲,探针不过是可以使用gst_pad_add_probe ...
翻译
948阅读
0评论
3点赞
发布博客于 1 年前

Gstreamer应用开发手册11:自动加载

自动加载在前边我们学习过为 Ogg/Vorbis 文件建立一个简单的媒体播放器。通过替换元件,你同样可以建立一个播放其它文件格式的媒体播放器,像 Ogg/Speex, MP3 甚至视频格式。但是你可能更希望建立一个可以自动检测数据流的媒体格式的应用程序,该应用程序可以根据系统中可用元件自动建立一个最佳的管道。这个过程叫做自动加载(autoplugging), GStreamer 拥有一个高质量...
翻译
229阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册10:线程

线程GStreamer本质上是多线程的,并且是完全线程安全的。大多数线程内部结构对应用程序都是隐藏的,这使开发更加容易。但是,在某些情况下,应用程序可能希望对其中的某些部分产生影响。GStreamer允许应用程序在管道的某些部分上强制使用多个线程。GStreamer还可以在创建线程时通知您,以便您可以配置诸如线程优先级或要使用的线程池之类的东西。在GStreamer中调度GStre...
翻译
518阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册9:动态控制参数

入门GStreamer属性通常是使用g_object_set()设置的,但是想实时地调用来更改流几乎是不可能的。控制器子系统提供了一种轻量级的方法来在流运行时调整GObject属性。控制器要考虑到时间影响,它通过GstControlSource控件来修改属性。控制源提供0.0到1.0的范围的时间戳的值。控件绑定将控件值映射到GObject它们绑定到的属性,将类型转换并缩放到目标属性的值范围...
翻译
608阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册8:缓冲

缓冲缓冲的目的是在管道中累积足够的数据,以便可以流畅地进行播放而不会中断。从(慢速)非实时网络源读取数据时通常可以完成此操作,但也可以用于实时资源。GStreamer为以下用例提供支持:开始播放之前,在内存中缓冲多达特定数量的数据,以使网络波动最小化。请参阅流缓冲。 通过快速搜索下载的数据将网络文件下载到本地磁盘。这类似于quicktime / youtube播放器。请参阅下载缓冲。...
翻译
481阅读
0评论
3点赞
发布博客于 1 年前

Gstreamer应用开发手册7:接口、时钟与同步

接口在前边中我们学习过如何使用 GObject 的特性在应用程序和元件间进行简单交互。这个方法能够满足简单的直接设置,但对于比 set 和 get 更复杂的方法时就不行。为了满足一些更复杂的应用,GStreamer 使用了基于 Glib 中的 GInterface 类型的接口。这部分讲述的大多处理接口并没有给予相应代码。详情请参考 API 手册。在这里,我们仅讲述这些接口的范围和目的。UR...
翻译
492阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册6:跟踪、定位、元数据

到目前为止,我们已经接触到如何创建一个处理媒体数据流的管道,并如何使它运行。更多的应用程序开发者对在媒体数据流的处理过程中能否提供反馈信息给用户,以及提供什么反馈信息给用户,更感兴趣。举例来说: 对于多媒体播放器,我们想要对播放中的音乐显示一个进度条。或者进行代码转换的应用程序可能需要一个进度条来显示当前处理的代码百分比。 GStreamer 内置了方法来支持上述功能。它通过使用查询(queryi...
翻译
392阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册5:构建一个应用

创建一个完整应用在这一章中将会对先前的章节做个总结。它通过一个小程序来讲述 GStreamer 的各个方面:初始化库,创建元件,将元件打包进管道,播放管道中的数据内容。通过这些步骤,你将能够自己开发一个简易的,支持 Ogg/Vorbis 格式的音频播放器。第一个 Hello world 程序我们现在开始创建第一个简易的应用程序:一个基于命令行并支持 Ogg/Vorbis 格式的音频播放...
翻译
335阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册4:衬垫、缓冲区、事件

衬垫(pads)及其功能如我们在 Elements 一文中看到的那样,衬垫(Pads)是元件对外的接口。数据流从一个元件的源衬垫(source pad)到另一个元件的接收衬垫(sink pad)。衬垫的功能(capabilities)决定了一个元件所能处理的媒体类型。在这章的后续讲解中,我们将对衬垫的功能做更详细的说明。衬垫(Pads)一个衬垫的类型由 2 个特性决定:它的数据导向(d...
翻译
402阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册3:箱柜、总线、消息

箱柜(Bins)箱柜是一种容器元件。你可以往箱柜中添加元件。由于箱柜本身也是一种元件,所以你可以像普通元件一样 操作箱柜。因此,先前关于元件(Elements) 那章的内容同样可以应用于箱柜。什么是箱柜箱柜允许你将一组有链接的元件组合成一个大的逻辑元件。你不再需要对单个元件进行操作,而仅仅操作箱柜。当你在构建一个复杂的 管道时,你会发现箱柜的巨大优势,因为它允许你将复杂的管道分解成一些...
翻译
310阅读
0评论
2点赞
发布博客于 1 年前

Gstreamer应用开发手册2:初始化、元件

初始化当你准备写一个GStreamer应用程序时,你仅需要通过包含头文件gst/gst.h 来访问库函数。除此之外,不要忘记初始化 GStreamer 库。简易初始化在 GStreamer 库被使用前,主应用程序中应该先调用函数 gst_init,这个函数将会对 GStreamer 库做一些必要的初始化工作,同时也能够对 GStreamer 的命令行参数进行解析。一个典型的初始化 GS...
翻译
381阅读
0评论
3点赞
发布博客于 1 年前

Gstreamer应用开发手册1:关于Gstreamer

在之前的Gstreamer基础教程中,介绍了gstreamer基础相关的知识,目的是起到入门的作用。接下来在应用开发手册系列教程中,将更多的从技术角度,介绍更多的概念和功能,起到更好的学习效果。1 什么是gstreamerGStreamer 是一个创建流媒体应用程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意, 同时也借鉴了 DirectShow 的设计思...
翻译
804阅读
0评论
5点赞
发布博客于 1 年前

DeepStream4.0系列之pipeline可视化工具

系列文章目录(一)DeepStream系列之环境配置安装(二)DeepStream系列之SDK文件夹解析(三)DeepStream系列之pipeline分析工具================写在前边====================经过两个多月的暂停,deepstream系列又重新开写了。这两个月来一直在折腾SDK的东西,增删各种功能,从开始接触到现在比较熟练地掌握...
原创
1629阅读
0评论
4点赞
发布博客于 1 年前

GStreamer基础教程16:平台相关的element

目标虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin2或者autovideosink这些element时不需要考虑跨平台的问题,但是,当你使用仅仅在特定的平台存在的sink时,这个问题就绕不过去了。本教程会介...
翻译
321阅读
0评论
1点赞
发布博客于 1 年前

GStreamer基础教程15:继承Clutter

目标Clutter是一个开源的库,用来创建快速、可移植和动态的GUI。GStreamer可以通过cluttersink这个element把clutter集成进来,允许视频像纹理一样使用。本教程会展示:如何把GStreamer pipeline的视频输出在clutter里面作为纹理来处理介绍连接GStreamer和clutter的流程实际上非常简单。我们必须使用cluttersink这...
翻译
159阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程14:常用的element

目标本教程给出了一系列开发中常用的element。它们包括大杂烩般的eleemnt(比如playbin2)以及一些调试时很有用的element。简单来说,下面用gst-launch这个工具给出一个个具体例子(命令行),你可以用-v参数可以看到Pad得Caps是如何协商的。Bins这些是Bin element,它们在内部包含其他的element,已经组成了内部的pipeline,但在...
翻译
302阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程13:播放速度

目标快进,倒放和慢放是trick模式的共同技巧,它们有一个共同点就是它们都修改了播放的速度。本教程会展示如何来获得这些效果和如何进行逐帧的跳跃。主要内容是:如何来变换播放的速度,变快或者变慢,前进或者后退 如何一帧一帧的播放视频介绍快进是以超过正常速度播放媒体的一项技术,反之,慢放是以低于正常速度播放的技术。倒放和播放是一样的,只不过是从后面朝前面播放。所有这些技术做的都是修改...
翻译
207阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程12:流式传输

目标直接播放Internet上的文件而不在本地保存就被称为流播放。我们在前面教程里已经这样做过了,使用了http://的URL。本教程展示的是在播放流的时候需要记住的几个点,特别是:如何设置缓冲 如何从打断中恢复(因为失去了时钟)介绍当在播放流的时候,一旦从网络上取到媒体数据块就会进行解码和放入显示队列。这意味着如果网络来的数据延迟了,那么显示队列就可能没有数据,播放就会停下来。...
翻译
376阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程11:调试工具

目标有时我们的应用并没有按照我们的预期来工作,并且在总线上获得的错误信息也没有足够的内容。这时我们该怎么办呢?幸运的时,GStreamer自身提供了大量的调试信息,通常这些信息会给出一些线索,指向出错的地方。本教程主要讲述:如何在GStreamer里面获得更多地调试信息 如何把你自己的调试信息加入GStreamer的调试记录 如何获得图形化的pipeline打印调试信息调试记录...
翻译
332阅读
0评论
3点赞
发布博客于 1 年前

GStreamer基础教程10:GStreamer工具

目标GStreamer提供了一系列方便使用的工具。这篇教程里不牵涉任何代码,但还是会讲一些有用的内容:如何在命令行下建立一个pipeline——完全不使用C 如何找出一个element的Capabilities 如何发现一个媒体文件的内部结构介绍这些工具就位于SDK的bin目录下。你需要把这个目录加入PATH变量,或者把当前目前切换到GStreamer SDK的bin目录。打...
翻译
445阅读
1评论
2点赞
发布博客于 1 年前

GStreamer基础教程9:收集媒体信息

目标有时你需要快速的了解一个文件(或URI)包含的媒体格式或者看看是否支持这种格式。当然你可以创建一个pipeline,设置运行,观察总线上的消息,但GStreamer提供了一个工具可以帮你做这些。本教程主要讲述:如何获得一个URI上的信息 如何确定一个URI是可以播放的介绍GstDiscover是一个在pbutils库提供的工具,接受输入URI或者URI列表,返回它们的信息。这个...
翻译
210阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程8:pipeline的快捷访问

目标GStreamer建立的pipeline不需要完全关闭。有多种方法可以让数据在任何时候送到pipeline中或者从pipeline中取出。本教程会展示:如何把外部数据送到pipeline中 如何把数据从pipeline中取出 如何操作这些数据介绍有几种方法可以让应用通过pipeline和数据流交互。本教程讲述了最简单的一种,因为使用了专门为这个而创建的element。专门...
翻译
231阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程7:多线程和Pad的有效性

目标GStreamer会自动处理多线程这部分,但在有些情况下,你需要手动对线程做解耦。本教程会教你怎样才能做到这一点,另外也展示了Pad的有效性。主要内容包括:如何针对部分的pipeline建立一个新的线程 什么是Pad的有效性 如何复制流介绍多线程GStreamer是一个支持多线程的框架。这就说明,如果有必要它会在内部自动创建/销毁线程。比如:在应用线程中把流解出来。而且,...
翻译
335阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程6:媒体格式和pad的Capabilities

目标Pad的Capabilities是一个GStreamer element的基础,因为framework大部分时间是自动处理的,所以我们几乎感觉不到它的存在。本教程比较偏向原理,介绍了:什么是Pad Capabilities 如何获得这个东西 什么时候应该去获得这个东西 为什么你需要了解他们介绍PadsPads允许信息进入或者离开一个element——就像曾经展示过得一样...
翻译
244阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程5:集成GUI工具

目标本教程展示了如何在GStreamer集成一个GUI(比如:GTK+)。最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互。在这个教程里面,我们可以学到:如何告诉GStreamer输出视频到一个window 如何持续的刷新GUI 在GStreamer多线程时如何保持UI的更新 一个仅发送给你订阅的消息而不是所有消息的机制介绍我们下面就用GTK+这样一个G...
翻译
333阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程4:时间管理

目标本教程显示了如何使用GStreamer与时间相关的工具。尤其是:如何在管道中查询流位置或持续时间之类的信息。 如何寻找(跳到)流中的另一个位置(时间)。介绍GstQuery是一种机制,允许向元素或填充物询问一条信息。在此示例中,我们询问管道是否允许搜索(某些源(例如实时流)不允许搜索)。如果允许,那么电影放映十秒钟后,我们将使用搜索跳到另一个位置。在先前的教程中,一旦我们完...
翻译
355阅读
0评论
2点赞
发布博客于 1 年前

GStreamer基础教程3:动态管道

目标本教程介绍了使用GStreamer所需的其余基本概念,这些概念允许在信息可用时“动态”构建管道,而不是在应用程序开始时定义一个整体式管道。学习完本教程之后,您将具有开始播放教程的必要知识。这里的要点是: 链接元素时如何获得更好的控制。 如何收到有趣事件的通知,以便您及时做出反应。 元素可以处于的各种状态。 介绍如您所见,本教程中的管道在设置为播放状态...
翻译
957阅读
0评论
2点赞
发布博客于 1 年前

gst-docs.rar

gstreamer基础教程附属代码(https://zongxp.blog.csdn.net/article/details/104647820)
rar
发布资源于 1 年前

GStreamer基础教程2:基本概念

目标上一教程介绍了如何自动构建管道。现在,我们将通过实例化每个元素并将它们链接在一起来手动构建管道。在此过程中,我们将学习: 什么是GStreamer元素以及如何创建一个元素。 如何将元素彼此连接。 如何自定义元素的行为。 如何监视总线上的错误情况并从GStreamer消息中提取信息。 Hello World将此代码复制到一个名为basic-tuto...
翻译
730阅读
0评论
5点赞
发布博客于 1 年前

GStreamer基础教程1:Hello World

目标没有比在屏幕上打印“ Hello World”更好的关于软件库的第一印象了!但是由于我们正在处理多媒体框架,所以我们将改为播放视频。不要被下面的代码量吓到了:只有4行可以完成实际工作。剩下的就是清理代码,在C语言中,这总是有些冗长。事不宜迟,为您的第一个GStreamer应用程序做准备...Hello World将此代码复制到一个名为basic-tutorial-1.c...
翻译
747阅读
0评论
5点赞
发布博客于 1 年前

GStreamer基础教程0:安装gstreamer(linux)

先决条件GStreamer包含在所有Linux发行版中。我们建议使用Fedora,Ubuntu(非LTS),Debian sid或OpenSuse等快速发行版的最新版本来获取最新的GStreamer版本。本节中给出的所有命令均旨在从终端输入。确保您具有安装GStreamer的超级用户(根)访问权限。在Fedora上安装GStreamer运行以下命令:dnf insta...
翻译
1643阅读
0评论
3点赞
发布博客于 1 年前

C/C++之内存调试工具GDB与Valgrind

0 背景写 C++的同学想必有太多和内存打交道的血泪经验了,常常被 C++的内存问题搅的焦头烂额。(写 core 的经验了)有很多同学一见到 core 就两眼一抹黑,不知所措了。笔者 入"坑"C++之后,在调试 C++代码的过程之中,学习了不少调试代码内存的工具。希望借这个机会来介绍一下笔者常用的工具,GDB,Valgrind等等,相信大家通过好好运用这些工具,能更好的驯服内存这匹"野马"...
转载
375阅读
0评论
2点赞
发布博客于 1 年前

Linux之core dumped出错原因及位置分析

0 背景当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。core dum...
转载
3692阅读
0评论
3点赞
发布博客于 1 年前

vscode之软著代码格式整理

0 背景在写软著时,对代码格式有一定的要求,具体包括如下(引自《软件著作权提交源代码格式要求》):1.代码语法要求对软件著作权提交源代码是提供原始的代码(不是关键代码)语法上要求代码具备完整性。而且要求提交者提供的源代码是对应的代码文件的最原始文本信息。例如:C++代码应该是以include之类作为开头,而不能以函数开头;C#代码应该是using之类作为开头,而不能以函数开头...
原创
2340阅读
2评论
3点赞
发布博客于 1 年前

NVIDIA GPU的浮点计算能力

​​其实说到浮点计算能力,首先得区分不同精度的浮点数,虽然Linpack测试里只关心双精度的浮点计算能力,但在其他领域,有时候反而会更加关注单精度甚至是半精度的浮点计算能力。半精度、单精度、双精度这些概念是在IEEE 754标准里定义的,浮点计数是利用浮动小数点的方式使用不同长度的二进制来表示一个数字,与之对应的是定点数。同样的长度下浮点数能表达的数字范围相比定点数更大,但浮点数并不能精确表达...
转载
3529阅读
0评论
3点赞
发布博客于 1 年前

DeepStream4.0系列之SDK文件夹解析

系列文章目录(一)DeepStream系列之环境配置安装(二)DeepStream系列之SDK文件夹解析0 背景在上一篇文章中,我们对deepstream的安装进行了介绍,本篇对SDK的文件结构进行解析,从而对SDK有更清楚的认识。在分析之前,先了解下DeepStream的应用架构DeepStream参考应用程序是基于GStreamer的解决方案,由一组GStreamer插...
原创
2458阅读
0评论
6点赞
发布博客于 1 年前

DeepStream4.0系列之环境配置安装

系列文章目录(一)DeepStream系列之环境配置安装(二)DeepStream系列之SDK文件夹解析0 背景什么是DeepStream?NVIDIA的DeepStream SDK为基于AI的视频和图像理解以及多传感器处理提供了完整的流分析工具包。DeepStream还提供了为用户创建的库和功能构建自定义插件的功能。许多开源插件之一也可以很容易地与DeepStream框架配合使用...
原创
4497阅读
6评论
3点赞
发布博客于 1 年前

一行代码简化Python异常信息:错误清晰指出,排版简洁美观

即使是Python,报错时也令人头大。看着这一堆乱麻,不知道是该怀疑人生,还是怀疑自己手残。那么,Python异常输出美化工具PrettyErrors了解一下?只需一个import,报错也能整齐划一,错误代码位置、错误原因清晰明了,一眼就能看清。debug仿佛都没有那么痛苦了。一行代码简化报错先来试试一个简单的错误。def foo(): 1/0foo()...
转载
744阅读
0评论
3点赞
发布博客于 2 年前

英伟达显卡监控工具nvtop使用方法

0 背景在用英伟达显卡做深度学习训练或推理时,我们常用nvidia-smi指令来查看显卡的使用情况,如图所示这种方法可以看出每张显卡内存和GPU利用率的实时情况,但看不出历史数据和变化曲线,这个时候就需要用到nvtop了。Nvtop代表NVidia TOP,这是用于NVIDIA GPU的任务监视器。它可以处理多个GPU,并以熟悉的方式打印有关它们的信息。如图所示,很直观的显示了每张...
原创
4667阅读
0评论
3点赞
发布博客于 2 年前

Tensorflow目标检测之yolov3训练自己的模型

0 背景Tensorflow官方目标检测给出了SSD、Faster rcnn等预训练模型,但没有给yolov3的预训练模型,但有热心的人已经实现了基于tensorflow来复现yolov3的算法,本文对该代码的训练测试流程做一介绍。代码起源于YunYang1994的tensorflow-yolov3,后续类似的代码都是基于他进行的修改。我们今天介绍的Byronnar实现的tensorflo...
原创
8417阅读
17评论
13点赞
发布博客于 2 年前

ubuntu16.04设置静态IP与DNS

参考:https://blog.csdn.net/gerald_jones/article/details/808068840 背景虽然网上相关设置的文章有很多,但尝试设置的时候总是不成功,因此将配置流程记录下。1 关闭NetworkManagerubuntu系统有两种形态,分别是ubuntu server版本和ubuntu desktop版本,它们管理网络的形式不同,在 Ubun...
原创
378阅读
0评论
2点赞
发布博客于 2 年前