自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【NCC】之五:金字塔加速之第一次超越opencv模板匹配

模版匹配速度第一次超过opencv

2024-03-29 16:53:30 254

原创 基于深度学习的面向工业场景的异常检测(一)

在工业场景中,正常样本往往是大量的,而且相对容易获取,比如符合质量要求的产品或零件。而缺陷数据通常较少,因为缺陷会导致产品被剔除或需要返工修复,从而增加生产成本和时间成本。此外,不同类型的缺陷样本也可能具有较强的特异性,涉及到领域专业知识和经验的积累,并且需要人工手动标注。在这种情况下,缺乏缺陷样本会导致深度学习模型无法对缺陷进行准确区分,存在过拟合的风险。用检测行业的话来说就是容易“漏检”,在工业视觉检测中,漏检问题严重影响着企业的生产效率和质量保障。

2024-01-23 13:44:46 433

原创 ubuntu opencv 编译contrib库

【代码】ubuntu opencv 编译contrib库。

2024-01-19 17:29:14 470

原创 ubuntu系统 vscode 配置c/c++调试环境

ctl+shift+p 打开命令行,输入cmake,选择cmake:show config command。你会看到在左侧栏多了cmake tools的图标,点击它,手动确认。先到断点处,F10单步调试,F11进入函数调试,F5继续调试。cmake cmake tools插件。点调试的按钮后的结果。

2024-01-18 16:05:54 792

原创 ubuntu opengl安装使用

OpenGL到底是什么。一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。

2024-01-18 10:35:09 703

原创 RANSAC(Random sample consensus)随机抽样一致性

RANSAC(Random Sample Consensus)是一种迭代的参数估计算法,用于从包含噪声和异常值的数据中拟合数学模型。它最初由Fischler和Bolles于1981年提出,被广泛应用于计算机视觉和计算机图形学等领域。RANSAC的核心思想是随机选择数据中的一小部分样本,并根据这些样本拟合一个模型。然后,通过计算其他数据点到该模型的距离,并将距离小于一定阈值的数据点划分为内点,而距离大于阈值的数据点则划分为外点。重复此过程多次,并选择具有最多内点的模型作为最终的估计结果。

2024-01-16 10:38:45 997

原创 Ubuntu安装HDF5

下载源代码解压进入解压后的目录编译依次执行下面的命令输出。

2024-01-12 16:50:36 603

原创 Mingw32编译opencv库

注意:mingw32-make编译的库和MSVC编译的库不兼容,MSVC和mingw-make生成的动态库使用的是不同的ABI(Application Binary Interface),不能混合使用由这两个编译器生成的库。例如,如果你的程序使用了由MSVC编译的库,那么你的程序也必须使用MSVC来编译。另外mingw32-make编译的库的库文件是.a后缀,MSVC编译的库的库文件是.lib。

2024-01-11 19:40:46 510

原创 windows下使用cmake和mingw32构建编译项目

编辑系统变量Path,添加两个路径:D:\myApp\mingw64\bin;请注意,这些命令可能需要不同的参数和选项,你可以通过在命令后面添加。md或mkdir:创建一个新的目录。xcopy:复制文件和目录,包括子目录。ren或rename:重命名文件或目录。dir:列出当前目录中的文件和子目录。rd或rmdir:删除一个目录。move:移动文件和重命名文件或目录。del:删除一个或多个文件。chkdsk:检查磁盘的状态。find:在文件中查找文本。copy:复制文件。type:显示文件的内容。

2024-01-10 18:50:15 723

原创 const int* , const int * const, int * const之间的区别

是不可变的(immutable pointer),不能改变它所指向的地址,但可以通过。是不可变的(immutable pointer),不能改变它所指向的地址,也不能通过。是可变的(mutable pointer),可以改变它所指向的对象,但不能通过。是一个指向常量整数的常量指针。是一个指向常量整数的指针。是一个指向整数的常量指针。

2023-09-08 14:25:51 298

原创 用模板元编程的方式判断一个结构体是否含有某成员函数

这个部分特化的定义使用了 SFINAE(Substitution Failure Is Not An Error)机制来根据。此时,我们可以使用特化(specialization)来对具体的类型进行判断。最近在看kdtree的东西找到一个只包含头文件的实现版,看到里面有这样一段代码一脸懵。查了一下才知道这个语句是一个用于进行模板元编程的定义。这种技术可以用于编写更加泛化和灵活的代码,根据类型的特性来进行条件判断和分发。时能够通过编译,那么这个部分特化将生效,继承自。成员函数,那么可以创建一个非模板的。

