HALCON形狀匹配講解_第1頁
HALCON形狀匹配講解_第2頁
HALCON形狀匹配講解_第3頁
HALCON形狀匹配講解_第4頁
HALCON形狀匹配講解_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、HALCON形狀匹配講解樓主#更多 · 只看樓主· 倒序閱讀發(fā)布于:2013-07-21 22:29 窗體頂端保存 窗體底端該帖是加密帖,需要10金幣及以上的積分才能瀏覽以下內(nèi)容:很早就想總結(jié)一下前段時間學習HALCON的心得,但由于其他的事情總是抽不出時間。去年有過一段時間的集中學習,做了許多的練習和實驗,并對基于HDevelop的形狀匹配算法的參數(shù)優(yōu)化進行了研究,寫了一篇基于HDevelop的形狀匹配算法參數(shù)的優(yōu)化研究文章,總結(jié)了在形狀匹配過程中哪些參數(shù)影響到模板的搜索和匹配,又如何來協(xié)調(diào)這些參數(shù)來加快匹配過程,提高匹配的精度,這篇paper放到了中國論文在線了,需要可

2、以去下載。德國MVTec公司開發(fā)的HALCON機器視覺開發(fā)軟件,提供了許多的功能,在這里我主要學習和研究了其中的形狀匹配的算法和流程。HDevelop開發(fā)環(huán)境中提供的匹配的方法主要有三種,即Component-Based、Gray-Value-Based、Shape-Based,分別是基于組件(或成分、元素)的匹配,基于灰度值的匹配和基于形狀的匹配。這三種匹配的方法各具特點,分別適用于不同的圖像特征,但都有創(chuàng)建模板和尋找模板的相同過程。這三種方法里面,我主要就第三種基于形狀的匹配,做了許多的實驗,因此也做了基于形狀匹配的物體識別,基于形狀匹配的視頻對象分割和基于形狀匹配的視頻對象跟蹤這些研究,

3、從中取得較好的效果,簡化了用其他工具,比如VC+來開發(fā)的過程。在VC下往往針對不同的圖像格式,就會弄的很頭疼,更不用說編寫圖像特征提取、模板建立和搜尋模板的代碼呢,我想其中間過程會很復雜,效果也不一定會顯著。下面我就具體地談談基于HALCON的形狀匹配算法的研究和心得總結(jié)。1.       Shape-Based matching的基本流程HALCON提供的基于形狀匹配的算法主要是針對感興趣的小區(qū)域來建立模板,對整個圖像建立模板也可以,但這樣除非是對象在整個圖像中所占比例很大,比如像視頻會議中人體上半身這樣的圖像,我在后面的視頻對象跟蹤實驗中就是針對整個圖像的,這

4、往往也是要犧牲匹配速度的,這個后面再講?;玖鞒淌沁@樣的,如下所示: 首先確定出ROI的矩形區(qū)域,這里只需要確定矩形的左上點和右下點的坐標即可,gen_rectangle1()這個函數(shù)就會幫助你生成一個矩形,利用area_center()找到這個矩形的中心; 然后需要從圖像中獲取這個矩形區(qū)域的圖像,reduce_domain()會得到這個ROI;這之后就可以對這個矩形建立模板,而在建立模板之前,可以先對這個區(qū)域進行一些處理,方便以后的建模,比如閾值分割,數(shù)學形態(tài)學的一些處理等等; 接下來就可以利用create_shape_model()來創(chuàng)建模板了,這個函數(shù)有許多參數(shù),其中金字塔的級數(shù)由Num

5、levels指定,值越大則找到物體的時間越少,AngleStart和AngleExtent決定可能的旋轉(zhuǎn)范圍,AngleStep指定角度范圍搜索的步長;這里需要提醒的是,在任何情況下,模板應適合主內(nèi)存,搜索時間會縮短。對特別大的模板,用Optimization來減少模板點的數(shù)量是很有用的;MinConstrast將模板從圖像的噪聲中分離出來,如果灰度值的波動范圍是10,則MinConstrast應當設為10;Metric參數(shù)決定模板識別的條件,如果設為use_polarity,則圖像中的物體和模板必須有相同的對比度;創(chuàng)建好模板后,這時還需要監(jiān)視模板,用inspect_shape_model()

