人工智能应用案例实践(微课视频版)课件全套 王海军 1.2 中文OCR项目体验-13.3 残次品检测_第1页
人工智能应用案例实践(微课视频版)课件全套 王海军 1.2 中文OCR项目体验-13.3 残次品检测_第2页
人工智能应用案例实践(微课视频版)课件全套 王海军 1.2 中文OCR项目体验-13.3 残次品检测_第3页
人工智能应用案例实践(微课视频版)课件全套 王海军 1.2 中文OCR项目体验-13.3 残次品检测_第4页
人工智能应用案例实践(微课视频版)课件全套 王海军 1.2 中文OCR项目体验-13.3 残次品检测_第5页
已阅读5页,还剩203页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.2中文OCR项目体验1.任务分析2.必备知识3.任务实施01任务分析任务分析很长一段时间以来,文本识别都是一个重要的关于文档数字化的关键任务,中文OCR项目旨在让读者通过实际操作学习和掌握如何使用计算机视觉技术识别和处理图像中的中文文字。本次任务中文OCR项目的应用体验,通过上传PDF文件实现文本的识别与提取。任务分析中文OCR项目是利用前沿的空间变换(Transformer)模型来实现端到端的中文文字识别。这种方法不仅提高了识别准确性,还简化了传统OCR系统中多阶段处理的复杂性,使整个文字识别过程更为高效和直接。通过本任务,读者将体验到Transformer模型在处理序列数据时的强大功能,特别是在处理具有复杂结构和多样化书写风格的中文文本中的应用。02必备知识:视觉智能视觉智能视觉智能是人工智能领域中一个极为重要的分支,涉及使计算机和机器能够从图像或多维数据源中解析视觉信息。这一领域融合了图像处理、模式识别、机器学习等多个学科的理论和技术,旨在模仿和扩展人类的视觉感知能力。图像处理基础图像获取与表示:图像是通过光学设备捕捉的,通常表示为像素矩阵,每个像素包含颜色和亮度信息。预处理技术:包括滤波、灰度转换、二值化等,这些技术帮助改善图像质量,为后续处理阶段准备数据。特征提取边缘检测:如Sobel和Canny算法,用于识别图像中的边缘,这是识别对象和理解场景的基础。纹理和形状分析:通过分析图像的纹理和形状,可以进一步提取出有用的信息,用于分类和识别。模式识别监督学习与无监督学习:监督学习通过已标记的数据学习识别模式,无监督学习则探索未标记数据中的结构。深度学习:深度神经网络,尤其是卷积神经网络(ConvolutionalNeuralNetwork,CNN),在图像识别和分类任务中表现出色。深度学习在视觉智能中的应用卷积神经网络:通过模拟视网膜的工作方式,CNN能够有效处理图像数据,自动从图像中学习特征。迁移学习:使用在大规模数据集上预训练的模型,来提高特定视觉任务的学习效率和性能。最新进展生成对抗网络(GenerativeAdversarialNetwork,GAN)和自编码器:用于图像生成和增强,改善视觉系统的表现。Transformer模型:虽然起源于自然语言处理,但现在也被广泛用于解决复杂的视觉任务,如图像分类、对象检测和更多。通过深入理解这些视觉智能的基本理论和技术,读者将能够更好地把握计算机视觉项目的核心要素,为实际应用中的问题解决和技术创新打下坚实的基础。03任务实施任务目标体验OCR技术的应用。能够启动OCR项目服务。能够获得并复制文字识别结果实施环境硬件软件资源高性能个人电脑人工智能边缘计算实训设备Debian/Ubuntu/Windows10(或11)/macOSPython3.10onnxruntime==1.12.1flask==3.1.0pyclipper==1.3.0.post6shapely==2.0.7pdf2image==1.17.0numpy==1.23.5测试.pdf测试1.pdf测试2.pdf2.1人脸图像处理1.任务分析2.必备知识3.任务实施01任务分析任务分析本任务将引导读者通过OpenCV对人脸图像进行有效的预处理,使其适合进行复杂的视觉分析,如眨眼检测。通过对人脸图像的噪声抑制、特征增强和对比度调整,我们能够显著提升图像质量,进而提高后续分析任务的准确性和效率。本任务的核心目标是应用各种图像滤波技术,如高斯模糊和边缘检测,为后续进行更深入的特征识别与分析准备图像。任务分析人脸图像处理主要分析和实施点包括:噪声消除:通过高斯模糊等方法减少图像噪声,为清晰的特征识别创造条件。特征增强:利用边缘检测算法,如Sobel或Canny算法,精确地突出人脸的边缘和关键特征,这对于识别面部表情和眼部动作至关重要。对比度调整:通过直方图均衡化改善图像的对比度,使面部的细节更加明显,便于后续的特征分析和识别。02必备知识:图像滤波线性滤波线性滤波通过一个滤波矩阵,与图像进行数学运算,从而改变图像的外观,可用于边缘增强、锐化、模糊等多种效果。使用线性滤波器时,计算图像的每一个像素点的邻域像素和滤波矩阵的对应元素的乘积,最后再相加,结果作为输出图像对应位置的像素值。均值模糊均值模糊是使用均值滤波将每个像素点的像素值,用该像素点周围邻域(包括该像素点本身)的平均像素值替代。从频域来看,均值滤波属于低通滤波,即过滤掉图像高频成分(图像细节部分),保留图像的低频成分(图像平滑区域),所以对图像进行均值滤波后,图像会变得模糊。消除尖锐噪声,实现图像平滑,模糊等功能。均值模糊均值滤波矩阵的定义,以窗口大小为3×3的均值滤波器为例,均值滤波矩阵的每个元素都为1/9。高斯模糊高斯模糊的原理是以图像的每个像素点为中心,取指定区域内所有像素的灰度值的加权平均值为像素灰度值。加权平均值是指距离中心越近的点的权重越大,越远的点的权重越小。进行高斯模糊时使用高斯函数生成高斯滤波矩阵,以3×3的矩阵为例,假定中心点的坐标是(0,0),那么取距离它最近的8个点坐标。高斯模糊高斯模糊的原理是以图像的每个像素点为中心,取指定区域内所有像素的灰度值的加权平均值为像素灰度值。加权平均值是指距离中心越近的点的权重越大,越远的点的权重越小。边缘检测滤波器边缘检测是图像分析中的一个关键步骤,用于识别图像中对象的边界。常用的边缘检测滤波器:SobelCannyLaplacian算法Sobel边缘检测Sobel边缘检测利用一个横轴方向的滤波器和纵轴方向的滤波器,分别求得图像的亮度差分,再计算平方和或者绝对值之和,得到近似梯度。横轴方向滤波器纵轴方向滤波器Sobel边缘检测Sobel边缘检测利用一个横轴方向的滤波器和纵轴方向的滤波器,分别求得图像的亮度差分,再计算平方和或者绝对值之和,得到近似梯度。(a)原始图像(b)使用了横轴滤波的边缘检测(c)使用了纵轴滤波的边缘检测(d)同时使用了横轴纵轴滤波的边缘检测Canny边缘检测Canny相比Sobel而言,要稍微复杂一点,它的计算步骤可以总结为以下4点:去噪:一般使用高斯滤波去除噪声。计算梯度:①计算梯度大小:使用Sobel算法计算x和y两个方向的梯度大小。②计算梯度方向:包含水平、垂直、45度、135度四个方向,利用x和y计算一个角度,这个角度用于下一步的非极大值抑制判断。非极大值抑制:一般通过Sobel计算出来的边缘不止一个像素,利用非极大值抑制保留局部最大的梯度点,起到细化边缘的作用。例如,如果计算出来某一点的梯度方向是45°,则它就跟它的右上角和左下角的点进行梯度比较,如果它的梯度最大,就认为它是边缘,保留它。Canny边缘检测Canny相比Sobel而言,要稍微复杂一点,它的计算步骤可以总结为以下4点:滞后阈值:二次判断,设置最小阈值minV和最大阈值maxV。如果计算出来的梯度小于minV,则将其抛弃,如果计算出来的梯度大于maxV,则将其保留。如果计算出来的梯度在minV~maxV之间,就分两种情况考虑:如果该点与边缘相连,则保留;如果该点与边缘不相连,则抛弃。对于阈值,如果设置的越小,保留的细节更丰富。Canny边缘检测(a)原始图像(b)使用了Canny边缘检测的图像Laplacian边缘检测Laplacian滤波矩阵(a)原始图像(b)使用了Laplacian边缘检测的图像3.1端点检测1.任务分析2.必备知识3.任务实施01任务分析任务分析语音端点检测(VoiceActivityDetection,VAD)是识别音频流中语音存在的起始和终止点的技术。该技术对于改进语音识别系统、减少处理无声段的计算资源消耗以及优化音频数据存储都非常关键。通过精确的端点检测,可以有效地区分语音和非语音部分,支持更复杂的声音处理任务如语音识别和声音追踪。本任务将指导读者使用基本的音频信号处理技术检测音频中的有效语音活动的方法,实现一个简单的端点检测模型,这是构建任何高效语音处理应用的基础。02必备知识:音频信号处理音频信号处理声音是自然界的物理信号,经过转换可得到数字语音信号。语音信号有三个重要的参数:声道数、取样频率和量化位数。声道数:指的是音频信号中独立声道的数量,它决定了声音的空间分布和定位能力。常见的声道数包括:单声道、双声道、2.1声道、四声道、5.1声道、7.1声道、杜比全景声;采样频率:指在数字音频系统中,每秒对模拟声音信号进行采样的次数。它决定了数字音频信号能够准确再现的最高频率。根据奈奎斯特-香农采样定理,为了无失真地再现一个信号,采样频率至少应该是信号最高频率的两倍。音频信号处理常见的采样频率有:8kHz:电话系统中常用的采样频率,可以提供基本的语音清晰度。16kHz:一些语音应用和低质量的音乐流媒体服务中使用,可以提供比电话更好的音质。22.05kHz:早期的CD音频标准之一,但现在已经不常用。44.1kHz:CD音频的标准采样频率,可以提供高质量的音乐播放。48kHz:电影和视频制作中常用的采样频率,它可以与视频的帧率很好地同步。96kHz:高分辨率音频中常用的采样频率,可以提供更宽的频率响应和更好的音质。192kHz:一些高端音频设备和专业录音中使用,可以提供极高的音质和频率响应。音频信号处理采样频率越高,数字音频信号能够准确再现的频率范围就越宽,音质通常也越好,但是,更高的采样频率也会导致更大的数据量和更高的处理要求。因此,在实际应用中,需要根据具体需求和资源限制来选择合适的采样频率。量化位数指的是在数字化过程中,用来表示每个样本的二进制位数(binarydigit,bit)。位数越高,可以表示的动态范围越大,声音的细节也就越丰富。常见的有8bit、16bit、24bit、32bit等。音频信号处理声音是由物体振动产生的机械波,通过介质(如空气、水或固体)传播。当物体振动时,它会使周围的介质分子或原子产生压缩和稀疏,形成连续的压缩波和稀疏波,这些波就是声波。声波图是声波的一种图形化的表示方法,用来展示声波的物理特性,包括振幅、频率和时间等。在波形图中,横轴表示时间,纵轴表示音频振动幅度,在每个时刻都有一个对应的音频值。波形图可以直观地展示声音的波形,包括波峰和波谷,以及声音的起始和结束。音频信号处理音频信号是模拟信号,我们需要将其保存为数字信号,才能对语音进行算法操作。模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。与模拟信号相对的是数字信号,数字信号是模拟信号的离散化表示,数字信号是在时间和幅度上都是离散的信号。音频信号采集在某些特定的时刻对模拟信号进行测量叫做采样,所得信号叫做离散时间信号。采样率越高,越接近模拟信号。每秒读取数千次样本,并记录表示该时间点声波高度的数字,可以用wav格式的音频文件(非压缩)进行保存。声波转换为数字,需要等间距点记录声波的高度。音频信号采集离散时间信号的特点:时间上离散,幅度上连续的信号。例如:输入电压的范围是0.0~0.7V,在t1时刻得到的采样值可以是0.2718V。问题:将0.2718V交给计算机去处理,如果计算机只能处理2位浮点型数值,那么就会出现信息丢失。把信号幅度取值的数目加以限定,由有限个数值组成的信号称为离散幅度信号,音频信号采集编码的含义是用预先规定的方法将文字、数字或其他信息编成二进制数码;用少量的基本符号,通过简单的组合表示大量复杂的信息。在计算机内部,信息只有经过数字化编码后才能够进行表示、存放和传递。量化位数和采样率都是时域中的参数。一段音频(声波)的变化曲线,从时域上看,其横轴表示时间t,纵轴表示幅度v(一般是电压)。那么,采样率44.1K表示每秒钟采样44100个点,也就是横轴上每隔(1/44100)秒采集一个点;而采到的每个点都用一个数值来表示其幅度(电压)。假设整个音频信号的变化幅度范围是-5V~+5V的话,我们将-5V~+5V分成65536份,那么采到的这些点的数值n(16位)转换成电压,就是(n×10/65536-5)V。因此,采样位数分解的是音频电压的幅度。音频信号采集采样率越高,量化位数越高,信号失真度就越小,所得数据占用存储空间就越大。音频信号采集如果采样频率不低于信号最高频率的两倍,就能把以数字表达的声音还原为原来的声音。例如:声音信号的最高频率是3400HZ,若采样频率为8000HZ,那么数字信号就能还原为原来的声音。声音文件的数据量计算公式如下:例如:请计算对于5分钟双声道、16位量化位数、44.1kHz采样频率声音的不压缩数据量是多少?

