- 博客(39)
- 收藏
- 关注
原创 ubuntu系统中的串口使用方法
ubuntu系统中的串口使用权限并没有对所有的用户进行开放,所以在使用代码对串口进行操作时,需要打开用户对串口的使用权限,否则在代码中会出现“串口无法打开的报错”,只有在加sudo时才能正常运行。而ubuntu安装时,默认使用的账户并没有加入到dialout组中,因此需要将用户加入到dialout组中,才能操作ttyS设备。ubuntu中支持多个串口操作,可以通过设备插拔来发现当前的设备使用的串口名。设备插入后,输入如下命令,查看当前使用的所有串口名。设备拔出后,输入如下命令,查看当前使用的所有串口名。
2024-02-21 17:55:40 1935
原创 deepstream生成pipeline拓扑图的方法
管道结束后,可以在“/Comac/Project/deepstream/dot”下看到.dot生成的文件“ds-tracker-pipeline.dot”,其中“ds-tracker-pipeline”是定义的pipeline的名字。在启动管道pipeline前加入如下代码,其中字符"pipeline"需要换成创建pipeline时命名的名字,例如“ds-tracker-pipeline”:一般的element(除src element 和sink element外)在import处添加。
2023-11-13 19:45:16 307
原创 NVIDIA安装 Fabric-manager,解决nvcc、驱动正常,但GPU无法正常使用问题
在使用NVIDIA显卡(V100/A100/A30等)时,需要安装对应的驱动,但是有时还要安装与驱动版本对应的 nvidia-fabricmanager 服务,使 GPU 卡间能够通过NVSwitch互联。当报错信息为以下情况时需要安装nvidia-fabricmanager 服务。
2023-03-30 13:29:08 8264
原创 gcc与cuda的关系
Check the maximum supported GCC version for your CUDA version:参考连接:gcc/cuda
2022-07-02 23:09:33 3527
原创 ffmpeg之AVFrame使用方法
ffmpeg之AVFrame使用方法前言AVFrame结构前言AVFrame 位于libavutil/frame.h中与AVpacket一样,是FFmpeg中很重要的结构体。它用于表示未压缩的音视频数据(编码前或者解码后),使用了引用计数机制来管理内存。而AVpacket是压缩的音视频数据(编码后或者解码前)AVFrame结构typedef struct AVFrame {#define AV_NUM_DATA_POINTERS 8 uint8_t *data[AV_NUM_DATA_PO
2022-03-24 17:15:54 596
原创 智能指针的用法
智能指针unique_ptr的用法unique_ptr是独占型的智能指针,它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另一个unique_ptr,如下面错误用法: std::unique_ptr<T> myPtr(new T); std::unique_ptr<T> myOtherPtr = myPtr; // error但是unique_ptr允许通过函数返回给其他的unique_ptr,还可以通过std::move来
2022-03-18 10:42:43 289
原创 XML to COCO数据
XML to COCO数据XML to COCO数据XML to yoloXML to COCO数据# coding:utf-8# pip install lxmlimport osimport globimport jsonimport shutilimport numpy as npimport xml.etree.ElementTree as ETpath2 = "/raid/ZXF/project_jishi/data/物料堆放/coco" # 输出文件夹classes
2021-08-09 15:50:20 390
原创 opencv+opencv_contrib编译
opencv+opencv_contrib编译opencv下载地址opencv_contrib下载地址opencv+opencv_contrib编译方法opencv下载地址opencv下载opencv_contrib下载地址opencv_contrib下载opencv+opencv_contrib编译方法cd ~/opencv #进入opencv 源码下,不是opencv_contribmkdir buildcd buildcmake -DOPENCV_EXTRA_MODULES_PA
2021-07-21 15:07:07 2074 4
原创 record-----各种实验指标记录
指标记录集前言指标tensorRT实验记录前言本文章记录工作中所完成的各种模型、实验的指标记录,便于后期查询使用。指标tensorRT实验记录以下是实验记录了各个模型在tensorRT多batch加速下的处理速度...
2021-05-13 15:13:28 217
原创 record-----torch(.pth)模型转onnx(.onnx)模型的方法
torch转onnx前言code前言torch转onnx目的用于将torch(.pth)模型转为tensorRT(.engine),pth->onnx->enginecode"""需要的环境:pytorch1.4进行模型转换,torch->onnx环境要求:tvm转torch模型必须在pytorch1.4的环境下进行,1.4下可以进行torch->onnx->tvm,同时也可以进行torch->libtorch转换,但是c++中源码编译的libtorch
2021-04-13 19:51:46 1409
原创 record-----torch(.pth)转libtorch(.pt)的方法
torch转libtorchcodecode"""进行模型转换,torch->onnx->tvm环境要求:tvm转torch模型必须在pytorch1.4的环境下进行,1.4下可以进行torch->onnx->tvm,同时也可以进行torch->libtorch转换,但是c++中源码编译的libtorch库要和torch->libtorch转换时使用的pytorch版本一致由于c++工程中使用的libtorch库是1.0,因此torch->libtorc
2021-04-13 19:44:18 2320
原创 record------CUDA GPU并行编程理解并实现centernet batch后处理
CUDA GPU并行编程理解并实现centernet batch后处理CUDA GPU并行编程前言一维CUDA核函数下标索引获取方法二维CUDA核函数下标索引获取方法CUDA GPU并行编程前言理解基本单元:线程(Thread)、线程块(Block)、网格(Grid),线程块数(BlockDim)、网格数(GridDim)其中网格(Grid)是由多个线程块(Block)组成,线程块(Block)是由多个线程(Thread)组成。BlockDim:一个Block块中含有的最大线程(Thread)数,
2021-03-19 12:02:50 661
原创 record----pytorch转libtorch详解
pytorch转libtorch使用记录前言code前言记录转换内容:pytorch->libtorch环境要求:torch->libtorch转换,需要的环境pytorch版本要和c++工程中使用的libtorch第三方库版本一致,即转换版本要和使用版本一致,但是用于训练.pth模型的pytorch版本可以不一致,例如训练的时候选择pytorch1.4,转换使用pytorch1.0,c++中使用的是libtorch1.0.注意:训练用高版本,转换用低版本,可能转换不出,因为网络结构对p
2021-03-08 15:40:00 1541 2
原创 Centernet半精度批处理详解-c++
//// Created by em on 20-10-9.//#include <vector>#include <string>#include "opencv2/opencv.hpp"#include "NumCpp.hpp"#include <torch/script.h>#include <sys/time.h>#include "c10/cuda/CUDAException.h"#include "c10/cuda/CUDAF
2021-02-25 14:57:22 580 1
原创 caffe下的resnet18-se
caffe下的resnet18-setrain.prototxtdeploy.prototxttrain.prototxtname: "ResNet-SE-18"layer { name: "data" type: "ImageData" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_value: 127.5 mean_value:
2020-12-08 17:24:45 277
原创 使用命令行查找日志文件log内容
使用命令行查找日志文件log内容关键字查找查询某段时间内的日志查看某些行内的日志关键字查找log文件中匹配关键字单个文件可以使用vi”或vim编辑器打开日志文件,然后使用编辑器里的查找功能,在查看模式下(直接打开就是查看模式),输入 :/待匹配的关键字进行查找,按n查找下一个,按N查找上一个。多个文件可以使用grep命令,比如 grep ERROR ./messages。会把匹配到ERROR这个关键字的行和所在的日志文件直接输出到屏幕。还可以使用cat命令后面使用grep过滤等方法,例如 cat
2020-12-07 10:46:56 5676
原创 查看文件个数-ubuntu
查看文件个数-ubuntu查看当前目录下的文件数量(不包含子目录中的文件ls -l|grep "^-"| wc -l查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录ls -lR|grep "^-"| wc -l查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上Rls -l|grep "^d"| wc -l查询当前路径下的指定前缀名的目录下的所有文件数量ls -lR 20161124*/|grep "^-"| wc -l #统
2020-07-14 10:38:42 214
原创 ubuntu 解决“/usr/bin/ld:找不到 -lxml2”方法
ubuntu 解决“/usr/bin/ld:找不到 -lxml2”方法解决“/usr/bin/ld:找不到 -lxml2”方法软链接解决“/usr/bin/ld:找不到 -lxml2”方法当在进行make编译相关源码时会出现某个第三方库找不到的情况,例如如下情况:#编译过程中出现的错误/usr/bin/ld: 找不到 -lxml2collect2: error: ld returned 1 exit status错误表示“libxml2.so”库找不到,那么解决办法:1. 首先查找下本地中是
2020-05-09 15:57:02 4943
原创 tensor中数据类型的相互转换
tensor中数据类型的相互转换Pytorch中的Tensor常用的类型转换函数Pytorch中的Tensor常用的类型转换函数tensor数据类型转换在tensor的后面添加: .int()、.float()、.double()等.同时也可以使用 .to(type) 进行实现。同时也可以使用 type()函数 ,data为Tensor数据类型,data.type()为给出data的...
2020-05-06 18:54:30 8786
原创 人体姿态估计-SimplePoseNet(二)
人体姿态估计-SimplePoseNet(二)资源链接论文代码论文个人解读模型结构网络特点资源链接论文出处:微软亚洲研究院(MSRA)、2018EECV论文原文链接代码pytorchtensorflow论文个人解读这篇文章开发的单人姿态估计模型SimplePoseNet简单高效,是2018年COCO人体关键点挑战赛的亚军,使用top-down策略,在COCO测试集上取得mAP=7...
2020-04-24 17:31:26 2644
原创 人体姿态估计-CPN(三)
人体姿态估计-CPN(三)资源链接论文代码论文个人解读模型结构网络特点算法效果资源链接论文出处:旷世科技(Face++)、2018CVPR论文论文代码tensorflowpytorch论文个人解读这篇文章开发的多人姿态估计模型CPN级联金字塔网络,是2017年COCO人体关键点挑战赛的冠军,使用top-down策略,那么同样适用于单人姿态估计,在COCO测试集上取得mAP=73....
2020-04-24 17:31:11 1691
原创 人体姿态估计-Stacked Hourglass(四)
人体姿态估计-Stacked Hourglass(四)资源链接论文代码论文个人解读模型结构网络特点算法效果帮助资源链接论文出处:2016ECCV论文论文代码tensorflow[pytorchtorch论文个人解读这篇文章开发的单人姿态估计模型Stacked Hourglass,是2016年最好的人体姿态估计模型,在MPII数据集中是当时的冠军,PCKh指标为89.4%。文中提...
2020-04-24 17:30:47 868
原创 ubuntu16.04安装tensorflow以及pytorch方法
ubuntu16.04安装tensorflow以及pytorch方法cuda与cudnn安装nvidia驱动、cuda、cudnn、tensorflow、pytorch版本的对应关系ubuntu16.04+cuda10.0+cudnn+nvidia驱动安装Anaconda3.0安装以及创建python虚拟环境Anaconda3.0安装创建python虚拟环境安装tensorflow安装pytorc............
2020-04-23 16:25:45 1123
原创 ubuntu16.04升级gcc和g++
ubuntu16.04升级gcc和g++下载安装配置为默认选项查看已安装的版本信息下载安装sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update sudo apt-get install gcc-7sudo apt-get install g++-7配置为默认选项sudo update-alter.........
2020-04-07 18:08:39 4618 1
原创 人体姿态估计-评价指标(一)
人体姿态估计-@1{评价指标}摘要摘要人体姿态估计可以细分成四个任务:单人姿态估计 (Single-Person Skeleton Estimation)、多人姿态估计 (Multi-person Pose Estimation)、人体姿态跟踪 (Video Pose Tracking)、3D人体姿态估计 (3D Skeleton Estimation)。单人姿态估计: 输入是切割出来的单个...
2020-02-12 15:19:36 19157 7
原创 c++图片中集合图形运算方法
c++图片中集合图形运算方法两直线相交计算交点两直线相交计算交点bool VIRCarKeyPoint::has_crspt_2lines(std::vector<cv::Point> &line0, std::vector<cv::Point> &line1, cv::Point &crspt) { //line0:x0=x00+lam...
2019-09-11 10:03:53 356
原创 linux命令之查看文件夹、文件个数以及查看内存分配
linux命令之查看文件夹、文件个数以及查看内存分配查看数量查看文件内存分配查看数量查看当前目录下的文件数量(不包含子目录中的文件):ls -l | grep "^-" | wc -l查看当前目录下的文件数量(包含子目录中的文件): ( 注意:R,代表子目录)ls -lR | grep "^-"| wc -l查看当前目录下的文件夹个数(不包含子目录中的文件夹),如果需要查看子目录的...
2019-08-26 15:09:02 1302
原创 C++中rand()随机函数使用方法
@TOC常用技巧:1 rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。2 如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100; 这样,num的值就是一个0~99中的一个随机数了。3 如果要产生1~100,则是这样:int num = rand() % 100 + 1;...
2019-07-24 15:13:05 1787
原创 c++杂记一工程常用
c++杂记一工程常用在图像上做标记常用字符串提取处理在图像上做标记工程中常常将输出的结果信息在图像上显示,例如:目标检测、车牌检测、车牌分类、车牌识别,会将输出结果在图像上显示。c++中常用opencv 中的两个函数:第一个void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, i...
2019-06-28 16:24:19 313
原创 枚举类型enmu使用技巧
C++枚举类型enmu使用技巧工程目的新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入工程目的在工程中经常会...
2019-06-19 09:15:45 1057
原创 Caffe 源码中的C++细节点
Caffe 源码中的C++细节点宏定义define关键字 explicit 使用宏定义defineclass LayerRegisterer { public: LayerRegisterer(const string& type, shared_ptr<Layer<Dtype> > (*creator)(const L...
2019-06-19 09:15:26 271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人