計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取_第1頁
計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取_第2頁
計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取_第3頁
計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取_第4頁
計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)視覺:3D視覺:點(diǎn)云處理與特征提取1點(diǎn)云基礎(chǔ)1.1點(diǎn)云數(shù)據(jù)結(jié)構(gòu)點(diǎn)云數(shù)據(jù),通常由3D掃描設(shè)備或深度相機(jī)獲取,是三維空間中一系列點(diǎn)的集合。每個點(diǎn)包含至少三個坐標(biāo)信息(x,y,z),以及可能的附加信息,如顏色、強(qiáng)度或法線方向。在計算機(jī)視覺中,點(diǎn)云數(shù)據(jù)結(jié)構(gòu)可以是簡單的數(shù)組或更復(fù)雜的樹形結(jié)構(gòu),如kd樹或八叉樹,以提高數(shù)據(jù)處理效率。1.1.1示例:使用Python和NumPy處理點(diǎn)云數(shù)據(jù)importnumpyasnp

#創(chuàng)建一個簡單的點(diǎn)云數(shù)據(jù)

points=np.array([

[1.0,2.0,3.0],

[4.0,5.0,6.0],

[7.0,8.0,9.0]

])

#計算點(diǎn)云的中心

center=np.mean(points,axis=0)

print("點(diǎn)云中心:",center)

#計算點(diǎn)云的范圍

min_point=np.min(points,axis=0)

max_point=np.max(points,axis=0)

range=max_point-min_point

print("點(diǎn)云范圍:",range)1.2點(diǎn)云獲取方法點(diǎn)云可以通過多種方式獲取,包括但不限于激光雷達(dá)(LiDAR)、結(jié)構(gòu)光掃描、立體視覺和深度相機(jī)。每種方法都有其特定的應(yīng)用場景和優(yōu)缺點(diǎn)。1.2.1激光雷達(dá)(LiDAR)激光雷達(dá)通過發(fā)射激光脈沖并測量反射時間來確定距離,從而生成點(diǎn)云。它在自動駕駛、地形測繪和環(huán)境監(jiān)測等領(lǐng)域廣泛應(yīng)用。1.2.2深度相機(jī)深度相機(jī),如微軟的Kinect或英特爾的RealSense,使用紅外線或結(jié)構(gòu)光技術(shù)來測量場景中每個像素的深度,從而生成點(diǎn)云。這種技術(shù)在室內(nèi)環(huán)境和實(shí)時應(yīng)用中特別有效。1.3點(diǎn)云預(yù)處理技術(shù)點(diǎn)云預(yù)處理是將原始點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為更易于分析和處理的形式的過程。這包括去除噪聲、填充缺失數(shù)據(jù)、點(diǎn)云配準(zhǔn)和點(diǎn)云分割等步驟。1.3.1示例:使用Python和Open3D庫進(jìn)行點(diǎn)云預(yù)處理importopen3daso3d

#讀取點(diǎn)云數(shù)據(jù)

pcd=o3d.io.read_point_cloud("path/to/pointcloud.ply")

#可視化原始點(diǎn)云

o3d.visualization.draw_geometries([pcd])

#去除噪聲

pcd_down=pcd.voxel_down_sample(voxel_size=0.02)

#填充缺失數(shù)據(jù)

pcd_down.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1,max_nn=30))

#點(diǎn)云配準(zhǔn)

source=o3d.io.read_point_cloud("path/to/source.ply")

target=o3d.io.read_point_cloud("path/to/target.ply")

result=o3d.pipelines.registration.registration_icp(

source,target,max_correspondence_distance=0.05,

init=np.identity(4),

estimation_method=o3d.pipelines.registration.TransformationEstimationPointToPoint()

)

print("配準(zhǔn)變換矩陣:",result.transformation)

#點(diǎn)云分割

plane_model,inliers=pcd_down.segment_plane(distance_threshold=0.01,

ransac_n=3,

num_iterations=1000)

inlier_cloud=pcd_down.select_by_index(inliers)