6、來完成,它檢查參數(shù)的適用性,還能幫助找到合適的參數(shù);另外,還需要獲得這個模板的輪廓,用于后面的匹配,get_shape_model_contours()則會很容易的幫我們找到模板的輪廓; 創(chuàng)建好模板后,就可以打開另一幅圖像,來進行模板匹配了。這個過程也就是在新圖像中尋找與模板匹配的圖像部分,這部分的工作就由函數(shù)find_shape_model()來承擔了,它也擁有許多的參數(shù),這些參數(shù)都影響著尋找模板的速度和精度。這個的功能就是在一幅圖中找出最佳匹配的模板,返回一個模板實例的長、寬和旋轉(zhuǎn)角度。其中參數(shù)SubPixel決定是否精確到亞像素級,設為interpolation,則會精確到,這個模式不會

7、占用太多時間,若需要更精確,則可設為least_square,lease_square_high,但這樣會增加額外的時間,因此,這需要在時間和精度上作個折中,需要和實際聯(lián)系起來。比較重要的兩個參數(shù)是MinSocre和Greediness,前一個用來分析模板的旋轉(zhuǎn)對稱和它們之間的相似度,值越大,則越相似,后一個是搜索貪婪度,這個值在很大程度上影響著搜索速度,若為0,則為啟發(fā)式搜索,很耗時,若為1,則為不安全搜索,但最快。在大多數(shù)情況下,在能夠匹配的情況下,盡可能的增大其值。 找到之后,還需要對其進行轉(zhuǎn)化,使之能夠顯示,這兩個函數(shù)vector_angle_to_rigid()和affine_tra

8、ns_contour_xld()在這里就起這個作用。前一個是從一個點和角度計算一個剛體仿射變換,這個函數(shù)從匹配函數(shù)的結(jié)果中對構(gòu)造一個剛體仿射變換很有用,把參考圖像變?yōu)楫斍皥D像。其詳細的流程圖和中間參數(shù),如下圖所示:(無法上傳) 2.       基于形狀匹配的參數(shù)關(guān)系與優(yōu)化     在HALCON的說明資料里講到了這些參數(shù)的作用以及關(guān)系,在上面提到的文章中也作了介紹,這里主要是重復說明一下這些參數(shù)的作用,再強調(diào)一下它們影響匹配速度的程度;在為了提高速度而設置參數(shù)之前,有必要找出那些在所有測試圖像中匹配成功的設置,這時需考慮以

9、下情況:     必須保證物體在圖像邊緣處截斷,也就是保證輪廓的清晰,這些可以通過形態(tài)學的一些方法來處理;     如果Greediness值設的太高,就找不到其中一些可見物體,這時最后將其設為0來執(zhí)行完全搜索;     物體是否有封閉區(qū)域,如果要求物體在任何狀態(tài)下都能被識別,則應減小MinScore值;     判斷在金字塔最高級上的匹配是否失敗,可以通過find_shape_model()減小NumLevels值來測試;     物體是否具有較低的對比度,如果要求物體在任何狀態(tài)下都能被識別,

10、則應減小MinContrast值;     判斷是否全局地或者局部地轉(zhuǎn)化對比度極性,如果需要在任何狀態(tài)下都能被識別,則應給參數(shù)Metric設置一個合適的值;     物體是否與物體的其他實例重疊,如果需要在任何狀態(tài)下都能識別物體,則應增加MaxOverlap值;     判斷是否在相同物體上找到多個匹配值,如果物體幾乎是對稱的,則需要控制旋轉(zhuǎn)范圍;如何加快搜索匹配,需要在這些參數(shù)中進行合理的搭配,有以下方法可以參考:       只要匹配成功,則盡可能增加參數(shù)MinScore的值;   

11、0;   增加Greediness值直到匹配失敗,同時在需要時減小MinScore值;       如果有可能,在創(chuàng)建模板時使用一個大的NumLevels,即將圖像多分幾個金字塔級;       限定允許的旋轉(zhuǎn)范圍和大小范圍,在調(diào)用find_shape_model()時調(diào)整相應的參數(shù);       盡量限定搜索ROI的區(qū)域;除上面介紹的以外,在保證能夠匹配的情況下,盡可能的增大Greediness的值,因為在后面的實驗中,用模板匹配進行視頻對象跟蹤的過程中,這個值在很大程度上影響到匹配的速度。當

