摘要:
一、概念 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。 传统的C++(C++11标准之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的<pthread.h>,或者 阅读全文
摘要:
一、概念 1.1 什么叫凸包 凸包是指如果在集合A内连接任意两个点的直线段都在A的内部,则称集合A是凸形的,简单点理解,就是一个多边型,没有凹的地方,其常应用在物体识别、手势识别及边界检测等领域。 1.2 什么叫凸缺陷 凸缺陷是指一组点在其凸包(Convex Hull)和形状之间的偏差部分,下图中黑 阅读全文
摘要:
一 、函数接口介绍 1.1 fillPoly函数 这是个重载函数,有2个实现,具体如下: 1、重载1 void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int 阅读全文
摘要:
一、概念 Canny算法是一种经典的图像处理算法,用于图像中的边缘检测,其实现的步骤包括: 高斯滤波; 计算梯度和方向:对平滑后的图像使用Sobel算子计算水平方向和竖直方向的一阶导数,然后计算该点的梯度大小和方向; 非极大值抑制:对梯度图上的每个像素,根据其梯度方向,确定在该方向上的两个相邻像素, 阅读全文
摘要:
一、概念 1.1 标准霍夫变换检测圆 与霍夫变换检测直线是非常类似的,只是将参数空间扩展到了三维,把问题转换为求解参数空间中相交最多的 (a,b,r)参数对,其中(a,b)是圆心,r是半径,但这种方式增加了很多的计算量,所以在实际中并不常用。 1.2 OpenCV中的霍夫梯度检测圆 OpenCV中霍 阅读全文
摘要:
一、概念 Hough直线检测的基本原理在于利用点与线的对偶性,即图像空间中的直线与参数空间中的点是一一对应的,因此将图像空间中的直线检测问题转换到参数空间中对点的检测问题,通过在参数空间里寻找峰值来完成直线检测任务。 注意: 参数空间是极坐标系,不是k和b组成的笛卡尔坐标系,目的是为了兼容垂直于x轴 阅读全文
摘要:
一、原因 VS配置问题,需保证以下是正确的: 在Release模式下编译,且要开启最大速度优化(/o2) 开启OpenMD支持 此时,匹配速度能从十几秒到200ms左右(原图:3072x 20248; 模板图:429x407),若想继续优化若按照这个指导配置还能减少几十毫秒。 阅读全文
摘要:
一、问题复现 将模型放到GPU上推理时时发生的异常。 OrtSessionOptionsAppendExecutionProvider_CUDA(session_options, 0); ... ort_outputs = session_.Run(Ort::RunOptions{ nullptr 阅读全文
摘要:
一、概念 静态Shape:指在网络执行阶段Tensor的shape没有发生变化; 动态Shape:指在网络执行阶段Tensor的shape发生变化。 二、动态shape引起的原因 输入shape不固定; 网络执行过程中有引发shape变化的API; 控制流不同分支引入shape上的变化。 三、规避策 阅读全文
摘要:
一、 仓库地址 YOLOV8 二、数据预处理 2.1 将标注数据按照类别划分到不同的文件目录 # 单独筛选某一类缺陷 import numpy as np import os #shutil:操作多文件或者文件集合(复制、移除等) import shutil # # #作用: # 按照类别进行数据集 阅读全文