outlier_cloud=pcd_down.select_by_index(inliers,invert=True)

o3d.visualization.draw_geometries([inlier_cloud,outlier_cloud])以上示例展示了如何使用Open3D庫讀取點(diǎn)云數(shù)據(jù),進(jìn)行去噪、填充缺失數(shù)據(jù)、配準(zhǔn)和分割等預(yù)處理步驟。這些步驟是點(diǎn)云處理中常見的,有助于提高后續(xù)分析和特征提取的準(zhǔn)確性。2點(diǎn)云處理算法2.1點(diǎn)云配準(zhǔn)點(diǎn)云配準(zhǔn)是3D視覺中一個關(guān)鍵步驟,用于將多個點(diǎn)云數(shù)據(jù)集對齊到同一坐標(biāo)系下,從而可以進(jìn)行后續(xù)的融合、分析和建模。配準(zhǔn)過程通常涉及估計點(diǎn)云之間的相對變換,包括旋轉(zhuǎn)和平移。2.1.1算法原理點(diǎn)云配準(zhǔn)的常用算法之一是迭代最近點(diǎn)算法(IterativeClosestPoint,ICP)。ICP算法通過迭代地尋找源點(diǎn)云和目標(biāo)點(diǎn)云之間的最近點(diǎn)對,并基于這些點(diǎn)對估計變換,然后將源點(diǎn)云變換到目標(biāo)點(diǎn)云的坐標(biāo)系中,直到滿足收斂條件。2.1.2代碼示例使用Python和open3d庫進(jìn)行點(diǎn)云配準(zhǔn)的示例:importnumpyasnp

importopen3daso3d

#加載點(diǎn)云

source=o3d.io.read_point_cloud("source.pcd")

target=o3d.io.read_point_cloud("target.pcd")

#定義初始變換

current_transformation=np.identity(4)

#ICP配準(zhǔn)

reg_p2p=o3d.pipelines.registration.registration_icp(

source,target,0.02,current_transformation,

o3d.pipelines.registration.TransformationEstimationPointToPoint())

#輸出配準(zhǔn)結(jié)果

print(reg_p2p.transformation)2.1.3數(shù)據(jù)樣例假設(shè)我們有兩個點(diǎn)云文件source.pcd和target.pcd,分別代表了兩個不同視角下的同一場景。通過上述代碼,我們可以將source.pcd配準(zhǔn)到target.pcd的坐標(biāo)系下。2.2點(diǎn)云分割點(diǎn)云分割是將點(diǎn)云數(shù)據(jù)集分割成多個有意義的子集的過程,這些子集可以代表不同的物體或場景的組成部分。分割有助于后續(xù)的物體識別和場景理解。2.2.1算法原理區(qū)域增長算法是一種常用的點(diǎn)云分割方法。它從一個或多個種子點(diǎn)開始,根據(jù)點(diǎn)之間的相似性(如距離、法線方向等)逐步將相鄰的點(diǎn)添加到同一個區(qū)域中,直到滿足停止條件。2.2.2代碼示例使用Python和open3d庫進(jìn)行點(diǎn)云分割的示例:importnumpyasnp

importopen3daso3d

#加載點(diǎn)云

pcd=o3d.io.read_point_cloud("input.pcd")

#定義分割參數(shù)

dist_threshold=0.05

min_points=100

#區(qū)域增長分割

labels=np.array(pcd.cluster_dbscan(eps=dist_threshold,min_points=min_points,print_progress=True))

#將分割結(jié)果可視化

max_label=labels.max()

colors=plt.get_cmap("tab20")(labels/(max_labelifmax_label>0else1))

colors[labels<0]=0

pcd.colors=o3d.utility.Vector3dVector(colors[:,:3])