2023-08-11 10:53:43 217

原创 git删除已经提交的大文件

git删除已经提交的大文件

2023-08-03 20:47:50 578

原创 git 合并非关联分支

面对的场景:现在有三个仓库,一个是本地的仓库1,第二个是和仓库1关联的在github上的仓库2,第三个是把仓库1拷贝到一个无网络环境中持续开发一段时间的仓库3.

2023-07-27 22:46:17 526

原创 heap sort

堆排序(Heap Sort)是一种基于完全二叉树结构的排序算法。它的主要思想是将待排序的序列构建成一个大顶堆(升序排序时使用)或小顶堆(降序排序时使用),然后依次将堆顶元素与最后一个元素交换,并重新调整堆,直到所有元素都排好序为止。

2023-07-24 22:09:09 58

原创 C/C++导出函数和变量

C/C++函数和变量的导入导出机制

2023-07-21 14:51:20 2405 1

原创 【NCC】之四:计算协方差的提前退出条件

利用柯西-施瓦兹不等式提前退出一些NCC中候选位置的计算

2023-06-29 01:23:39 170

原创 概率 随机变量 条件概率 贝叶斯定理

介绍概率和随机变量 条件概率 贝叶斯定理

2023-06-20 20:50:21 1083

原创 t-SNE(t-stochastic neighourhood embedding) 数据降维及可视化

t-SNE 旨在保持数据点之间的局部相似性,即将高维空间中距离接近的点映射到低维空间中距离仍然较近的位置。

2023-06-04 17:04:46 1220

原创 当我问chatGPT怎么拟合曲线

是不是不用干活了

2023-05-26 17:52:50 1150

原创 C++ 代码整洁之道

C++代码整洁之道的摘要

2023-05-26 15:58:52 1801 2

原创 C++ enum 和enum class

推荐使用enum class

2023-05-11 12:37:19 582 1

原创 C++ friend

关键字允许我们在不暴露类的私有成员的情况下,让其他非成员函数或类可以访问这些私有成员。是一个关键字,用于声明一个非成员函数或类可以访问另一个类的私有成员。关键字可能会破坏封装性和抽象性,因此必须谨慎使用。在上面的代码中,我们创建了一个。是一个自由函数,它被声明为。的朋友(即友元函数),的公有接口来进行访问。这两个函数都可以访问。例如,我们有一个名为。是一个类,它被声明为。,因为它们被声明为了。

2023-05-08 15:07:02 79

原创 C++ explict

C++中的`explicit`是一个关键字,用于修饰构造函数,它可以防止编译器进行隐式类型转换,只允许显式地调用构造函数。它不能用于隐式转换和复制初始化。

2023-05-08 14:49:58 75

原创 装饰器模式

假设有一个抽象的组件类Component,它有一个纯虚函数operation(),表示组件的核心功能。还有一个抽象的装饰器类Decorator,它也继承自Component,并且持有一个Component类型的指针,表示被装饰的组件。Decorator类也重写了operation()函数,在调用被装饰组件的operation()函数之前或之后,可以执行一些额外的操作。装饰器模式是一种结构型设计模式,它可以在不改变原有对象的结构和功能的情况下,动态地给对象添加一些额外的职责。

2023-04-17 17:32:15 87

原创 Factory 模式

Factory模式是一种创建型设计模式,它可以根据不同的参数或条件,创建并返回不同类型的对象。Factory模式的优点是可以将对象的创建过程封装起来,避免直接使用new操作符,提高了代码的可维护性和可扩展性。Factory模式的缺点是可能会导致类的数量增加,增加了系统的复杂度。

2023-04-05 21:35:15 109

原创 Observer模式

观察者模式是一种设计模式,它可以让一个对象(被观察者)通知其他对象(观察者)它的状态变化,从而实现对象之间的解耦和协作。

2023-04-05 16:29:52 308

原创 策略模式(C++)

策略模式是一种行为型设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换,且不影响客户端的使用。策略模式的目的是将算法的使用与实现分离,降低了算法之间的耦合,提高了代码的可扩展性和可维护性。

2023-04-05 15:58:24 369

原创 设计模式中的依赖注入-根据new bing的回答整理

依赖注入的核心思想是,一个对象不需要自己创建或获取它所依赖的其他对象,而是通过外部的方式(例如构造函数、方法参数、属性设置等)接收这些依赖对象。这样,对象的创建和使用可以分离,降低了代码的耦合度和复杂度,提高了可测试性和可维护性。

2023-04-05 15:00:12 504

原创 基于GAN的图像生成模型