音频信号读取在数字语音信号处理中,可以实时采集语音信号进行处理,也可以从文件中读取语音数据进行处理;采集到的数字语音信号或处理后的语音数据通常需要写入文件进行保存。语音信号读写通常涉及到音频格式转换和数据压缩技术,以适应不同的存储和处理需求。常见的音频文件格式包括WAV,MP3,AAC等,其中WAV格式通常用于保持原始数据的完整性,而MP3和AAC则涉及到数据压缩,可能会丢失部分音质信息。使用适当的库,如Python中的wave或pydub,可以方便地实现音频的读写操作。03任务实施任务目标能够计算音频信号的短时能量。能够计算音频信号的过零率。能够使用双门限法进行端点检测。实施环境硬件软件资源高性能个人电脑人工智能边缘计算实训设备单声道麦克风Debian/Ubuntu/Windows10(或11)/macOSPython3.10wave、numpy==1.23.5wave/1~10.wav4.3异常行为聚类分析1.任务分析2.必备知识3.任务实施01任务分析任务分析本任务的关键在于应用聚类算法对行为数据进行无监督探索,以发现数据中潜在的模式和异常行为。聚类分析不依赖于标签数据,而是通过将相似的数据聚集在一起来识别群体特征。通过对这些群体的进一步分析,可以识别出偏离群体特征的异常行为,从而实现对异常的自动检测。聚类分析适用于探索数据中的潜在关系,特别是在未知标签或数据分布不明确的情况下。02必备知识:无监督学习无监督学习聚类算法是一类无监督学习方法,目的是将数据集中的样本根据相似性进行分组,使得相同组内的样本相似度最大化,而不同组之间的相似度最小化。聚类分析在探索数据结构、识别群体特征以及发现异常行为等方面有着广泛的应用。常见的聚类算法:K-means聚类DBSCAN聚类层次聚类无监督学习K-means聚类:K-means是一种基于划分的聚类算法,它通过迭代不断调整数据点的分组,使得组内数据点之间的距离最小化。K-means需要预先指定聚类的数量(K值),并通过随机选择初始中心点来开始聚类过程。K-means适用于大多数均匀分布的数据集,但对初始选择和K值较为敏感。无监督学习DBSCAN聚类:DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)是一种基于密度的聚类算法,它通过找到高密度区域来定义簇,可以有效处理具有噪声的数据集。与K-means不同,DBSCAN不需要预先定义簇的数量,适合用于形状不规则的簇和含有异常值的数据。无监督学习层次聚类:层次聚类是一种基于层次的聚类方法,通过递归地将样本合并或分裂形成层次结构。它通常生成一个聚类树(树状图),可以帮助理解数据之间的层次关系。层次聚类不需要预先指定簇的数量,但计算复杂度较高,适用于小规模数据集。03任务实施任务目标使用聚类算法对行为数据进行无监督学习。识别潜在的群体特征和异常行为。评估聚类结果的质量。提供基础数据支持以提升系统自动化能力。实施环境硬件软件资源高性能个人电脑人工智能边缘计算实训设备Debian/Ubuntu/Windows10(或11)/macOSPython3.10scikit-learn==1.3.2sklearn==0.0seaborn==0.13.2joblib==1.4.2pandas==2.2.3matplotlib==3.10.1numpy==1.23.5WISDM数据集5.2连续语音识别任务分析本任务将探索连续语音识别的技术,这是一种比孤立词识别更为复杂和动态的语音处理技术。连续语音识别涉及对自然语流中的语音进行实时解码和理解,允许系统连续无间断地处理长句对话。读者将学习如何应用CMUSphinx工具,这是一个开源的语音识别框架,能够支持连续语音识别的复杂需求。通过这项任务,读者将能够更深入地了解语音信号的连续性处理和实时解析技术,为解决实际应用中的语音识别挑战做好准备。1.任务分析2.必备知识3.任务实施01任务分析任务分析连续语音识别任务的分析主要集中于理解和处理自然语言流中的语音信息。这项任务要求系统能够理解连贯的语言表达,而非仅仅响应孤立的指令或单词。关键挑战包括处理语言的连续性、不同说话者的语音变化、以及背景噪声等因素。通过本任务,读者将学习如何配置和使用CMUSphinx,这是一种先进的语音识别系统,特别适用于处理连续的语音流。此外,读者也将深入了解声学模型和语言模型在连续语音识别中的应用,这对于实现高效和准确的语音识别系统至关重要。02必备知识:连续语音识别原理GMM-HMM模型音素不是同质的。频率的幅度从开始到结束都在变化。为了反映这一点,可用进一步将音素细分为三种状态:音素的开始,中间和结束部分。HMM模型将每个音素从一种状态更改为三种状态。GMM-HMM模型每个内部状态的可观察值将由GMM建模。GMM-HMM模型

