- 博客(53)
- 问答 (1)
- 收藏
- 关注

原创 C#基础知识
NET是微软的托管代码模型,所谓的托管代码(IL)其实和JAVA的虚拟机很类似的,将C#语言“编译”成中间代码(IL)然后通过 .NET Framework 的虚拟机——被称之为通用语言运行时(Common Language Runtime, CLR)——执行。.NET Framework 4.8 是 .NET Framework 的最后一个版本,不会再发布后续版本。公共语言运行时(CLR) 是 .NET Framework 的基础。
2022-12-11 17:04:38
881
1

原创 PyQt5基础知识大全
在PyQt中常用的图像类有4个,即QPixmap、QImage、QPicture和QBitmap。QPixmap是专门为绘图而设计的,在绘制图片时需要使用QPixmap;QImage提供了一个与硬件无关的图像表示函数,可以用于图片的像素级访问;QPicture是一个绘图设备类,它继承自QPainter类,可以使用QPainter的begin()函数在QPicture上绘图,使用end()函数结束绘图,使用QPicture的save()函数将QPainter所使用过的绘图指令保存到文件中;QBit..
2022-04-11 19:58:46
7077

原创 Python基础知识、进阶、加速
datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
2022-03-27 15:46:58
1828
1

原创 Halcon基础大全(基础算子、高阶算子、理论知识、特别案例)
read_imagemean_imageconnectionselect_shapeunion1dilation_circleskeleton骨架count_objboundary边界dilation_rectangle1reduce_domainedges_sub_pix提取亚像素轮廓fit_rectangle2_contour_xld用最小外接矩形拟合该亚像素轮廓
2022-03-15 18:46:19
58255
16
原创 图像数据增强
计算一个输入图像的直方图,从这个直方图中去除最亮和最暗的部分,然后重新映射图像,以便保留的最暗像素变为黑色,即0,最亮的变为白色,即255。色调分离,将每个颜色通道上像素值对应变量的最低的(8-x)个比特位置0,x的取值范围为[0,8]反转在阈值threshold范围内的像素点(>threshold的像素点取反)如果threshold=100,返回的结果为131=10000011。如果threshold=200,返回结果为124 (124<200)直方图均衡化,产生像素值均匀分布的图像。
2025-04-24 15:42:30
184
原创 工业自动化相关&工业领域缺陷检测
平场校正(Flat Field Correction),也称为光场校正、灰度校正或散斑校正,是一种用于图像传感器或相机校正的图像处理技术。它旨在消除图像中由于传感器不均匀响应、光照差异或其他因素引起的亮度和颜色不均匀性。平场校正可以提高图像的质量,使得不同区域的亮度更加均匀,减少了图像中的伪影、噪声和其他影响。
2024-08-14 16:44:41
224
原创 图像相识度
由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个 区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。图像直方图丰富的图像细节信息,反映了图像像素点的概率分布情况,统计每一个像素点强度值具有的像素个数。
2023-07-25 17:32:12
648
原创 实例分割、目标检测
思路是:首先通过目标检测的方法找出实例所在的区域(bounding box),再在检测框内进行语义分割,每个分割结果都作为一个不同的实例输出。2、单阶段实例分割,两种思路,一种是受anchor-based 检测模型如YOLO,RetinaNet启发,代表作有YOLACT和SOLO;思路是:首先进行像素级别的语义分割,再通过聚类、度量学习等手段区分不同的实例。1、两阶段的方法:包括自下而上的基于语义分割的方法和自上而下的基于检测的方法。自上而下的实例分割方法。自下而上的实例分割方法。
2023-07-13 11:14:03
278
原创 点云相关理论
再以控制点为基站直接将扫描的多测站的点云数据与其拼接,即可将扫描的所有点云数据转换成工程实际需要的坐标系。由于目标物的复杂性,通常需要从不同方位扫描多个测站,才能把目标物扫描完整,每一测站扫描数据都有自己的坐标系统,要获得完整的数据必需把不同测站的扫描数据纠正到统一的坐标系下,这就需要点云拼接。②均值滤波也叫平均滤波,也是一种较为典型的线性滤波,其原理为选择一定范围内的点求取其平均值来代替其原本的数据点,优点为算法简单易行,缺点为去噪的效果较为平均.且不能很好的保留住点云的特征细节。
2023-06-16 14:50:41
3785
原创 Torch-TensorRT
NVIDIA TensorRT 是一个用于深度学习加速推理的 SDK,为了使用 TensorRT 进行模型推理,通常需要先将 PyTorch 模型转换为 ONNX 或 TorchScript 格式,而 Torch-TensorRT (项目更名前为TRTorch) 是 NVIDIA 和 Pytorch 合作推出的一个编译器,支持将 PyTorch/TorchScript 模型直接编译后使用 TensorRT 部署。
2023-02-07 09:37:03
900
原创 CV-CUDA高性能图像处理加速库
在设计之初,我们考虑到当前图像处理库中,很多用户习惯使用 OpenCV 的 CPU 版本,因此在设计算子时,不管是函数参数还是图像处理结果上,尽可能对齐 OpenCV CPU 版本的算子。一般来说,训练时利用 python 进行快速验证,推理时利用 C++ 进行高性能部署,然而一些图像处理库仅支持 python,这给部署带来了极大的不便。独立算子的设计具有更高的灵活性,使调试变得更加的容易,而且可以使其与其他的图像处理交互,或者将其集成在用户自己的图像处理上层框架中。(5)结果对齐 OpenCV。
2022-12-26 10:35:39
1630
1
原创 基于深度学习的深度估计
深度估计的应用包括:平滑图像的模糊部分、更好地渲染3D场景、自动驾驶、机器人抓取、机器人辅助手术、电影中的2D到3D的自动转换以及3D计算机图形学中的阴影映射等。深度估计是一种计算机视觉任务,旨在从2D图像中估计深度。这个任务输入RGB图像,输出深度图。深度图包含了从视图看图像中的被摄物体距离的信息。
2022-12-19 16:23:39
417
原创 OCR算法
OCR算法可以分为两阶段算法和端到端的算法。两阶段OCR算法分为文本检测和识别算法,文本检测算法从图像中得到文本行的检测框,然后识别算法识别文本框中的内容。端对端OCR算法使用一个模型同时完成文字检测和文字识别,因此端对端模型更小,速度更快。深度学习技术在端到端文本识别方向具有代表性的方法。2)端到端任意形状文本识别(弯曲、变形、平直、倾斜文本)。1)端到端规则文本识别(平直文本或倾斜文本);
2022-11-22 10:23:01
1847
原创 OTSU(最大类间方差法、大津算法)
OTSU是阈值分割中一种常用的算法,它可以根据图像自动生成最佳分割阈值。OTSU的核心思想是类间方差最大化。
2022-11-18 16:52:20
1119
原创 OpenCV中的饱和运算和Numpy中的模运算(不饱和运算)
opencv的加法是一种饱和操作,而numpy的加法是一种模操作,这种差别在你对两幅图像进行加法时会更加明显。OpenCV 的结果会更好。opencv中加法是cv2.add(img1, img2),numpy中加法 img = img1 + img2。所以尽量使用 OpenCV 中的函数。
2022-11-18 15:21:43
939
原创 扩散模型Diffusion Models
扩散模型(diffusion models)是深度生成模型中新的SOTA。扩散模型在图片生成任务中超越了原SOTA:GAN,并且在诸多应用领域都有出色的表现,如计算机视觉,NLP、波形信号处理、多模态建模、分子图建模、时间序列建模、对抗性净化等。此外,扩散模型与其他研究领域有着密切的联系,如稳健学习、表示学习、强化学习。然而,原始的扩散模型也有缺点,它的采样速度慢,通常需要数千个评估步骤才能抽取一个样本;它的最大似然估计无法和基于似然的模型相比;它泛化到各种数据类型的能力较差。
2022-11-03 10:37:49
694
原创 ONNX部署
pytorch是动态计算图,tensorflow和onnx是静态计算图。动态图编写代码简单易懂,但速度慢。pytorch转换为静态计算图,有两种方法torch.jit.trace和torch.jit.script。torch.jit.trace:顾名思义跟踪,给定模型一个输入(只要求输入的shape正确),开始执行一次前向传播,会记录过程中的所有操作。缺点是race将不会捕获根据输入数据而改变的行为。比如if语句,只会记录执行的那一条分支,同样的,for循环的次数,导出与跟踪运行完全相同的静态图。
2022-07-13 18:20:32
2425
原创 Keras框架
在Keras中有两种深度学习的模型:序列模型(Sequential)和通用模型(Model)。通用模型Model通用模型可以设计非常复杂、任意拓扑结构的神经网络,例如有向无环网络、共享层网络等。相比于序列模型只能依次线性逐层添加,通用模型能够比较灵活地构造网络结构,设定各层级的关系。......
2022-07-01 10:00:57
562
原创 双线性池化(Bilinear Pooling)
bilinear pooling主要用于特征融合,对于从同一个样本提取出来的特征x和特征y,通过bilinear pooling得到两个特征融合后的向量,进而用来分类。如果特征x和特征y来自两个特征提取器,则被称为多模双线性池化(MBP,Multimodal Bilinear Pooling);如果特征x=特征y,则被称为同源双线性池化(HBP,Homogeneous Bilinear Pooling)或者二阶池化(Second-order Pooling)。原始的Bilinear Pooling存在融合
2022-06-28 13:39:21
3557
原创 Python特殊包pySerial、pywin32、PyCUDA、Hyperopt、Kornia
pySerial串口通信1、端口是设备与外界通讯交流的出口。2、USB口为数据端口、控制端口和状态端口。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。3、COM1、COM2、COM3都是COM口,即串行通讯端口,简称串口。目前主流的主板一般都只带1个串口,甚至不带,慢慢会被USB 取代。一般串口9针,并口25针D形接头串口设备通过USB插入电脑,python通过pyserial模块就可以完成和串口设备的通讯,pySerial 串口工具简介pywin32(python调用wind
2022-05-27 16:09:02
147
1
原创 Tensorrt+PyTorch+Win10部署
深度学习模型部署之安装TensorRT windows11+vs2022+TensorRT8.0.1EA 版本代表抢先体验(在正式发布之前)。GA 代表通用性。 表示稳定版,经过全面测试。
2022-05-27 13:37:59
1193
原创 Pytorch相关操作(3)
Pytroch相关操作(1)Pytorch相关操作(2)(31)model.load_state_dict(state_dict, strict=False)strict=False时,检查key是否一致,不一致不加载权重。如果只是改了最后全连接层个数,设置为False会报错,因为加载模型的key的名字是一样的,但是shape不一样。...
2022-05-17 17:00:29
654
1
原创 基于深度学习的抠图
HDMatt论文首个处理高分辨率输入图像的深度学习抠图方法。HDMatt 方法使用新型模块设计,以基于 patch 的剪裁 - 拼接方式(crop-and-stitch)为高分辨率输入图像进行抠图,进而解决不同 patch 之间的语境依赖性和一致性问题。基于 patch 的原版推断方法单独计算每个 patch,而该研究提出了新的模块——CrossPatch Contextual module (CPC),该模块由给定的 trimap 指导,对跨 patch 语境依赖性进行建模。...
2022-05-17 13:29:59
796
原创 模型可解释性
github分类器可视化解释StylEx分类器可视化解释StylEx:谷歌、MIT等找到了影响图像分类的关键属性与模型无关的局部可解释性方法(LIME)模型解释-LIME的原理和实现saliency map显著图告诉我们图像中的像素点对图像分类结果的影响。导数的大小表示某个像素点改变一点,对最后结果的影响。计算它的时候首先要计算与图像像素对应的正确分类中的标准化分数的梯度,再取梯度的绝对值,然后再取三个颜色通道的最大值;因此最后的saliency map的形状是(H, W)为一个通道的灰度图。
2022-05-16 18:19:31
386
原创 基于深度学习的图像去摩尔纹
什么是摩尔纹日常生活中,有时我们用手机拍摄电脑、电视上的画面,或者拍摄条纹和格子的衣服时,拍出来的照片上总是有奇奇怪怪的彩色条纹。这些奇怪的彩色条纹是什么?它们为什么会出现呢?这些条纹是摩尔纹,俗称水波纹,它们是由摩尔效应引起的。摩尔效应是一种特殊的光学现象,它是两条线或两个物体之间以固定的角度和频率发生干涉后产生的视觉效果。以最简单的直条纹为例,当两组周期相近的直条纹叠加在一起时,就有可能产生一组更大周期的干涉条纹(图1),这组干涉条纹就是摩尔纹,它的周期是两组条纹周期的最小公倍数。当用手机拍摄电脑
2022-05-13 15:45:55
2216
原创 基于深度学习的图像边缘和轮廓提取
1、基于深度学习方法1.1一般边缘检测1.2目标轮廓检测1.3语义边缘检测1.4闭合边界检测DOOBNet: Deep Object Occlusion Boundary Detection from an Image2、传统方法
2022-05-13 15:45:18
8289
原创 Opencv基础
2014.08.21 OpenCV3.0Alpha发布,新的项目结构——内核+插件;两种不同的颜色模型:“加色模型”和”减色模型”。加色模型使用光代表计算机屏幕上的颜色,而减色模型使用墨水在纸上打印这些数字图像。前者的原色由红色、绿色和蓝色(RGB)组成,后者有蓝色、品红、黄色和黑色(CMYK)四种原色组成。HSV和HSL更类似于人的感知方式。HSV代表色调、饱和度和色值。HSL代表色调、饱和度和亮度。HSV的中轴是色值,HSL的中轴是光量。沿着中心轴的角度,有色调和实际的颜色。与中心轴的距离属于饱.
2022-05-13 11:58:50
260
原创 集成学习基础
集成学习方法Bagging,其思想是在随机不同版本的训练数据上训练许多基础模型。每个模型拥有一票表决权,并且无论预测准确度如何,都做相同的处理,然后对预测变量进行汇总以得出最终结果。在大多数情况下,Bagging后结果的方差会变小。例如,随机森林是Bagging方法中最著名的模型,它将决策树与Bagging理念结合在一起。Boosting,Boosting和Bagging之间最本质的区别在于,boosting并不会同等的对待基础模型,而是通过连续的测试和筛选来选择“精英”。表现良好的模型对投票的
2022-05-13 09:11:28
79
原创 numpy、list、pillow、tensor数据转换
numpy和pillowim = np.array(Image.open(im))im = Image.fromarray(im)list和numpy互转temp = np.array(list) arr = temp.tolist() numpy和tensor互转注意,第一只有都在CPU上的才能相互转换第二直接使用from_numpy的是指向了同一个地址第三如果想创建新的b = torch.tensor(a)import torchimport numpy as np.
2022-05-12 13:24:48
645
原创 域适应(DA)---域泛化(DG)
集成学习卷积神经网络通过激活与标签相关的显性特征来进行图像分类。当训练和测试数据处于类似的分布时,它们的主导功能类似,导致不错的测试性能。尽管如此,在用不同的分布测
2022-05-10 15:26:30
14870
11
原创 t-SNE非线性降维
1、将高维空间中的数据映射到低维空间中,并保留数据集的局部特性。当我们想对高维数据集进行分类,但又不清楚这个数据集有没有很好的可分性(同类之间间隔小、异类之间间隔大)时,可以通过t-SNE将数据投影到2维或3维空间中观察一下:如果在低维空间中具有可分性,则数据是可分的;如果在低维空间中不可分,则可能是因为数据集本身不可分,或者数据集中的数据不适合投影到低维空间。2、t-SNE的缺点:占用内存较多、运行时间长。3、Manifold learning sklearn官方文档4、t-SNE实践(可视化两个
2022-05-08 14:28:46
1508
原创 计算机视觉领域重要官网网站
1、PyPI(Python Package Index)python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。网址2、Python官方文档网址3、opencv 官方文档网址4、Pytorch官方文档网址5、PyQt官方文档网址6、Qt官方文档网址7、matplotlib官方文档网址......
2022-04-27 11:00:50
3651
原创 迁移学习相关内容
迁移学习的核心问题在于分布对齐,将目标领域的数据分布与源领域的数据分布直接的差异减小,从而可以使得模型可以进行无缝迁移。迁移学习方法分为以下四个大类:基于样本的迁移学习方法 (Instance based Transfer Learning)基于特征的迁移学习方法 (Feature based Transfer Learning)基于模型的迁移学习方法 (Model based Transfer Learning)基于关系的迁移学习方法 (Relation based Transf
2022-04-26 11:19:05
970
空空如也
编译opencv gpu版时报错,谢谢
2019-12-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人