版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大數(shù)據(jù)采集與預處理技術*
*項目一表情圖像數(shù)據(jù)采集和預處理序號軟件配置要求1Python3運行計算機內存8G以上2Pytorch最新版本3Pycharm+Requets+Lxml最新版本一、項目目標:1、完成表情圖像數(shù)據(jù)采集環(huán)境安裝配置,掌握爬蟲必備知識;2、完成表情圖像數(shù)據(jù)爬蟲采集程序設計和數(shù)據(jù)采集;3、完成表情圖像數(shù)據(jù)預處理。二、環(huán)境要求:任務三表情圖像數(shù)據(jù)預處理一、任務目標1、掌握常見的圖像處理Python依賴庫的使用技能;2、完成表情圖像數(shù)據(jù)的旋轉、剪切、拉伸等預處理操作;3、完成表情圖像數(shù)據(jù)的Tensor化,編寫批量預處理程序。二、知識準備1、Pytorch簡介PyTorch是一個基于Python的科學計算軟件包,它使用圖形處理單元GPU的強大功能。也是為提供最大靈活性和速度而構建的首選深度學習研究平臺之一。兩個最高級的功能:
具有強大的GPU加速支持的張量計算;
包含自動求導系統(tǒng)的深度神經(jīng)網(wǎng)絡。2、Pytorch常用工具包1)torch:類似NumPy的張量庫,強GPU支持;??2)torch.autograd:基于tape的自動區(qū)別庫,支持torch之中的所有可區(qū)分張量運行;??3)torch.nn:與autograd深度整合的神經(jīng)網(wǎng)絡庫;??4)torch.optim:與torch.nn一起使用的優(yōu)化包,包含SGD、RMSProp、LBFGS、Adam等標準優(yōu)化方式;5)torch.multiprocessing:python多進程并發(fā),進程之間torchTensors的內存共享;??6)torch.utils:數(shù)據(jù)載入器,具有訓練器和其他便利功能;??7)torch.legacy(.nn/.optim):處于向后兼容性考慮,從Torch移植來的legacy代碼。安裝方法,在集成環(huán)境中搜索torchvision選擇默認版本安裝即可,在命令行使用如下命令:pipinstalltorchvision2、Pytorch常用工具包#檢查環(huán)境是否正常importtorchimporttorchvisionprint(torch.__version__)#輸出PyTorch的版本print(torchvision.__version__)#輸出torchvision的版本img=Image.open('bg2017121301.jpg')plt.imshow(np.array(img)) #后續(xù)代碼中圖像顯示代碼和此處相同,不再一一介紹3、Pytorch常見操作示例示例1:圖片裁剪importmatplotlib.pyplotaspltimportnumpyasnpimporttorchvision.transformsasTfromPILimportImageimg=Image.open('bg2017121301.jpg')transform=T.CenterCrop(160)result=transform(img)plt.imshow(np.array(img))關鍵函數(shù)解析Pytorch函數(shù)輸入的圖像可以是PIL或tensor類型,部分函數(shù)只接受PIL或只接受tensor。因此在進行處理之前可以使用ToPILImage()和ToTensor進行類型轉換。transforms.CenterCrop(size)函數(shù)作用:將給定的PIL.Image進行中心裁剪,得到給定的size,size可以是tuple(H,W),也可以是一個Int,在這種情況下,裁剪出來的圖片的形狀是正方形。size(sequenceorint):裁剪后的尺寸大小,輸入為一個int型,輸出(size,size)圖像;輸入為長度1的sequence時,輸出(size[0],size[0]);輸入為(h,w),輸出為(h,w)。示例2:改變圖像色彩飽和度transform=T.ColorJitter(brightness=0.3,contrast=0.3,saturation=0.3,hue=0.4)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)隨機改變亮度、對比度、飽和度、色相,其中前3項調整范圍為[max(0,1-value),1+value]或給定[min,max],最后1項為[-value,value]或給定[min,max]。brightness(浮點型元組float(min,max)):[max(0,1-brightness),1+brightness]或[min,max]隨機選擇的非負數(shù)。contrast(float(min,max)):[max(0,1-contrast),1+contrast]或[min,max]隨機選擇的非負數(shù)。saturation(float(min,max)):[max(0,1-saturation),1+saturation]或[min,max]隨機選擇的非負數(shù)。hue(浮點型元組float(min,max)):[-hue,hue]或[min,max]隨機選擇,且0<=hue<=0.5或-0.5<=min<=max<=0.5。示例3:將圖像進行5部分裁剪transform=T.FiveCrop(112)results=transform(img)forresultinresults:plt.figure()plt.imshow(np.array(result))關鍵函數(shù)解析transforms.FiveCrop(size)
分別裁剪圖像的四個角和中心。size(sequenceorint):裁剪的尺寸大小,輸入為一個int型,輸出(size,size)圖像;輸入為長度1的sequence時,輸出(size[0],size[0]);輸入為(h,w),輸出為(h,w)。示例4:圖像灰度處理和邊界填充transform=T.Grayscale(num_output_channels=1)result=transform(img)plt.imshow(np.array(result),cmap='gray’)transform=T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.Grayscale(num_output_channels=1)將圖像轉換為灰度圖像。如果是torch.Tensor類型則大小為[…,3,H,W]。num_output_channels(int)-(1or3):輸出圖像通道數(shù),當”3“時則三通道R=G=B。transforms.Pad(padding,fill=0,padding_mode=‘constant’)將圖片所有的邊界填充上padding像素值。如果是torch.Tensor類型則大小為[…,H,W]。padding(intorsequence):填充大小,依次左、上、右、下;fill(numberorstrortuple):表示填充的顏色;padding_mode(str):填充模式分為constant,edge,reflect,symmetric模式。其中constant:填充常數(shù);edge:把邊界像素值復制到填充區(qū)域;reflect:原始[1,2,3,4],不重復邊界;symmetric:重復邊界[2,1,1,2,3,4,4,3]。示例5:圖像隨機仿射變換transform=T.RandomAffine(degrees=20,translate=None,scale=None,shear=0.3,resample=False,fillcolor=0)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.RandomAffine(degrees,translate=None,scale=None,shear=None,interpolation=<InterpolationMode.NEAREST:‘nearest’>,fill=0,fillcolor=None,resample=None)圖像隨機仿射變換,保持圖像中心不變。如果是torch.Tensor類型則大小為[…,H,W]。degrees(sequenceornumber):旋轉角度,輸入為(min,max);translate(tuple,optional):水平、垂直平移。以(a,b)為例,水平方向上-img_width*a<dx<img_width*a,垂直方向上-img_high*b<dy<img_high*b。scale(tuple,optional):縮放因子區(qū)間。shear(sequenceornumber,optional):一個數(shù)的情況和一個長度為2的tuple時,對X軸也就是寬上加上一個(-shear,+shear)或(shear[0],shear[1])的隨機數(shù);長度為4的tuple時,X軸加上**(shear[0],shear[1])**的隨機數(shù),Y軸加上**(shear[2],shear[3])**的隨機數(shù)。interpolation(InterpolationMode):插值方法,最近鄰或雙線性插值。fill:變換后圖像外的像素點填充值,默認為0,一個數(shù)則表示填充的灰度值,如果是長度為3的tuple類型則分別對應R,G,B。Fillcolor、resample:v0.10.0后移除,使用fill、interpolation即可。示例6:隨機選擇預處理和隨機順序選擇處理操作transforms=[T.CenterCrop(160),T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')]transform=T.RandomApply(transforms,p=0.5)result=transform(img)plt.imshow(np.array(result))transforms=([T.CenterCrop(160),T.Pad(padding=(2,4,6,8),fill=(255,255,255),padding_mode='constant')])transform=T.RandomOrder(transforms)result=transform(img)關鍵函數(shù)解析transforms.RandomApply(transforms,p=0.5)按照給定的概率,隨機應用一系列的圖像變換函數(shù)。transforms(sequenceortorch.nn.Module):用列表存儲一系列的圖像變換函數(shù),p(float):進行圖像變換的概率。示例7:隨機裁剪transform=T.RandomCrop((100,200),padding=None,pad_if_needed=False,fill=0,padding_mode='constant')result=transform(img)result=transform(img)plt.imshow(np.array(result)) 關鍵函數(shù)解析transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode=‘constant’)隨機位置裁剪圖像,如果是torch.Tensor類型則大小為[…,H,W]。size(sequenceorint):裁剪后的尺寸大小,輸入為一個int型,輸出(size,size)圖像;輸入為(h,w),輸出為(h,w)。padding(intorsequence):邊界填充大小,為一個int型時,每個邊界填充int值;長度為4的sequence時,左、上、右、下邊界填充大小。pad_if_needed(boolean):如果圖像小于所需的尺寸,它就會填充,以避免引發(fā)異常。fill:變換后圖像外的像素點填充值,默認為0,一個數(shù)則表示填充的灰度值,如果是長度為3的tuple類型則分別對應R,G,B。padding_mode(str):填充模式分為:constant、edge、reflect、symmetric模式。constant是填充常數(shù),edge是把邊界的像素值復制到填充區(qū)域;reflect是原始[1,2,3,4];symmetric是重復邊界。示例8:隨機灰度、左右翻轉、垂直翻轉圖像transform=T.RandomGrayscale(p=0.8)result=transform(img)plt.imshow(np.array(result))transform=T.RandomHorizontalFlip(p=0.6)result=transform(img)plt.imshow(np.array(result))transform=T.RandomVerticalFlip(p=0.9)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.RandomGraycale(p=0.1)按照給定的概率,隨機將圖片轉化為灰度圖像。如果是torch.Tensor類型則大小為[…,3,H,W]。transforms.RandomHorizontalFlip(p=0.5)按照給定的概率,隨機水平翻轉圖像。如果是torch.Tensor類型則大小為[…,H,W]。transforms.RandomVerticalFlip(p=0.5)按照給定的概率,隨機垂直翻轉圖像。如果是torch.Tensor類型則大小為[…,H,W]。示例9:隨機旋轉圖像transform=T.RandomRotation(degrees=20,resample=False,expand=False,center=None,fill=0)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析torchvision.transforms.RandomRotation(degrees,interpolation=<InterpolationMode.NEAREST:‘nearest’>,expand=False,center=None,fill=0,resample=None)根據(jù)degress旋轉圖像,如果是torch.Tensor類型則大小為[…,H,W]。
degrees(sequenceornumber):旋轉角度,輸入為(min,max)或(-degree,+degree);interpolation(interpolationMode):插值方法:最近鄰或雙線性插值。expand(bool,optional):旋轉后是否修改圖像大小,True則修改大小保證可以容納圖像;False則維持原大小,對圖像進行適當?shù)纳釛?。center(sequence,optional):旋轉的中心(x,y),左上角為坐標原點。默認為圖像中心。fill(sequenceornumber):變換后圖像外的像素點填充值,默認為0,如果是一個數(shù)則表示填充的灰度值,如果是長度為3的tuple類型則分別對應R,G,B。resample(int,optional):v0.10.0后會移除,使用interpolation即可。示例10:高斯模糊、隨機顏色transform=T.GaussianBlur(kernel_size=(5,9),sigma=(0.1,5))result=transform(img)plt.imshow(np.array(result))transform=T.RandomInvert(p=0.8)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.GaussianBlur(kernel_size,sigma=(0.1,2.0))使用高斯濾波器進行圖像模糊,高斯濾波器的參數(shù)隨機。如果是torch.Tensor類型則大小為[…,C,H,W]。kernel_size(intorsequence):高斯濾波器的大小。sigma(floatortupleofpython:float(min,max)):在(min,max)隨機數(shù)作為標準差。transforms.RandomInvert(p=0.5)以給定的概率隨機地插入給定圖像的顏色。如果是torch.Tensor類型則大小為[…,1or3,H,W]。p(float):圖像轉換的概率示例11:隨機色彩分離、過度曝光transform=T.RandomPosterize(bits=2,p=0.6)result=transform(img)plt.imshow(np.array(result))transform=T.RandomSolarize(threshold=192.0)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.RandomPosterize(bits,p=0.5)通過減少每個顏色通道的比特數(shù),以給定的概率隨機地對圖像進行處理。如果圖像是torchTensor,它應該是torch.uint8類型的大小為[…,1or3,H,W],如果img是PIL圖像,預計它的模式是"L"或“RGB”。bits(int):每個通道保留的比特數(shù)。p(float):修該通道比特數(shù)的概率,默認0.5。transforms.RandomSolarize(threshold,p=0.5)通過反轉所有高于閾值的像素值,以給定的概率隨機地對圖像過度曝光。如果圖像是torchTensor,它的大小為[…,1or3,H,W],如果img是PIL圖像,預計它的模式是"L"或“RGB”。threshold(float):閾值,所有大于等于閾值的像素點進行反轉。p(float):發(fā)生反轉的概率,默認為0.5。示例12:隨機銳度調整、隨機增大對比transform=T.RandomAdjustSharpness(sharpness_factor=2,p=1)result=transform(img)plt.imshow(np.array(result))transform=T.RandomAutocontrast(p=1)result=transform(img)plt.imshow(np.array(result))關鍵函數(shù)解析transforms.RandomAdjust
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粵規(guī)科技2026頂尖校園人才招聘備考題庫完整答案詳解
- 藍綠色漸變AI智能商務工作計劃演示模板
- 成都軌道交通集團有限公司2025年秋季第三批次校園招聘備考題庫及完整答案詳解1套
- 2025年大連市遼漁集團招聘7人備考題庫含答案詳解
- 2025年中科大附中實驗學校公費師范生招聘備考題庫及1套完整答案詳解
- 2025年貴州興義市消防救援大隊招錄專職消防員招錄備考題庫及完整答案詳解1套
- 排水工程題庫及答案
- 2025年云南省玉溪市江川區(qū)教育體育系統(tǒng)公開招聘畢業(yè)生38人備考題庫完整答案詳解
- 2025年市中心醫(yī)院選聘170名人員備考題庫完整答案詳解
- 2025年中國煤炭地質總局應屆高校畢業(yè)生招聘467人備考題庫及答案詳解參考
- 焊接生產(chǎn)管理概述
- 森林提質改造課件
- 成都市第七中學2025-2026學年高二上學期11月考試語文試卷
- 北京市海淀區(qū)2025-2026年高三語文上學期期中考試作文《說“論辯”》3篇范文
- 2025年高中歷史上學期模擬試卷(含答案)
- 電車專業(yè)維修知識培訓課件
- 涮火鍋課件教學課件
- 2025年江蘇煙草筆試試題及答案
- 智研咨詢發(fā)布:中國整裝衛(wèi)浴行業(yè)市場全景調查及投資前景預測報告
- 銅精礦外貿采購合同范本
- 中原銀行筆試題及答案
評論
0/150
提交評論