GMM-HMM模型单词“two”的HMM拓扑,其中包含2个音素,每个音素具有三种状态,弧的标签代表声学模型。GMM-HMM模型给定一个音素𝑊观测值𝑋的可能性是通过所有可能路径的概率总和来计算的。在此模型中,每条路径由一系列状态(如beg、mid、end)按顺序连接而成。每条路径的概率等于该路径上每个状态转移的概率与在每个状态下生成观测值的发射概率的乘积。上下文相关音素语音的清晰度取决于前后的音素(协同发音)。声音根据单词内或单词间的周围环境而变化。例如,变音(音素的声音实现)可能会由于跨字边界的共发音而出现。邻近的音素会极大地影响语音变异性。例如,如果我们将手放在嘴前,当将/p/表示为“spin”而将/p/表示为“pin”时,我们会感觉到气流的不同。在构建复杂的声学模型时,我们不应该独立于其上下文来对待音素。音频框架的标签应包括音素及其上下文。如下图所示,对于音素/eh/,声谱图在不同的上下文中是不同的。Sphinx语音识别如何实现简单的英文和中文语音识别?方案1:训练自己的声学模型,那么:(1)需要创建一个新的语音或者方言的模型;(2)为小词汇的应用创建一个特定的模型;(3)有足够的大量的语音数据:单个人的话(控制指令)需要1小时的录音,200个人的话需要50小时的录音;(4)需要有语言的音素结构的知识;(5)有足够的时间去训练和优化(大概需要一个月)。Sphinx语音识别更好的解决方案:用模型增强比训练一个新的模型更有效。CMUSphinx(简称Sphinx)是美国卡内基梅隆大学开发的一系列语音识别系统的总称,也是一个领先的语音识别工具包,具有用于构建语音应用程序的各种工具,CMUSphinx包含许多用于不同任务和应用程序的开发包。CMUSphinx中的模型包括声学模型(acousticmodel)、语言模型(languagemodel)、发音字典(phoneticdictionary)。声学模型主要用于计算语音特征和每个发音模板之间的似然度,目的是为每个声学单元建立一套模型参数,通过不断地学习和改进得到概率最大的一组HMM模型参数。CMUSphinx的声学模型包含每个句子的声学特性,存在与上下文相关的模型,其包含属性(每个音素的最可能的特征向量)和依赖于上下文的(从具有上下文的语音建立的)属性。Sphinx语音识别语言模型定义了哪些单词可以遵循以前识别的单词,并通过剥离不可能的单词来帮助限制匹配过程。最常用的语言模型是N-gram语言模型,它包含单词序列的统计数据和有限状态语言模型,通过有限状态自动化(有时具有权重)来定义语音序列。发音字典包含了从单词(words)到音素(phones)之间的映射,作用是用来连接声学模型和语言模型。发音字典包含系统所能处理的单词的集合,并标明了其发音。通过发音字典得到声学模型的建模单元和语言模型建模单元间的映射关系,从而把声学模型和语言模型连接起来,组成一个搜索的状态空间用于解码器进行解码工作。03任务实施任务目标实现连续语音流处理。能够进行CMUSphinx配置和使用。能够用户交互测试。实施环境硬件软件资源高性能个人电脑人工智能边缘计算实训设备单声道麦克风扬声器Debian/Ubuntu/Windows10(或11)/macOSPython3.10jupyter-server==1.24.0jupyterlab-server==2.6.2notebook==6.0.3jupyterlab==3.1.19speechrecognition==3.14.2pocketsphinx==5.0.4

