自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++下的libtorch部署——(四)window10下的Visual Studio项目属性表的创建与使用

前面几章讲解了一个项目中的相关属性配置。之后如果新建一个项目或者是拷贝别人的项目,又要重新再配置一次属性,这样就比较麻烦了。Visual Studio中提供了一个操作——项目属性表,能够存储重用或与他人共享的项目的设置,与创建“全局”设置的其他方法相比,使用属性表出错的可能性要低得多。

2025-03-24 15:07:28 125

原创 OpenCV(应用) —— 凸包检测的实战应用

这个是使用convexHul函数后的一个处理方式,但是convexityDefects 在计算时需要比较每个轮廓点到凸包的距离,这可能需要更多的计算时间,特别是在处理复杂或大量轮廓时。常见的找寻目标的外轮廓有矩形框(如最小外接矩阵)和圆形框,但这种包围框为了保持几何形状,与图形的真实轮廓贴合度较差。如果能找出图形最外层的端点,将这些端点连接起来,就可以围出一个包围图形的最小包围框,这种包围框叫凸包。这是因为该例图比较正,如果是比较倾斜的边,那它的外接矩阵就与图形的真实轮廓贴合度较差。

2025-03-13 17:31:39 106

原创 电脑共享文件报错: 没有权限使用网络资源

之前用的WIN10系统,共享文件夹给其它电脑正常使用。但更新为WIN11系统后,其它电脑就无法访问了。

2025-02-11 14:30:20 376

原创 电脑最下方任务栏卡死无反应,但桌面其它的一切正常

如果还没有出现上方的“Windows资源保护找到了损坏文件并成功修复了它们”,而是显示“有一个系统修复处于挂起状态,需要重新启动xxxxxxx”,此时需要检查一下window的系统更新和驱动更新。一段时间后出现以下信息。但是这种方式能解决的问题在于你打开任务管理器,然后重新启动Windows资源管理器时,最下方任务栏能出现短暂复原的情形,或者鼠标移到最下面出现一直在加载转动。,简单的测试方式就是——当最下面任务栏卡死时,你快捷键启动win的相关任务都无法进行,如win+q,win+r都弹不出来相关界面。

2024-10-24 17:19:09 2790

原创 模型训练——使用预训练权重、冻结训练以及断点恢复(使用已训练好的模型继续训练)

一般来讲,从0开始训练效果会很差,因为权值太过随机,特征提取效果不明显,所以训练时不好收敛,尤其是针对数据较少的情况。

2024-06-07 17:50:37 860

原创 单独使用YOLOV9的backbone网络

YOLO系列的网络结构都是通过.yaml来进行配置的,当要单独想使用其中的backbone网络时,可以通过yaml配置文件来进行网络搭建。

2024-04-13 15:27:14 277

原创 (c/c++)——线程的基础使用

提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2024-03-21 18:05:24 231

原创 (c/c++)——时间操作 chrono库

C++11提供了chrono模版库,实现了一系列时间相关的操作(时间长度、系统时间和计时器)头文件:#include < chrono > 命名空间:std :: chrono。

2024-03-21 16:30:05 272

原创 算法优化 —— 上、下采样篇

提示:以下是本篇文章正文内容,下面案例可供参考。

2024-03-18 11:44:12 1066

原创 算法优化 —— 特征融合篇

提出的SDI模块,通过将高级特征的语义信息与低级特征的细粒度信息通过哈达马乘积相结合,增强每级特征图。

2024-03-07 10:11:47 774

原创 算法优化 —— 注意力机制篇

原论文链接二、BiFormer: 基于动态稀疏注意力构建高效金字塔网络架构(2023CVPR)原论文链接

2024-03-07 09:58:06 538

原创 图像分割标签噪声问题优化

在制作数据集时,标注数据时难免会存在噪声,如不同类别交界处存在模糊导致定位异常问题,训练过程梯度不稳定,网络对这部分数据的分类置信度较低(如其它中心区域的类别置信度都在0.9左右,而类别交界处的置信度只在0.5左右)

2024-02-22 10:26:25 277

原创 数据增强 —— 低亮度图像增强

