- 博客(41)
- 收藏
- 关注
原创 免费 课堂行为/人体姿态 数据集汇总,带标签
有些数量没统计是因为百度网盘下载太慢了,就没写上去。Multi_all 计算机视觉项目。自己在学习过程中搜集的免费可使用的。免费,包含举手、阅读、写作三类。S.B.C 计算机视觉项目。数据集,亲测都可以使用。智慧课堂学生行为数据集。标签和边框存在一些错误。类监控计算机视觉项目。
2025-01-19 11:15:26
426
原创 小目标检测难点分析和解决策略
迁移学习适用于数据稀缺、标注成本高的任务,可广泛应用于小目标检测及其他机器学习任务(如情感分类、缺陷检测等)。
2025-01-11 22:18:08
2192
1
原创 头部姿态估计与作弊检测代码
本代码采用Python开发,可调用摄像头或读取本地视频,精准检测人脸关键点,计算头部俯仰角、偏航角和滚转角,依据头部转动角度变化判断转头作弊,适用于在线考试监考、远程面试等场景。代码经过精心优化,附有详细中文注释,初学者也能迅速掌握功能与原理,轻松二次开发或项目拓展。代码配套解释文档,包括依赖安装和代码分析。已在多台电脑上成功运行,稳定性有保障!
2025-01-06 17:09:18
378
原创 基于transformer的目标检测:DETR
在深度学习和计算机视觉领域,目标检测一直是一个核心问题。传统方法依赖于复杂的流程和手工设计的组件,如非极大值抑制(nms)和锚点(anchor)生成,这些都需要对任务有深入的先验知识。然而,DETR的出现,为我们提供了一种全新的视角,将目标检测视为一个直接的集合预测问题,实现了端到端的检测。DETR,即DEtection TRansformer,是一种创新的框架,它通过简化检测流程,消除了对许多手工设计组件的需求。
2025-01-02 21:51:26
1460
2
原创 解决 Docker 中 DataLoader 多进程错误:共享内存不足
在容器化环境(如)中使用深度学习框架进行训练时,通常会使用的DataLoader来加载数据。在使用DataLoader的多进程数据加载时,当这时,我们的训练任务无法正常进行,系统也没有给出详细的错误信息,导致我们难以快速定位问题。
2024-12-24 11:21:02
825
原创 网络断开导致SSH会话和服务端任务终止的原因及使用screen详解
在进行深度学习任务时,常常在本地通过ssh连接远程服务器进行炼丹任务。当我在pycharm上远程连接到服务器上进行训练时,由于网络不稳定使得SSH断开连接,我原以为服务器不会受影响。通过nvidia-smi命令发现GPU占用为0,这才发现任务终止了。于是查阅了一些资料,整理至此。
2024-10-14 16:16:18
1347
原创 pycharm连接远程linux服务器上的docker进行深度学习训练
实进行深度学习时,由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来,希望对大家有所帮助。
2024-09-18 17:59:30
1713
1
原创 将.xml格式转换为YOLO所需的.txt文件格式
这段Python代码的主要功能是从XML格式的标注文件中提取边界框数据,并将其转换为YOLOv5模型所需的.txt文件格式。对代码加了详细解释。
2024-09-02 16:16:11
1823
原创 P(查准率) R(查全率) AP mAP最通俗准确的讲解
学习YOLO的过程中遇到了mAP指标,在网上看了很多关于mAP的讲解,不是很理解其计算过程,于是总结了各个帖子及自己的理解,给出mAP计算的规律,这样就能作为笔记很好的记忆。
2024-08-22 21:16:58
1766
原创 torch.nn.Linear的维度变换过程详解(有图有公式有代码)
当初在学习nn.Linear时了解到的博客都是关于一维变换的,比如输入3通道,输出6通道;又比如得到(3,4,4)的特征图,需要进行拉平为(48,)的向量,然后通过nn.Linear(48,10)得到10个输出(分类任务很常见)。nn.Linear除了可以进行分类,主要的作用就是改变维度便于下一个卷积层或线形层的输入。但是在实际代码中,nn.Linear的输入往往都是多维数据,一样可以正常输出。所以经过查阅手册和各个帖子,给出了自己的理解,作为笔记。
2024-08-05 15:23:39
3749
6
原创 Pytorch中reshape,view,transpose以及permute的详细原理及应用
在深度学习中,我们经常会遇到需要对张量进行形状变换的情况。PyTorch 提供了多种方法来改变张量的形状,包括 reshape, view, transpose和permute 。本文总结了其它博客的精华,详细介绍这些方法的原理和应用场景。
2024-07-28 17:06:02
808
1
原创 Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)
踩坑包括:1.anaconda下载失败 2.anaconda安装权限 3.换conda和pip的源
2024-07-24 19:07:28
4633
原创 GPU驱动、CUDA 、cuDNN 和CUDA Toolkit之间的关系(深度学习小白必懂)
GPU驱动、CUDA、cuDNN和CUDA Toolkit之间有着紧密的关系,它们共同构成了一个完整的GPU编程和深度学习开发环境。在最初配置anaconda环境时一直搞不明白它们之间的关系。所以根据自己的理解,通俗详细解释它们各自的角色和相互间的关系,并且列举了一些在anaconda虚拟环境中的例子。不对的地方希望大家指正。
2024-07-23 10:08:05
3599
2
原创 ViT(Vision Transformer)网络结构详解
本文在transformer的基础上对ViT进行讲解,transformer相关部分可以看我另一篇博客(
2024-07-22 16:34:27
6328
2
原创 Python中相对导入运行报错
主要3个知识点1. Python的文件搜索路径优先级是执行文件所在的目录,项目根目录以及其他包等等2. 相对导入依赖于当前模块的层次结构,它使用.或..来指定相对于当前模块的路径。但是,当直接运行一个脚本时,Python解释器不会将这个脚本视为任何包的一部分,因此它没有“父”包,这会导致相对导入失败。3. 间接调用模块输出的__name__是包含路径信息的
2024-07-15 09:52:15
837
原创 yolov1基础精讲
目标检测是理解图像内容的基础,它涉及识别图像中的一个或多个对象,并确定它们的位置。YOLOv1将目标检测视为一个单一的回归问题。它将整个图像分割成一个个,每个网格负责预测中心点落在该网格内的目标对象。YOLOv1的架构基于卷积神经网络(CNN),它通过一个单一的网络流程来预测多个边界框和类别概率。网络的输入是一张图片,输出是多个边界框的坐标、置信度以及类别概率。(yolov1的损失函数很重要)
2024-07-09 09:25:40
918
原创 使用c++栈刷题时踩坑的小白错误
作为条件,但每次循环都会弹出栈顶元素,这会导致在下一次迭代之前栈的大小发生变化。一个简单的题目炸出来这么多基础错误,人都懵了,都是泪啊,还得练。将被调用,尝试访问一个不存在的元素,从而导致访问违规。不能通过索引直接修改。
2024-06-26 14:35:40
352
原创 常见激活函数(Sigmoid、Tanh、Relu、Leaky Relu、Softmax)
不同的激活函数有不同的输出范围,比如Sigmoid函数的输出在(0, 1)之间,Tanh函数的输出在(-1, 1)之间,ReLU函数的输出在[0, ∞)之间。在神经网络的基本结构中,每个神经元接收输入信号,对其进行加权求和后加上偏置项,然后将这个结果通过激活函数进行转换,得到神经元的输出。由于大多数实际问题都是非线性的,非线性激活函数使得神经网络能够拟合复杂的函数映射关系,从而解决非线性问题。:某些激活函数(如ReLU)具有计算效率高的优点,因为它们的计算只涉及到基本的算术操作,而不需要昂贵的指数运算。
2024-06-20 17:35:37
24115
1
原创 transformer中对于QKV的个人理解
上面这个transformer中的注意力公式,相信大家不会陌生。公式并不复杂,但是why?为什么是这个公式,为什么大家都说之前了解transformer的时候,对于QKV的设定感到很奇怪,后来慢慢接受了这个设定,今天记录一下自己的理解。
2024-06-09 17:34:21
4906
6
原创 批量归一化(BN)和层归一化(LN)的区别
以批量归一化举例但是批量归一化同时也降低了模型的拟合能力,归一化之后的输入分布被强制拉到均值为0和标准差为1的正态分布上来,简单来说特征之间的距离不会跑的很远,大部分特征都在正态分布的那个峰值附近。以Sigmoid激活函数为例,批量归一化之后数据整体处于函数的非饱和区域,只包含线性变换(多层的线性函数跟一层线性网络是等价的,网络的表达能力下降),破坏了之前学习到的特征分布。因此,为了使得归一化不对网络的表达能力造成负面印象,可以通过一个附加的缩放和平移变换改变取值区间。
2024-06-03 20:42:51
2576
原创 K210颜色识别实践
K210是一款嵌入式人工智能芯片,具有强大的图像处理能力。在这个示例中,我们将利用K210的图像处理功能进行颜色识别,以检测摄像头捕获的图像中的红色、绿色和蓝色区域,并在LCD屏幕上标记出这些区域。
2024-03-29 11:35:09
2912
4
原创 C++类模板详解
类模板是一种用来生成类定义的模板,其中可以包含一个或多个类型参数。这些类型参数可以在定义类的时候替换为任意类型,从而使得我们能够创建适用于多种数据类型的通用类定义。类模板的定义使用 template或来声明一个类型参数。
2024-03-27 22:09:22
4514
原创 C++函数模板详解(结合代码)
在这种情况下,编译器会生成一个针对 T 为 int 类型的具体函数实现。template<typename T>表示声明一个模板,typename T是模板参数,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。类型的参数时,编译器会优先选择这个具体化版本,而不是通用的模板版本。T —— 通用的数据类型,名称可以替换,通常为大写字母T。在C++中,模板是一种通用的程序设计工具,它允许我们。类型时,我们想要做一些特殊的比较,比如比较。类型对象的比较逻辑,即比较它们的名字和年龄。
2024-03-25 16:30:25
3007
3
原创 USART通信协议详解
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种广泛应用于串行通信的硬件接口,它允许计算机和微控制器与其他设备进行数据交换。特点:异步通信:UART协议的数据传输是异步的,这意味着发送和接收数据不需要共享时钟信号。每个字符之间的时间间隔可以是任意的,只要接收方能够正确地识别出字符的起始位和停止位。数据帧结构:UART数据传输的基本单位是字符。每个字符通常包含起始位、数据位、可选的校验位和停止位。
2024-03-22 14:34:29
1634
1
原创 IIC通讯协议详解(电路和时序图)
硬件电路设计软件时序设计1. 起始条件与终止条件2. 发送与接收一个字节3. 发送应答和接收应答4. IIC时序4.1 指定地址写4.2 当前地址读4.3 指定地址读
2024-03-15 10:01:26
16656
7
原创 c++“引用”相关知识点
sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小。因为test02()返回的是a的引用,因此test02() = 1000即ref=1000(a=1000)。常量引用是指对常量的引用,它使用 const 修饰符来确保被引用的对象在引用期间不被修改。a的内存空间将被释放,因此返回的是一个对已经不存在的变量的引用,这会导致。会将a的值拷贝一份作为返回值,然后销毁a本身,返回的是一个值的副本。在C++中,引用是一个别名,
2024-03-12 22:44:53
563
1
原创 定时器中断流程讲解,结合代码
因为定时器还有很多模块都需要申请中断,比如不仅计数器重新置零会触发中断,触发信号也会申请中断,输入捕获和输出比较也会申请中断,所有这些中断都需要经过输出中断控制。定时器中断的流程,关于定时器和中断的知识点不过多赘述,相关知识点可以查看我的另外两篇文章,讲的很详细,希望能有所帮助。在3到4这个过程中间,中断信号会在状态寄存器里置一个中断标志位,这个标志位会通过中断输出控制到NVIC申请中断。选择内部时钟,连接到使用的TIM2通用定时器。的定时器中断流程,标了执行逻辑的顺序。完整代码如下,值得注意的是。
2024-03-03 12:02:46
1864
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人