6.1深度学习框架基本使用1.任务分析2.必备知识3.任务实施01任务分析任务分析在深度学习过程中主要通过现有框架或者工具构建并训练模型,以及其他相关操作。本次任务主要了解Tensorflow和PyTorch两种框架的基本使用与原理。本任务的目的是帮助读者了解深度学习框架的基本概念与特点,然后通过案例掌握深度学习框架的基本使用,包括环境的导入、数据的定义与计算,并且比较不同框架在使用时的异同。02必备知识:深度学习框架深度学习基本概念美国计算机游戏和人工智能领域的先驱亚瑟·李·塞缪尔在1959推广了“机器学习”一词,可概括定义为:机器学习是机器从数据中自动学习,然后利用经验改善自身性能,在没有明确编程的情况下对未知数据进行预测。机器学习是人工智能的一个分支,是人工智能的一个实现途径。深度学习以人工神经网络为架构,对更大规模的数据进行表征学习。表征学习是让机器通过学习自动提炼数据的有效信息,形成数据特征。一般机器学习的过程经典机器学习的过程深度学习的过程机器学习的特点机器学习的特点可概括为以下3点:机器学习是一种数据驱动的技术。机器学习从历史数据中自动学习并自动改进。机器学习从数据或经验中自动改进性能。区别于传统的机器学习,深度学习的不同在于:深度学习强调模型结构的深度,通常包含5层及以上隐藏层。深度学习逐级表示越来越抽象的概念或模式,是具有多级表示的表征学习方法。主要的深度学习框架人工智能从学术理论研究到生产应用的产品化开发过程中通常会涉及到多个不同的步骤,人工智能开发包含环境安装、部署、测试,不断迭代改进模型准确性,进行性能调优,这些工作非常繁琐耗时也非常复杂。为了简化、加速和优化这个过程,机器学习框架或深度学习框架的使用非常重要。深度学习框架要么采用接口形式,要么采用库的形式,使开发人员能够无缝地开发深度学习模型。TensorFlow和PyTorch是现阶段最主流的、使用人数最多的两个深度学习框架。主要的深度学习框架TensorFlow由谷歌人工智能团队谷歌大脑(GoogleBrain)开发和维护,自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache2.0opensourcelicense)开放源代码。TensorFlow最著名的用例必须是谷歌翻译,以及自然语言处理、文本分类、摘要、语音/图像/手写识别、预测和标记等功能。TensorFlow是一个端到端开源深度学习平台,它的优势如下:强大的多种深度学习芯片支持。使用TensorBoard进行图形可视化和队列。优秀的文档和社区支持。主要的深度学习框架Torch是一个为机器学习算法提供广泛支持的科学计算框架。它是一个基于Lua的深度学习框架,在Facebook、Twitter和Google等行业巨头中广泛使用。Torch使用CUDA和C/C++库进行处理,旨在扩展建筑模型的生产和整体灵活性。Facebook于2017年1月开放了Torch的PythonAPI―PyTorch的源代码。与Torch不同,PyTorch在Python上运行,这意味着任何对Python有基本了解的人都可以开始构建他们的深度学习模型。主要的深度学习框架PyTorch主要用于构建深度神经网络和执行复杂度很高的多维数据计算,PyTorch的整个深度建模过程非常直接和透明。PyTorch的优势如下:擅长快速原型制作。对GPU的强大支持,可以在多个GPU上实现并行程序。提供更简洁的界面,更易于使用。支持与外部库的数据交换。张量张量即多维数组。张量相关要素包括元素类型和形状。张量的元素类型通常包含浮点型和整型数据,但是还有许多其他数据类型,如复杂的数值和字符串。张量的形状是指张量每个维度的长度(元素数量),即维数和每一维的长度。03任务实施任务目标构建激活并使用深度学习环境。能够导入深度学习组件与库。能够理解张量的基本概念与含义。能够定义张量并进行基本操作实施环境硬件软件资源GPU工作站人工智能边缘计算实训设备Debian/UbuntuPython3.10CUDA11.8+(有GPU服务器条件)tensorflow==2.10.0torch==2.4.0numpy==1.23.57.1车型识别1.任务分析2.必备知识3.任务实施01任务分析任务分析车型识别任务涉及从图像中识别和分类不同的车型。这是通过训练一个卷积神经网络来实现的,网络学习从车辆的视觉特征中抽取信息并进行有效分类。车型识别任务要求精确地从车辆图像中提取特征并分类。这一任务的成功实施依赖于强大的特征提取能力,卷积神经网络在这一领域表现出极高的效率和准确性。通过此任务,读者将深入了解CNN在处理和分类图像数据中的应用。02必备知识:卷积神经网络卷积运算人工智能在现阶段最主要的应用领域和方向之一就是计算机视觉。计算机视觉技术是使计算机模拟人类的视觉过程,具有类似人类视觉功能的技术。一般来说计算机视觉的基本任务包含识别、检测、定位和分割,最终目的是识别和理解图像和视频的内容。图像由像素构成的,每个像素又是由颜色构成的。一张彩色图,每一个像素都有RGB(即光学三原色)三个通道。所以,对于一张常1000×1000清晰度的图片,就会含有1000×1000×3个数值需要计算,这显然是一个庞大的数据。计算机视觉首先要解决图片特征提取或者表示的问题。卷积运算使用卷积运算进行特征提取使用二维卷积运算提取图像数据中的有用信息。可以将彩色图像视为像素的三维矩阵,在每一个颜色通道的矩阵上,为判断是否存在某个特征,定义不同大小(通常为3×3、5×5)的卷积核应用于输入矩阵。卷积运算填充和步长在卷积运算中,假设输入形状为,卷积核形状为,那么输出形状将是。假如输入的高度和宽度都为6,卷积核的高度和宽度都为3,步长为1,特征图的高度和宽度是4,小于输入矩阵大小。

