- 博客(42)
- 收藏
- 关注
原创 PCL学习笔记-PCL简介
PCL(点云库)学习笔记1.简介点云数据的处理可以采用获得广泛应用的Point Cloud Library(点云库,PCL库)。PCL库是一个最初发布于 2013年的开源c++库,它实现了大量点云相关的通用算法和高效的数据管理。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的技术结晶,那么PCL在3D信息获取与处理上,就与OpenCV具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应
2020-12-12 14:23:32
2348
原创 OpenCV视频学习笔记(16)-背景建模
十六、背景建模怎样捕捉一个物体是前景(运动)还是背景(静止)?有两个方法方法一:帧差法由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。帧差法非常简单,但会引入噪音和空洞问题。方法二:混合高斯模型在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数可以自适应。然后在测试阶段,对新
2020-12-12 14:22:58
485
原创 OpenCV视频学习笔记(20)-卷积原理与操作
二十、卷积原理与操作神经网络(1)准备数据;(2)前向传播,算出输出(分类结果/回归结果),得到损失函数(衡量对当前数据拟合的好坏);(3)反向传播计算梯度值,看权重值分别对loss产生多大影响,看怎么改权重值,可以使得loss值越低越好;(4)更新参数,反复计算,得到较好的权重值;卷积神经网络可以做什么:Classification分类任务;Retrieval同类推荐 ;Detection物体检测(分类和回归 );Segmentation图像元素分割;Detection可应用于:se
2020-12-12 14:22:34
255
原创 OpenCV视频学习笔记(19)-项目实战-目标追踪
十九、项目实战-目标追踪步骤:导入代码;配置图片/视频参数,以及要使用的OpenCV中的算法(kcf算法);可执行单任务单目标/多任务多目标的追踪;Multi_object_tracking.pyimport argparseimport timeimport cv2import numpy as np// 配置参数ap = argparse.ArgumentParser()ap.add_argument("-v", “–video”, type=str,help=“path to
2020-12-12 14:22:14
616
原创 OpenCV视频学习笔记(5)-图像梯度处理
五、图像梯度处理图像梯度-Sobel算子Gx右边减左边,Gy下边减上边首先读取图像:img=cv2.imread(‘D:/graduate/pie.png’)cv2.imshow(‘img’,img)cv2.waitKey()#cv2.destoryAllWindows()将图像读取写成函数:def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()dst=cv2.Sobel(src,
2020-12-12 14:21:50
181
原创 OpenCV视频学习笔记(8)-直方图与傅里叶变换
八、直方图与傅里叶变换直方图:cv2.calcHist(images,channels,mask,histSize,ranges)¶images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的参数可以是 [0][1][2] 它们分别对应着 BGR。mask: 掩模图像。统整幅图像的直方图就把它为 None。但是如
2020-12-12 14:21:24
188
原创 OpenCV视频学习笔记(15)-项目实战-答题卡识别判卷
十五、项目实战-答题卡识别判卷步骤:(1)对图像进行滤波操作;(2)边缘检测;(3)透视变换;(4)看一下选择的是哪个答案,进行二值处理;(5)判断选择的答案,通过计算圆圈里面非0点的个数,也就是黑白比例来看;#导入工具包import numpy as npimport argparseimport imutilsimport cv2//设置参数ap = argparse.ArgumentParser()ap.add_argument("-i", “–image”, requir
2020-12-12 14:20:55
427
原创 OpenCV视频学习笔记(14)-项目实战-停车场车位识别
十四、项目实战-停车场车位识别输入数据是视频;步骤:(1)统计多少停车位被占据了;(2)统计还有多少停车位空闲着;(3)哪个停车位被占了,哪个没被占标识出来;实现步骤:(1)边缘检测,检测每一个车位的位置(坐标点),同时还要过滤掉干扰项;(2)把每个位置裁剪出来,做建模操作,判别位置有没有被占据,也就是进行分类任务;Parking.pyimport matplotlib.pyplot as pltimport cv2import os, globimport numpy as np
2020-12-12 14:20:23
1024
原创 OpenCV视频学习笔记(13)-案例实战-全景图像拼接
十三、案例实战-全景图像拼接特征匹配Brute-Froce蛮力匹配对比两张图象中哪些关键点比较类似,距离比较近,即比较向量之间的差异。首先导入工具包,读取图像;import cv2import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimg1 = cv2.imread(‘D:/graduate/test picture/box.png’, 0)img2 = cv2.imread(‘D:/graduate/te
2020-12-12 14:20:03
463
原创 OpenCV视频学习笔记(12)-图像特征-sift算法
十二、图像特征-sift算法Scale Invariant Feature Transform(SIFT)图像尺度空间(为了使得到的特征点更准确)在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然而计算机要有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同的尺度下都存在的特点。不同标准差(a)的高斯函数决定了对图像的平滑程度,越大的a值对应的图像越模糊。五层金字塔,金字塔的每层都要做高斯滤波。高斯差分金字塔(DOG),通过减法求差分,找差分值较大
2020-12-12 14:19:08
220
原创 OpenCV视频学习笔记(11)-图像特征-harris
十一、图像特征-harris图像特征-harris角点检测:角点:无论是沿着水平还是竖直移动,图像变化都非常明显;基本原理:cv2.cornerHarris()img: 数据类型为 float32 的入图像blockSize: 角点检测中指定区域的大小ksize: Sobel求导中使用的窗口大小 (求Ix,Iy)k: 取值参数为 [0,04–0.06]之间import cv2import numpy as npimg = cv2.imread(‘D:/graduate/test
2020-12-12 14:18:44
143
原创 OpenCV视频学习笔记(10)-项目实战-文档扫描OCR识别
十、项目实战-文档扫描OCR识别实践步骤:首先将包含代码的文件夹复制到opencv工程中;打开sacn.py;配置图片参数:RUN–>Edit Configurations–>scan–>Parameters输入–image ./images/receipt.jpg–>apply代码处理步骤:(1)读取图片(图片拍摄角度任意);(2)边缘检测;(3)轮廓检测;(4)一系列图片变换操作(平移、旋转、翻转),把图片位置调正;(5)字符识别,中文、英文、数字;因为作者
2020-12-12 11:59:02
473
原创 OpenCV视频学习笔记(9)-项目实战-信用卡数字识别
九、项目实战-信用卡数字识别(融合前面的图像操作)轮廓检测+轮廓外接矩形+模板匹配+resize成一样的大小预处理:对轮廓做过滤操作,保存下数字的轮廓,根据长宽比例过滤先在eclipse中配置Python环境,注意版本匹配这里下载的eclipse是eclipse-java-2019-03在Eclipse中添加Python的环境Eclipse -> Help -> Install New SoftWare -> Add ,在弹出的框添加python仓库地址http://pydev.
2020-12-12 11:58:21
336
1
原创 OpenCV视频学习笔记(7)-图像金字塔与轮廓检测
七、图像金字塔与轮廓检测图像金字塔 应用:可以对金字塔中的每一次都进行特征提取,再进行总结(1)高斯金字塔(2)拉普拉斯金字塔import cv2 #opencv读取的格式是BGRimport numpy as npimport matplotlib.pyplot as plt#Matplotlib是RGB%matplotlib inlinedef cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWind
2020-12-12 11:58:03
183
原创 OpenCV视频学习笔记(6)-边缘检测算法
六、边缘检测算法(综合了前面几节课的内容)Canny边缘检测1)使用高斯滤波器,以平滑图像,滤除噪声2)计算图像中每个像素点的梯度强度和方向3)应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应4)应用双阈值(Double-Threshold)检测来确定真实和潜在的边缘5)通过抑制孤立的弱边缘最终完成边缘检测(1)高斯滤波(2)梯度和方向(3)非极大值抑制(两种方法):比较当前这个点和周围两个点的大小,如果是最大的就保存,如果不是就抑制掉(4
2020-12-12 11:57:45
209
原创 OpenCV视频学习笔记(1)-准备工作
一、准备工作1.安装Anaconda2.Anaconda Prompt安装opencv(1)如果系统当中只有一个Python环境,直接输入pip install;(2)如果有多个Python环境,去指定的位置安装;进入到Anaconda安装的路径,输入:cd anaconda3输入dir查看目录,输入python,查看python环境:(base) C:\Users\16550.000\anaconda3>pythonPython 3.7.6 (default, Jan 8 2020
2020-12-12 11:55:13
627
原创 OpenCV视频学习笔记(3)-图像阈值与平滑处理
三、图像阈值与平滑处理图像阈值处理ret,dst=cv2.threshold(src,thresh(127),maxval(255),type)src:输入图只能输入单通道图像,通常来说为灰度图dst:输出图thresh:阈值maxval:当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值type:二值化操作的类型,包括以下5种类型:cv2.THRESH_BINARY;cv2.THRESH_BIANRY_INV;cv2.THRESH_TRUNC;cv2.THRESH_TOZE
2020-12-12 11:54:24
209
原创 OpenCV视频学习笔记(2)-图像基本操作
二、图像基本操作图像在计算机眼中,是由许多个像素点组成。Opencv中图像的基本操作:1.数据读取-图像cv2.IMREAD_COLOR:彩色图像Cv2.IMREAD_GRAYSCALE:灰度图像读取彩色图像代码:import cv2 #opencv读取的格式是BGR,不是RGBimport matplotlib.pyplot as pltimport numpy as np%matplotlib inlineimg=cv2.imread(‘D:/graduate/cat.jpg’)
2020-12-12 11:54:02
160
原创 第十一章 自动编码器
简介:自动编码器是一种可以进行无监督学习的神经网络模型。一般而言,一个完整的自动编码器主要由两部分组成,分别是用于核心特征提取的编码部分和可以实现数据重构的解码部分。1.自动编码器入门在自动编码器中负责编码的部分也叫做编码器(Encoder),而负责解码的部分也叫作解码器(Decoder)。编码器主要负责对原始的输入数据进行压缩并提取数据中的核心特征,而解码器主要是对在编码器中提取的核心特征进行展开并重新构造出之前的输入数据。如图就是一个简化的自动编码器模型,它的主要结构是神经网络,该模型的最左边是用
2020-12-12 11:52:44
357
原创 第十章 循环神经网络
简介:循环神经网络(RNN)主要被用于处理序列相关的问题,比如在自然语言领域应用循环神经网络的情况就较多;循环神经网络也可以用于解决分类问题,虽然在图片特征的提取上没有卷积神经网络那样强大,但是本章仍然会使用循环神经网络来解决图片分类的问题,并主要讲解循环神经网络的工作机制和原理。1.循环神经网络入门之前讲到,卷积神经网络有几个特点:首先,对于一个已经搭建好的卷积神经网络模型,它的输入数据的维度是固定的,比如在处理图片分类问题时输入的图片大小是固定的;其次卷积神经网络模型最后输出的数据的维度也是固定的,
2020-12-12 11:52:31
298
原创 第九章 多模型融合
简介:通过一些科学的方法对优秀的模型进行融合,以突破单个模型对未知问题的泛化能力的瓶颈,并且综合各个模型的优点得到同一个问题的最优解决方法,这就是多模型融合。多模型融合的宗旨就是通过科学的方法融合各个模型的优势,以获得对未知问题的更强的解决能力。1.多模型融合入门使用多模型融合方法融合神经网络模型的过程中会遇到的问题:首先,在使用融合神经网络模型的过程中遇到的第1个问题就是训练复杂神经网络非常耗时,因为优秀的模型一般都是深度神经网络模型,这些网络模型的特点是层次较深、参数较多,所以对融合了多个深度神经
2020-12-12 11:52:13
2491
1
原创 第八章 图像风格迁移实战
简介:本章基于卷积神经网络实现图像风格迁移(Style Transfer)。和之前基于卷积神经网络的图像分类有所不同,这次是神经网络与艺术的碰撞。1.风格迁移入门图像风格迁移算法的实现逻辑并不复杂:首先选取一幅图像作为基准图像,也可以将其叫作内容图像,然后选取另一幅或多幅图像作为我们希望获取相应风格的图像,也可以叫作风格图像。图像风格迁移的算法就是在保证内容图像的内容完整性的前提下,将风格图像的风格融入内容图像中,使得内容图像的原始风格最后发生了转变,最终的输出图像呈现的将是输入的内容图像的内容和风格
2020-12-12 11:51:58
512
原创 第七章 迁移学习
简介:本章将通过搭建卷积神经网络模型对生活中的普通图片进行分类,并引入迁移学习(Transfer Learning)方法。为了验证迁移学习方法的方便性和高效性,我们先使用自定义结构的卷积神经网络模型解决图片的分类问题,然后通过使用迁移学习方法得到的模型来解决同样的问题,以此来看看在效果上是传统的方法更出色,还是迁移学习方法更出色。(因为本章代码使用CPU运行时间高达5个小时,所以暂时没有进行实践。)1.迁移学习入门使用迁移模型解决同一类问题,由于这种方法的出现,我们通过对一个训练好的模型进行细微调整,
2020-12-12 11:51:47
421
原创 第六章 PyTorch基础
简介: PyTorch是美国互联网巨头Facebook在深度学习框架Torch的基础上使用Python重写的一个全新的深度学习框架,它更像NumPy的替代物,不仅继承了NumPy的众多优点,还支持GPUs计算,在计算效率上要比NumPy有更明显的优势;不仅如此,,PyTorch还有许多高级功能,比如拥有丰富的API,可以快速完成深度神经网络模型的搭建和训练。...
2020-12-12 11:51:14
1358
原创 第五章 Python基础
1.Python简介Python特性:(1)易读性:Python的语法结构层次分明,语法逻辑简单易懂。(2)解释性:在Python中去除了编译环节和链接环节,这些修改提升了语言的解释性,提升了程序的开发效率,所以Python进行程序开发能够相对缩短开发周期。(3)可移植性:因为Python在设计之初就是一门面向开源的编程语言,而开源的一大特性就是兼容性,所以Python能够被众多平台移植和使用。(4)可扩展性:Python能够使用其他程序语言实现自身的扩展。(5)交互性:Python提供了很多实
2020-12-12 11:50:57
762
原创 第四章 卷积神经网络
**卷积神经网络(CNN)是深度神经网络模型中的“明星”网络架构。一个标准的卷积神经网络架构主要由卷积层、池化层和全连接层等核心层次构成。1.卷积神经网络基础1)卷积层卷积层(Convolution Layer)的主要作用是对输入的数据进行特征提取,而完成该功能的是卷积层中的卷积核(Filter)。我们可以将卷积核看作一个指定窗口大小的扫描器,扫描器通过一次又一次的扫描输入的数据,来提取数据中的特征。如果我们输入的是图像数据,那么在通过卷积核的处理后,就可以识别出图像中的重要特征了。卷积通用公式,用
2020-12-12 11:50:36
207
原创 第三章 深度神经网络基础
1.监督学习和无监督学习监督学习和无监督学习是在机器学习中经常被提及的两个重要的学习方法。(1)监督学习(缺点:需要投入大量的精力处理原始数据)(优点:得到的模型更符合设计者的需求和初衷)监督学习:提供一组输入数据和其对应的标签数据,然后搭建一个模型,让模型在通过训练后 准确地找到输入数据和标签数据之间的最优映射关系,在输入新的数据后,模型能够通过之前学到的最优映射关系,快速的预测出这组新数据的标签。回归问题:回归问题就是使用监督学习的方法,让我们搭建的模型在通过训练后建立起一个连续的线性映射关
2020-12-12 11:50:03
916
原创 第二章 相关的数学知识
1.矩阵运算入门矩阵的优势是能够进行大规模的并行运算,所以将军阵的计算方式引入计算机中能够很大程度的提升计算机的计算效率。(1)标量、向量、矩阵和张量标量:·
2020-12-12 11:49:48
86
原创 第一章 浅谈人工智能、神经网络和计算机视觉
概要:本章将对人工智能及其相关的知识进行简单介绍,对人工智能及其相关知识进行初步了解。1.1 人工还是智能人工智能可以细分为强人工智能和弱人工智能,弱人工智能更注重“人工”的重要性,强人工智能更注重“智能”的重要性。1.2 人工智能的三起两落机器学习、深度学习等技术成为人工智能的主流,再加上大数据和计算机硬件的快速发展,使人工智能再次卷土重来。机器学习和深度学习技术具备一个共同的特点:它们都需要使用尽可能多的数据来完成对自身模型的训练,这样才能让最终输出的模型拥有强大的泛化能力。当前在计算机视觉
2020-12-12 11:49:30
677
原创 深度学习入门学习--第八章 深度学习
第八章 深度学习深度学习是加深了层的深度神经网络。基于之前介绍的网络,只需通过叠加层,就可以创建深度网络。1.加深网络(1)向更深的网络出发创建一个比之前实现的网络的更深的CNN。这里使用的卷积层全都是3✖3的小型滤波器,特点是随着层的加深,通道数变大(卷积层的通道数从前面的层开始按顺序以16、16、32、32、64、64的方式增加)。此外,插入了池化层,以逐渐减小中间数据的空间大小;并且,后面的全连接层中使用了Dropout层。这个网络使用He初始值作为权重的初始值,使用Adam更新权重参数。总
2020-12-12 11:46:51
457
原创 深度学习入门学习--第七章 卷积神经网络
第七章 卷积神经网络卷积神经网络(CNN)。CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。1.整体结构了解CNN的网络结构和大致框架。CNN和之前介绍的神经网络一样,可以像乐高积木一样通过组装层来构建。不过,CNN中新出现了卷积层(Convolution层)和池化层(Pooling层)。之前介绍的神经网络中,相邻层的所有神经元之间都有连接,这称为全连接。另外,我们使用了Affine层实现了全连接层。CNN中新增了Convolution层和Poo
2020-12-12 11:46:16
885
原创 深度学习入门学习--第六章 与学习相关的技巧
介绍神经网络的学习中的一些重要观点,主题涉及寻找最优权重参数的最优化方法,权重参数的初始值,超参数的设定方法等。为了应对过拟合,还介绍权值衰减,Dropout等正则方法,最后还有Batch Normalization方法。1.参数的更新神经网络的学习的目的是找到损失函数嗯值尽可能小的参数。这是寻找最优参数的问题,解决这个问题的过程称为最优化。介绍四种更新参数的方法:SGD、Momentum、AdaGrad、Adam等。这四种方法各有各的特点,都有各自擅长解决的问题和不擅长解决的问题。(1)SGD随机
2020-12-12 11:45:49
284
原创 深度学习入门学习--第五章 误差反向传播法
前面学习了神经网络。并通过数值微分计算了神经网络的权重参数的梯度(严格来说,是损失函数关于权重参数的梯度)。
2020-12-12 11:45:34
1116
原创 深度学习入门学习--第四章 神经网络的学习
7.13第四章 神经网络的的学习学习:指从训练数据中自动获取最优权重参数的过程。1.从数据中学习神经网络的特征就是可以从数据中学习。所谓“从数据中学习”,是指可以由数据自动决定权重参数的值。(1)数据驱动神经网络或深度学习比以往的机器学习方法更能避免人为介入。深度学习有时也称为端到端机器学习。这里所说的端到端是指从一端到另一端的意思,也就是从原始数据(输入)中获得目标结果(输出)的意思。神经网络的优点是对所有的问题都可以用同样的流程来解决。也就是说,与待处理的问题无关,神经网络可以将数据直接
2020-12-12 11:45:01
857
原创 深度学习入门学习--第三章 神经网络
7.12第三章 神经网络对于感知机来说,设定权重的工作,即确定合适的,能符合预期的输入与输出的权重,现在还是由人工进行的。神经网络的一个重要性质是它可以自动的从数据中学习到合适的权重参数。本章内容:先介绍神经网络的概要,然后重点关注神经网络进行识别时的处理。1.从感知机到神经网络(了解不同之处,即激活函数不同,信号转换方式不同)激活函数,将输入信号的总和转换为输出信号,激活函数的作用在于决定如何来激活输入信号的总和。2.激活函数感知机中使用了阶跃函数(以阈值为界,一旦输入超过阈值,就切换输出)
2020-12-12 11:44:47
418
原创 深度学习入门学习--第二章 感知机
第二章 感知机(算法)1.感知机也是作为神经网络(深度学习)的起源算法,简单的介绍了什么是感知机。2.简单逻辑电路与门(AND gate),与非门(NAND gate)(只要把实现与门的参数值的符号取反,就可以实现与非门)和或门(只要有一个输入信号是1输出就为1)学习:是确定合适参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。相同构造的感知机(如:与门,与非门,或门),只需要通过适当的调整参数的值,就可以变身为与门,与或门,非门。3.感知机的实现(与门,与或非门,或门是
2020-12-12 11:44:34
229
原创 深度学习之PyTorch实战计算机视觉学习
期望:了解人工智能的相关技术和发展近况,通过一些实例来掌握必备的技能,并能够独立使用相关技术完成对计算机视觉问题的分析和处理。
2020-12-12 11:43:58
843
原创 深度学习入门学习--第一章
7.11深度学习是机器学习的子问题,其主要目的是从数据中自动学习到有效的特征表示。神经网络仅仅是深度学习领域中的一类数学模型,其他的模型还包括概率图模型等。深度学习入门1.首先要具备基本的数学知识和Python知识2.深入的理解深度学习,建议从0开始编写可实际运行的程序,一边看源码,一边思考3.对数学式感到困惑时,就阅读源代码来理解技术的流程4.理论说明+Python实现5.书中用到的程序下载网址:http://www.ituring.com.cn/book/1921第一章 Python入门
2020-12-12 11:43:38
118
原创 Python学习笔记-2
用Python设计第一个游戏1.首先IDLE新建一个窗口:Ctrl+N/File->New File;2.IDLE关键字提示符如print,打出pr按下Tab键出现提示;3.代码编写完成后,按下Ctrl+S/File->Save可进行保存;4.代码运行:F5/Run->Run Module;第一个游戏代码:print(’--------------------我的第一个游戏--------------------’)temp =input(“猜一下我心里想的哪个数字:”)g
2020-12-12 11:41:39
214
原创 Python学习笔记-1
1.安装python下载链接:https://www.python.org/downloads/windows/版本:windows x86-64 executable installer下载到:D:/软件安全下载目录安装到:D:/Python-IDLE2.使用:在python目录下打开IDLE可直接进行编程IDLE是一个Python Shell,Shell的意思就是“外壳”,是一个通过键入文本与程序交互的途径;提示符“>>>”:键入Python指令;3.第一段代码
2020-12-12 11:40:52
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人