因拍摄硬件和拍摄条件的限制,在某些情况下会存在低亮度的图像。无论是对标注还是算法都造成了困难。在标注mask时,尤其是分割类,低亮度图像很难看清目标轮廓;在算法上,也可以先对低亮度图像进行处理,再传入检测等算法当中,提高精度。因只是应对工作需要,所以具体原理不去了解,能使用即可。因没有时间去标注,故AI算法只记录无监督算法。

2024-01-24 11:24:30 424

原创 size_t类型总结

通常情况下,size_t的真实类型与指针一样,跟操作系统有关,size_t在32位系统上定义为 unsigned int,也就是32位无符号整型(4字节)。在64位系统上定义为 unsigned long ,也就是64位无符号整型(8字节)。。

2024-01-15 13:46:10 727

原创 COCO数据格式的json文件内容以及转换为mask

- “segmentation”: 目标的分割掩码,表示目标的轮廓。- - “flickr_url”: 图像的Flickr URL(可选)。- - “date_captured”: 图像的拍摄日期(可选)。- - “coco_url”: 图像的COCO URL(可选)。- - “height”: 图像的高度(以像素为单位)。- - “width”: 图像的宽度(以像素为单位)。- - “image_id”: 标注所属的图像的ID。- - “category_id”: 目标类别的ID。

2024-01-03 17:00:55 1220

原创 Lightweight and Progressively-Scalable Networks for Semantic Segmentation(轻量级语义分割模型-2022)

多尺度学习框架被认为是促进语义分割的模型。然而,这个问题并不是微不足道的,特别是对于现实世界的部署,这通常需要高效率的推理延迟。在本文中,我们从轻量级语义分割的角度彻底分析了卷积块的设计(卷积类型和卷积中的通道数),以及跨多个尺度的交互方式。通过如此深入的比较,我们总结出三个原则,并相应地设计了轻量级和渐进式可扩展网络(LPS-Net),它以贪婪的方式扩展了网络的复杂性。从技术上讲,LPS-Net 首先利用这些原理来构建一个微型网络。

2023-11-14 16:18:57 642

原创 如何显示标注的纯黑mask图

通常情况下,使用标注软件标注的标签图看起来都是纯黑的,因为mask图为单通道的灰度图,而灰度图一般要像素值大于128后,才会逐渐显白,255为白色。而标注的时候,不同类别的像素值是从1,2,3...这样的顺序,所以看起来是纯黑的。

2023-11-13 14:21:47 3022 1

原创 模型训练——优化器Optimizer的选择

目前,深度学习领域,使用最广泛的优化器种类可分成:SGD和Adam一般来说,使用SGD进行训练,所需要的迭代次数会比较多,因为它收敛速度慢而稳定;Adam类的收敛速度比较快,迭代次数可以设置小一点。但要使用哪种优化器还是要取决于具体的任务和模型,在做项目时,可以先选择Adam类的,训练周期比较短。

2023-11-09 13:35:27 579

原创 图像分割项目中损失函数的选择

在图像分割领域,最基础、最常见的损失当然是交叉熵损失 —— Cross entropy。随着不断的研究,涌现出了许多优于交叉熵损失的,并且在实际场景中,也往往不会在单单使用交叉熵损失了。

2023-11-08 14:00:51 789

原创 如何测试模型的推理速度

(1)在进行时间测量时,确保在记录结束事件(end_event.record())之后立即调用 torch.cuda.synchronize() 方法以同步等待 GPU 操作完成是非常重要的。这样可以确保所有前向传递操作都已经完成,避免了异步操作的影响.(2)通常,Python 的时间戳time仅提供了秒级精度,而 torch.cuda.Event 可以提供更高的精度。

2023-11-07 16:50:16 1421

原创 OpenCV(应用) —— 目标轮廓的相关应用

该函数获得返回的角度有一个应用,就是之前博客讲的仿射变换,它返回的中心点和角度可以作为仿射变换矩阵的参数:M = cv2.getRotationMatrix2D((cx, cy), angle, 1) ,这样我们可以将有角度的目标进行仿射变换旋转,让其处于水平方向。此外,OpenCV还提供了一个计算轮廓周长的函数arcLength(),用法和计算面积函数是一样的。目标轮廓的使用在图像分割项目中很常见,因为分割的标签图是一个可以完美检测目标轮廓的二值图。其中,轮廓的面积是一个常用的判别值,

2023-11-02 13:44:39 809