卷积运算填充和步长特征图的大小不仅取决于输入矩阵和卷积核的大小,还受卷积核在图像上的移动方式的影响,即取决于步长和填充.填充通过向图像的外边界添加像素来控制特征图的尺寸。卷积运算填充和步长生成的特征图的尺寸将比原始输入图像的尺寸小,可能不利于模型的预测,为了解决这个问题,可以在图像周围添加填充,以便将边缘上的像素包含到输出特征中。使用3×3大小的卷积核,如果希望得到与输入图像相同大小的特征图,一般在输入图像周围添加1像素的填充,假如使用p表示填充,特征图计算公式为:

卷积神经网络基本概念卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈人工神经网络,其神经元连接模拟了动物的视皮层。CNN的主要组成部分是卷积层(ConvolutionalLayer)、池化层(PoolingLayer)、ReLU层(ReLULayer)、全连接层(FullyConnectedLayer)。03任务实施任务目标能够对训练数据进行基本的数据分析。能够使用tf.keras对训练和测试样本进行数据增强操作。能够使用tf.keras对训练过程进行可视化。能够使用tf.keras对神经网络模型进行保存与加载。实施环境硬件软件资源GPU工作站

人工智能边缘计算实训设备Debian/UbuntuCUDA12.5(有GPU服务器条件)Python3.10tensorflow==2.10.0scikit-learn==1.3.2sklearn==0.0pandas==2.2.3tqdm==4.67.1opencv-python==4.9.0.80numpy==1.23.5imutils==0.5.4Pillow==9.0.1scikit-image==0.18.3matplotlib==3.10.1seaborn==0.13.2Cars数据集8.2车辆跟踪任务分析车辆跟踪任务旨在实时跟踪视频中出现的车辆,通过对车辆在连续帧中的位置变化进行识别和记录,以实现车辆的轨迹追踪。在本任务中,读者将学习如何使用DeepSORT(深度简单在线和实时跟踪)等目标追踪算法,结合车辆检测的结果,保持对每辆车的持续识别和定位。这一技术在智能交通和安全监控中具有重要应用,如监控交通流量、识别可疑车辆、记录交通事件等。1.任务分析2.必备知识3.任务实施01任务分析任务分析车辆跟踪在实际应用中具有挑战性,因为车辆在视频中会出现遮挡、光照变化、方向变化等复杂情况,这些都可能导致追踪中断或识别错误。因此,车辆跟踪任务需要一种高效的目标跟踪算法来应对这些问题。视频是一系列图像以足够快的频率显示,人眼便可以感知其内容的连续性。所有图像处理技术都可以应用于单个帧。此外,两个连续帧的内容通常是密切相关的。视频中的对象检测需要验证图像序列中的对象,并精确定位以进行识别。目标跟踪在视频序列中监测目标的空间和时间变化(包括是否存在、位置、大小、形状等),通过解决时间对应问题解决连续帧中目标区域的匹配问题,所以,目标检测与跟踪密切相关。跟踪通常从检测对象开始,而在后续图像序列中则通过目标跟踪验证来检测相同对象。02必备知识:目标跟踪算法目标跟踪算法目标跟踪的任务是获取一组初始检测对象,为每个对象创建唯一ID,当对象在视频中帧周围移动时进行跟踪,维护ID分配。视频中不同时刻的同一对象,如果位置发生变化,应如何实现关联呢?目标跟踪算法1.匈牙利算法使用匈牙利算法可以判断当前帧的某个目标是否与前一帧的某个目标相同。匈牙利算法将前一帧中的跟踪框与当前帧中的检测框进行关联,通过外观信息和马氏距离或IOU来计算代价矩阵。目标跟踪算法2.卡尔曼滤波卡尔曼滤波基于目标前一时刻的位置,来预测当前时刻的位置,并且可以比传感器更准确地估计目标的位置。在目标跟踪中,卡尔曼滤波需要估计跟踪的两个状态,即均值和协方差。均值表示目标的位置信息,由检测框的中心坐标(cx,cy)、宽高比r、高h,以及各自的速度变化值组成,由8维向量表示为x=[cx,cy,r,h,vx,vy,vr,vh],各个速度值初始化为0。协方差表示目标位置信息的不确定性,用8×8的对角矩阵表示,矩阵中的数字越大则表明不确定性越大,可以以任意值初始化。卡尔曼滤波分为两个阶段:先预测跟踪目标在下一时刻的位置,然后基于检测结果来更新预测的位置。目标跟踪算法3.DeepSORT目标跟踪SORT的英文全称为SimpleOnlineandRealtimeTracking,使用简单的卡尔曼滤波处理逐帧数据的关联性,以及使用匈牙利算法进行关联度量。这种简单的算法在高帧速率下获得了良好的性能。但因为SORT模型忽略了被检测物体的表面特征,所以适合跟踪状态估计不确定性较低的物体。DeepSORT模型使用更加可靠的度量来代替关联度量,先使用卷积神经网络在大规模行人数据集中进行训练,然后提取特征,以增加网络对遗失和障碍的鲁棒性。目标跟踪算法3.DeepSORT目标跟踪DeepSORT模型对每帧的处理流程如下。检测器得到检测框bbox。生成检测结果detections。卡尔曼滤波预测。使用匈牙利算法将预测后的跟踪状态tracks和当前帧中的检测结果detecions进行匹配(级联匹配和IOU匹配)。卡尔曼滤波更新。目标跟踪算法3.DeepSORT目标跟踪DeepSORT模型的结构。目标跟踪算法

