- 博客(127)
- 收藏
- 关注
原创 7.2 简单的图片标注为xml代码和图片增强代码(python)
yolov5已经普及常用,最常规的步骤就是获取数据(图片)、标注图片(标注xml文件)、对标注的数据增强(椒盐模糊、高斯模糊、翻转等) 、训练数据。在这里,假如客户新增一个目标,需要客户自己标注数据、增强数据和训练数据不合理,我们可以希望实现这样一个场景:建立一个界面,打开界面后:1.客户对新的产品从不同的角度拍七八张照片;2.客户在界面上对七八张图片的目标用长方形画框;3.界面系统自动对这几张标注好的图片进行数据扩增;4.将扩增后的数据自动移入训练的文件夹;5.训练模型。
2024-09-12 15:02:42 932 1
原创 2. c#从不同cs的文件调用函数
以上文件调用了ans文件的outputs函数和txt_1文件的outputs函数。以上就是不同cs文件的函数调用,经过测试运行结果正确无误。2. Program.cs文件的主函数如下。
2024-09-09 15:20:56 319
原创 1. C#的windows窗体应用,画折线图
本文基本上看了博客,该博客写的很详细,在这里作为比较复述和实现了一次。如何在C#窗体中使用实时图表,这里需要用到Chart控件。Chart控件,目前仅在.net framework下才有,.net core下暂时还没有。所以本文针对的环境是.net framework下的winform窗体。如上图,在工具箱中找到“数据”->“Chart”控件。请注意,在“所有Windows窗体”那里,是找不到Chart控件的。
2024-09-03 15:52:47 633
原创 9. k_d tree原理及python代码实现
k_d tree其实就是多维(空间二叉树的一种特殊情况), 里面储存着k维的点的信息,是对k维空间进行划分的一种数据结构。本文看了博客,这篇博客写的很详细,只是这里对这篇博客进行了扩展。在点云操作中,常常需要从大量点云中找到距离输入点最近的点,如果使用线性搜索,逐个判断与输入点的距离,那么搜寻耗时将会与点云规模呈线性上升趋势,时间复杂度为O ( N ) O(N)O(N)。显然这不是我们想看到的,在数据结构与算法中,对常用的搜索方法是为O(logN),它本质上是构建一棵二叉搜索树,以空间换取时间。
2024-08-26 16:25:37 980
原创 11. 统计(均值、方差、正态分布)和聚类(接近kmeans的聚类)分类(python和c++代码)
以下代码的每个函数功能都做了注释,分别用python和c++代码做了具体的实现,不是最终效果,后续会继续优化。以下代码中,python代码在每个步骤处理完数据后都画了散点图显示了处理后的数据效果,c++代码是从python代码翻译过来的,没有显示数据处理后的散点图效果。
2024-07-30 17:49:18 461
原创 3.相机标定原理及代码实现(opencv)
在这里我们用pycharm进行相机标定,用到了opencv库,所以在标定前需要安装好pycharm和opencv库。相机参数的确定过程就叫做相机标定。1.1 四大坐标系及关系。(1)像素坐标系()
2024-07-10 11:48:22 1498
原创 8.点云的粗配准和精配准
点云拼接是任意位置的点云的重叠部分相互配准的过程,点云配准分为刚体和非刚体(只存在空间旋转平移变换的配准问题称为刚体配准,存在缩放、变形、仿射变换的配准问题称为非刚体配准),这里主要介绍刚体点云配准。其中,基于局部特征描述的方法是通过提取源点云与目标点云的邻域几何特征,通过几何特征快速确定二者之间的点对的对应关系,再计算此关系进而获得变换矩阵。如上图,将两片点云的重叠部分进行配准,两片点云组合成一片更为完整的点云即实现了两片点云的拼接。配准效果如上图,左边为两片兔子的外部轮廓的点云的粗配准,右边为精配准。
2024-07-06 14:02:11 1245
原创 5.点云法向量的计算(代码)
首先,读取点云数据并且处理点云数据,我下载的一个点云数据文件不是pcd文件,我首先读取了点云数据,并将其处理为array数据,该数据的shape为(641, 3),表示有641个xyz的数据,后面的代码和前面博文的相同(该代码用到了pca主成分分析原理,也很好理解,在前面博文有解释,要单独理解主成分分析原理,可以看我的另一篇博文。的文章,内容基本上参考了该博文,在这里写只是为了记笔记,没有要抄袭的意思,如果要更详细的了解,可以去看该博文。
2024-06-20 17:51:19 357
原创 2 图片的分割处理和亚像素精度处理(c++和python)
本文的图片处理分为图片分割、图像的亚像素坐标处理。亚像素处理的原理可以看论文,该论文的详解及c++的代码实现可以看博文。下面的内容很多来自以上博文的内容,我只是对部分代码做了稍微的修改。
2024-06-14 14:40:57 1214 1
原创 1.双目相机计算目标物体的距离
P在相机C1中的成像点是P1,在相机C2中的成像点是P2,但是P的位置事先是未知的。如上图所示,如果左右两个相机很理想,那么它们拍到的物体在同一平面上,并且在图片中的高度也相等(x值相等),那么当我们知道目标在C1图片中的位置坐标时,就可以根据C1图片中的x值去C2图片中找目标物体了。我们的目标是:对于左图的P1点,寻找它在右图中的对应点P2,这样就能确定P点的空间位置,也就是我们想要的空间物体和相机的距离(深度)。: 以双目相机的中心点为坐标原点的水平坐标(距离坐标): 两个相机的投影中心的连线的距离。
2024-05-24 11:49:26 1107
原创 3.yolov5训练前的图片处理详解(python)
其实,yolov5模型可以分为深度网络、数据处理(图片处理)、损失函数、优化器选择、训练和预测及部分构成,相信大家对训练和预测的代码比较熟悉。前面两章我们根据代码和结构图了解了yolov5的深度网络,接下来看数据处理的部分。
2024-05-08 16:20:31 1333 8
原创 2.yolobody的两次上采样和两次下次下采样网络结构
,是下图最中间Neck和右边Head的网络结构,该结构输出的是1X45X20X20,1X45X40X40和1X45X80X80三个数据(其中45=3*(num_classes+5))。yolobody的网络结构如下图所示(该图来自别的博客。20,20表示数组的大小为20X20。1表示batchsize;
2024-04-25 15:46:15 270 2
原创 7.unet网络模型的简单实现(python)
本文属于 Pytorch 深度学习语义分割系列教程。Pytorch 的基本使用语义分割算法讲解点击查看本文主要讲解了训练模型的三个步骤:数据加载、模型选择、算法选择。这是一个简单的例子,训练正常的视觉任务,要复杂很多。比如:在训练模型的时候,需要根据模型在验证集上的准确率选择保存哪个模型;需要支持tensorboard方便我们观察loss收敛情况等等。
2024-04-25 12:29:32 1152
原创 6.Vgg16--CNN经典网络模型详解(pytorch实现)
3.下载完后写一个spile_data.py文件,将数据集进行分类。4.再写一个train.py文件,用来训练模型。
2024-04-24 17:55:24 550
原创 5.Resnet50网络模型的实现
3.下载完后写一个spile_data.py文件,将数据集进行分类。4.再写一个train.py文件,用来训练模型。
2024-04-24 16:14:31 246
原创 4.Mobilenetv2网络的简单目标识别的实现
3.下载完后写一个spile_data.py文件,将数据集进行分类。4.再写一个train.py文件,用来训练模型。5.写一个预测的predict.py文件。
2024-04-24 14:47:39 212
原创 4.点云数据的配准
官方教程——intmains() {// 定义输入和输出点云// 随机填充无序点云++i) {++i)// 在点云上执行简单的刚性变换,将cloud_out中的x平移0.7f米,然后再次输出数据值。++i)// 打印这些点++i)// 创建IterativeClosestPoint的实例// setInputSource将cloud_in作为输入点云// setInputTarget将平移后的cloud_out作为目标点云。
2024-04-22 16:31:07 1413
原创 3.AlexNet--CNN经典网络模型详解(pytorch实现)
该博客的作者写的很详细,是一个简单的目标分类的代码,可以通过该代码深入了解目标检测的简单框架。在这里不作详细的赘述,如果想更深入的了解,可以看另一个博客。
2024-04-18 16:28:07 571
原创 3.PCL点云数据的分割
点云分割常见算法有欧式聚类、欧式聚类的变种、超体素分割算法和其变种、GrabCut GrabCut算法、随机行走分割算法、随机抽样算法、区域生长算法等。下面分别介绍几种常见的分割算法。
2024-04-16 17:08:23 168
原创 5.c++的常见计算
以上是一个3x3的矩阵与一个3x1的向量的乘积,最后得到一个3x1的向量。2.根据特定元素初始化矩阵及矩阵的乘积。1.角度转为弧度和三角函数的计算。
2024-04-15 16:14:47 275
原创 1.open3d处理点云数据的常见方法
作为点云的基本操作之一,点云正态估计通过指定算法参数估测每个点可能的法向量,estimate_normals查找指定搜索半径内的临近点,通过这些临近点的协方差计算其主轴,从而估计法向量。离散的数据匹配,包括图像,点云等数据,很难基于匹配的连续的评估函数,使之难以匹配到一个可微的优化框架中求解。为了解决该问题,我们希望能够为离散的数据形式建立一个相对连续的表示形式,并得到连续可导的评价函数。之前我们提到,之所以建立这样一种形式,是为了得到一个针对匹配评估的一个连续的函数形式,以方便建立优化。
2024-04-14 10:45:23 848
原创 4.c++的二维数组的计算
数据初始化看了别的博客的代码,比较简单,主要是函数的设定,具体代码如下:、2.二维vector元素的插入(感觉比二维数组更实用)1.二维数组的初始化。
2024-04-13 17:15:03 248
原创 3.c++中一维数组在算法中的常见操作
c++的数组在算法中我们主要了解数组的常见计算,下面对一维数组的常用计算作一个整理,以下的每种计算的方法可能有很多,我在这里只是选择了一种进行实现。数组排序用到了sort函数,根据升序或者降序的方式分别写个bool的函数,然后作为sort函数的参数输入即可。
2024-04-13 10:23:58 142
原创 2.c++常见的特殊语法情况
/ :模板,vector本身就是个类模板,实际上就是类模板的实例化过程。// 创建15个int类型的元素,每个元素的值为hello。// 将mystr元素拷贝给mystr2。// 创建15个int类型的元素,每个元素的值为-200。// 15个元素,每一个元素值默认为空。// 15个元素,每一个元素值默认为0。// 存放学生类型的集合;(4)vector vjihe2 // 不能向集合中装引用;
2024-04-12 10:46:09 347
原创 4.4 不要循环的二维图片的卷积核的均值运算(python)
对每个卷积核求均值的运算,这里是整张图片的所有像素同时计算,而不是遍历每个像素计算。如果有不理解的地方,可以对代码的每个for循环进行print,看它们的结果再去理解。
2024-03-09 22:50:49 246
原创 4.3 DBSCAN聚类算法(自己写的函数python)
代码中的第一个函数是聚类算法,输入的参数是灰度图片,聚类的半径,和成为类的最少点的个数。建议使用该算法时尽量减小数据量,如果图片的像素很大,可以截取成几个部分进行聚类。
2024-03-08 17:09:12 292
原创 4.2 比多数opencv函数效果更好的二值化(python)
以上图片处理的方式用了BatchNorm处理和Xsilu处理,最后感觉这种效果还可以,尤其是在强光下的效果。原图 二值化图。原图 二值化图。第二张光线比较暗的图。
2024-03-05 14:32:56 270
原创 6.2 deeplabv3+的rknn模型检测
首先,检测前的图片处理基本上套用了deeplabv3+源代码的图片处理方式,只是在检测前做了略微的改动.其次,rknn模型得到的结果需要稍微的处理,与pth模型得到的结果格式略有不同。注意,以上代码运行不会报错,但得到的结果不准确,后续需要对数据做进一步处理,处理后再更新。该部分的检测分为检测前的图片处理和检测两部分。
2024-03-01 15:59:34 232
原创 6.1 deeplabv3+的pth模型转换为rknn模型
3.backbone = "mobilenet" # backbone:mobilenet、xception(该模型用的卷积网络是mobilenet或者xception,训练时用哪个模型就在这里选哪个模型);模型用到的图片大小必须是512X512X3的,如果是其他大小的图片,则需要处理转换成该大小的图片,图片的处理建议根据deeplabv3+的测试的图片处理方式处理图片。到这里,pth模型转换为rknn模型就完成了,后续将完成图片处理及rknn模型的检测。模型转换的环境配置看我写的另一篇博文。
2024-02-29 16:25:15 1072
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人