自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 【C++面经】

因为ptr还记录了对象的个数,通过中括号标识,就知道药一一调用数组的每个对象的析构函数

2024-08-17 17:55:39 343 1

原创 STL必须掌握的几大常见算法

快速排序(Quicksort)快速排序是std::sort的主要排序算法。它的时间复杂度为平均O(n log n),最坏情况下为O(n^2)。快速排序通过选择一个“基准”元素,并将数组分成两个子数组,将小于基准的元素放在基准的左边,大于基准的元素放在右边。然后递归地对两个子数组进行排序。为了减少最坏情况的可能性,C++ 标准库的实现会使用一些优化策略,比如随机选择基准元素,或者使用三数取中法(median-of-three)来选择基准。堆排序(Heapsort)

2024-08-16 20:24:33 170

原创 【shell脚本】

shell脚本很简单,就是一些指令,我仅用来用作项目自起或者一键编译等功能,所以只记录这两种功能的相关用法与指令。

2024-08-15 12:27:25 205

原创 C/C++文件IO操作

现在很多也还在使用C的标准库进行文件IO,所以有必要讲一下。

2024-08-14 11:07:13 385

原创 【python全网最好教程】 捡重要的讲

list是一个先进先出的数据结构,也就是说,mylist.pop()会从mylist中弹出最后一个元素两个列表的+操作,表示组合mylist * 5 表示重复,不是值的5倍,注意append:追加,即原封不动push到末尾,针对:单元素、序列(列表、元组、字典)extend:将序列元素的元素取出来push到末尾,针对序列(列表、元组、字典)

2024-08-14 10:11:26 691

原创 CMake详解-捡重要的讲

通常我们使用cmake构建C++项目,其实就是编写CMakeLists.txt文件,过程如下首先在创建项目名称,我这里是CMake文件夹,在路径下创建CMakeLists.txt文件,也就是在工作空间的目录下创建,具体有几个要素要设置如下(截图好看点)在main.h中编写如下代码仅做函数的声明在main.cpp中编写如下代码做函数的实现在src中创建一个CMakeLists.txt,将src写的所有文件编译成一个库,编写如下。

2024-08-13 13:13:33 936 1

原创 【C++ Allocator】 详解C++的空间配置器和vector的底层实现以及push_back()和empalce_back()的区别

用于管理动态内存分配和释放,STL 容器类(如std::liststd::map等)都使用配置器来管理内存。这样能够高效的插入元素以及删除元素。

2024-08-12 15:22:41 444

原创 【计算机视觉】图像处理基本知识

PIL(Python Imaging Library,图像处理库)提供了通用的图像处理功能,以及大量有用的基本图像操作。PIL库已经集成在Anaconda库中,推荐使用Anaconda,简单方便,常用库都已经集成。当在处理数学及绘图或在图像上描点、画直线、曲线时,Matplotlib是一个很好的绘图库,它比PIL库提供了更有力的特性。调用crop()方法即可从一幅图像中进行区域拷贝,拷贝出区域后,可以对区域进行旋转等变换。利用PIL可以很容易的创建缩略图,设置缩略图的大小,并用元组保存起来,调用。

2024-08-05 12:23:37 1083 2

原创 数组和指针有什么区别

ps:传入为char a[10]这样的char * 型数组,函数参数为char * 类型接收,同理返回char a[10]用char * 接收, 此时要接受char *的函数参数时,是声明char *的指针指向它的。是一个指针,指向一个字符串常量,字符串常量的生命周期贯穿程序的整个运行期。因此,返回这个指针是安全的。一旦函数返回,这个数组的内存会被释放,返回指向这个数组的指针会导致指针悬空。函数参数中传递一个预分配的字符数组,然后在函数中填充它。是一个局部字符数组,定义在栈上,这个数组的生命周期是函数。

2024-08-01 10:52:01 411

原创 全网最全最新100道C++面试题:80-100