03任务实施任务目标使用DeepSORT模型对检测结果进行跟踪。正确处理并显示检测与跟踪结果。实施环境硬件软件资源GPU工作站人工智能边缘计算实训设备Debian/UbuntuPython3.10TensorFlow-GPU2.10UA-DETRAC数据集YOLOv3-tiny预训练模型数据集介绍UA-DETRAC是一个大规模车辆检测和车辆跟踪的数据集,其中包括在北京和天津的24个不同地点使用CannonEOS550D照相机拍摄的10小时的视频。视频以每秒25帧(FPS)的速度记录,分辨率为960像素×540像素。UA-DETRAC数据集中的视频超过14万帧,手动注释8250个车辆,有121万个标记的对象框。车辆分为四类,即轿车、公共汽车、厢式货车和其他车辆。天气情况分为三类,即多云、晴天和雨天,同时还包含夜间拍摄的车辆。标注的车辆的尺度定义为其像素面积的平方根。将车辆分为三种规模,即小型(0~50像素)、中型(50~150像素)和大型(大于150像素)。数据集介绍使用车辆包围框被遮挡的比例来定义遮挡的程度,遮挡程度分为三类,即无遮挡、部分遮挡和重遮挡。具体来说,定义了部分遮挡(如果车辆遮挡率在1%~50%)和重遮挡(遮挡率大于50%)。截尾率表示车辆部件在帧外的程度,用于训练样本的选择。9.1中文OCR数据集1.任务分析2.必备知识3.任务实施01任务分析任务分析本任务聚焦于车牌、身份证和票据等中文OCR数据集的准备与处理。为实现高精度的文字识别,数据集的构建尤为关键。任务包括收集车牌、身份证、票据等场景的图像数据,并进行数据清洗、标注和格式转换等预处理操作,为模型训练奠定坚实的数据基础。02必备知识:数据准备与处理数据集准备与处理流程1)数据收集为了训练一个能够识别车牌和身份证上中文字符的OCR模型,需要大量多样化的图像数据。这些图像应包括不同类型的车牌和身份证,涵盖各种字体、字符大小、角度、光照条件和背景复杂度。常见数据来源如下:公开数据集,搜索并下载公开可用的车牌和身份证图像数据集,如CCPD车牌数据集。自行采集,使用相机拍摄实际的车牌和身份证照片,注意保护个人隐私和遵守法律法规。合成数据,使用图像处理工具或脚本,生成模拟的车牌和身份证图像。数据集准备与处理流程2)数据标注:标注内容为每张图像提供精确的字符标签,包括字符内容和位置信息(如边界框坐标)。标注工具使用LabelImg等开源标注工具,可以方便地对图像中的字符进行标注。常用的标注格式有PascalVOC(XML)、COCO(JSON)等,确保格式统一,便于后续处理。数据集准备与处理流程3)数据增强:数据增强的目的是增强数据的多样性,提升模型的泛化能力,减少过拟合的风险。数据增强的方法包含:(1)几何变换,旋转、缩放、平移、剪切、透视变换等。(2)颜色变换,调整亮度、对比度、饱和度、色调等。(3)添加噪声,高斯噪声、椒盐噪声、模糊处理等。(4)遮挡与缺损,模拟真实环境中的遮挡情况,如部分字符被遮挡。数据集准备与处理流程4)数据划分:数据集需要划分为训练集、验证集、测试集,按照8:1:1的比例划分数据,确保每个子集的数据分布一致。数据划分实需要注意避免数据泄漏,即同一张或相似的图像不应出现在不同的子集中。数据集准备与处理流程5)数据预处理:数据预处理的方法包含:(1)尺寸统一,将图像调整到模型输入所需的尺寸,例如高度固定,宽度根据比例缩放。(2)归一化,将像素值归一化到[0,1]或[-1,1]区间,加速模型训练收敛。(3)字符编码,建立字符到索引的映射(词汇表),将字符标签转换为模型可处理的数字形式。数据集格式要求1)数据集组成车牌识别的数据集主要由两部分组成:(1)图像数据,包含车牌的图像,可以是照片或从视频中截取的帧。(2)标注数据,对应每张图像的标签信息,通常包括车牌字符序列,以及车牌在图像中的位置(可选)。数据集格式要求2)图像数据格式图像数据格式要求如下:(1)文件格式,常用的图像格式如JPEG、PNG等。(2)命名规范,为了方便管理和对应标注文件,建议采用统一的命名方式,例如0001.jpg、0002.jpg等。(3)分辨率,尽量保持图像清晰,分辨率适中。过大的图像可进行缩放处理,但需注意保持车牌区域的清晰度。(4)颜色模式,可使用RGB彩色图像,也可转换为灰度图像,根据实际需求选择。数据集格式要求3)标注数据格式格式类型内容说明数据格式说明格式示例纯文本格式每个图像对应一个文本文件,文件名与图像文件名相同,但扩展名为.txt文本文件中直接写入车牌号码,无需其他信息图像文件:0001.jpg标注文件:0001.txt标注内容:京A12345CSV格式使用一个CSV文件记录所有图像的标注信息每行包含图像文件名和对应的车牌号码,逗号分隔filename,label0001.jpg,京A123450002.jpg,沪B67890JSON格式使用JSON文件记录图像的标注信息,便于包含更多的字段,如车牌位置等键为图像文件名,值为包含标签和(可选)位置信息的对象{"0001.jpg":{"label":"京A12345","bbox":[50,100,200,150]},"0002.jpg":{"label":"沪B67890","bbox":[30,80,180,130]}}数据集格式要求4)数据集目录结构为了便于管理和访问,建议数据集组织方式如下:images/:存放所有的图像文件。labels/:存放对应的标注文件(如果使用纯文本格式)。annotations.csv/json:存放所有标注信息的CSV或JSON文件。dataset/├──images/│