o3d.visualization.draw_geometries([pcd])2.2.3數(shù)據(jù)樣例假設(shè)我們有一個點(diǎn)云文件input.pcd,其中包含多個物體的點(diǎn)云數(shù)據(jù)。通過上述代碼,我們可以將點(diǎn)云分割成不同的區(qū)域,并使用不同的顏色來可視化這些區(qū)域。2.3點(diǎn)云降噪點(diǎn)云降噪是去除點(diǎn)云數(shù)據(jù)中的噪聲點(diǎn),以提高后續(xù)處理的準(zhǔn)確性和效率。噪聲點(diǎn)可能由傳感器誤差、環(huán)境因素或數(shù)據(jù)處理過程中的問題引起。2.3.1算法原理統(tǒng)計濾波是一種點(diǎn)云降噪方法,它基于點(diǎn)云中每個點(diǎn)的鄰域統(tǒng)計信息(如平均距離)來識別和移除噪聲點(diǎn)。2.3.2代碼示例使用Python和open3d庫進(jìn)行點(diǎn)云降噪的示例:importnumpyasnp

importopen3daso3d

#加載點(diǎn)云

pcd=o3d.io.read_point_cloud("noisy.pcd")

#統(tǒng)計濾波降噪

cl,ind=pcd.remove_statistical_outlier(nb_neighbors=20,std_ratio=2.0)

inlier_cloud=pcd.select_by_index(ind)

#可視化降噪后的點(diǎn)云

o3d.visualization.draw_geometries([inlier_cloud])2.3.3數(shù)據(jù)樣例假設(shè)我們有一個點(diǎn)云文件noisy.pcd,其中包含噪聲點(diǎn)。通過上述代碼,我們可以使用統(tǒng)計濾波方法來移除這些噪聲點(diǎn),得到一個更干凈的點(diǎn)云數(shù)據(jù)集。以上示例代碼和數(shù)據(jù)樣例展示了點(diǎn)云處理中配準(zhǔn)、分割和降噪的基本操作。在實(shí)際應(yīng)用中,可能需要根據(jù)具體的數(shù)據(jù)和任務(wù)調(diào)整算法參數(shù),以獲得最佳的處理效果。3點(diǎn)云特征類型點(diǎn)云特征在3D視覺中扮演著關(guān)鍵角色,它們是描述點(diǎn)云結(jié)構(gòu)和形狀的數(shù)學(xué)表示。點(diǎn)云特征可以分為幾類,包括:局部特征:描述點(diǎn)云中單個點(diǎn)或其鄰域的屬性,如法線方向、曲率等。全局特征:反映整個點(diǎn)云的屬性,如點(diǎn)云的體積、表面積等。區(qū)域特征:介于局部和全局特征之間,描述點(diǎn)云中特定區(qū)域的屬性。3.1示例:局部特征-法線計算importnumpyasnp

importopen3daso3d

#加載點(diǎn)云數(shù)據(jù)

pcd=o3d.io.read_point_cloud("path_to_point_cloud.ply")

#計算法線

pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1,max_nn=30))

#可視化點(diǎn)云及其法線

o3d.visualization.draw_geometries([pcd])4特征提取方法特征提取方法旨在從點(diǎn)云中自動識別和提取有意義的特征。常見的方法包括:基于鄰域的方法:如PCA(主成分分析)、SHOT(SignatureofHistogramsofOrienTations)等?;谏疃葘W(xué)習(xí)的方法:如PointNet、PointNet++等,它們能夠?qū)W習(xí)點(diǎn)云的復(fù)雜表示。4.1示例:使用PointNet提取特征importtorch

importtorch.nnasnn

frompointnetimportPointNetfeat

#定義PointNet特征提取模型

classPointNetFeatureExtraction(nn.Module):

def__init__(self):

super(PointNetFeatureExtraction,self).__init__()

self.feat=PointNetfeat(global_feat=True)

defforward(self,x):

x,_=self.feat(x)

returnx

#初始化模型

model=PointNetFeatureExtraction()

#假設(shè)輸入點(diǎn)云數(shù)據(jù)為Nx3的張量

points=torch.rand(1024,3)

#調(diào)用模型提取特征