原创 OpenCV4(C++)——形态学(腐蚀、膨胀)

腐蚀和膨胀其实可以看成对图片进行了一次(多次)卷积操作。并且需要根据实际情况来选择使用哪种形态学操作,但通常来说,开运算(先腐蚀再膨胀)是比较常用的,因为其可以去除噪音和一些不相干的微小区域,并保留主要区域。(但感觉就像是滤波处理)

2023-11-02 10:21:17 1551

原创 训练代码中num_worker的设置

上述代码,先得到cpu的最大核心数,再把num_worker从2、4、6、8…经实验发现,并不是num_worker越大,它的时间越少;并且,batchsize或图像尺寸的改变,也会改变其时间最少的num_worker值(如当batchsize=64,时间最少的num_worker为12;当batchsize=128时,时间最少的num_worker为8)。在此给出一个参考代码,通过设置的batchsize、图片尺寸与数据集的制作与加载,来查看哪个num_worker最快。

2023-10-25 11:32:21 6810 2

原创 torch张量的降维与升维

squeeze和unsqueeze是torch张量常用的降维与升维的一种方式,但这种方式只能增添或减少。但如果维度大小不为1,squeeze就无效了。

2023-10-23 11:27:54 805

原创 python应用(9)——将一个文件夹里的图片分配到多个文件夹内

【代码】python应用(9)——将一个文件夹里的图片分配到多个文件夹内。

2023-10-19 15:00:32 1143 1

原创 (python)系统路径和文件操作 —— os和pathlib

pathlib 和 os 是 Python 中用于处理文件路径和文件系统操作的两个模块。os 模块提供了底层的操作系统相关功能;pathlib 提供了面向对象的路径操作接口。pathlib 模块实际上是在 os 模块的基础上进行了封装和扩展,提供了更高级别的接口,以简化路径操作和文件系统访问(如同C++和C的关系)

2023-10-19 14:02:32 306

原创 图像分割数据集的相关操作(二)—— 数据增强(albumentations和transfroms)

【代码】图像分割数据集的相关操作(二)—— albumentations 数据增强。

2023-10-18 17:45:49 485

原创 OpenCV4(C++)—— 图像连通域的详细分析

图像连通域,其实就是图像分割的一种方法。它通过检测像素之间的连接关系和相似性来划分图像中的区域,以便进行后续处理。图像邻域和图像邻域分析就不介绍了,网上很多。本文会通过代码和结果图来直观展示。

2023-10-13 16:37:26 5507 3

原创 OpenCV4(C++)—— 边缘检测的使用

LINK本文只介绍如何使用。进行边缘检测时,通常是输入灰度图,因为灰度图像边缘检测结果较为明显。每种方法都有其特点和适用范围,具体选择哪种方法取决于应用需求和图像特征。如 Sobel 算子在边缘检测中具有较好的速度,因此被广泛应用于许多实时和性能要求不高的图像处理应用中。

2023-10-13 11:45:26 986

原创 OpenCV4(C++)—— 图像噪声与图像滤波

图像噪声是图像在摄取或传输时所受的随机信号干扰,表现为图像信息或者像素亮度的随机变化。目前最常见的两者噪声是椒盐噪声和高斯噪声。例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。

2023-10-12 15:05:08 1377 2

原创 OpenCV4(C++)——模板匹配