├──0001.jpg│

├──0002.jpg│

└──...├──labels/│

├──0001.txt│

├──0002.txt│

└──...└──annotations.csv(或annotations.json)数据集格式要求5)标注内容详细说明车牌标注数据的内容包括车牌字符和位置信息。(1)车牌字符说明如下:① 字符集:包含车牌中可能出现的所有字符,包括中文省份简称(如“京”、“沪”)、字母(A-Z)和数字(0-9)。② 编码格式:确保文本文件使用UTF-8编码,以支持中文字符。(2)位置信息(可选)说明如下:① 用途:如果模型需要先检测车牌位置再进行识别,则需要提供车牌在图像中的位置信息。② 格式:使用边界框(boundingbox)表示,通常包含四个值[x_min,y_min,x_max,y_max],表示车牌区域的左上角和右下角坐标。数据集格式要求6)示例数据图像文件名:0001.jpg对应标注文件(纯文本格式):0001.txt,其内容如下:对应标注文件(JSON格式,含位置信息),其内容如下:粤B12345{"label":"粤B12345","bbox":[60,120,220,170]}03任务实施任务目标能够进行数据加载和读取。能够对数据进行增强操作。能够对数据进行拆分操作。实施环境硬件软件资源高性能个人电脑人工智能边缘计算实训设备Debian/UbuntuPython3.10opencv-python==4.9.0.80车牌数据集10.2图片超分辨率1.任务分析2.必备知识3.任务实施01任务分析任务分析超分辨率(Super-Resolution)通过硬件或软件方法提高原有图像的分辨率,通过一系列低分辨率图像得到高分辨率图像的过程就是超分辨率重建。超分领域包含单图像超分辨率(SingleImageSuper-Resolution,SISR)和视频超分(VideoSuper-Resolution,VSR),其实现技术涉及离散小波变换(DiscreteWaveletTransform)、视频插帧(VideoFrameInterpolatiion,VFI)及深度学习。本次实验使用GAN模型实现超分辨率。02必备知识:SRGAN模型SRGAN结构SRGAN模型不仅结合了GAN模型和SR模型,其独特之处还体现在损失函数的设计方面。生成模型包含多个残差块,每个残差块中包含两个3×3的卷积层,卷积层后接批量规范化层,使用PReLU作为激活函数。两个2×2亚像素卷积层(Sub-PixelConvolutionLayers)被用来增大特征尺寸。(a)生成器SRGAN结构SRGAN模型不仅结合了GAN模型和SR模型,其独特之处还体现在损失函数的设计方面。判别网络包含8个卷积层,随着网络层数的加深,特征个数不断增加,特征尺寸不断减小,选取的激活函数为LeakyReLU,最终通过两个全连接层和最终的Sigmoid激活函数得到预测为自然图像的概率。(b)判别器SRGAN模型评估指标SRGAN模型的评价指标包含峰值信噪比(PeakSignal-to-NoiseRatio,PSNR)、结构相似性指数(StructuralSimilarityIndexMeasure,SSIM)、平均意见得分(MeanOpinionScore,MOS)。对评价指标介绍如下:(1)PSNR:衡量图像质量的指标。(2)SSIM:分别从亮度、对比度、结构三方面度量图像相似性。(3)MOS:衡量主观质量。03任务实施任务目标能够使用Tensorflow构建SRGAN模型。能够定义SRGAN模型的损失函数。能够实现SRGAN模型的基本训练过程。实施环境硬件软件资源GPU工作站人工智能边缘计算实训设备Debian/UbuntuCUDA12.5(有GPU服务器条件)Python3.10tensorflow==2.10.0numpy==1.24.4pillow==11.2.1matplotlib==3.10.1数据预处理、部分训练源码预训练模型11.2安全帽检测任务分析安全帽检测任务旨在通过深度学习模型自动识别生产场所(如工地、工厂等)中工人是否佩戴安全帽,保障作业人员的安全。1.任务分析2.必备知识3.任务实施01任务分析任务分析安全帽检测任务的核心目标是识别作业场所中工人是否正确佩戴安全帽,以保障作业安全。与其他目标检测任务相比,该任务具有以下特点和挑战:目标特征相似性:安全帽的外观颜色和形状在多数情况下较为一致,而背景复杂多变(如建筑工地、工业厂房等),容易导致误检或漏检。检测实时性要求:由于作业场所人员流动性较强,检测系统需具备实时响应能力,以及时发现安全隐患。环境多样性:室内外光照变化、工地灰尘遮挡以及拍摄角度的差异,增加了模型泛化能力的要求。任务分析为了应对这些挑战,本任务采用轻量化的YOLOv3-MobileNet模型:YOLOv3:具备良好的检测性能,能够在不同的尺度上精确定位目标。MobileNet:通过深度可分离卷积技术降低计算成本,使模型适用于资源受限的设备(如移动端和嵌入式设备)。通过利用该模型的高效性和轻量化特点,可以在复杂场景下实现高精度的安全帽检测,有效辅助生产安全管理。02必备知识:YOLOv3-MobileNet模型MobileNet模型

