版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机视觉:目标检测:目标检测中的滑动窗口方法1计算机视觉与目标检测概述计算机视觉是一门研究如何使机器“看”的科学,它致力于理解、解释和处理视觉信息。目标检测作为计算机视觉中的一个核心任务,旨在识别图像或视频中的特定对象,并确定它们的位置和大小。这一技术在自动驾驶、安防监控、医学影像分析、无人机技术等领域有着广泛的应用。1.1滑动窗口方法的历史与重要性滑动窗口方法是目标检测领域中最早被广泛采用的技术之一。它的工作原理是通过在图像上移动一系列不同大小和比例的窗口,对每个窗口内的内容进行分类,以检测出目标对象。这种方法在20世纪90年代末至21世纪初得到了快速发展,尤其是在Viola和Jones于2001年提出的基于积分图的级联分类器中,滑动窗口方法被证明是一种高效的目标检测手段。1.1.1历史背景在滑动窗口方法出现之前,目标检测主要依赖于手工设计的特征和模板匹配。然而,这些方法在复杂背景和变化的光照条件下表现不佳。滑动窗口方法的提出,通过在图像上遍历所有可能的位置和尺度,结合机器学习算法(如支持向量机SVM)进行分类,大大提高了检测的准确性和鲁棒性。1.1.2重要性滑动窗口方法的重要性在于它为后续的目标检测技术奠定了基础。它引入了尺度不变性和位置不变性的概念,即目标检测算法应该能够不受目标大小和位置的影响。此外,它还促进了特征提取技术的发展,如Haar特征和HOG特征,这些特征在后续的检测算法中被广泛应用。1.2滑动窗口方法的原理滑动窗口方法的基本流程如下:初始化窗口大小和步长:选择一个窗口大小,通常从较小的尺寸开始,然后逐步增加。步长决定了窗口移动的距离,较小的步长可以提高检测精度,但会增加计算量。遍历图像:从图像的左上角开始,按照设定的步长和窗口大小在图像上滑动窗口,直到覆盖整个图像。特征提取:对于每个窗口,提取特征,如Haar特征或HOG特征,这些特征能够描述窗口内的图像内容。分类:使用训练好的分类器(如SVM)对每个窗口的特征进行分类,判断窗口内是否包含目标对象。非极大值抑制:对检测到的多个重叠目标进行处理,选择最有可能的检测结果,去除重复的检测框。1.2.1示例代码下面是一个使用Python和OpenCV实现的简单滑动窗口检测的示例代码:importcv2
importnumpyasnp
#加载图像
image=cv2.imread('example.jpg')
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#定义窗口大小和步长
window_size=(64,64)
step_size=(8,8)
#滑动窗口遍历图像
foryinrange(0,image.shape[0],step_size[1]):
forxinrange(0,image.shape[1],step_size[0]):
#提取窗口
window=gray[y:y+window_size[1],x:x+window_size[0]]
#特征提取(此处使用简单的边缘检测作为示例)
edges=cv2.Canny(window,100,200)
#分类(此处使用简单的阈值判断作为示例)
ifnp.sum(edges)>1000:#假设边缘总和大于1000表示可能有目标
print(f"目标可能位于({x},{y})")1.2.2代码解释在上述代码中,我们首先加载了一张图像,并将其转换为灰度图像。然后,我们定义了窗口的大小和步长,开始在图像上滑动窗口。对于每个窗口,我们使用Canny边缘检测算法提取特征,并通过简单的阈值判断来模拟分类过程。如果窗口内的边缘总和超过设定的阈值,我们假设该窗口内可能包含目标,并输出其位置。1.3滑动窗口方法的局限性尽管滑动窗口方法在目标检测领域有着重要的历史地位,但它也存在一些明显的局限性:计算效率:滑动窗口需要在图像上遍历所有可能的位置和尺度,这导致了巨大的计算量,尤其是在高分辨率图像上。尺度和比例问题:选择合适的窗口大小和比例对于检测不同大小的目标至关重要,但手动设定这些参数往往难以满足所有情况。背景复杂性:在背景复杂或目标与背景相似度高的情况下,滑动窗口方法容易产生大量的误报。1.4结论滑动窗口方法作为目标检测领域的一个里程碑,虽然在计算效率和适应性上存在局限,但它为后续的深度学习目标检测算法(如R-CNN、FastR-CNN、YOLO等)提供了重要的启发和基础。通过理解滑动窗口方法的原理和局限性,我们可以更好地欣赏现代目标检测技术的先进性和复杂性。2滑动窗口方法基础2.1滑动窗口的基本概念滑动窗口方法是计算机视觉中目标检测的一种基本策略。它通过在图像上移动一个窗口,逐个检查窗口内的区域是否包含目标对象。窗口的大小可以变化,以适应不同大小的对象。这种方法的核心在于遍历图像的每一个可能包含目标的区域,进行特征提取和分类。2.1.1原理滑动窗口方法的工作流程如下:初始化窗口大小:选择一个初始的窗口大小,通常从较小的尺寸开始。窗口遍历:在图像上以一定的步长移动窗口,覆盖图像的每一个部分。特征提取:对于每个窗口内的图像区域,提取特征,如颜色、纹理或形状特征。分类:使用目标分类器对提取的特征进行分类,判断窗口内是否包含目标对象。调整窗口大小:如果未检测到目标,调整窗口大小,重复步骤2至4。输出结果:当所有窗口和大小都检查完毕后,输出检测到的目标位置。2.1.2例子假设我们有一张640x480像素的图像,使用滑动窗口方法检测其中的行人。我们从32x32像素的窗口开始,以16像素的步长在图像上滑动,然后逐步增加窗口大小。importcv2
importnumpyasnp
#加载图像
image=cv2.imread('path/to/image.jpg')
#定义窗口大小和步长
window_size=(32,32)
step_size=16
#遍历图像
foryinrange(0,image.shape[0]-window_size[1],step_size):
forxinrange(0,image.shape[1]-window_size[0],step_size):
#提取窗口内的图像区域
window=image[y:y+window_size[1],x:x+window_size[0]]
#特征提取
features=extract_features(window)
#使用分类器进行分类
ifclassifier.predict(features)=='pedestrian':
#绘制边界框
cv2.rectangle(image,(x,y),(x+window_size[0],y+window_size[1]),(0,255,0),2)
#显示结果
cv2.imshow('DetectedPedestrians',image)
cv2.waitKey(0)
cv2.destroyAllWindows()2.2特征提取技术特征提取是滑动窗口方法中的关键步骤,它将图像区域转换为分类器可以理解的数值表示。常见的特征提取技术包括:HOG(HistogramofOrientedGradients):计算图像梯度的方向直方图,用于捕捉边缘和纹理信息。SIFT(Scale-InvariantFeatureTransform):检测和描述图像中的关键点,对尺度和旋转具有不变性。SURF(SpeededUpRobustFeatures):SIFT的快速版本,同样用于关键点检测和描述。2.2.1示例:HOG特征提取importcv2
importnumpyasnp
fromskimage.featureimporthog
#加载图像并转换为灰度
image=cv2.imread('path/to/image.jpg',0)
#定义HOG参数
hog_params={'orientations':9,
'pixels_per_cell':(8,8),
'cells_per_block':(2,2),
'block_norm':'L2-Hys'}
#提取HOG特征
features=hog(image,**hog_params)
#输出特征向量的形状
print("HOGFeaturesShape:",features.shape)2.3目标分类器简介目标分类器用于判断提取的特征是否代表目标对象。常见的分类器包括:SVM(SupportVectorMachine):支持向量机,用于寻找最佳的超平面来分类数据。AdaBoost:自适应增强算法,结合多个弱分类器形成一个强分类器。深度学习模型:如CNN(ConvolutionalNeuralNetworks),在大规模数据集上训练,可以自动学习特征。2.3.1示例:使用SVM进行分类fromsklearnimportsvm
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.metricsimportaccuracy_score
#假设我们有特征和标签数据
features=np.load('path/to/features.npy')
labels=np.load('path/to/labels.npy')
#划分训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(features,labels,test_size=0.2,random_state=42)
#训练SVM分类器
classifier=svm.SVC(kernel='linear')
classifier.fit(X_train,y_train)
#预测测试集
predictions=classifier.predict(X_test)
#计算准确率
accuracy=accuracy_score(y_test,predictions)
print("SVMAccuracy:",accuracy)通过上述示例和原理介绍,我们了解了滑动窗口方法在目标检测中的应用,以及如何使用HOG特征和SVM分类器进行具体操作。这些技术是计算机视觉领域中目标检测的基础,通过不断优化和调整,可以提高检测的准确性和效率。3滑动窗口方法的实现3.1选择窗口大小和步长滑动窗口方法是计算机视觉中目标检测的一种基本策略。它通过在图像上移动一系列不同大小的窗口来搜索潜在的目标。窗口的大小和步长是实现该方法的关键参数。3.1.1窗口大小窗口大小的选择取决于目标的预期尺寸。例如,如果目标是人脸,窗口大小可能需要覆盖人脸的平均尺寸。然而,由于目标可能出现在图像中的任何尺寸,通常需要使用多个窗口大小进行检测。3.1.2步长步长决定了窗口在图像上移动的速度。较小的步长可以更精细地搜索图像,但会增加计算成本。较大的步长则会更快,但可能会错过一些目标。3.1.3示例代码importcv2
importnumpyasnp
#加载图像
image=cv2.imread('example.jpg')
#定义窗口大小和步长
window_size=(100,100)
step_size=(10,10)
#定义窗口移动函数
defsliding_window(image,window_size,step_size):
foryinrange(0,image.shape[0],step_size[1]):
forxinrange(0,image.shape[1],step_size[0]):
yield(x,y,image[y:y+window_size[1],x:x+window_size[0]])
#使用滑动窗口函数
for(x,y,window)insliding_window(image,window_size,step_size):
clone=image.copy()
cv2.rectangle(clone,(x,y),(x+window_size[0],y+window_size[1]),(0,255,0),2)
cv2.imshow("Window",clone)
cv2.waitKey(1)
ifcv2.waitKey(1)&0xFF==ord('q'):
break
cv2.destroyAllWindows()这段代码定义了一个sliding_window函数,它在给定的图像上移动窗口,并返回窗口的坐标和内容。yield语句用于生成器,允许函数在每次调用时返回下一个窗口的位置和内容,而无需一次性处理整个图像。3.2多尺度检测由于目标可能出现在图像中的任何尺度,滑动窗口方法通常需要在多个尺度上进行检测。这可以通过调整窗口大小或使用图像金字塔来实现。3.2.1图像金字塔图像金字塔是一种图像表示,其中图像被多次下采样,形成一系列不同分辨率的图像。在目标检测中,可以在每个分辨率的图像上应用滑动窗口,从而检测不同尺度的目标。3.2.2示例代码#定义图像金字塔函数
defpyramid(image,scale=1.5,minSize=(30,30)):
yieldimage
whileTrue:
w=int(image.shape[1]/scale)
image=cv2.resize(image,(w,w))
ifimage.shape[0]<minSize[1]orimage.shape[1]<minSize[0]:
break
yieldimage
#使用图像金字塔和滑动窗口
forimageinpyramid(image):
for(x,y,window)insliding_window(image,window_size,step_size):
ifwindow.shape[0]!=window_size[1]orwindow.shape[1]!=window_size[0]:
continue
clone=image.copy()
cv2.rectangle(clone,(x,y),(x+window_size[0],y+window_size[1]),(0,255,0),2)
cv2.imshow("Window",clone)
cv2.waitKey(1)
ifcv2.waitKey(1)&0xFF==ord('q'):
break
cv2.destroyAllWindows()这段代码首先定义了一个pyramid函数,用于生成图像金字塔。然后,它在金字塔的每个图像上应用滑动窗口函数,从而在不同尺度上检测目标。3.3非极大值抑制非极大值抑制(Non-MaximumSuppression,NMS)是一种后处理技术,用于消除重叠的检测框。在滑动窗口方法中,由于窗口在图像上移动,可能会检测到同一目标的多个框。NMS通过比较这些框的重叠程度和置信度,选择最有可能的检测框,从而提高检测的准确性。3.3.1示例代码defnon_max_suppression(boxes,overlapThresh):
iflen(boxes)==0:
return[]
pick=[]
x1=boxes[:,0]
y1=boxes[:,1]
x2=boxes[:,2]
y2=boxes[:,3]
area=(x2-x1+1)*(y2-y1+1)
idxs=np.argsort(y2)
whilelen(idxs)>0:
last=len(idxs)-1
i=idxs[last]
pick.append(i)
suppress=[last]
forposinrange(0,last):
j=idxs[pos]
xx1=max(x1[i],x1[j])
yy1=max(y1[i],y1[j])
xx2=min(x2[i],x2[j])
yy2=min(y2[i],y2[j])
w=max(0,xx2-xx1+1)
h=max(0,yy2-yy1+1)
overlap=float(w*h)/area[j]
ifoverlap>overlapThresh:
suppress.append(pos)
idxs=np.delete(idxs,suppress)
returnboxes[pick]
#假设`boxes`是一个包含多个检测框的数组
#`overlapThresh`是重叠阈值,通常设置为0.3或0.5
#使用NMS函数
result_boxes=non_max_suppression(boxes,0.3)这段代码定义了一个non_max_suppression函数,它接受一个包含多个检测框的数组和一个重叠阈值。函数首先计算每个框的面积,然后按框的y坐标排序。在循环中,它选择面积最大的框,并计算其他框与该框的重叠程度。如果重叠程度超过阈值,其他框将被抑制。最后,函数返回一个包含非抑制框的数组。通过以上三个部分的详细讲解,我们了解了滑动窗口方法在目标检测中的实现原理,包括如何选择窗口大小和步长,如何在多尺度上进行检测,以及如何使用非极大值抑制来提高检测的准确性。这些技术是计算机视觉中目标检测的基础,通过适当的调整和优化,可以应用于各种实际场景。4滑动窗口方法的优化4.1金字塔图像表示在目标检测中,滑动窗口方法通常需要在不同尺度上进行搜索以检测不同大小的目标。为了提高效率,可以使用图像金字塔(ImagePyramid)来减少计算量。图像金字塔是一种多尺度表示,它通过创建一系列不同分辨率的图像副本,从粗到细地进行目标检测。4.1.1原理高斯金字塔:通过连续对图像进行下采样和高斯滤波,生成一系列分辨率逐渐降低的图像。拉普拉斯金字塔:通过高斯金字塔的差分,可以恢复原始图像的细节,但在目标检测中,我们主要使用高斯金字塔。4.1.2代码示例importcv2
importnumpyasnp
defbuild_pyramid(image,scale_factor=1.5,min_size=(30,30)):
"""
构建图像金字塔
:paramimage:输入图像
:paramscale_factor:缩放因子
:parammin_size:最小图像尺寸
:return:图像金字塔
"""
pyramid=[image]
whileTrue:
width=int(image.shape[1]/scale_factor)
height=int(image.shape[0]/scale_factor)
ifwidth<min_size[0]orheight<min_size[1]:
break
image=cv2.resize(image,(width,height))
pyramid.append(image)
returnpyramid
#加载图像
image=cv2.imread('path/to/your/image.jpg')
#构建金字塔
pyramid=build_pyramid(image)
#遍历金字塔中的每一层
forlayerinpyramid:
cv2.imshow('Layer',layer)
cv2.waitKey(0)
cv2.destroyAllWindows()4.2兴趣区域选择兴趣区域(RegionofInterest,ROI)选择是滑动窗口方法中的一种优化策略,它通过预先确定可能包含目标的区域,减少滑动窗口的搜索范围,从而提高检测速度。4.2.1原理基于颜色、纹理或形状的特征:使用这些特征来筛选出可能包含目标的区域。基于运动的特征:在视频序列中,可以利用帧间运动信息来确定兴趣区域。4.2.2代码示例importcv2
importnumpyasnp
defselect_roi(image,threshold=0.5):
"""
选择兴趣区域
:paramimage:输入图像
:paramthreshold:阈值
:return:兴趣区域
"""
#转换为灰度图像
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#应用边缘检测
edges=cv2.Canny(gray,100,200)
#查找轮廓
contours,_=cv2.findContours(edges,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
#筛选出面积大于阈值的轮廓
rois=[cv2.boundingRect(cnt)forcntincontoursifcv2.contourArea(cnt)>threshold]
returnrois
#加载图像
image=cv2.imread('path/to/your/image.jpg')
#选择兴趣区域
rois=select_roi(image)
#绘制兴趣区域
forroiinrois:
x,y,w,h=roi
cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow('SelectedROIs',image)
cv2.waitKey(0)
cv2.destroyAllWindows()4.3快速特征计算在滑动窗口方法中,特征计算是计算密集型的步骤。通过使用快速特征计算方法,如Haar特征或HOG特征,可以显著提高检测速度。4.3.1原理Haar特征:使用简单的矩形特征,通过积分图像可以快速计算特征值。HOG特征:计算图像中局部区域的梯度方向直方图,通过块归一化可以提高特征的鲁棒性。4.3.2代码示例importcv2
importnumpyasnp
defcompute_haar_features(image):
"""
计算Haar特征
:paramimage:输入图像
:return:特征值
"""
haar_cascade=cv2.CascadeClassifier('path/to/your/haar/cascade.xml')
features=haar_cascade.detectMultiScale(image,scaleFactor=1.1,minNeighbors=5)
returnfeatures
defcompute_hog_features(image):
"""
计算HOG特征
:paramimage:输入图像
:return:特征向量
"""
hog=cv2.HOGDescriptor()
features=pute(image)
returnfeatures
#加载图像
image=cv2.imread('path/to/your/image.jpg')
#转换为灰度图像
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#计算Haar特征
haar_features=compute_haar_features(gray)
#计算HOG特征
hog_features=compute_hog_features(gray)
#绘制Haar特征检测到的目标
for(x,y,w,h)inhaar_features:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('HaarFeatures',image)
cv2.waitKey(0)
cv2.destroyAllWindows()通过上述方法,滑动窗口的目标检测可以更加高效和准确。图像金字塔允许在不同尺度上进行搜索,兴趣区域选择减少了不必要的计算,而快速特征计算则加速了特征提取过程。这些优化策略在实际应用中是目标检测算法性能提升的关键。5案例研究与应用5.1行人检测5.1.1原理与内容行人检测是计算机视觉中的一个关键应用,尤其是在自动驾驶、安防监控等领域。滑动窗口方法是实现这一目标的一种基础技术。它通过在图像上移动一系列不同大小的窗口,对每个窗口内的内容进行分类,以检测行人是否存在。这一过程通常结合特征提取(如HOG特征)和分类器(如SVM)来完成。示例:使用OpenCV和HOG特征进行行人检测importcv2
importnumpyasnp
#加载预训练的HOG行人检测器
hog=cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
#读取图像
image=cv2.imread('path/to/image.jpg')
#调整图像大小以提高检测速度
image=cv2.resize(image,(640,480))
#检测行人
boxes,weights=hog.detectMultiScale(image,winStride=(4,4),padding=(8,8),scale=1.05)
#绘制检测框
for(x,y,w,h)inboxes:
cv2.rectangle(image,(x,y),(x+w,y+h),(0,0,255),2)
#显示结果
cv2.imshow('PedestrianDetection',image)
cv2.waitKey(0)
cv2.destroyAllWindows()5.1.2描述上述代码展示了如何使用OpenCV库中的HOG描述符和SVM分类器进行行人检测。首先,我们加载了预训练的HOG描述符,然后读取并调整图像大小。detectMultiScale函数用于在图像上滑动窗口并检测行人,返回的boxes包含了检测到的行人位置。最后,我们使用cv2.rectangle在图像上绘制检测框,并显示结果。5.2车辆识别5.2.1原理与内容车辆识别是另一个广泛应用的领域,特别是在交通监控和智能交通系统中。滑动窗口方法同样可以用于车辆的检测,通过在图像中移动窗口并应用特定的车辆特征(如颜色、形状)和分类器来识别车辆。示例:使用颜色特征进行车辆识别importcv2
importnumpyasnp
#读取图像
image=cv2.imread('path/to/image.jpg')
#转换为HSV颜色空间
hsv=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
#定义车辆颜色范围
lower_color=np.array([0,0,0])
upper_color=np.array([180,255,100])
#创建掩码
mask=cv2.inRange(hsv,lower_color,upper_color)
#应用滑动窗口
window_size=(64,64)
step_size=(16,16)
foryinrange(0,image.shape[0],step_size[1]):
forxinrange(0,image.shape[1],step_size[0]):
window=mask[y:y+window_size[1],x:x+window_size[0]]
ifnp.sum(window)>threshold:#假设threshold为预设的阈值
cv2.rectangle(image,(x,y),(x+window_size[0],y+window_size[1]),(0,255,0),2)
#显示结果
cv2.imshow('VehicleRecognition',image)
cv2.waitKey(0)
cv2.destroyAllWindows()5.2.2描述此代码示例展示了如何使用颜色特征进行车辆识别。首先,我们将图像从BGR颜色空间转换为HSV颜色空间,然后定义车辆可能的颜色范围并创建掩码。通过滑动窗口,我们检查每个窗口内的像素是否满足车辆颜色的条件,如果窗口内的像素总和超过预设阈值,我们就在图像上绘制一个矩形框,表示可能检测到的车辆。5.3面部检测5.3.1原理与内容面部检测在人脸识别、表情分析等领域有着广泛的应用。滑动窗口方法可以结合面部特征(如边缘、纹理)和分类器(如Haar特征分类器)来检测图像中的面部。示例:使用OpenCV的Haar特征进行面部检测importcv2
#加载预训练的Haar特征分类器
face_cascade=cv2.CascadeClassifier('path/to/haarcascade_frontalface_default.xml')
#读取图像
image=cv2.imread('path/to/image.jpg')
#转换为灰度图像
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#检测面部
faces=face_cascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30))
#绘制检测框
for(x,y,w,h)infaces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
#显示结果
cv2.imshow('FaceDetection',image)
cv2.waitKey(0)
cv2.destroyAllWindows()5.3.2描述这段代码使用OpenCV的Haar特征分类器进行面部检测。我们首先加载了预训练的分类器,然后读取图像并将其转换为灰度图像。detectMultiScale函数用于检测面部,返回的faces包含了检测到的面部位置。最后,我们使用cv2.rectangle在图像上绘制检测框,并显示结果。以上案例研究展示了滑动窗口方法在不同计算机视觉应用中的实现,包括行人检测、车辆识别和面部检测。通过调整窗口大小、步长和特征提取方法,滑动窗口可以适应各种不同的检测需求。6滑动窗口方法的局限性与未来方向6.1计算复杂度问题滑动窗口方法在计算机视觉的目标检测中,通过在图像上移动一系列不同大小的窗口来搜索目标。这种方法的计算复杂度主要来源于两个方面:窗口的数量和特征提取的计算量。6.1.1窗口数量在一张图像上,滑动窗口需要在多个尺度和位置上进行检测,这意味着需要处理大量的窗口。例如,假设我们使用一个16x16的窗口在一张640x480的图像上进行滑动,步长为8像素,那么在单个尺度上,窗口的数量为:#计算单个尺度下窗口的数量
image_width=640
image_height=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丰子恺杨柳课件
- 孟子成语 课件
- 第二单元(复习)-二年级语文上册单元复习(统编版)
- 西京学院《融媒体新闻编辑》2023-2024学年第一学期期末试卷
- 西京学院《剧本创作》2021-2022学年第一学期期末试卷
- 西京学院《工程定额原理》2021-2022学年第一学期期末试卷
- 西华师范大学《语文学科教学论》2023-2024学年第一学期期末试卷
- 《画世界名画》少儿美术教育绘画课件创意教程教案
- 西华师范大学《数学物理方法》2021-2022学年第一学期期末试卷
- 西华师范大学《软件及应用》2022-2023学年期末试卷
- 改革开放英语介绍-课件
- pet考试历届真题和答案
- 一年级下册美术课外C班课件-打地鼠 -全国通用
- 大学英语三级B真题2023年06月
- 2023年象山县特殊教育岗位教师招聘考试笔试模拟试题及答案解析
- GB/T 7909-2017造纸木片
- GB/T 25217.6-2019冲击地压测定、监测与防治方法第6部分:钻屑监测方法
- 中医学课件 治则与治法
- GB/T 17643-1998土工合成材料聚乙烯土工膜
- GB/T 14337-1993合成短纤维断裂强力及断裂伸长试验方法
- GB/T 10001.4-2021公共信息图形符号第4部分:运动健身符号
评论
0/150
提交评论