尾递归时递归的一种特殊情形,尾递归时一种特殊的尾调用,即在尾部直接调用自身的递归函数。核心思想是边调用便产生结果。原理:当编译器检测到一个函数调用是尾递归的时候,它会覆盖当前的活动记录而不是在栈中创建一个新的。编译器可以做到这一点,因为递归调用是当前活跃期内最后一条待执行的语句,于是当这个调用返回时栈帧中并没有其他事情可以做,因此也就没有保存栈帧的必要了,通过覆盖当前的栈帧而不是在其之上重新添加一个,这样所使用的栈空间就大大缩减了,这使得实际的运行效率会变得更高。

2024-07-31 15:00:00 1072

原创 全网最全最新100道C++面试题:60-80

是用来实现在C++代码段中用C语言的方式来编译代码,是C++为了兼容C语言所加入的关键字函数调用约定就是对函数调用的一个约束和规定,描述了函数参数是怎么传递和由谁清除堆栈的。它决定了,函数参数传递的方式(是否采用寄存器传递参数,采用哪个寄存器传递参数,参数压栈的顺序等),函数调用结束后栈指针由谁恢复(被调用的函数恢复还是调用者恢复),函数修饰名的产生方法。

2024-07-30 21:31:40 577

原创 全网最全最新100道C++面试题:40-60

它是C++标准库的重要组成部分,不仅是一个可复用的组件库也是一个包含了数据结构与算法的软件架构,它拥有六大组件分别是:仿函数,算法,迭代器,空间配置器,容器,配接器。

2024-07-29 15:45:00 460

原创 全网最全最新100道C++面试题:20-40

select、poll、epoll都是IO多路复用的一种机制,可以监视多个文件描述符,一旦某个文件描述符进入读或写就绪状态,就能够通知系统进行相应的读写操作。Select优点:可移植性好,因为在某些Unix系统中并不支持poll和epoll对于超时时间提供了更好的精度:微妙,而poll和epoll都是毫秒级Select缺点:支持监听的文件描述符fd的数量有限制,最大数量默认是1024个。

2024-07-28 15:11:26 1010

原创 全网最全最新100道C++面试题:0-20

再取一次主内存的值,看拿到的主内存的新值与当初保存的快照值,是否一样,如果不一样,说明有其他线程修改,本次修改放弃,重试。原理是:在X86的平台下,CPU提供了在指令执行期间对总线加锁的手段,CPU中有一根引线#HLOCK pin连接到北桥,如果汇编语言的程序在程序中的一条指令前面加上了前缀“LOCK”,经过汇编之后的机器码就使CPU在执行这条指令的时候把#HLOCKpin的电平拉低持续到这条指令结束的时候放开,从而把总线锁住,这样别的CPU就暂时不能够通过总线访问内存了,保证了多处理器环境中的原子性。

2024-07-27 20:48:50 1004

原创 一文带你上手git并使用git工具在github上创建(上传、关联)自已的项目

git reset --hard 回退到上一个id的版本,hard:将暂存区和工作区的修改都删除、mixed(默认):只删除暂存区的修改、soft:保留工作区和暂存区的修改。git reset HEAD HEAD是一个指针,指向最近一次提交,即回退到最近一次的提交,取消(删除)暂存区的修改,修改只在工作区了。git commit -m "first" 将未被提交的文件,也就是暂存区的所有文件提交到本地仓库,并附带提交说明。

2024-07-26 15:12:29 373

原创 C++常用数据结构

用一组地址连续的存储单元依次存储线性表中每个数据元素。用一组任意的存储单元存储线性表中的数据元素。栈(stack)是一种元素满足后进先出(Last in first out, LIFO)规则的线性表。树是指由 n(n≥0)个结点组成的有穷集合 D 与 D 上的关系的集合 R构成的结构,通常我们用 T 表示。树需要满足以下 3 个条件:当 n=0 时,该结点集合为空,该树被称为空树。在任意的非空树中,有且仅有一个根结点 root。

2024-07-25 10:53:48 1083

原创 万字长文带你搞懂yolov5和yolov8以及目标检测相关面试