MobileNet模型

MobileNet模型

MobileNet模型除了第一个卷积层是普通卷积,后面的都是深度可分离卷积。所有层(除了最后一个全连接层)后面都是一个BN层和ReLU层,最后的全连接层后面是SoftMax层进行分类。03任务实施任务目标能够对检测数据进行预处理。能够加载检测模型。能够进行模型检测。实施环境硬件软件资源人工智能边缘计算实训设备高性能个人电脑单目摄像头Debian/UbuntuPython3.10mxnet==1.5.0opencv-python==4.9.0.80gluoncv==0.10.5.post0torch==1.11.0torchvision==0.12.0训练好的检测模型运行结果12.2人脸属性识别任务分析人脸属性识别任务旨在通过分析人脸图像提取特定属性(如性别、年龄、情绪等),实现对个体特征的精准理解。利用机器学习模型,系统可以从复杂背景中提取人脸信息,并进行属性分类与预测。本任务专注于人脸属性的识别流程,为个性化推荐、身份验证和智能交互等应用提供基础技术支持。本任务执行结果如图所示,左上角数字(35)代表年龄,蓝色框,男性;红色框,女性。1.任务分析2.必备知识3.任务实施01任务分析任务分析人脸属性识别是通过对人脸图像的特征分析,提取如性别、年龄、情绪等属性的一种计算机视觉任务。相较于人脸检测,人脸属性识别要求对面部区域进行更深层次的特征提取与分类,具有以下几个关键点:(1)多样性与复杂性:人脸属性识别需要应对多样化的面部特征,例如不同年龄、性别和情绪状态下的显著差异,同时处理光照、表情、遮挡等复杂环境因素。(2)特征提取:系统需从面部图像中提取关键特征点(如眼睛、鼻子、嘴巴等),并通过模型学习特征与属性的关系,实现分类或回归。(3)任务目标的多样性:人脸属性通常为多标签任务,不同属性(如性别、年龄和表情)需要独立预测,模型需具备多任务学习能力。(4)模型精度与实时性:在实际场景中,人脸属性识别系统需要同时兼顾识别的准确率和响应速度,确保在复杂背景中提供稳定的识别结果。02必备知识::MTCNN模型MTCNN模型MTCNN(Multi-taskCascadedConvolutionalNetworks,多任务级联卷积网络)是一种高效的人脸检测与关键点定位模型。它通过多任务学习框架,实现了人脸检测和面部特征点定位的统一处理,是人脸属性识别的重要基础。MTCNN由三个级联的子网络组成,分别完成不同阶段的检测任务。MTCNN模型

P-Net(ProposalNetwork,候选区域网络):快速筛选输入图像中的候选人脸区域。输出可能含有面部的候选框,并进行初步回归以调整候选框位置。MTCNN模型

R-Net(RefineNetwork,候选区域优化网络):对P-Net提供的候选框进行进一步筛选,过滤误检区域,提供更精确的候选框回归。MTCNN模型

Net(OutputNetwork,输出网络):对R-Net筛选后的候选框进行最终检测,预测关键点位置(如眼睛、鼻子、嘴巴等)并进一步优化候选框。MTCNN的关键特点(1)多任务学习:同时完成人脸检测和面部关键点定位,提升模型效率。(2)级联结构:通过逐步细化候选框,减少计算量,提高检测精度。(3)高效性与准确性:在实时性和准确率之间取得良好平衡,适用于复杂背景中的人脸检测。MTCNN的关键特点(1)人脸检测:MTCNN可从图像中快速提取人脸区域,为后续属性识别提供输入。(2)关键点定位:精准定位面部关键点,为属性分析(如:表情、年龄)提供可靠特征。(3)增强多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论