想要躺平的一枚
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈图像分割中预测图与标签图的对应关系
当接触深度学习中图像处理时,往往最开始了解的是图片分类的项目,其实图像分割跟图想分类比较类似,只不过图像分类是以图片为单位的,而图像分割是是以像素为单位的。在机器学习的书籍里翻译的话是:One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由独立的寄存器位,并且在任意时候只有一位有效。One-Hot编码 是将 离散变量 转为 二进制向量先来了解什么是离散变量?离散是指一种无序、互相独立、互不干扰的关系。例如图像分类中,分三类:猫、狗、鸟。原创 2025-05-07 16:21:15 · 87 阅读 · 0 评论 -
C++下的libtorch部署——(四)window10下的Visual Studio项目属性表的创建与使用
前面几章讲解了一个项目中的相关属性配置。之后如果新建一个项目或者是拷贝别人的项目,又要重新再配置一次属性,这样就比较麻烦了。Visual Studio中提供了一个操作——项目属性表,能够存储重用或与他人共享的项目的设置,与创建“全局”设置的其他方法相比,使用属性表出错的可能性要低得多。原创 2025-03-24 15:07:28 · 277 阅读 · 0 评论 -
OpenCV(应用) —— 凸包检测的实战应用
这个是使用convexHul函数后的一个处理方式,但是convexityDefects 在计算时需要比较每个轮廓点到凸包的距离,这可能需要更多的计算时间,特别是在处理复杂或大量轮廓时。常见的找寻目标的外轮廓有矩形框(如最小外接矩阵)和圆形框,但这种包围框为了保持几何形状,与图形的真实轮廓贴合度较差。如果能找出图形最外层的端点,将这些端点连接起来,就可以围出一个包围图形的最小包围框,这种包围框叫凸包。这是因为该例图比较正,如果是比较倾斜的边,那它的外接矩阵就与图形的真实轮廓贴合度较差。原创 2025-03-13 17:31:39 · 178 阅读 · 0 评论 -
C++下的libtorch部署——(一)pytorch序列化
模型部署的方式有很多,pytorch框架下有一种由官方提供的方式:使用TorchScript将pytorch训练的模型转换为C++环境支持的模型TorchScript是一种从PyTorch代码创建可序列化和可优化模型的方法。任何TorchScript程序都可以从Python进程中保存,并加载到没有Python依赖的进程中。原创 2023-08-22 10:08:44 · 844 阅读 · 0 评论 -
C++下的libtorch部署——(二)window10下的Visual Studio配置OpenCV
在进行图像处理时基本上都会用到OpenCV,所以需要将其配置到Visual Studio当中。直接到官网选择自己需要的版本下载即可,下载解压完会有一个“opencv”文件夹,其中的“bulid”文件夹就是需要配置的关键路径。下载地址。原创 2023-08-23 15:52:45 · 1137 阅读 · 0 评论 -
C++下的libtorch部署——(三)window10下的Visual Studio配置libtorch
libtorch可以理解为C++版的pytorch,语法和pytorch基本相似。安装libtorch之前,要先安装好cuda以及对应的pytorch。原创 2023-08-24 11:32:13 · 6719 阅读 · 0 评论 -
(C++实例)在VS中封装DLL并调用
dll通常包含的是多个程序都能用到的代码和数据,在大多数情况下可以理解为对多个通用函数进行封装,所以生成dll的代码是没有main函数的,只有通用函数的声明和定义。原创 2023-08-28 13:54:43 · 1961 阅读 · 0 评论 -
动态链接库——DLL文件
引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。dll通常包含的是多个程序都能用到的代码和数据,一般大型软件都有一个exe和一堆dll文件。将库中的代码先加载到内存中,再链接到可执行文件中。原创 2023-08-21 16:54:46 · 491 阅读 · 0 评论 -
模型训练——使用预训练权重、冻结训练以及断点恢复(使用已训练好的模型继续训练)
一般来讲,从0开始训练效果会很差,因为权值太过随机,特征提取效果不明显,所以训练时不好收敛,尤其是针对数据较少的情况。原创 2024-06-07 17:50:37 · 1262 阅读 · 0 评论 -
单独使用YOLOV9的backbone网络
YOLO系列的网络结构都是通过.yaml来进行配置的,当要单独想使用其中的backbone网络时,可以通过yaml配置文件来进行网络搭建。原创 2024-04-13 15:27:14 · 310 阅读 · 0 评论 -
算法优化 —— 上、下采样篇
提示:以下是本篇文章正文内容,下面案例可供参考。原创 2024-03-18 11:44:12 · 1310 阅读 · 0 评论 -
算法优化 —— 特征融合篇
提出的SDI模块,通过将高级特征的语义信息与低级特征的细粒度信息通过哈达马乘积相结合,增强每级特征图。原创 2024-03-07 10:11:47 · 894 阅读 · 0 评论 -
算法优化 —— 注意力机制篇
原论文链接二、BiFormer: 基于动态稀疏注意力构建高效金字塔网络架构(2023CVPR)原论文链接原创 2024-03-07 09:58:06 · 595 阅读 · 0 评论 -
图像分割标签噪声问题优化
在制作数据集时,标注数据时难免会存在噪声,如不同类别交界处存在模糊导致定位异常问题,训练过程梯度不稳定,网络对这部分数据的分类置信度较低(如其它中心区域的类别置信度都在0.9左右,而类别交界处的置信度只在0.5左右)原创 2024-02-22 10:26:25 · 347 阅读 · 0 评论 -
数据增强 —— 低亮度图像增强
因拍摄硬件和拍摄条件的限制,在某些情况下会存在低亮度的图像。无论是对标注还是算法都造成了困难。在标注mask时,尤其是分割类,低亮度图像很难看清目标轮廓;在算法上,也可以先对低亮度图像进行处理,再传入检测等算法当中,提高精度。因只是应对工作需要,所以具体原理不去了解,能使用即可。因没有时间去标注,故AI算法只记录无监督算法。原创 2024-01-24 11:24:30 · 549 阅读 · 0 评论 -
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 · 1331 阅读 · 0 评论 -
如何显示标注的纯黑mask图
通常情况下,使用标注软件标注的标签图看起来都是纯黑的,因为mask图为单通道的灰度图,而灰度图一般要像素值大于128后,才会逐渐显白,255为白色。而标注的时候,不同类别的像素值是从1,2,3...这样的顺序,所以看起来是纯黑的。原创 2023-11-13 14:21:47 · 3298 阅读 · 1 评论 -
模型训练——优化器Optimizer的选择
目前,深度学习领域,使用最广泛的优化器种类可分成:SGD和Adam一般来说,使用SGD进行训练,所需要的迭代次数会比较多,因为它收敛速度慢而稳定;Adam类的收敛速度比较快,迭代次数可以设置小一点。但要使用哪种优化器还是要取决于具体的任务和模型,在做项目时,可以先选择Adam类的,训练周期比较短。原创 2023-11-09 13:35:27 · 691 阅读 · 0 评论 -
图像分割项目中损失函数的选择
在图像分割领域,最基础、最常见的损失当然是交叉熵损失 —— Cross entropy。随着不断的研究,涌现出了许多优于交叉熵损失的,并且在实际场景中,也往往不会在单单使用交叉熵损失了。原创 2023-11-08 14:00:51 · 904 阅读 · 0 评论 -
如何准确测试模型的推理速度
(1)在进行时间测量时,确保在记录结束事件(end_event.record())之后立即调用 torch.cuda.synchronize() 方法以同步等待 GPU 操作完成是非常重要的。这样可以确保所有前向传递操作都已经完成,避免了异步操作的影响.(2)通常,Python 的时间戳time仅提供了秒级精度,而 torch.cuda.Event 可以提供更高的精度。原创 2023-11-07 16:50:16 · 1713 阅读 · 0 评论 -
训练代码中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 · 7243 阅读 · 1 评论 -
torch张量的降维与升维
squeeze和unsqueeze是torch张量常用的降维与升维的一种方式,但这种方式只能增添或减少。但如果维度大小不为1,squeeze就无效了。原创 2023-10-23 11:27:54 · 875 阅读 · 0 评论 -
图像分割数据集的相关操作(二)—— 数据增强(albumentations和transfroms)
【代码】图像分割数据集的相关操作(二)—— albumentations 数据增强。原创 2023-10-18 17:45:49 · 518 阅读 · 0 评论 -
图像分割数据集的相关操作(一)—— 自定义随机裁剪与缩放
记录下遇到的数据集相关操作和自己的一些思考(可能是错的),仅供日后参考。原创 2023-07-19 17:01:52 · 662 阅读 · 0 评论