版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
19*9乘法表&随机数生成与排序
PythonNumber数据类型用于存储数值,包括int、long、float、double、complexPython
中数学运算常用的函数基本都在math模块Python基础数据类型——1.数字Python中随机数随机生成一个[0,1)范围内的实数随机生成一个[1,20)范围内的整数当使用random.seed(x)设定好种子之后,random()生成的随机数将会是同一个。Python基础数据类型——1.数字单引号、双引号、三引号Python中的字符串可以使用单引号
、双引号和三引号(三个单引号或三个双引号)括起来,使用反斜杠
\
转义特殊字符Python基础数据类型——2.字符串字符串连接使用join运算符使用+运算符Python基础数据类型——2.字符串访问最后一个元素声明一个列表,并使用下标访问元素访问第一个元素Python基础数据类型——3.列表查询names列表中有没有值为’superman’的元素列表查询Python基础数据类型——3.列表append():在列表末尾追加元素extend():合并列表insert():在指定位置添加列表添加Python基础数据类型——3.列表修改指定元素列表修改将fruits列表中的‘香蕉’替换为‘banana’Python基础数据类型——3.列表del()列表删除remove()pop()Python基础数据类型——3.列表[]中设置要使用的第一个元素和最后一个元素的索引,牢记:左闭右开。列表切片元素catdogtigersnakemousebird正向012345反向-6-5-4-3-2-1Python基础数据类型——3.列表生成10个不同的随机数,存至列表中,并进行排序列表排序Python基础数据类型——3.列表定义一个元组,注意:元组中只有一个元素时,需要在后面加逗号与列表类似,区别是元组中的内容不可修改Python基础数据类型——4.元组元组不能修改,所以不存在往元组里加入元素。作为容器的元组,如何存放元素?列表转元组Python基础数据类型——4.元组元组截取元组的一些函数Python基础数据类型——4.元组元组的拆包与装包
元组元素个数与变量个数相等:
元组元素个数与变量个数不相等:Python基础数据类型——4.元组定义一个空字典定义一个字典的同时,进行初始化定义一个字典,之后添加元素修改字典元素Python基础数据类型——5.字典字典相关函数items()values()keys()Python基础数据类型——5.字典字典删除delpop()Python基础数据类型——5.字典集合(set)是一个无序的不重复元素序列。可以使用大括号
{}
或者
set()
函数创建集合,注意:创建一个空集合必须用set()
而不是
{},因为
{}
是用来创建一个空字典。set去重判断元素是否在set内Python基础数据类型——6.集合定义一个类Animals:(1)__init()__定义构造函数,与其他面向对象语言不同的是,Python语言中,会明确地把代表自身实例的self作为第一个参数传入(2)创建一个实例化对象cat,init()方法接收参数(3)使用点号.来访问对象的属性。Python——类机制(class)通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。Python——类机制(class)JSON序列化:json.dumps用于将Python对象编码成JSON字符串。JSON反序列化:json.loads用于解码JSON数据。该函数返回Python字段的数据类型。Python——JSON的序列化与反序列化try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。finally中的内容,退出try时总会执行。Python——异常处理实践部分实践:9*9乘法表&随机数生成与排序
批量文件遍历、复制、重命名os库是Python标准库,包含几百个函数,常用路径操作、进程管理、环境参数等几类。os.path子库以path为入口,用于操作和处理文件路径。(1)路径操作:os.path子库,处理文件路径及信息(2)进程管理:启动系统中其他程序(3)环境参数:获得系统软硬件信息等环境参数路径操作:
os.path.join():连接两个或多个的路径名Python——os基础库判断路径是否存在:
os.path.exists(path):判断括号里的文件是否存在,括号内可以是文件路径。返回布尔型。分割文件名和路径:
os.path.split(path):将path的路径和文件名分开。分割文件名和后缀名:
os.path.splitext(path):将path的文件名和扩展名分开。判断是否是文件夹:
os.path.isdir(path):判断路径是否是文件夹。Python——os基础库文件操作:列出路径下所有文件——os.listdir(path):将路径下所有文件存到list中。创建目录——os.mkdir(path,mode):path为要创建的目录。mode为目录设置的数字权限。
递归创建目录——os.makedirs(path,mode):path为需要递归创建的目录。
显示指定目录——os.walk():返回三个元素:
(1)第一个元素root所指的是当前正在遍历的这个文件夹本身的路径;
(2)第二个元素dirs是一个列表,内容是该文件夹中所有文件夹的名字(不包括子目录);
(3)第三个元素files同样是列表,内容是该文件夹中所有文件的名字(不包括子目录)。文件重命名:
os.rename(src,dst):用于命名文件或目录,从src到dst,如果dst是一个存在的目录,将抛出OSError。Python——os基础库shutil库是os库的补充,提供了复制、移动、删除、压缩、解压等操作,这些在os模块中一般是没有提供的。Python——shutil基础库复制文件:
shutil.copy(src,dst):src表示源文件,dst表示目标文件夹;注意:当移动到一个不存在的“目标文件夹”,系统会将这个不存在的“目标文件夹”识别为新的文件夹,而不会报错。复制文件夹:
shutil.copytree(src,dst):src表示源文件夹,dst表示目标文件夹;注意:这里只能是移动到一个空文件夹,而不能是包含其他文件的非空文件夹,否则会报错。
Python——shutil基础库实践部分实践:批量文件遍历、复制、重命名图像直方图统计
OpenCV是一个大型的开源计算机视觉库,涵盖了计算机视觉的各个方面,主要功能包括:图像处理:包括缩放、裁剪、旋转、颜色转换等。视频分析:包括运动检测、跟踪、分类等。图像分类:包括人脸识别、文本识别等。图像识别:包括物体识别、模式识别等。3D重建:包括立体视觉、点云生成等。OpenCV库介绍读取图像:img=cv2.imread(文件名,[,显示控制参数])
常用参数:cv.IMREAD_UNCHANGED,cv.IMREAD_GRAYSCALE,cv.IMREAD_COLOR显示图像:cv2.imshow(窗口名,图像名)
示例:cv2.imshow(demo,
img) cv2.waitKey(2000)cv2.destroyAllWindows() #显示图像img,显示时间为2000毫秒,然后清除所有窗口。图像保存:cv2.imwrite(文件地址,文件名)示例:cv2.imwrite(”/home/test.jpg”,img)OpenCV库介绍图像缩放:cv2.resize(src,dsize)、cv2.resize(src,dsize,fx,fy)
示例:b=cv2.resize(a,(200,200))
#
将图像缩放为200*200
b=cv2.resize(a,None,fx=0.5,fy=0.7)
#将图像a在x轴方向×0.5,y方向*0.7图像翻转:dst=cv2.flip(src,flipCode),flipCode取0以x轴为对称轴翻转,大于0以y轴为对称轴,小于0则以x和y为对称轴翻转两次图像类型转换:b=cv2.cvtColor(a,参数),常用参数:cv2.COLOR_BGR2GRAYcv2.COLOR_GRAY2BGR、cv2.COLOR_BGR2RGBOpenCV库介绍图像二值化:retval,dst=cv2.threshold(src,thresh,maxval,type),retval:阈值、dst:处理结果、src:源图像、thresh:阈值、maxval:最大值、type:类型常用处理类型:
cv2.THRESH_BINARY:大于阈值置为最大值,小于阈值置为0
cv2.THRESH_BINARY_INV:大于阈值置为0,小于阈值置为最大值
cv2.THRESH_TRUNC:大于阈值的置为阈值,小于阈值的不变
cv2.THRESH_TOZERO_INV:大于阈值置为0,小于阈值不变
cv2.THRESH_TOZERO:大于阈值不变,小于阈值置为0
cv2.THRESH_OTSU、cv2.THRESH_TRIANGLE自适应二值化(自动找阈值),配合以上参数使用OpenCV库介绍实践部分实践:图像直方图统计39图像预处理
PIL库是一个具有强大图像处理能力的第三方库在命令行下的安装方法:pipinstallpillow在使用过程中的引入方法:fromPILimportImageImage是PIL库中代表一个图像的类(对象)PIL库介绍图像是一个由像素组成的二维矩阵,每个元素是一个RGB值图像的数组表示PIL库使用Image模块中的一个简单的例子:读取图片,并进行45°旋转,然后进行可视化>>>fromPILimportImage>>>im=Image.open('test.png')#读取图片>>>im.rotate(45).show()#将图片旋转,并用系统自带的图片工具显示图片PIL库使用创建缩略图缩略图不能直接双击打开,要使用PIL.Image的open读取,然后使用show()方法进行显示。>>>fromPILimportImage>>>importglob,os>>>size=128,128>>>forinfileinglob.glob('*.jpg')#glob的作用是文件搜索,返回一个列表...file,ext=os.path.splitext(infile)#将文件名和扩展名分开,用于之后的重命名保存...im=Image.open(infile)...im.thumbnail(size,Image.ANTIALIAS)#等比例缩放...im.save(file+'.thumbnail','JPEG')PIL库使用图像尺寸变换函数img.resize((width,height),
Image.ANTIALIAS)第二个参数:
Image.NEAREST:低质量
Image.BILINEAR:双线性
Image.BICUBIC:三次样条插值
Image.ANTIALIAS:高质量PIL库使用常用的图片的融合或者合成函数如下PIL.image.alpha_composite(im1,im2)PIL.image.blend(im1,im2,alpha)PIL.Iposite(im1,im2,mask)上述方法要求im1和im2的mode和size要一致;alpha代表图片占比的意思;mask是mode可以为”1”;”L”或者”RGBA“PIL库使用Image.convert(mode=None,matrix=None,dither=None,palette=0,color=256)实现图像的灰度化处理Image.copy()#将读取的图片复制一份>>>fromPILimportImage>>>im=Image.open('test.png')>>>im=im.convert("L")>>>im.show()Image模块PIL库使用获取图片的基本信息>>>fromPILimportImage>>>im=Image.open('test.png')#读取图片>>>bands=im.getbands()#显示该图像的所有通道,返回一个tuple>>>bands('R','G','B','A')>>>bboxs=im.getbbox()#返回一个像素坐标>>>bboxs(0,0,238,295)Image模块PIL库使用Image模块图像粘贴操作Image.paste(im,box=None,maske=None)使用im粘贴到原图片中两个图片的mode和size要求一致,不一致可以使用convert()和resize()进行调整PIL库使用实践部分实践:图像预处理
50基于深度神经网络的宝石分类建立模型损失函数“0”“2”“5”参数学习Using“罗红霉素”TrainingTesting监督学习任务:手写识别训练数据测试数据Step1Step2Step3深度学习方法应用生物神经元每个神经元都是一个多输入单输出的信息处理单元;神经元具有空间整合和时间整合特性;神经元输入分兴奋性输入和抑制性输入两种类型;神经元具有阈值特性。深度神经网络-神经元…偏置bias权重weights………Asimplefunction激活函数理解:简单线性函数f(x)=kx+b(k是斜率,b是截距)
神经元深度神经网络-神经元神经元节点的间的激活神经元继续传递信息、产生新连接的概率(超过阈值被激活,但不一定传递)激活函数没有激活函数相当于矩阵相乘多层和一层一样只能拟合线性函数5深度神经网络-激活函数常见的激活函数为了增强网络的表达能力,我们需要激活函数来将线性函数->非线性函数非线性的激活函数需要有连续性。因为连续非线性激活函数可以可导的,所以可以用最优化的方法来求解常用激活函数示例激活函数深度神经网络-激活函数神经元不同的连接方式构成不同的网络结构每个神经元都有自己的权重和偏置参数
多层感知器深度神经网络-多层感知器1-11-21-101
0.980.124-2
2-1-1-20.860.113-14-10.620.8300-22
前馈神经网络深度神经网络-多层感知器输出层隐藏层输入层隐藏层数很多意味着网络越深神经元……………………………………y1y2ymx1x2xn…………前馈神经网络深度神经网络-多层感知器输入每一个输出值代表其对应标签的概率值输出神经网络is1is2is8……0.10.10.716x16=256……黑色像素点→1白色像素点→0“8”……神经网络图片被识别成数字“8”应用示例:手写数字识别深度神经网络-多层感知器
“1”……100常用损失函数:平方损失函数、交叉熵损失函数目标尽可能接近好的参数使得所有训练数据的损失越小越好………………………………y1y2y10x1x2x256…………Softmax
学习一组参数深度神经网络-损失函数对所有训练数据:
即确定参数使得总损失L最小总损失:尽可能小找到一个函数使得总损失L最小神经网络样本x1y1
样本x2y2
神经网络样本x3y3
神经网络样本xRyR
……神经网络深度神经网络-损失函数
枚举所有可能的取值例如:语音识别模型有8层,每层1000神经元参数个数巨大L+1层……L层……106权重参数1000神经元1000神经元
参数学习总损失神经网络参数w初始值下的总损失总损失值最小总损失变小通过调节参数w,逐步逼近总损失最小值梯度下降法参数学习初始值w选择一个初始值w,Random,RBMpre-train
梯度为正梯度为负减小w增加w
梯度下降法参数学习实践部分实践:基于深度神经网络的宝石分类66标题标题67标题68基于卷积神经网络实现美食分类69卷积神经网络卷积层pooling卷积层pooling……全连接Soft-max……y1y2ymX卷积层后接一个pooling层CNN应用图像模式的一般框架70101010101010101010101010101010101010000000000000000000*=121000-1-2-10inputimage(输入图像)kernel(卷积核)featuremap(特征映射层)
注:*为卷积操作卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-100
inputimagekernelfeaturemap注:*为卷积操作卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-1000
inputimagekernelfeaturemap注:*为卷积操作卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-10000
inputimagekernelfeaturemap注:*为卷积操作卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-1000040
注:*为卷积操作inputimagekernelfeaturemap卷积神经网络-卷积层卷积核*=121000-1-2-1404040404040000101010101010101010101010101010101010000000000000000000
00004040inputimagekernelfeaturemap注:*为卷积操作卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-1000040404040404040400000
卷积核中的参数需要在训练的过程学习注:*为卷积操作inputimagekernelfeaturemap卷积神经网络-卷积层卷积核101010101010101010101010101010101010000000000000000000*=121000-1-2-1000040404040404040400000注:*为卷积操作inputimagekernelfeaturemap
卷积神经网络-卷积层卷积核*=注:*为卷积操作
kernel
feature
map
feature
maps卷积核通常表示为一个立方体卷积核通常表示为一个立方体输出为对应通道在滑动窗口内的卷积的和3个3X3的feature
maps
3个2x2的卷积核生成一个2X2大小的feature
map
卷积神经网络-卷积层卷积核*=注:*为卷积操作
kernel
feature
map
feature
maps卷积核通常表示为一个立方体输出为对应通道在滑动窗口内的卷积的和3个3X3的feature
maps3个2x2的卷积核生成一个2X2大小的feature
map
卷积神经网络-卷积层卷积核*=注:*为卷积操作
kernel
feature
map
feature
maps卷积核通常表示为一个立方体输出为对应通道在滑动窗口内的卷积的和3个3X3的feature
maps3个2x2的卷积核生成一个2X2大小的feature
map
卷积神经网络-卷积层卷积核*=注:*为卷积操作
kernel
feature
map
feature
maps卷积核通常表示为一个立方体输出为对应通道在滑动窗口内的卷积的和3个3X3的feature
maps
3个2x2的卷积核生成一个2X2大小的feature
map
卷积神经网络-卷积层卷积核*=注:*为卷积操作
n
kernels
n
feature
maps
feature
mapsn个卷积核立方体生成n个feature
maps==……3个3X3的feature
maps卷积神经网络-卷积层卷积核10101081091010101010101010101071000010000001000000000*=121000-1-2-10-2-1540302030403017240102010inputimagekernelfeaturemapMax
pooling40下采样后的featuremap下采样注:*为卷积操作640x480320x240卷积神经网络-池化层池化层10101081091010101010101010101071000010000001000000000*=121000-1-2-10-2-1540302030403017240102010通过下采样缩减feature
map尺度。常用max
pooling和average
pooling.Max
pooling4030下采样注:*为卷积操作inputimagekernelfeaturemap下采样后的featuremap640x480320x240卷积神经网络-池化层池化层10101081091010101010101010101071000010000001000000000*=121000-1-2-10-2-1540302030403017240102010通过下采样缩减feature
map尺度。常用max
pooling和average
pooling.Max
pooling403040下采样注:*为卷积操作inputimagekernelfeaturemap下采样后的featuremap640x480320x240卷积神经网络-池化层池化层10101081091010101010101010101071000010000001000000000*=121000-1-2-10-2-1540302030403017240102010Max
pooling40304024下采样可以增大感受野注:*为卷积操作inputimagekernelfeaturemap下采样后的featuremap640x480320x240卷积神经网络-池化层通过下采样缩减feature
map尺度。常用max
pooling和average
pooling.池化层卷积层pooling卷积层pooling……全连接Soft-max……y1y2ymX卷积层后接一个pooling层卷积神经网络CNN应用图像模式的一般框架实践部分实践:基于卷积神经网络实现美食分类89基于VGG系列网络的场景图像分类卷积层pooling卷积层pooling……全连接Soft-max……y1y2ymX卷积层后接一个pooling层卷积神经网络CNN应用图像模式的一般框架2014ILSVRC冠军LeNetHubel&Wiesel早期尝试AlexNet历史突破DropoutReLUNINGoogLeNetInceptionV3,V4VGG网络加深InceptionV2,BN增加新的功能单元增强卷积模块功能ResNetet跳跃连接发展和演化使用MNIST数据集,这是最早用于数字识别的CNN2012ILSVRC远超第2名ZFNet,基于AlexNet,2013ILSVRC冠军2014ILSVRC,图像识别略差于GoogLeNet,但是在很多图像分析问题(比如objectdetection)上效果好2015年ILSVRC,
Classification获得第一名DenseNet密集连接2017年ILSVRC进一步降低Classification错误率卷积神经网络发展概述KrizhevskyA,SutskeverI,HintonG.ImageNetClassificationwithDeepConvolutionalNeuralNetworks[C]//NIPS.CurranAssociatesInc.2012.卷积神经网络-AlexNet卷积神经网络-AlexNet卷积神经网络-AlexNet卷积神经网络-AlexNetLayerOutputParametersInput227*227*3Conv155*55*96(11*11*3+1)*96=34944MaxPool127*27*960Norm1Conv227*27*256(5*5*48+1)*128*2MaxPool213*13*2560Norm2Conv313*13*384(3*3*256+1)*384Conv413*13*384(3*3*192+1)*192*2Conv513*13*256(3*3*192+1)*128*2MaxPool36*6*2560Fc6+Dropout4096(6*6*128*2+1)*4096Fc7+Dropout4096(4096+1)*4096Fc81000(4096+1)*1000Details:
分组卷积
第一次使用ReLU data
augmentation dropout=0.5
batch-size=128 SGDmomentum=0.9 learning-rate=1e-2 L2weight-decay=5e-4 参数数量总数:60.9MB
卷积层参数:2.3MB,占总参数的3.8%
全连接层参数:58.6MB,占总参数量的96.2%卷积神经网络-AlexNet
牛津大学视觉几何计算组
深度增加&小卷积核
对网络最后的分类识别效果有很大作用
小卷积核:3*3:表示上下、左右、中心这些概念的最小卷积核尺寸
深度:AlexNet8层VGG最深19层SimonyanK,ZissermanA.VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition[J].ComputerScience,2014.卷积神经网络-VGGNet内存消耗(部分):结构部分:93MB参数部分:138MB*4B=526MB卷积层与全连接层全连接层之间卷积神经网络-VGGNetVGG-16的结构和参数量Details: 3*3conv-filter
conv-stride=1
pad=1Same 2*2pool-filter
pool-stride=2卷积神经网络-VGGNet实践部分实践:基于VGG系列网络的场景图像分类101基于ResNet系列模型的车辆图像分类实践卷积层pooling卷积层pooling……全连接Soft-max……y1y2ymX卷积层后接一个pooling层卷积神经网络CNN应用图像模式的一般框架2014ILSVRC冠军LeNetHubel&Wiesel早期尝试AlexNet历史突破DropoutReLUNINGoogLeNetInceptionV3,V4VGG网络加深InceptionV2,BN增加新的功能单元增强卷积模块功能ResNetet跳跃连接发展和演化使用MNIST数据集,这是最早用于数字识别的CNN2012ILSVRC远超第2名ZFNet,基于AlexNet,2013ILSVRC冠军2014ILSVRC,图像识别略差于GoogLeNet,但是在很多图像分析问题(比如objectdetection)上效果好2015年ILSVRC,
Classification获得第一名DenseNet密集连接2017年ILSVRC进一步降低Classification错误率卷积神经网络发展概述
牛津大学视觉几何计算组
深度增加&小卷积核
对网络最后的分类识别效果有很大作用
小卷积核:3*3:表示上下、左右、中心这些概念的最小卷积核尺寸
深度:AlexNet8层VGG最深19层SimonyanK,ZissermanA.VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition[J].ComputerScience,2014.卷积神经网络-VGGNet两个不同深度网络的比较(训练误差方面)一点直觉:
平凡网络中,为什么深度增加到一定程度后,训练的效果反而下降了?
梯度下降算法本身的缺陷
深度增加后,相比浅一些的网络来说梯度减小。误差传播过程变慢,网络的优化速度就慢
-卷积神经网络-ResNet
微软提出的神经网络,CVPR当年的最佳论文使用了恒等映射传统神经网络训练的函数为F(x)添加恒等映射后,神经网络训练的函数变为F(x)+x作者认为这样训练出来的网络,相当于是在对x作修正,修正的幅度就是F(x),F(x)在数学上称为残差所以作者提出的网络称为残差网络HeK,ZhangX,RenS,etal.DeepResidualLearningforImageRecognition[J].2015.卷积神经网络-ResNet卷积神经网络-ResNet卷积神经网络-ResNet卷积神经网络-ResNet实践部分实践:基于ResNet系列模型的车辆图像分类实践111基于VisionTransformer的CIFAR10分类可以看做一种通用的思想,指人们在工作时注意力往往会集中在整个场景中的某些焦点上重要的部分更加注意,不重要的部分忽略
注意力机制(Attention)
Transformer简介自Attention机制提出后,引入Attention的Seq2seq模型在各个任务上都有了提升Google提出了解决Seq2Seq问题的Transformer模型,使用全Attention结构代替传统的RNN建模机器翻译关键点
全Attention结构
多头注意力机制:Multi-HeadAttention
逐位置前馈网络:Position-WiseFeed-ForwardNetworksTransformer注意力机制
模型结构
Encoder:N层多头注意力层(+残差连接+层归一化)逐位置前馈网络(+残差连接+层归一化)Decoder:N层掩码多头注意力层(+残差连接+层归一化)交叉多头注意力层(+残差连接+层归一化)逐位置前馈网络(+残差连接+层归一化)线性映射解码层Transformer注意力机制
模型结构
Encoder:N层多头注意力层(+残差连接+层归一化)逐位置前馈网络(+残差连接+层归一化)Decoder:N层掩码多头注意力层(+残差连接+层归一化)交叉多头注意力层(+残差连接+层归一化)逐位置前馈网络(+残差连接+层归一化)线性映射解码层Transformer注意力机制首先将图片进行分块,展开(或CNN进行特征映射),做线性变换(形成与时间序列一致的输入);然后在块序列首位置添加虚拟开始块,用作后续的图像分类特征,使用Transformer-Encoder进行块编码;最后使用虚拟块表示作为分类向量,通过MLP进行分类AnImageisWorth16x16Words:TransformersforImageRecognitionatScale预训练-微调方法可学习1D位置编码VIT实践部分实践:基于VisionTransformer的CIFAR10分类118基于FasterRCNN模型的瓷砖瑕疵检测CatCatCatdog
duck分类定位目标检测目标检测:在给定的图片中精确找到物体所在位置,并标注出物体的类别。问题难点:物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。目标检测概述冷兵器时代:设计更强的特征GPU之美时代:网络结构,优化方法和损失函数设计同时得益于GPU的飞速发展和优秀数据集的出现目标检测发展历程PASCALVOC(ThePASCALVisualObjectClassification):
目标检测,分类,分割等领域一个有名的数据集。从2005到2012年,共举办了8个不同的挑战赛。PASCALVOC数据集包含20个类别,被看成目标检测问题的一个基准数据集。VOC2007中包含9,963张图片,共24,640个物体。VOC2012中包含11,540张图片,共27,450个物体。类别名称坐标目标检测-标注猫狗...dx,dy,dw,dh背景……分类任务边界框回归任务深度学习下的目标检测RossB.Girshick,JeffDonahue,TrevorDarrell,JitendraMalik,“RichFeatureHierarchiesforAccurateObjectDetectionandSemanticSegmentation,”CVPR2014输入图像提取候选检测框(约2000个)为每个候选检测框提取CNN特征为每个候选检测框进行分类第一阶段第二阶段R-CNN类似于一种层次聚类算法候选区域生成Selective
Search(SS,选择性搜索):
根据颜色、纹理、尺寸和空间交叠相似度提取约2000个regionproposal(候选区域)。R-CNN类似于一种层次聚类算法存在问题:对于每张图像,还需要额外的步骤提取region
proposal存储和重复地提取每个region
proposal的特征花费大量的存储和计算资源R-CNN候选区域生成KrizhevskyA,SutskeverI,HintonG.ImageNetClassificationwithDeepConvolutionalNeuralNetworks[C]//NIPS.CurranAssociatesInc.2012.全连接层需要固定输入的维度,因此需要确保输入到AlexNet网络的图像尺寸一致R-CNNWarpedregion(区域拉伸):通过Selective
Search产生的候选区域大小不一样,为了与CNN(AlexNet)兼容,R-CNN直接将所有的候选区域统一到227*227的尺寸。存在问题:将每个region
proposal统一成同样的尺寸,严重影响CNN提取特征的质量WarpedregionR-CNN统一尺寸特征提取:通过卷积神经网络提取CNN特征,用于分类。存在问题:保存所有的目标候选区域的特征大约占用了200G的空间。…R-CNN特征提取Classify
regions(区域分类):为每一个类(包括背景类)训练SVM。存在问题:SVM需要单独训练,使网络训练上更加复杂,随着类别的增加,训练SVM的个数也随之增加。此外,逐个执行SVM分类也将消耗较多的时间。人马...背景R-CNN特征提取对于得到是目标的区域,根据网络提取的特征训练了一个线性的回归模型,这个模型能够针对候选区域的pool5数据预测一个新的box位置dx,dy,dw,dh
R-CNN边界框回归GirshickR.FastR-CNN.arXive-prints,2015.输入图像为每个候选检测框提取CNN特征为每个候选检测框进行分类提取候选检测框(约2000个)FastR-CNN通过SS在图像中提取RoI->卷积网络提取特征->RoI
Pooling->全连接层->分类/边界框回归整幅图像输入卷积神经网络提取特征根据SS获得的RoI(RegionOfInterest),在特征图提取对应的特征得到的特征通过RoI
Pooling统一到相同的大小FastR-CNN提取整幅图像的特征,在特征上进行WrapFastR-CNNRoIPooling通过SS在图像中提取RoI->卷积网络提取特征->RoI
Pooling->全连接层->分类/边界框回归两个任务一起优化,互相促进和增强svm+bbox多任务损失(softmax+regressor)将分类损失和回归损失统一在同一个框架中FastR-CNNFastR-CNNFastR-CNN训练测试RenS,HeK,GirshickR,etal.Fasterr-cnn:Towardsreal-timeobjectdetectionwithregionproposalnetworks.arXiv,2015.输入图像为每个候选检测框提取CNN特征为每个候选检测框进行分类提取候选检测框(约2000个)FasterR-CNNStep1:提取整幅图象的特征Step2:通过RPN网络提取proposalsStep3:通过ROIPooling将proposals对应的特征图统一到相同的尺寸Step4:通过用于分类和边界框的全连接层,判断每一个Proposals的类别,并修正位置FasterR-CNN网络结构Regionproposal:AnchorBox:围绕着以Anchor为中心,以三组不同的纵横比ratio=[0.5,1,2]和三种尺度scale=[8,16,32],组合成9种不同的形状和大小的边框。用于预测的特征图上的每个点称之为Anchor通过各种方法(SS,RPN)提取得到可能存在目标的区域FasterR-CNNRPN网络每个anchorbox做二分类,目标/非目标每个anchorbox偏移在最后一层特征图上使用3*3的卷积核来滑动构建一个小的网络:(1)分类anchor区域内是否存在目标,由RPN网络可以定位出原图中可能存在物体的候选区域(2)回归anchor边界框的位置,边界框回归,使anchor位置更加精确滑动窗口在特征图上的位置,对应于原图上的位置FasterR-CNNRPN网络如何实现:通过RPN网络生成候选区域,不再依靠额外的候选区域生成算法(如SS)由RPN网络提取候选区域后,通过RoI
Pooling,将每个候选区域的特征统一到相同尺度后续将每个候选区域的特征送入两个分支分别计算类别和边界框回归FasterR-CNNStep1:提取整幅图象的特征Step2:通过RPN网络提取proposalsStep3:通过ROIPooling将proposals对应的特征图统一到相同的尺寸Step4:通过用于分类和边界框的全连接层,判断每一个Proposals的类别,并修正位置所有检测过程被统一到了一个网络之中:可以端到端训练和预测不需要额外存储中间数据FasterR-CNN网络结构实践部分实践:基于FasterRCNN模型的瓷砖瑕疵检测143基于YOLOV3模型的昆虫检测人马...dx,dy,dw,dh背景…图像中密集取样本框Step1:有目标:无目标:…Step2:人马...dx,dy,dw,dh背景两阶段方法一阶段方法深度学习下的目标检测方法输入一幅图片(300x300)将VGG16的FC6和FC7层转化为卷积层去掉所有的Dropout层和FC8层修改了最后一个Pool层的大小LiuW,AnguelovD,ErhanD,etal.Ssd:Singleshotmultiboxdetector,ECCV2016.SSD抽取Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2层的featuremap,分别用于检测将不同featuremap获得的检测结果,通过NMS(非极大值抑制)方法来抑制掉一部分重叠或者不正确的,生成最终的检测结果SSD对于一张特征图,在每一个位置上提取预设数量的default
box。对于每一个default
box,通过BN+卷积操作预测每个defaultbox的类别(目标类+背景类)和位置修正SSDdefaultboxSSDdefaultbox对于每个尺寸为m*n,通道数为p的特征层:SSD使用3*3*p的卷积核去产生对应于多个defaultboxes的物体概率分布(分类)和相对偏移(回归)SSDYOLO网络借鉴了GoogLeNet分类网络结构。不同的是,YOLO未使用inceptionmodule,而是使用1x1卷积层+3x3卷积层简单替代。RedmonJ,DivvalaS,GirshickR,etal.Youonlylookonce:Unified,real-timeobjectdetection,CVPR2016.YOLO-V1YOLO的检测速度非常快。在TitanX上,不需要经过批处理,标准版本的YOLO系统可以每秒处理45张图像;YOLO的极速版本可以处理150帧图像。YOLO在做预测的时候,使用的是全局图像。与slidingwindow和regionproposal这类方法不同,YOLO一次“看”一整张图像,所以它可以将物体的整体(contextual)的类别信息(classinformation)以及
外观信息(appearanceinformation)进行编码,背景错误分类为目标的概率低。YOLO学到物体更泛化的特征表示。当在自然场景图像上训练YOLO,再在艺术风格化图像的数据集上去测试YOLO时,YOLO的表现相比其他网络要好。YOLO模型能更好的适应新的领域。实时检测YouOnlyLookOnce:Unified,Real-TimeObjectDetectionYOLO-V1将输入的图像划分成S*S个网格(S=7)每个网格预测B个边界框和这个边界框是物体的概率(Objectness);具体的,每个边界框会预测出5个值:x,y,w,h和置信度Pr(Object)*IoU(truth&pred)每个网格预测C个类的概率训练时,有物体时Pr(Object)=1,否则Pr(Object)=0YOLO-V1算法流程每一个网格还要预测网格归属C个类别的概率:Pr(Classi|Object),即在一个栅格包含一个Object的前提下,它属于某个类的概率每个网格只预测一组(C个)类概率,而不考虑框B的数量YOLO-V1输出:7×7×30{即S*S*(B*5+C)}的TensorYOLO-V1批归一化(batchnormalization):批归一化有助于解决反向传播过程中的梯度消失和梯度爆炸问题,降低对一些超参数(比如学习率、网络参数的大小范围、激活函数的选择)的敏感性,每个batch分别进行归一化的时候,起到了一定的正则化效果(YOLO2不再使用dropout),从而能够获得更好的收敛速度和收敛效果。RedmonJ,FarhadiA.YOLO9000:better,faster,stronger,CVPR2017.YOLO-V2使用高分辨率图像微调分类模型(hi-resclassifier):YOLOV2在采用224*224图像进行分类模型预训练后,再采用448*448的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应448*448的分辨率。然后再使用448*448的检测样本进行训练,缓解了分辨率突然切换造成的影响。YOLO-V2采用先验框(AnchorBoxes):之前YOLO1并没有采用先验框,并且每个grid只预测两个boundingbox,整个图像98个,YOLO2如果每个grid采用9个先验框,总共有13*13*9=1521个先验框。YOLOv2移除了YOLOv1中的全连接层而采用了卷积和anchorboxes来预测边界框。YOLO-V2聚类提取先验框尺度(DimensionClusters):YOLO2对训练集中标注的边框进行聚类分析,以寻找尽可能匹配样本的边框尺寸。YOLO2在聚类时采用以下公式来计算两个边框之间的“距离”。YOLO-V2约束预测边框的位置(Directlocationprediction):FasterRCNN的先验框方法,在训练的早期阶段,其位置预测容易不稳定:
YOLO-V2NewNetworkDarknet-19:YOLOv2采用了一个新的骨干网络,称为Darknet-19,包括19个卷积层和5个maxpooling层。YOLO-V2层检测细粒度特征(passthrough):YOLO2引入一种称为passthrough层的方法在特征图中保留一些细节信息。YOLO-V2多尺度图像训练(Multi-ScaleTraining):为了增强模型的鲁棒性,YOLOv2采用了多尺度输入训练策略,具体来说就是在训练过程中每间隔一定的iterations之后改变模型的输入图片大小由于YOLOv2的下采样总步长为32,输入图片大小选择一系列为32倍数的值{320,352,…,608}YOLO-V2高分辨率图像的对象检测(hi-resdetector
):因为YOLOV2调整网络结构后能够支持多种尺寸的输入图像。YOLOV2使用高更分辨率的图象进行检测,获得更高的精度。YOLO-V2YOLO3采用了称之为Darknet-53的网络结构(含有53个卷积层),它借鉴了残差网络residualnetwork的做法,在一些层之间设置了快捷链路(shortcutconnections)。RedmonJ,FarhadiA.Yolov3:Anincrementalimprovement,arXiv,2018.YOLO-V3YOLOV3采用多尺度预测:卷积网络在在提取特征之后,用于检测的特征图相对比原图下采样了32倍。(416*416->13*13)。这时特征图的感受野比较大,适合检测图像中尺寸比较大的对象。之后特征图开始上采样,与之前的特征图融合,经过几个卷积层后得到16倍下采样的特征图。它具有中等尺度的感受野,适合检测中等尺度的对象。接下来,特征图继续上采样并与第36层特征图融合,最后得到8倍下采样的特征图。它的感受野最小,适合检测小尺寸的对象。YOLO-V3YOLO3延续YOLO2了K-means聚类得到先验框的尺寸的方法,为每种下采样尺度设定3种先验框,总共聚类出9种尺寸的先验框。
YOLO-V3以416*416的输入图像为例:在每个尺度的特征图的每个网格设置3个先验框,总共有13*13*3+26*26*3+52*52*3=10647个预测。每一个预测是一个(4+1+80)=85维向量,这个85维向量包含边框坐标(4个数值),边框置信度(1个数值),对象类别的概率(对于COCO数据集,有80种对象)
YOLO-V3实践部分实践:基于YOLOV3模型的昆虫检测169基于PP-YOLO模型的昆虫检测YOLOV3采用多尺度预测:卷积网络在在提取特征之后,用于检测的特征图相对比原图下采样了32倍。(416*416->13*13)。这时特征图的感受野比较大,适合检测图像中尺寸比较大的对象。之后特征图开始上采样,与之前的特征图融合,经过几个卷积层后得到16倍下采样的特征图。它具有中等尺度的感受野,适合检测中等尺度的对象。接下来,特征图继续上采样并与第36层特征图融合,最后得到8倍下采样的特征图。它的感受野最小,适合检测小尺寸的对象。YOLO-V3以416*416的输入图像为例:在每个尺度的特征图的每个网格设置3个先验框,总共有13*13*3+26*26*3+52*52*3=10647个预测。每一个预测是一个(4+1+80)=85维向量,这个85维向量包含边框坐标(4个数值),边框置信度(1个数值),对象类别的概率(对于COCO数据集,有80种对象)
YOLO-V3172YOLO-V4173PP-YOLO174PP-YOLO实践部分实践:基于PP-YOLO模型的昆虫检测176基于DETR模型的目标检测问题:目前的检测方法不是直接预测一个目标的集合,而是使用替代的回归和分类去处理大量的propoasls以及anchors。模型的效果会受到一系列问题的影响:后处理去消除大量重叠的预测、anchors的设计、如何把targetbox与anchor关联起来等问题。解决方案:简化上述流程,将目标检测视为集合预测(setprediction)的方式。好处是训练与预测变成真正的端到端,无需NMS的后处理,十分方便。同时,也不用人为地预设anchor。DETR引入由两部分组成:
encoder和decoder特点:
1.encoder中主要包括一个多头注
意力层和一个前馈神经网络层
2.decoder相比encoder多了一个注
意力层Vaswani,Ashish,etal."Attentionisallyouneed."arXiv,2017.Transformer结构Vaswani,Ashish,etal."Attentionisallyouneed."arXiv,2017.Transformer结构DETR的结构很简单,包括三个部分:提取图像特征的CNN,backbone可以采用主流的图像编码网络例如ResNet50等;编码-解码的transformer,encoder中带有positionencoding,decoder中输入了objectqueries;用来预测最终目标的前馈网络FFN,一个简单的三层前馈网络。DETR结构CNN代表图像特征编码的backbone,transformer的后面的输出就是最终预测的结果集合,假设固定为5个预测结果也就说网络输出就是5×4(框中心坐标与对应原图的长宽比例)和5×(C+1)两个tensor,分别对应框的预测和类别的预测,C表示总共的类别数,+1是背景类。DETR在一次解码的过程中,会推断出固定大小的N个预测集,其中N被设置为显著大于图像中对象的数量。二分图匹配方法实践部分实践:基于DETR模型的目标检测183基于U-Net模型实现宠物图像分割其本质是像素级的分类:对于图中的每一个像素给予一个像素级的label,即对于每一个像素归属到一个类别。什么是图像分割三种分割类型的定义:语义分割:给每个pixel分类实例分割:给每个检测框的里的object分mask全景分割:背景pixel分类+框里mask原始图像语义分割实例分割全景分割图像分割分类分割算法的基本流程:输入:图像(RGB)+标注图像算法:深度学习模型输出:分割图像训练过程:输入:image+label前向:out=model(image)计算损失:loss=loss_func(out,label)反向:loss.backward()更新权重:optimizer.minimize(loss)自适应学习,对图像变化相对不敏感基于深度学习图像分割方法One-hot编码融合输入语义标签基于深度学习图像分割方法早期方法视为逐像素分类,取待分类像素点为中心的局部图像,输入分类网络大量像素重复计算进行多个卷积层堆叠(使用thesamepadding以保持原有维度)整个网络中保持全分辨率的计算成本非常高基于深度学习图像分割方法一种主流方法是遵循编码器/解码器(encoder/decoder)结构:先对输入进行下采样,得到较低分辨率的特征映射,其学习到了如何高效地区分各个类。然后对这些特征进行上采样以得到一个原始分辨率的分割结果。基于深度学习图像分割方法U-Net也是编码器-解码器结构的一个经典网络。下采样上采样跳跃连接OlafRonneberger,PhilippFischer,ThomasBrox“U-Net:ConvolutionalNetworksforBiomedicalImageSegmentation”
MICCAI2015U-NetX0,0
X0,1
+X1,0
X1,1X2,0
X2,1X3,0X3,1X4,0下采样:优点:1.增加对输入图像的一些小扰动的鲁棒性;2.
减少过拟合的风险;3.
降低运算量;4.增大感受野。缺点:1.压缩信息,掩盖小目标上采样:优点:1.在下采样中恢复丢失的分辨率;2.指导编码器选择重要信息。缺点:1.无法准确恢复大目标边界细节。U-Net编码器遵循典型的卷积网络结构由两个重复的3*3卷积核组成一个用于下采样的步长为2的2*2最大池化操作在每一个下采样的步骤中,特征通道数量都加倍。U-Net解码器中,每一步都对特征图进行上采样用2*2的卷积核进行卷积运算,用于减少一半的特征通道数量再用两个3*3的卷积核进行卷积运算由于在每次卷积操作中,边界像素存在缺失问题,因此有必要对特征图进行裁剪。在最后一层,用1*1的卷积核进行卷积运算,将每个64维的特征向量映射到输出层。OlafRonneberger,PhilippFischer,ThomasBrox“U-Net:ConvolutionalNetworksforBiomedicalImageSegmentation”
MICCAI2015U-Net实践部分实践:基于U-Net模型实现宠物图像分割195基于DeepLabV3Plus模型的宠物图像分割*:DeepLab
是一个系列网络,目前为止一共有四个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年联合作战筹划工具应用考核试卷
- 关于银行大堂经理述职报告范文(17篇)
- 护理健康宣教报告模板-1
- 理赔部经理述职报告(3篇)
- 轧钢安全宣传标语讲解
- 个人医生述职报告集锦(13篇)
- 2023小学教导主任年终述职报告(31篇)
- 生产安全宣传插画讲解
- 职业暴露试题与答案
- 农学题目答案解析及答案
- 2026年天津市公安辅警笔试试题(含答案)
- (2026)政工师职称考试题库及参考答案
- 2026年江苏小升初(数学)真题试卷(含答案)
- 2026年杭州市农产品冷链仓储可行性研究报告
- 箱式电阻炉操作规程操作规程
- 2022中国功能性消化不良诊治专家共识课件
- 2026江苏省数据集团数字科技有限公司招聘笔试考试参考试题及答案
- 2026年北京市劳动合同范本三篇
- 《图形图像处理》课程标准
- 2026湖南株洲市消防救援支队消防文员招聘14人笔试参考题库及答案解析
- 2024年女性私护品市场调查报告
评论
0/150
提交评论