12、然這些方法都需要跟實際聯(lián)系起來,不同圖像在匹配過程中也會有不同的匹配效果,在具體到某些應用,不同的硬件設施也會對這個匹配算法提出新的要求,所以需要不斷地去嘗試。在接下來我會結(jié)合自己做的具體的實驗來如何利用HALCON來進行實驗,主要是在視頻對象分割和視頻對象的跟蹤方面。待續(xù)_ 例子:區(qū)分硬幣 Example: solution_guide/basics/matching_coins.hdev 見附件trainmodel.hdev圖片:xzppsl.jpgcreate_shape_model(const Hobject&  Template ,  /redu

13、ce_domain后的模板圖像Hlong  NumLevels,  /金字塔的層數(shù),可設為“auto”或010的整數(shù)Double  AngleStart,  /模板旋轉(zhuǎn)的起始角度Double  AngleExtent,  /模板旋轉(zhuǎn)角度范圍, >=0Double  AngleStep,  /旋轉(zhuǎn)角度的步長, >=0 and <=pi/16const char*  Optimization,  /設置模板優(yōu)化和模板創(chuàng)建方法const char*  Metric, 

14、60;/匹配方法設置Hlong  Contrast,  /設置對比度Hlong  MinContrast ,  /設置最小對比度Hlong*  ModelID )  /輸出模板句柄 進一步分析:NumLevels越大,找到匹配使用的時間就越小。另外必須保證最高層的圖像具有足夠的信息(至少四個點)。可以通過inspect_shape_model函數(shù)查看設置的結(jié)果。如果最高層金字塔的消息太少,算法內(nèi)部會自動減少金字塔層數(shù),如果最底層金字塔的信息太少,函數(shù)就會報錯。如果設為auto,算法會自動計算金字塔的層數(shù),我們可以通過get_

15、shape_model_params函數(shù)查看金字塔的層數(shù)。如果金字塔的層數(shù)太大,模板不容易識別出來,這是需要將find_shape_model函數(shù)中MinScore和Greediness參數(shù)設置的低一些。如果金字塔層數(shù)太少找到模板的時間會增加??梢韵仁褂胕nspect_shape_model函數(shù)的輸出結(jié)果來選擇一個較好的金字塔層數(shù)。參數(shù)AngleStart、AngleExtent定義了模板可能發(fā)生旋轉(zhuǎn)的范圍。注意模板在find_shape_model函數(shù)中只能找到這個范圍內(nèi)的匹配。參數(shù)AngleStep定義了旋轉(zhuǎn)角度范圍內(nèi)的步長。 如果在find_shape_model函數(shù)中沒有指定亞像素精度

16、,這個參數(shù)指定的精度是可以實現(xiàn)find_shape_mode函數(shù)中的角度的。參數(shù)AngleStep的選擇是基于目標的大小的,如果模板圖像太小不能產(chǎn)生許多不同離散角度的圖像,因此對于較小的模板圖像AngleStep應該設置的比較大。如果AngleExtent不是AngleStep的整數(shù)倍, 將會相應的修改AngleStep。如果選擇 complete pregeneration ,不同角度的模板圖像將會產(chǎn)生并保存在內(nèi)存中。用來存儲模板的內(nèi)存與旋轉(zhuǎn)角度的數(shù)目和模板圖像的的點數(shù)是成正比的。 因此,如果AngleStep太小或是AngleExtent太大, 將會出現(xiàn)該模型不再適合(虛擬)內(nèi)存的情況。在

17、任何情況下,模型是完全適合主存儲器的,因為這避免了操作系統(tǒng)的內(nèi)存分頁,使得尋找匹配模板的時間變短。由于find_shape_model函數(shù)中的角度可以使用亞像素精度,一個直徑小于200像素的模板可以選擇AngleStep>= 1. 如果選擇AngleStep='auto' (or 0 向后兼容),create_shape_model將會基于模板的大小自動定義一個合適的角度步長. 自動計算出來的AngleStep可以使用get_shape_model_params函數(shù)查看。如果沒有選擇complete pregeneration, 該模型會在每一層金字塔上建立在一個參考的位