features=model(points)5特征匹配與識別特征匹配和識別是將提取的特征用于點(diǎn)云之間的比較和識別的過程。這在3D視覺中用于物體識別、場景理解等任務(wù)。5.1示例:特征匹配-使用FLANN進(jìn)行匹配importnumpyasnp

importopen3daso3d

#加載兩個點(diǎn)云

source=o3d.io.read_point_cloud("path_to_source_point_cloud.ply")

target=o3d.io.read_point_cloud("path_to_target_point_cloud.ply")

#提取特征

source_fpfh=pute_fpfh_feature(source)

target_fpfh=pute_fpfh_feature(target)

#使用FLANN進(jìn)行特征匹配

matcher=o3d.registration.FastGlobalRegistration(source_fpfh,target_fpfh)

result=matcher.register(source,target)

#輸出匹配結(jié)果

print("Transformationis:")

print(result.transformation)6數(shù)據(jù)樣例為了更好地理解上述代碼示例,我們提供一個簡單的點(diǎn)云數(shù)據(jù)樣例:#生成隨機(jī)點(diǎn)云數(shù)據(jù)

points=np.random.rand(1024,3)

colors=np.random.rand(1024,3)

pcd=o3d.geometry.PointCloud()

pcd.points=o3d.utility.Vector3dVector(points)

pcd.colors=o3d.utility.Vector3dVector(colors)

#保存點(diǎn)云數(shù)據(jù)

o3d.io.write_point_cloud("random_point_cloud.ply",pcd)這個樣例生成了一個包含1024個點(diǎn)的隨機(jī)點(diǎn)云,并將其保存為PLY格式的文件,可以用于上述代碼中的點(diǎn)云加載步驟。7結(jié)論通過上述內(nèi)容,我們深入了解了點(diǎn)云特征的類型、特征提取方法以及特征匹配與識別的過程。這些技術(shù)是3D視覺領(lǐng)域中不可或缺的工具,能夠幫助我們從點(diǎn)云數(shù)據(jù)中提取有價值的信息,用于各種高級視覺任務(wù)。8D視覺應(yīng)用8.1D物體識別8.1.1原理3D物體識別是計算機(jī)視覺領(lǐng)域的一個重要分支,它利用三維點(diǎn)云數(shù)據(jù)來識別和分類物體。點(diǎn)云數(shù)據(jù)通常由激光雷達(dá)(LiDAR)、深度相機(jī)等設(shè)備獲取,每個點(diǎn)包含三維坐標(biāo)信息。識別過程涉及點(diǎn)云預(yù)處理、特征提取和分類器訓(xùn)練。預(yù)處理包括去除噪聲、配準(zhǔn)和分割。特征提取是關(guān)鍵步驟,它將點(diǎn)云轉(zhuǎn)換為描述物體形狀和結(jié)構(gòu)的特征向量。分類器如支持向量機(jī)(SVM)、隨機(jī)森林或深度學(xué)習(xí)模型用于識別物體類別。8.1.2內(nèi)容點(diǎn)云預(yù)處理點(diǎn)云數(shù)據(jù)往往包含噪聲和冗余信息,預(yù)處理步驟旨在提高數(shù)據(jù)質(zhì)量。例如,通過濾波技術(shù)去除噪聲點(diǎn),使用ICP算法進(jìn)行點(diǎn)云配準(zhǔn),以及通過區(qū)域生長等方法分割點(diǎn)云。特征提取特征提取方法包括但不限于:-點(diǎn)特征直方圖(PointFeatureHistogram,PFH)-正常分布變換(NormalDistributionTransform,NDT)-形狀上下文(ShapeContexts)-深度學(xué)習(xí)特征提取分類器訓(xùn)練使用提取的特征訓(xùn)練分類器,常見的分類器包括:-支持向量機(jī)(SupportVectorMachine,SVM)-隨機(jī)森林(RandomForest)-深度神經(jīng)網(wǎng)絡(luò)(DeepNeuralNetwork,DNN)示例:使用PFH特征進(jìn)行3D物體識別#導(dǎo)入必要的庫

importnumpyasnp

importopen3daso3d