针对IoU和GIoU损失所存在的问题,DIoU为了解决如何最小化预测框和GT框之间的归一化距离这个问题,DIoU Loss考虑了预测框与GT框的重叠面积和中心点距离,当GT框包裹预测框的时候,直接度量2个框的距离,因此DIoU Loss的收敛速度更快一些。在yolo系列算法中,针对不同的数据集,都需要设定特定长宽的锚点框。在网络训练阶段,模型在初始阶段,模型在初始锚点框的基础上输出对应的预测框,计算其与GT框之间的差距,并执行反向更新操作,从而更新整个网络的参数,因此设定初始锚点框是比较关键的一环。

2024-07-23 12:56:11 2114

原创 史上最全transformer面试题

Transformer的位置编码(Positional Encoding)是为了给模型提供序列中各个位置的信息,因为Transformer本身不具备顺序信息。位置编码通过正弦和余弦函数生成,对不同位置生成不同的编码。优点是能够显式地提供位置信息,易于计算,缺点是位置编码固定,不能根据上下文动态调整。

2024-07-19 14:01:07 1687

原创 刷题-回文串系列

给你一个字符串s,找到s中最长的 回文子串。"bab""aba" 同样是符合题意的答案。

2024-07-18 10:25:22 421

原创 详解操作系统进程与线程

进程是资源分配的基本单位,拥有独立的内存空间,(如打开文件,堆,静态区,代码段等),就是运行起来的可执行程序,

2024-07-17 12:47:42 191

原创 刷题记录:LeetCode 925.长按键入

如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回。你的朋友正在使用键盘输入他的名字。,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符。

2024-07-16 21:43:12 302

原创 Linux指令&&ros学习&&python深度学习&&bug学习笔记

y / (y[:, -1:, :]) 运算(+ - * /)维度个数要相同 y[:, -1:, :]:三维 y[:, -1, :] 两维 y[:, -1:, :]其中-1:非常讲究 有冒号:则维度没有下降 -1:则其为1行 ,如果-2:, 2:, :2都不止为1。

2024-07-16 20:54:44 603

原创 python基础语法

多态性指的是可以用统一的接口调用不同类型的对象。在Python中可以通过方法重载和实现接口来实现多态性。

2024-07-16 20:52:55 1143

原创 100个C++面试题

为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。

2024-07-12 11:00:04 2351

原创 STL优先级队列

模板输入1、元素类型2、容器类型3、函数对象类型大顶堆priority_queue<int> name;priority_queue默认为大顶堆故定义也可以写作:priority_queue<int, vector<int>, less<int> > ay;小顶堆如果需要构建一个小顶堆,可以改变定义方式为:priority_queue<int, vector<int>, greater<int> > ay;使用std::greater模板无需自定义比较函数。自定义比较函数:二

2024-07-09 16:53:46 616

原创 算法:字符串-翻转字符串里的单词

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。

2024-07-09 10:31:03 151

原创 详解TCP和UDP通信协议

一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。

2024-07-08 10:53:11 895

原创 详解Linux的shell脚本基础指令

是Linux系统的用户界面,它提供用户与内核的一种交互方式。它接收用户输入的命令,并把它送入内核去执行,是一个命令解释器。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序,又是一种脚本语言(应用程序 解析 脚本语言)。

2024-07-07 10:44:59 1007

原创 详解yolov8的损失函数、Anchor-Free、样本分配策略、与yolov5的对比

转载自。

2024-07-06 10:58:58 3613

原创 详解yolov5的网络结构

YOLOv5是一种基于轻量级卷积神经网络(CNN)的目标检测算法,整体可以分为三个部分,如上图所示,我们需要先理解三个模块:Conv,C3,SPPF,以便理解网络结构图。关于这三个模块的解释放在文章末尾。其他我觉得有用的前置知识也会放在文章末尾。YOLOv5是一种基于轻量级卷积神经网络(CNN)的目标检测算法,整体可以分为三个部分,,以便理解网络结构图。关于这三个模块的解释放在文章末尾。其他我觉得有用的前置知识也会放在文章末尾。

2024-07-05 12:12:33 11521 1

原创 必须掌握的Linux的九大命令