18、置。這樣在find_shape_model函數(shù)運行時,該模型必須轉(zhuǎn)化為不同的角度和尺度在運行時在。正因為如此,匹配該模型可能需要更多的時間。對于特別大的模板圖像,將參數(shù)Optimization設置為不同于'none'的其他數(shù)值是非常有用的。如果Optimization= 'none', 所有的模型點將要存儲。在其他情況下, 按照Optimization的數(shù)值會將模型的點數(shù)減少. 如果模型點數(shù)變少了,必須在find_shape_model函數(shù)中將參數(shù)Greediness設為一個比較小的值, 比如:0.7、0.8。對于比較小的模型, 減少模型點數(shù)并不能提高搜索速度,

19、因為這種情況下通常顯著更多的潛在情況的模型必須進行檢查。如果Optimization設置為'auto', create_shape_model自動確定模型的點數(shù)。Optimization的第二個值定義了模型是否進行預處理(pregenerated completely),是通過選擇'pregeneration'或者'no_pregeneration'來設置的。如果不使用第二個值(例如:僅僅設置了第一個值), 默認的是系統(tǒng)中的設置,是通過set_system('pregenerate _shape_models',.)來設置的,對于

20、默認值是 ('pregenerate_shape_models' = 'false'), 模型沒有進行預處理. 模型的預處理設置通常會導致比較低的運行時間,因為模型不需要 在運行時間時轉(zhuǎn)換。然而在這種情況下,內(nèi)存的要求和創(chuàng)建模板所需要的時間是比較高的。還應該指出,不能指望這兩個模式返回完全相同的結(jié)果,因為在運行時變換一定會導致變換模型和預處理變換模型之間不同的內(nèi)部數(shù)據(jù)。比如,如果模型沒有 completely pregenerated,在find_shape_model函數(shù)中通常返回一個較低的scores,這可能需要將MinScore設置成一個較低的值。此外,在

21、兩個模型中插值法獲得的位置可能略有不同。如果希望是最高精確度,應該使用最小二乘調(diào)整得到模型位置。參數(shù)Contras決定著模型點的對比度。對比度是用來測量目標與背景之間和目標不同部分之間局部的灰度值差異。Contrast的選擇應該確保模板中的主要特征用于模型中。Contrast也可以是兩個數(shù)值,這時模板使用近似edges_image函數(shù)中滯后閾值的算法進行分割。這里第一個數(shù)值是比較低的閾值,第二個數(shù)值是比較高的閾值。Contrast也可以包含第三個,這個數(shù)值是在基于組件尺寸選擇重要模型組件時所設置的閾值,比如,比指定的最小尺寸的點數(shù)還少的組件將被抑制。這個最小尺寸的閾值會在每相鄰的金字塔層之間除

22、以2。如果一個小的模型組件被抑制,但是不使用滯后閾值,然而在Contrast中必須指定三個數(shù)值,在這種情況下前兩個數(shù)值設置成相同的數(shù)值。這個參數(shù)的設置可以在inspect_shape_model函數(shù)中查看效果。如果Contrast設置為'auto',create_shape_model將會自動確定三個上面描述的數(shù)值?;蛘邇H僅自動設置對比度('auto_contrast'),滯后閾值('auto_contrast_hyst')或是最小尺寸('auto_min_size')中一個。其他沒有自動設置的數(shù)值可以按照上面的格式再進行設置???/p>

23、以允許各種組合,例如:如果設置 'auto_contrast','auto_min_size',對比度和最小尺寸自動確定;如果設置 'auto_min_size',20,30,最小尺寸會自動設定,而滯后閾值被設為20和30。有時候可能對比度閾值自動設置的結(jié)果是不滿意的,例如,由于一些具體應用的原因當某一個模型組件是被包含或是被抑制時,或是目標包含幾種不同的對比度時,手動設置這些參數(shù)效果會更好。因此對比度閾值可以使用determine_shape_model_params函數(shù)自動確定,也可以在調(diào)用create_shape_model之前使用insp