#加載點(diǎn)云數(shù)據(jù)

pcd=o3d.io.read_point_cloud("path/to/pointcloud.pcd")

#預(yù)處理:去除噪聲

cl,ind=pcd.remove_statistical_outlier(nb_neighbors=20,std_ratio=2.0)

pcd_clean=pcd.select_by_index(ind)

#特征提?。河嬎鉖FH特征

pfh=pute_point_feature_histogram(pcd_clean)

#分類器訓(xùn)練:使用SVM

#假設(shè)我們有訓(xùn)練數(shù)據(jù)和標(biāo)簽

train_data=np.array([pfh[i]foriinrange(len(pfh))])

train_labels=np.array([1,2,3,1,2,3])#假設(shè)的標(biāo)簽

fromsklearn.svmimportSVC

svm=SVC()

svm.fit(train_data,train_labels)

#物體識別:使用訓(xùn)練好的SVM進(jìn)行預(yù)測

test_data=np.array([pfh[0]])#假設(shè)我們使用第一個點(diǎn)云進(jìn)行測試

prediction=svm.predict(test_data)

print("預(yù)測類別:",prediction)8.2D場景理解8.2.1原理3D場景理解旨在從點(diǎn)云數(shù)據(jù)中解析出場景的結(jié)構(gòu)和語義信息。這包括場景分割、物體檢測和場景布局分析。場景分割將點(diǎn)云分割成不同的區(qū)域,每個區(qū)域可能對應(yīng)一個物體或場景的一部分。物體檢測是在分割后的區(qū)域中識別特定物體的位置和類別。場景布局分析則更進(jìn)一步,嘗試?yán)斫鈭鼍爸形矬w之間的關(guān)系和布局。8.2.2內(nèi)容場景分割平面分割(PlaneSegmentation)區(qū)域生長(RegionGrowing)基于深度學(xué)習(xí)的分割方法物體檢測基于特征的檢測方法基于深度學(xué)習(xí)的檢測方法場景布局分析物體間關(guān)系分析場景語義理解示例:使用平面分割進(jìn)行場景分割#導(dǎo)入庫

importnumpyasnp

importopen3daso3d

#加載點(diǎn)云數(shù)據(jù)

pcd=o3d.io.read_point_cloud("path/to/pointcloud.pcd")

#平面分割

plane_model,inliers=pcd.segment_plane(distance_threshold=0.01,

ransac_n=3,

num_iterations=1000)

[a,b,c,d]=plane_model

print(f"Planeequation:{a:.2f}x+{b:.2f}y+{c:.2f}z+{d:.2f}=0")

#提取平面和非平面點(diǎn)云

inlier_cloud=pcd.select_by_index(inliers)

inlier_cloud.paint_uniform_color([1.0,0,0])

outlier_cloud=pcd.select_by_index(inliers,invert=True)

#可視化結(jié)果

o3d.visualization.draw_geometries([inlier_cloud,outlier_cloud])8.3D重建技術(shù)8.3.1原理3D重建技術(shù)從多個視角的圖像或點(diǎn)云數(shù)據(jù)中重建出物體或場景的三維模型。這通常涉及特征匹配、多視圖幾何和表面重建。特征匹配用于在不同視角的圖像中找到對應(yīng)點(diǎn),多視圖幾何則用于計算這些點(diǎn)的三維位置,最后,表面重建技術(shù)將點(diǎn)云轉(zhuǎn)換為連續(xù)的表面模型。8.3.2內(nèi)容特征匹配SIFTSURFORB深度學(xué)習(xí)特征匹配多視圖幾何基礎(chǔ)矩陣(FundamentalMatrix)本質(zhì)矩陣(EssentialMatrix)三角測量(Triangulation)結(jié)構(gòu)從運(yùn)動(StructurefromMotion,SfM)表面重建泊松表面重建(PoissonSurfaceReconstruction)Alpha形狀(AlphaShapes)基于深度學(xué)習(xí)的重建方法示例:使用SfM進(jìn)行3D重建#導(dǎo)入庫