以人类可读的格式(如KB、MB、GB)显示内存使用情况。命令用于报告 CPU 统计信息和 I/O 设备负载。:列出tcp连接的网络占用详细信息(包括pid信息)显示网络连接、路由表、接口状态、伪装连接和多播成员。:显示系统中所有正在运行的进程及其详细信息。:显示 CPU 和 I/O 统计信息。命令用于配置和查看网络接口的参数。:仅显示指定设备的 I/O 统计信息。:捕获所有网络接口上的数据包。:仅捕获指定接口上的数据包。显示系统的内存使用情况。:作为客户端连接到服务器。:作为客户端连接到服务器。

2024-07-05 12:02:22 692

原创 TensorRT-Int8量化详解

Int8量化类似于一个黑盒子,有一点蒸馏的感觉,用int8逼近fp32的推理结果。我们只需要按照步骤设定好参数之后set就可以,并不需要特别关注于他是怎么修改权重的。

2024-07-04 16:25:39 2181

原创 机械臂 手眼标定详解、实践及代码

所谓手眼系统,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。而相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。目前工业上通常使用两种方法进行机械臂的手眼协作。第一种是:手在眼外(eye-to-hand),即摄像机与机械臂分离,应用场景为:机械臂的工作位置固定,工作平面固定,摄像机置于合理的位置以识别机械臂要工作的平面,例如:货物码垛、货物搬运等。

2024-07-03 09:50:27 5342 2

原创 linux的shell脚本编程详解

通过上述示例,你可以看到 Shell 脚本如何用于自动化编译过程。Shell 脚本在 Linux 系统中是一个非常强大的工具,可以极大地提高工作效率。了解和掌握 Shell 脚本编程,可以帮助你更好地管理和自动化各种任务。

2024-07-02 22:18:02 858

原创 详解Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是大数据生态中的重要组件。它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。它是一个为分布式应用提供一致性协调服务的中间件很多台计算机组成一个整体, 一个整体一致对外并且处理同一请求内部的每台计算机都可以相互通信(rest/rpc)客户端到服务端的一次请求到响应结束会经历多台计算机图示1图示2。

2024-07-02 21:35:24 1198

原创 详解Muduo库

Muduo网络库:底层实质上为Linux的epoll + pthread线程池,且依赖boost库。muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor),该连接的所用操作都在那个sub Reactor所处的线程中完成。多个连接可能被分派到多个线程中,以充分利用CPU,Reactor poll的大小是固定的,根据CPU的数目确定。

2024-07-01 22:25:21 2778

原创 一文带你搞懂protobuf

Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。官方解释:Protocol Buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法。可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。

2024-07-01 22:14:55 1474

原创 【LaneNet】车道线检测代码手把手复现

你也可以放自己的图片进行检测,但是我测试自己的车道线效果并不好,甚至说很差,原因暂时未知。1.下载压缩包,解压,注意这里面的model文件夹下的New_Tusimple_Lanenet_Model_Weights权重文件是自己添加的,某些Github或者博客中并未提供。上面也有很多,可能是自身检索能力有限,捣鼓了几天,迟迟不能复现代码的效果。有位博友需要做个简单的上位机,显示检测的结果,帮忙做了一个,现开源出来,供大家参考。文件夹下的test_lanenet.py文件,添加相关路径,不然会报错。

2024-06-24 20:42:19 1154

原创 基于深度学习的车道线检测

目前,对于车道线检测的方法主要分为两大类,一是基于传统机器视觉的方法,二是基于深度学习大方法。

2024-06-24 20:37:03 2226

原创 手把手教你使用YOLOV5训练自己的目标检测模型-以口罩检测为例-视频教程

我们这次要使用YOLOV5来训练一个口罩检测模型,比较契合当下的疫情,并且目标检测涉及到的知识点也比较多,这次的内容除了可以作为大家的大作业之外,也可以作为一些小伙伴的毕业设计。废话不多说,我们直接开始今天的内容。B站讲解视频:手把手教你使用YOLOV5训练自己的目标检测模型_哔哩哔哩_bilibiliCSDN博客:手把手教你使用YOLOV5训练自己的目标检测模型-口罩检测-视频教程_dejahu的博客-CSDN博客。

2024-06-24 15:56:56 926

空空如也

空空如也

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

TA关注的人

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