24、ect_shape_mode函數(shù)檢查效果。MinContrast用來確定在執(zhí)行find_shape_model函數(shù)進行識別時模型的哪一個對比度必須存在,也就是說,這個參數(shù)將模型從噪聲圖像中分離出來。因此一個好的選擇應該是在圖像中噪聲所引起的灰度變化范圍。例如,如果灰度浮動在10個灰度級內(nèi),MinContrast應該設置成10。如果模板和搜索圖像是多通道圖像,Metric參數(shù)設置成'ignore_color_polarity',在一個通道中的噪聲必須乘以通道個數(shù)的平方根再去設置MinContrast。例如,如果灰度值在一個通道的浮動范圍是10個灰度級,圖像是三通道的,那么MinC

25、ontrast應該設置為17。很顯然,MinContrast必須小于Contrast。如果要在對比度較低的圖像中識別模板,MinContrast必須設置為一個相對較小的數(shù)值。如果要是模板即使嚴重遮擋(occluded)也能識別出來,MinContrast應該設置成一個比噪聲引起的灰度浮動范圍略大的數(shù)值,這樣才能確保在find_shape_model函數(shù)中提取出模板準確的位置和旋轉(zhuǎn)角度。如果MinContrast設置為'auto',最小對比度會基于模板圖像中的噪聲自動定義。因此自動設定僅僅在搜索圖像和模板圖像噪聲近似時才可以使用。此外,在某些情況下為了遮擋的魯棒性,采用自動設定數(shù)

26、值是比較好的。使用get_shape_model_params函數(shù)可以查詢自動計算的最小對比度。參數(shù)Metric定義了在圖像中匹配模板的條件。如果Metric= 'use_polarity',圖像中的目標必須和模型具有一樣的對比度。例如,如果模型是一個亮的目標在一個暗的背景上,那么僅僅那些比背景亮的目標可以找到。如果Metric= 'ignore_global_polarity',在兩者對比度完全相反時也能找到目標。在上面的例子中,如果目標是比背景暗的也能將目標找到。find_shape_model函數(shù)的運行時間在這種情況下將會略微增加。如果Metric= &#

27、39;ignore_local_polarity', 即使局部對比度改變也能找到模型。例如,當目標包含一部分中等灰度,并且其中部分比較亮部分比較暗時,這種模式是非常有用的。由于這種模式下find_shape_model函數(shù)的運行時間顯著增加,最好的方法是使用create_shape_model創(chuàng)建幾個反映目標可能的對比度變化的模型,同時使用find_shape_models去匹配他們。上面三個metrics僅僅適用于單通道圖像。如果是多通道圖像作為模板圖像或搜索圖像,僅僅第一個通道被使用。如果Metric='ignore_color_polarity', 即使顏色對比度

28、局部變化也能找到模型。例如,當目標的部分區(qū)域顏色發(fā)生變化(e.g.從紅到綠)的情況。如果不能提前知道目標在哪一個通道是可見的這種模式是非常有用的。在這種情況下find_shape_model函數(shù)的運行時間也會急劇增加。'ignore_color_polarity'可以使用于具有任意通道數(shù)目的圖像中。如果使用于單通道圖像,他的效果和'ignore_loc al_polarity'是完全相同的。當Metric= 'ignore_color_polarity' 時,create_shape_model創(chuàng)建的模板通道數(shù)目和find_shape_model