importcv2

importnumpyasnp

importopen3daso3d

#加載圖像

img1=cv2.imread('path/to/image1.jpg',0)

img2=cv2.imread('path/to/image2.jpg',0)

#特征匹配

sift=cv2.SIFT_create()

kp1,des1=sift.detectAndCompute(img1,None)

kp2,des2=sift.detectAndCompute(img2,None)

bf=cv2.BFMatcher()

matches=bf.knnMatch(des1,des2,k=2)

#應(yīng)用比率測試

good=[]

form,ninmatches:

ifm.distance<0.75*n.distance:

good.append([m])

#計算基礎(chǔ)矩陣

src_pts=np.float32([kp1[m.queryIdx].ptformingood]).reshape(-1,1,2)

dst_pts=np.float32([kp2[m.trainIdx].ptformingood]).reshape(-1,1,2)

F,mask=cv2.findFundamentalMat(src_pts,dst_pts,cv2.FM_RANSAC)

#從基礎(chǔ)矩陣計算本質(zhì)矩陣

K=np.eye(3)#假設(shè)已知內(nèi)參矩陣

E=K.T@F@K

#三角測量得到3D點(diǎn)

points3D=cv2.triangulatePoints(F,E,src_pts,dst_pts)

#轉(zhuǎn)換為open3d點(diǎn)云

points=points3D.T

pcd=o3d.geometry.PointCloud()

pcd.points=o3d.utility.Vector3dVector(points)

#可視化點(diǎn)云

o3d.visualization.draw_geometries([pcd])以上示例和內(nèi)容僅為簡化版,實(shí)際應(yīng)用中可能需要更復(fù)雜的算法和數(shù)據(jù)處理步驟。9實(shí)戰(zhàn)案例分析9.1自動駕駛中的點(diǎn)云處理在自動駕駛領(lǐng)域,點(diǎn)云數(shù)據(jù)主要來源于激光雷達(dá)(LiDAR),它能夠提供車輛周圍環(huán)境的三維信息。點(diǎn)云處理是自動駕駛系統(tǒng)中至關(guān)重要的一步,它涉及到點(diǎn)云數(shù)據(jù)的預(yù)處理、分割、聚類和目標(biāo)檢測等技術(shù)。9.1.1預(yù)處理預(yù)處理階段通常包括點(diǎn)云數(shù)據(jù)的去噪、濾波和坐標(biāo)變換。例如,使用均值濾波器去除點(diǎn)云中的異常點(diǎn)。importnumpyasnp

importopen3daso3d

#加載點(diǎn)云數(shù)據(jù)

pcd=o3d.io.read_point_cloud("path/to/your/pointcloud.pcd")

#均值濾波

cl,ind=pcd.remove_statistical_outlier(nb_neighbors=20,std_ratio=2.0)

inlier_cloud=pcd.select_by_index(ind)

outlier_cloud=pcd.select_by_index(ind,invert=True)

#可視化結(jié)果

o3d.visualization.draw_geometries([inlier_cloud.paint_uniform_color([1,0.706,0]),

outlier_cloud.paint_uniform_color([0,0,1])])9.1.2目標(biāo)檢測目標(biāo)檢測是識別點(diǎn)云中的特定對象,如行人、車輛等。這通常通過深度學(xué)習(xí)模型實(shí)現(xiàn),例如PointNet或PointPillars。importtorch

frompointnet2_opsimportpointnet2_utils

#假設(shè)我們有預(yù)訓(xùn)練的PointNet模型

model=torch.load("path/to/your/pointnet_model.pth")

#將點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為模型輸入格式

points=np.asarray(pcd.points)

points=torch.from_numpy(points).float().unsqueeze(0)

#通過模型進(jìn)行目標(biāo)檢測

pred=model(points)9.2機(jī)器人導(dǎo)航中的特征提取機(jī)器人導(dǎo)航依賴于從點(diǎn)云中提取特征,以理解其環(huán)境并進(jìn)行定位和映

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論