自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (3)
  • 收藏
  • 关注

原创 FCOS长文详解

FCOS是一种one-stage、全卷积(Fully Convolutional)结构的目标检测模型,发表于2019年ICCV。什么是one-stage?作者的源码有些复杂,我找了一个简单的版本,作为本文的详解代码。FCOS不同于在此之前热门的anchor based方法(比如R-CNN系列),没有设置anchor boxes来作为目标的候选区域,而是使用全卷积网络,结合FPN,直接拿去做检测,实现了anchor free,并达到了当时的state-of-art。

2024-05-12 21:33:06 817

原创 libtorch c10::IValue类解析,从IValue获取值

像一个数据容器,但是它又不用来直接存储数据,只是一层数据的封装。怎么理解呢?可以存储里很多类型的数据,比如存储可能是一个Tensor,一组Tensor,或者是一个Moudle,甚至是一个int,所以更像是一种封装,对不同的数据类型进行了一次统一的封装,然后很多很多函数的接口都可以使用这种统一的数据类型了。如果你用过opencv,那么你可以觉得眼熟,不就是这么干的么,比如常用的cv::resize函数,它的输入、输出数据就是,而不是直接使用cv::Mat,这其实就是一种封装的思想。

2024-04-25 17:28:41 337

原创 对RPN网络的理解

RPN, Reigion Proposal Network, 中文名称为候选区域提取网络,最早在faster RCNN一文中提出,用于提取目标候选框。

2024-04-11 22:36:44 642

原创 FPN(Feature Pyramid Network)详解

FPN,全名Feature Pyramid Networks,中文称为特征金字塔网络。它是2017年cvpr上提出的一种网络,主要解决的是目标检测中的多尺度问题。FPN通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能。

2024-04-10 22:17:00 1244

原创 linux C/C++ 捕获 SIGSEGV 段错误信号

崩溃是常见现象,有时候,我们希望程序在崩溃的时候,先做点其他操作再崩溃,比如记录崩溃时刻的堆栈信息,或是提前释放一些硬件资源等等,那么就需要让程序捕获错误信号。信号,主要由访问空指针、内存访问越界、访问已释放的内存等原因导致。

2024-03-22 17:26:03 222

原创 opencv4 如何截取子图象

opencv c++ 截取子图像,感兴趣区域

2024-03-19 16:52:14 155

原创 linux系统breakpad安装、使用方法

BreakPad是Google开发的一款软件崩溃信息记录工具,其大致原理是捕获系统底层发出的崩溃信号,将此刻软件的堆栈信息并进行分析生成报告,可以很方便的定位问题代码。

2024-03-19 15:12:14 861

原创 libtorch::Tensor与Eigen::Tensor互相转换

C++ libtorch::Tensor 与 Eigen::Tensor互相转化

2023-08-04 21:00:16 564

原创 LInux:生成崩溃程序的core文件

core文件是linux系统下一种记录软件异常的机制,在进程运行崩溃时,系统会将coredump信息写入core文件。这样就方便我们定位软件问题。

2023-07-03 11:38:29 2722

原创 Linux系统安装QQ最新版 2023-06-30

腾讯在2023-05-30更新了linux版的qq,这次界面终于不再复古,好看多了。选择跟自己计算机匹配的版本,一般都是X86,如果是arm开发板就选ARM版。由于我都是ubuntu系统,因此这里我下载的是X84版的deb包。由于之前安装了2.0.0版本的QQ,所以报了几个警告。如果是CentOS,自行选择rpm即可。界面较上个版本确实进行了很大的优化。找到下载好deb,执行安装命令。

2023-06-30 17:13:34 7612 5

原创 C/C++ 运行shell脚本,并获取返回结果

C/C++运行shell命令通常有两种办法,调用system()或者popen()函数。 `system()` 函数会运行shell命令,并返回标志位,告知用户命令是否运行成功,但是不会返回shell指令的运行结果。有时,我们需要shell命令的运行结果,比如我们写系统监控日志,我们需要把结果写到文件里`popen`函数可以帮助我们。

2023-06-30 16:35:04 3859 3

原创 如何检测视频中的绿屏、绿帧问题

由于我的问题中的绿帧很稳定,我是指像素值很稳定,固定的[0,153,0],因此简单的均值就可以很好的检测出来。由于问题暂时没有定位,只能先表面解决一下,就是过滤掉出现绿屏的帧。今天给项目拷机,发现视频会偶先绿屏,非常偶现,很难复现出来。当然,首先要把绿帧检测出来,才能做后续的补救措施。R、B通道像素值为0,G通道像素值全都是153;于是我们就可以直接使用均值、标准差来检测绿帧。函数,它返回是三通道的均值;或者也可以加上标准差,使用。

2023-06-18 15:55:55 893

原创 RK3588 MPP解码句柄泄露问题记录

最近在用瑞芯微3588开发板做一个视频处理的项目,前两天拷机发生了闪退,弹出的问题是“打开文件过多”,经过初步排查定位到是MPP硬解码部分出的问题。