29、中的圖像通道數(shù)目可以是不同的。例如,可以使用綜合生成的單通道圖像創(chuàng)建模型。另外,這些通道不需要是經(jīng)過光譜細分(像RGB圖像)的。這些通道還可以包括具有在不同方向照亮同一個目標所獲得的圖像。模型圖像Template的domain區(qū)域的重心是模板的初始位置,可以在set_shape_model_origin函數(shù)中設置不同的初始位置。   LIntExport Herror find_shape_model(const Hobject&  Image,  /搜索圖像Hlong  ModelID,  /模板句柄Double  

30、;AngleStart,  / 搜索時的起始角度Double  AngleExtent,  /搜索時的角度范圍,必須與創(chuàng)建模板時的有交集。Double  MinScore,  / 輸出的匹配的質(zhì)量系數(shù)Score 都得大于該值Hlong  NumMatches,  / 定義要輸出的匹配的最大個數(shù)Double  MaxOverlap,  / 當找到的目標存在重疊時,且重疊大于該值時選/擇一個好的輸出const char*  SubPixel,  / 計算精度的設置,五種模式,多選2,3Hl

31、ong  NumLevels,  / 搜索時金字塔的層數(shù)Double  Greediness ,  /貪婪度,搜索啟發(fā)式,一般都設為0.9,越高速度快                    /容易出現(xiàn)找不到的情況Halcon:HTuple*  Row,  /輸出匹配位置的行坐標Halcon:HTuple*  Column,  /輸出匹配位置的列坐標Halcon:HTuple*  Angle, &#

32、160;/輸出匹配角度Halcon:HTuple*  Score )  /輸出匹配質(zhì)量 進一步分析:注意Row、Column的坐標并不是模板在搜索圖像中的精確位置,因此不能直接使用他們。這些數(shù)值是為了創(chuàng)建變換矩陣被優(yōu)化后的,你可以用這個矩陣的匹配結(jié)果完成各種任務,比如調(diào)整后續(xù)步驟的ROI。Score是一個0到1之間的數(shù),是模板在搜索圖像中可見比例的近似測量。如果模板的一半被遮擋,該值就不能超過0.5。Image的domain定義了模型參考點的搜索區(qū)域,模型參考點是在create_shape_model中用來創(chuàng)建模型的圖像的domain區(qū)域的重心。不考慮使用函數(shù)se

33、t_shape_model_origin設置不同的初始位置。在圖像domain區(qū)域的這些點內(nèi)搜索模型,其中模型完全屬于這幅圖像。這意味著如果模型超出圖像邊界,即使獲得的質(zhì)量系數(shù)(score)大于MinScore也不能找到模型。這種性能可以通過set_system('border_shape_models','true')改變,這樣那些超出圖像邊界,質(zhì)量系數(shù)大于MinScore的模型也能找到。這時那些在圖像外面的點看作是被遮擋了,可以降低質(zhì)量系數(shù)。在這種模式下搜索的時間將要增加。參數(shù)AngleStart和AngleExtent確定了模型搜索的旋轉(zhuǎn)角度,如果有必要,

34、旋轉(zhuǎn)的范圍會被截取成為create_shape_model函數(shù)中給定的旋轉(zhuǎn)范圍。這意味著創(chuàng)建模型和搜索時的角度范圍必須真正的重疊。在搜索時的角度范圍不會改變?yōu)槟?*pi的。為了簡化介紹,在該段落剩下的部分所有角度都用度來表示,而在find_shape_model函數(shù)中使用弧度來設置的。因此,如果創(chuàng)建模板時,AngleStart=-20°、AngleExtent=40°,在搜索模板函數(shù)find_shape_model中設置AngleStart=350°、AngleExtent=20°,盡管角度模360后是重疊的,還是會找不到模板的。為了找到模板,在這個例子

35、中必須將AngleStart=350°改為AngleStart=-10°。參數(shù)MinScore定義模板匹配時至少有個什么樣的質(zhì)量系數(shù)才算是在圖像中找到模板。MinScore設置的越大,搜索的就越快。如果模板在圖像中沒有被遮擋,MinScore可以設置為0.8這么高甚至0.9。NumMatches定義了在圖像上找到模板的最大的個數(shù)。如果匹配時的質(zhì)量系數(shù)大于MinScore的目標個數(shù)多于NumMatches,僅僅返回質(zhì)量系數(shù)最好的NumMatches個目標位置。如果找的匹配目標不足NumMatches,那么就只返回找到的這幾個。參數(shù)MinScore優(yōu)于NumMatches。如果模型具有對稱性,會在搜索圖像的同一位置和不同角度上找到多個與目標匹配的區(qū)域。參數(shù)MaxOverlap是0到1之間的,定義了找到的兩個目標區(qū)域最多重疊的系數(shù),以便于把他們作為兩個不同的目標區(qū)域分別返回。如果找到的兩個目標區(qū)域彼此重疊并且大于MaxOverlap,僅僅返回效果最好的一個。重疊的計算方法是基于找到的目標區(qū)域的任意方向的最小外接矩形(看smallest_rectangle2)。如果MaxOv

溫馨提示

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

評論

0/150

提交評論