记录训练GAN生成牙刷的过程,最终生成器生成牙刷的图像已经可以比较好了。定义一些参数创建dataset和dataloader定义生成器验证生成器是否正确定义判别器验证判别器是否正确定义损失函数训练对GAN网络的训练是一个比较玄学的过程,当不收敛的时候调整学习率多尝试几次,或者动态的调整学习率。输入一个随机值查看GAN生成器生成的效果生成器在不同阶段生成的效果从上面的结果来看,对于生成牙刷这样的场景这个很小的GAN网络已经

2023-04-02 19:25:01 706

原创 用梯度下降的方式来拟合曲线

对于欠拟合的系统,模型的容量无法完整的表示数据,对于过拟合的系统,模型容量比较富余,当增加增加样本后模型的泛化能力就可以提高。在上面的过拟合的例子中增加样本数就可以更好的拟合真实的多项式。在阶次较高的数据中,当x比较大时,计算中容易产生nan,所以这里的梯度下降并不能完全解决多项式拟合的问题,主要是在数值计算上,初始化在某些地方模型不收敛。但是这个项目对于理解梯度下降是一个非常好的角度,手动计算梯度,手动更新权重…。

2023-04-02 17:22:49 1900 5

原创 尝试用程序计算Π(3.141592653......)

尝试用计算机用不同方式计算Π

2023-02-26 13:44:18 411

原创 【NCC】之三:FFT(DFT)加速协方差的计算

用FFT加速NCC

2023-01-07 15:14:31 913

原创 【NCC番外篇一】模板图像均值和方差的计算

当要计算整个图像的均值和方差时用直接计算的方式要比积分图快得多!

2022-12-31 20:06:22 559

原创 【NCC】之二:积分图加速均值计算

Summed Area Table是一种数据结构和算法,用于快速有效地生成网格矩形子集中的值总和。在图像处理领域,它也被称为积分图像。

2022-12-29 22:46:36 674

原创 paddleOCRv3之四: rec识别部分用 tensorRT(C++)部署

tensorRT是nvdia GPU模型部署的一个框架,似乎只是部分开源,github地址.大多数时候用这个框架去部署模型效果提升还是比较好的。

2022-12-28 22:57:32 2080

原创 【NCC】之一:从Pearson相关系数到模板匹配的NCC方法

模板匹配就是给定一个目标图和一个搜索图,采用一定的搜索策略去找到一个和目标相近的区域,在刚性模板匹配中,一般都是采用滑窗的方法来搜索,在比较两个图的相似度时有很多种方法,最简单的就是两个图像直接相减,NCC(Normalized Cross Correlation)就是计算两张图的pearson相关性,值越大说明两个图像越相像。在考察单个变量的分布特征时有方差(variance)的概念,方差是一个大于等于0的实数,方差为0表示变量分布完全集中在一个点上,方差越大变量的分布越分散。

2022-12-28 22:04:13 894

原创 泊松分布一

定义如果一个离散随机变量XXX,它的质量密度函数由下式给出,则我们称这个离散随机变量XXX服从泊松分布f(k;f(k;λke−λ​,λ>0,k=0,1,2,3,...假设与有效条件事件在一个时间间隔内发生,且k可以取值0,1,2,…;

2022-12-09 00:37:05 2251

原创 PaddleOCRv3之三:rec识别部分训练

TextRecognitionDataGenerator构造的数据集,图片名称的格式:[label]_[index].png,前缀就是label,例如:72K_123.png label就是72K。batch_size_per_card: 32 指定batch_size。batch_size_per_card: 32 指定batch_size。label_file_list:gt_train.txt的路径。label_file_list:gt_test.txt的路径。data_dir: 数据集的路径。...

2022-08-29 11:01:47 1088

原创 C++创建文件夹、判断是文件还是路径

之前常在python里面用os模块处理路径,在C++里面没有那么顺手的方法,在这里封装几个常用的方法,创建文件夹,判断是不是文件,是不是路径。

2022-07-26 11:19:28 1051

原创 PaddleOCRv3之二:TextRecognitionDataGenerator训练集构造

OCR识别部分数据集中字体和背景是比较重要的方面,在实际的场景下收集不到那么多真实的样本,在训练开始的时候手工构造一批训练数据还是很有必要的。可以用这一批数据预训练后面用真实数据来微调,也可以直接把这些数据和真实数据混合在一起训练。在构造数据集的方面TextRecognitionDataGenerator还是比较好用了,这是按行生成文本的,可以生成boundingboxes,和mask。......

2022-07-20 09:52:26 1203 3

空空如也

空空如也

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

TA关注的人

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