2023-06-15 10:03:49 2077 8

原创 FFmpeg常用的命令行指令

记录了一些常用的FFmpeg命令行指令,转格式,YUV相关...

2023-05-12 16:09:45 798 1

原创 error: static assertion failed: std::atomic requires a trivially copy type

cppreference对`TriviallyCopyable`的稍微总结了一下,“这意味着可平凡复制类没有虚函数或虚基类”。我们一条一条看`TriviallyCopyable`类型主要分为三类: - 标量类型这里的标量我猜测应该是`int,double,long`之类的内置类型。 - 类而对于类,cppreference说的6条,可以总结成三条:①这个类,至少一个复制构造函数、移动构造函数、复制赋值运算符或移动赋值运算符未弃置 ,就是至少有一个未被delete;②未被弃置的复制构造函数、

2023-05-11 15:18:20 1096

原创 C++ error: undefined reference to `__atomic_is_lock_free‘

对于常见的内置类型,比如`int,double,char,long`等等,都是`lock_free`的,可以正常调用`is_lock_free`函数。测试了自定义类型`struct A`从1字节到>8字节的情况,发现1、2、4、8字节是`lock_free`的,其他时候都不是,而且`is_lock_free`函数编译不过,

2023-05-11 11:13:10 726 3

原创 C++ 多线程编程(四) 原子类型atomic

atomicatomic可以实现无锁编程,在效率上要比mutexmtx.lock();return;sum1++;i++)这个例子里边,用多线程对一个变量自增,自增到一个值后结束,比较加锁和原子类型的运行时间,结果如下:经多次测试,这个示例中atomic的效率是mutex的3~4倍。

2023-05-11 10:48:12 953 2

原创 C++ 多线程编程(三) 获取线程的返回值——future

C++11标准库增加了获取线程返回值的方法,头文件为,主要包括futurepromise、async四个类。那么,了解一下各个类的构成以及功能。

2023-05-05 19:24:21 1691

原创 C++ 多线程编程(二) 各种各样的锁

本篇文章主要对C++现有的锁进行介绍,由于锁的种类繁多,而且相关文章已经非常多了,本文不再细讲各种锁的技术细节,而是更注重于各种锁的由来,以及他们针对的问题,如此便能针对自己面临的问题,选择合适的锁。今天是2023年4月21号,目前我使用的是C++20,因此在这篇文章,我们记录C++20中各类的锁。主要包括基本锁和RAII锁,基本锁包括互斥锁 (mutex),定时互斥锁 (timed_mutex),条件变量 (condition_variable),读写锁 (shared_mutex),

2023-04-24 17:14:54 3369

原创 C++多线程编程(一) thread类初窥

多线程编程使我们的程序能够同时执行多项任务。在C++11以前,C++没有标准的多线程库,只能使用C语言中的pthread,在C++11之后,C++标准库中增加了thread类用于多线程编程。thread类其实是对pthread的封装,不过更加好用,现在已经广泛用于C++多线程编程。C++11的多线程库主要包含 等头文件,这篇文章只要整理记录头文件的内容。

2023-04-20 11:38:19 981

原创 Linux系统如何设置开机自启脚本

Linux系统开启自启脚本的配置,我这里记录了三种办法,对于绝大多数linux系统,这三种方法里肯定有合适的。

2023-04-14 16:02:24 11418 4

原创 Linux以非堵塞模式执行shell脚本

还有部分命令是不会立马执行完的,需要等待一段时间,甚至永远不会执行完(比如`top`),这种情况就会阻塞终端,我们就没法继续使用这个终端了,除非你`ctrl+c`退出正在执行的脚本。

2023-04-13 11:08:34 1763

原创 C++ STL,resize 和 reserve 的区别

resize和reserve扩容处理的区别,带来了主要问题就是push函数使用问题,比如vector的push_back()函数,如果是resize之后再push_back,容器会继续扩容,因为这时候容器已经满了;如果是reverse之后push_back,则会放到vector现有元素的后边。

2023-04-04 11:42:21 506

原创 C++ 手动创建二叉树,并实现前序、中序、后序、层次遍历

二叉树的创建是个麻烦事,我的思路是:首先将一个普通的二叉树转化为满二叉树,其中的空节点用一些标识数据来代替,如此一来,就可以用数组索引来描述数据在二叉树的什么位置了。

2022-12-07 20:01:42 1062

原创 C++ 手动实现队列(queue) (课后作业版)

队列,循环数组实现,进栈出栈的复杂度都是O(1)

2022-11-25 10:44:50 545

原创 C++ 手动实现栈(stack) (课后作业版)

栈,一种遵循先进先出原则的数据结构,可以用顺序表实现,也可以用链表进行实现。这里我使用数组实现方法,包含了进栈,出栈,访问栈顶等功能,以及一些辅助功能。

2022-11-24 19:18:53 910

原创 C++ 手动实现单向循环链表(课后作业版)

单向循环链表,并实现增删查改等功能首先定义节点类,类成员包含当前节点的值, 指向下一个节点的指针。循环链表的尾节点指向头节点

2022-11-23 15:23:59 685

原创 C++ 手动实现双向链表(作业版)

手动实现双向链表,包含增删查改功能,附源码

2022-11-22 19:42:48 729

原创 C++ 单向链表手动实现(课后作业版)

单向链表,并实现增删查改等功能

2022-11-21 15:25:03 331

原创 linux Qtcreator编译自己的动态库(.so),详细全流程

本篇记录Qt编译动态库全流程

2022-11-20 21:09:48 5240

原创 C++ 读取文本, 读取( 单字符/ 一行/ 全部 )

读取文本, 读取( 单字符/ 一行/ 全部 ),示例代码

2022-11-14 11:09:29 1608

原创 C++ 构造函数详解

在定义类的成员函数的时候,一般的成员函数与普通的全局函数没有太大的区别,在定义函数的时候都需要说明要返回的类型,但是,类中有一种函数比较特殊,函数名与类名相同,且没有返回值类型,这中函数称为构造函数,它承担着类初始化的工作,非常重要。常用的构造函数有默认构造函数、一般构造函数、拷贝构造函数、转换构造函数、移动构造函数。

2022-10-16 22:19:08 14778 1

原创 C/C++ 关键字 static 详细解析

static关键字是一个修饰符,根const类似,被它修饰的变量和函数分别被称为静态变量和静态函数,根据修饰的对象的不同,static表现出来的作用也不同。其实只记住一条就够了,静态成员变量=全局变量。 想到这一点之后,前边的条条框框都好理解了。

2022-10-13 10:36:06 427 1

原创 Ubuntu18.04 右上角网络连接消失问题记录

ubuntu18.04 右上角网络连接消失问题,内核版本切换,以及显卡驱动nvidia-smi failed等等问题

2022-10-12 21:44:05 852

原创 C/C++ FILE 和 fstream 用法详解

FILE 是C语言自带的文件操作结构体, fstream 是C++的文件操作类,两者使用都比较常见,且用法比较类似,再次记录。

2022-09-25 20:01:26 4877

原创 C/C++:printf 函数格式化输出,用法详细记录

printf ( print format )函数是接触C/C++之后接触的第一个函数,它的功能除了输出hello world外,更重要的是进行格式化输出,比如输出整数的%d,输出小数的%f,%lf 等等。printf 格式化输出的完整格式为:`% [flag] [width] [.precision] type`其中,常用等级为 `type > [.precision] > [flag] > [width]`注意,实际使用的时候不带 [ ] .

2022-09-25 09:25:26 6898

原创 C++ 返回代码运行时长

C/C++ 代码运行时间计算 #include

2022-09-23 15:41:58 323

原创 Linux Socket通信:一文详解TCP通信API用法

Linux所有的硬件接口都被当成一个文件来操作,相应的,这些硬件接口也有对应的文件操作符。比如,文件操作符0表示标准输入流,对应的硬件是键盘;文件操作符1表示标准输出流,对应的硬件是显示器。这么看的话,套接字被当成文件就容易理解了。而且,Linux通过read()函数和write()函数进行文件的读写,同样,也可以用这两个函数对其他计算机发送和接收消息。.........

2022-08-28 22:54:35 645

原创 C++数据结构:string的基本用法

C++ string基本用法总结

2022-08-27 21:56:29 1764

原创 error: array type ‘char [x]‘ is not assignable

: error: array type 'char [n]' is not assignable,不能对C语言数组进行赋值

2022-08-27 20:25:40 7935

rk3588 MPP硬解码RTSP流,项目为QT工程

适用平台:RK3588 调用3588硬件vpu资源对RTSP进行解码,延时大约220ms; 源码地址为https://github.com/MUZLATAN/ffmpeg_rtsp_mpp 相关问题博客:https://blog.csdn.net/a1367666195/article/details/130888942?spm=1001.2014.3001.5501 描述:github上的源码项目存在一点点的问题,就是在资源释放的时候没有释放完全,会导致内存泄露和句柄泄露,我对其进行了完善,目前没有发现泄露问题了。不过目前还有一个问题,解码出来的视频不够平滑,或者说有一些掉帧的视觉效果,我怀疑是因为选取的解码模式简单解码(官方给了三种解码方式,简单,中等,难),导致了这一问题。

2023-06-18

HTML读取json文件示例程序.zip

HTML文件读取json文件,将文件内容转换为Object并赋值给变量,可以进行索引修改

2020-07-13

图像去噪matlab代码.zip

含有中值滤波,均值滤波,高斯滤波,双边滤波,NLM算法,改进NLM算法,代码优化后的改进NLM,代码如有问题请及时联系。

2020-05-24

MSTAR数据集.zip

解压后有两个文件夹,一个train,一个test,两个文件夹都有十个子目录,分别是十类目标的SAR图像,图像为100*100的灰度图像

2020-04-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除