上面的图是作了一个拼接处理,但一般实际应用的图中,目标通常会存在一些旋转角度,尺寸大小不一致等问题,这些都会影响匹配结果,如下图所示。都是通过多次匹配来进行,无疑会增加很大时间消耗,可能会有更好的办法吧,以后遇到再说。得到相似度特征图后,再找到其中最大的值(或自定义一个阈值)的坐标,根据模板图的宽高,就能找到在原图的所在位置。(最简单的一个例子,用两张相同的图片传入模板匹配函数中,只会进行一次相似计算,最后得到的特征图数值为([1,])result图的数值为灰度值,最白的那个点就是匹配度最高的那个创建。

2023-10-12 11:51:09 677

原创 OpenCV4(C++)—— 直方图

直方图(Histogram)最开始在统计学中被提出,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。在图像领域,直方图用来更直观地展现各像素值出现的频率,例如常用的灰度直方图反映的是一幅图像中各灰度像素值(0-255)出现的频率之间的关系。

2023-10-11 16:53:05 2217 2

原创 OpenCV4(C++)—— 创建窗口滑动条来调参

可以看到,回调函数是可选参数,当默认为0时,则只更新value,要进行的操作在后面定义。例:二值化,选择参数阈值作为滑动条。使用回调函数,来简化上述代码。

2023-10-11 09:42:43 1382

原创 OpenCV4(C++)—— 几何图形的绘制

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。

2023-10-10 14:45:09 1185

原创 OpenCV4(C++)—— 仿射变换、透射变换和极坐标变换

但是还有一点:上图的红色框和蓝色框看起来中心点是一样的,因为红色框位于蓝色框中心位置。(1)getRotationMatrix2D()是为了得到一个仿射变换矩阵,然后通过 cv::warpAffine 函数应用到图像上进行旋转操作(如果我们已知图像旋转矩阵,可以自己生成旋转矩阵而不调用该函数)。((2)前面说到,仿射变换矩阵是一个2×3的形式,而它的第三列就是平移向量b0,b1。根据矩阵相乘的规则,其中线性变换矩阵A为2×2的矩阵,平移向量B为2×1的向量,两者结合就是一个2×3的变换矩阵。

2023-10-09 16:45:33 1688

原创 OpenCV4(C++)—— 图片的基本尺寸变换

在 OpenCV 中,裁剪的常用方式有两种:cv::Rect 或 数组索引。但两者的原理都是定义裁剪区域的左上角坐标 (x, y) 和区域的宽度和高度。通常,对一张图片进行裁剪时,采用的是网格裁剪的方法来固定每一小张裁剪图片的大小。注:调整 dsize 参数或缩放因子 fx 和 fy 都可以控制图片大小变化,选择一个即可,

2023-10-09 10:53:03 1178

原创 OpenCV4(C++)—— 图像阈值化

图像阈值化在许多计算机视觉和图像处理任务中都是一个重要的预处理步骤。在边缘检测过程中,通过将图像转换为二值图像,可以突出图像中的边缘信息。通过选择适当的阈值,可以使边缘更加明显,以便于进一步的分析和提取。在文字识别任务中,图像阈值化可以用于将文本与背景分离。通过将图像转换为二值图像,可以增强文字的对比度,方便后续的文字检测、定位和识别。在图像分割中,通过将图像转换为二值图像,可以将感兴趣的目标与背景区域进行分离。阈值化可以将目标对象与背景进行明显的分离,从而方便后续的目标检测、跟踪或分析。

2023-10-08 15:25:20 623 1

原创 OpenCV4(C++) —— 图像数据类型转换和颜色模型转换

OpenCV中使用imread读取一张彩色图像时,默认采用的是BGR通道和整数类型(0-255,CV_8U)。还有其他的颜色模型,如YUV、HSV、Lab、GRAY等,都是可以进行转换的。OpenCV采用的是BGR的通道顺序,可以使用通道的分离和融合来进行验证。在某些情况下,会将整数类型(0-255)转换为浮点类型(0-1),可采用。在OpenCV中,彩色图像默认读取为RGB颜色模型(dst = src*缩放因子+偏移量。

2023-10-07 16:57:01 2308

原创 OpenCV4(C++)—— 视频和摄像头的加载、显示与保存

(2)VideoWrite()和VideoCapture()一样,都可以通过isOpened()函数判断是否成功创建一个视频流,可以通过get()查看视频流中的各种属性。主要步骤:(1)加载(打开)视频或视像头。(3)在保存视频时,我们只需要将生成视频的图像一帧一帧通过“<<”操作符(或者write()函数)赋值给视频流即可,最后使用release()关闭视频流。(2)在读取内容(每一帧图片)时,和ifstream一样,同样有多种方式,如通过“>>”运算符,或使用read成员函数等。来定义buffer。

2023-10-07 14:18:06 5060

原创 OpenCV4(C++)—— 图片的读取、(并排)显示与保存

C++和python两者的使用语法都是相同的imdecode和imencode是进行与内存缓冲区之间的操作(而不是磁盘),在某些场景下更加高效,但C++中使用这两个比较繁琐,python中使用较为方便。

2023-09-27 14:53:41 3777 3

空空如也

空空如也

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

TA关注的人

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