計算機視覺技術實戰 課件 項目8 以文修圖:基于Grounded-SAM大模型的圖像編輯_第1頁
計算機視覺技術實戰 課件 項目8 以文修圖:基于Grounded-SAM大模型的圖像編輯_第2頁
計算機視覺技術實戰 課件 項目8 以文修圖:基于Grounded-SAM大模型的圖像編輯_第3頁
計算機視覺技術實戰 課件 項目8 以文修圖:基于Grounded-SAM大模型的圖像編輯_第4頁
計算機視覺技術實戰 課件 項目8 以文修圖:基于Grounded-SAM大模型的圖像編輯_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

項目8以文修圖:基于Grounded-SAM大模型的圖像編輯教學目標能力目標(1)

掌握Grounded-SAM安裝與使用。(2)了解Grounded-SAM圖像編輯的3個步驟及原理。(3)掌握Gradio快速演示工具。(4)掌握基于MMDetection的模型微調。知識目標(1)掌握基于Grounded-SAM項目進行圖像編輯的實際操作技能。(2)掌握Gradio快速演示工具使用。(3)掌握大模型GroundingDINO微調。目錄2基于Grounded-SAM的圖像編輯1認識Grounded-SAM開源項目3GroundingDINO模型的微調目錄2基于Grounded-SAM的圖像編輯1認識Grounded-SAM開源項目3GroundingDINO模型的微調1.認識數據集

任務目標1.了解Grounding-SAM項目。2.掌握GroundingDINO的安裝及使用。3.掌握SAM的安裝及使用。4.掌握stablediffusion的安裝及使用。1.1Grounded-SAM概述GroundingDINO:這是一個文本驅動的檢測模型,能夠根據文本提示檢測圖像中的物體。SegmentAnything:這是一個圖像分割模型,可以基于文本提示進行分割,簡稱SAM。StableDiffusion:這是一個圖像生成模型,可以用于生成新的圖像內容。

Grounded-SAM開源項目全名為"Grounded-Segment-Anything",由IDEA-Research團隊創建。項目的核心思想是結合不同的大模型優勢,構建一個強大的流程來解決復雜的問題。就本項目具體來說,該組合通過結合以下幾個關鍵組件來實現自動檢測、分割和生成任何物體:這種整合為連接各種視覺模型打開了一扇門,使得可以使用Grounded-SAM的組合流程來靈活完成廣泛的視覺任務(值得一提的是,這是一個結合強大專家模型的工作流程,其中的所有部分都可以單獨使用或組合使用,并且可以用任何類似但不同的模型替換)。例如,通過組合BLIP、GroundingDINO和SAM等模型用于自動標簽系統,可以實現僅基于輸入圖像實現自動標注流程;通過組合Whisper、GroundingDINO和SAM等模型可以實現通過語音檢測和分割任何物體。本項目主要利用Grounding-SAM項目中GroundingDINO、SAM和Stable-Diffusion進行組合,實現以文修圖的功能任務。1.2GroundingDINO、SAM、stablediffusion模型簡介GroundingDINO是一個由IDEA-Research團隊提出和發布的開集目標檢測算法模型,它的獨特之處在于能夠識別并定位圖像中由文本提示指定的任意對象,而且不受限于在訓練階段遇到的特定類別。這意味著,與傳統的閉集目標檢測模型(僅能識別訓練期間見過的類別)不同,GroundingDINO具有更強的靈活性和泛化能力,可以被稱為“DetectAnything”模型。SAM(SegmentAnythingModel)是由Meta(前Facebook)提出的一種圖像分割模型,旨在實現對圖像中任何內容的語義分割。SAM同樣結合了深度學習和自然語言處理技術,以支持對由文本提示指定的的任何對象或場景的分割。StableDiffusion是由StabilityAI等共同開發的。它是一種基于深度學習的圖像生成模型,采用擴散模型和變分自編碼器的技術,旨在生成高質量、高分辨率的圖像。它能夠根據用戶的文本描述生成詳細、逼真的圖像。用戶可以輸入任何描述,例如“一只在月光下飛翔的貓”,模型則能生成與描述相匹配的圖像。1.3Grounded-SAM的部署Grounded-SAM項目整合了多個視覺大模型的使用代碼,其中就包括了GroundingDINO、SAM和stablediffusion模型。本小節主要帶領讀者們通過對Grounded-SAM進行部署。(1)源碼下載。有三種方式獲取源碼(2)安裝依賴包(3)預訓練模型下載下載GroundingDINO模型的預訓練權重”GroundingDINO_swint_ogc.pth”和SAM模型的預訓練權重”sam_vit_h_4b8939.pth”,并放入根目錄Grounded-Segment-Anything-main的weights目錄下;然后需要下載stablediffusion模型的模型權重及配置文件,并放在根目錄的runwayml/stable-diffusion-inpainting路徑下;此外,因GroundingDINO用到BERT的預訓練權重,也需要下載”bert-base-uncased”版本的模型權重及配置文件,并放在根目錄的bert-base-uncased路徑下。以上預訓練權重及配置文件建議首選通過課程提供的資源下載,有條件也可自行到官網和HuggingFace網站上下載。下載源碼后,進入Grounded-Segment-Anything-main文件夾,打開Anacoda終端。利用conda創建Python=3.10的虛擬環境,并通過pip在該環境中安裝環境包。下面命令為創建虛擬環境、激活虛擬環境、安裝python依賴包繼續執行以下命令在虛擬環境安裝segment_anything、GroundingDINO及diffusers。一是通過本課程提供下載獲取;二是通過git命令clone項目代碼到本地:三是通過訪問項目網頁/IDEA-Research/Grounded-Segment-Anything,下載項目zip包到本地后解壓。1.3.1GroundingDINO代碼演示GroundingDINO模型是根據用戶輸入的文本提示對輸入圖像進行目標檢測,能夠將符合該描述的對象檢測出來。下面代碼是GroundingDINO模型演示demo的代碼塊,包括加載模型,提示詞樣例,圖片讀取及模型檢測等,最終將處理完成的圖像保存到指定路徑。(a)原始圖像(b)檢測結果1.3.2SAM大模型的使用演示SegmentAnythingModel模型具備零樣本分割能力,下面代碼是它的簡單樣例,能夠對提供的區域框內進行分割,并將其中的主體對象分割結果篩選出來,通過supervision工具完成繪圖并保存。(a)原始圖像(b)分割結果(a)為原始圖像,圖中的紅框是腳本中提供的坐標;圖(b)為分割結果的圖像展示,可以看到該模型能夠將框內對象給很好地分割出來。1.3.3stablediffusion圖片生成大模型的使用演示stablediffusion圖片生成大模型的使用演示。stablediffusion能夠將原始圖像中給定的掩碼區域中的圖像編輯為用戶給定的文本輸入的內容。下面代碼是一個簡單的圖片編輯和生成示例,通過輸入原始圖像、掩碼圖像,經過30次擴散過程,完成圖像編輯。(a)為原始圖像,該圖像中有一條狗坐在凳子上;(b)為原始圖像中狗的掩碼圖像;(c)為編輯生成后的圖像,可以看出該模型結合原始圖片和對象掩碼,成功按文本描述將原始圖像中的狗變成一只貓。目錄2基于Grounded-SAM的圖像編輯1認識Grounded-SAM開源項目3GroundingDINO模型的微調2.深度學習環境部署

任務目標(1)掌握Grounding-SAM圖像編輯。(2)掌握Gradio工具使用。(3)測試圖像編輯效果。2.1以文修圖的實現過程Grounded-SAM圖像編輯流程由三個關鍵步驟構成。首先,執行目標檢測,利用GroundingDINO模型精確定位文本描述中提及的對象。接著,執行指定區域的主體分割,通過SAM模型提取出特定區域內的主要對象的掩碼。最后,利用stablediffusion模型對原始圖像中被掩碼覆蓋的部分進行精細編輯,從而實現高質量的圖像編輯效果。圖像編輯過程展示圖2.2基于Gradio實現可視化圖像編輯本節實現一個交互式的圖像編輯web程序,該程序可以提供圖像選擇、文本輸入、類型選擇等功能,且能夠對輸入進行處理并可視化輸出結果。出于這一目標,利用Gradio這個機器學習演示快速構建工具,將圖像編輯這一過程中的檢測、分割及編輯功能均抽象出來,實現了一個多功能的交互演示系統。Gradio簡介程序代碼介紹程序的整體流程模型加載模型推理結果輸出Gradio頁面實現圖像編輯效果展示2.3Gradio簡介

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。Gradio是一個開源的Python庫,專為簡化機器學習模型和數據科學項目的演示與分享過程而設計。它允許開發者和數據科學家在不需要深入掌握Web開發技術的情況下,迅速為他們的模型或數據處理工作流創建交互式的Web界面。Gradio提供了一個簡潔的API,用戶只需幾行代碼就能將模型包裝成一個具備圖形用戶界面的Web應用。Gradio支持多種輸入和輸出類型,涵蓋了文本、圖像、音頻、視頻等多種數據格式。Gradio的核心是Interface類,它允許用戶定義輸入和輸出類型,創建交互式的Web界面。Gradio中典型的組件有輸入組件、輸出組件及頁面布局組件。輸入組件輸出組件頁面布局組件2.3.1Gradio輸入組件說明及示例

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。組件名說明示例Audio允許用戶上傳音頻文件或直接錄音。gr.Audio(source="microphone",type="filepath")Checkbox提供復選框,用于布爾值輸入。gr.Checkbox(label="同意條款")CheckboxGroup允許用戶從一組選項中選擇多個。gr.CheckboxGroup(["選項1","選項2","選項3"],label="選擇你的興趣")ColorPicker用于選擇顏色,通常返回十六進制顏色代碼。gr.ColorPicker(default="#ff0000")Dataframe允許上傳CSV文件或輸入DataFrame。gr.Dataframe(headers=["列1","列2"],row_count=5)Dropdown下拉菜單,用戶可以從中選擇一個選項gr.Dropdown(["選項1","選項2","選項3"],label="選擇一個選項")File用于上傳任意文件,支持多種文件格式。gr.File(file_count="single",type="file")Image用于上傳圖片,支持多種圖像格式。gr.Image(type='pil')Number數字輸入框,適用于整數和浮點數。gr.Number(default=0,label="輸入一個數字")Radio單選按鈕組,用戶從中選擇一個選項。gr.Radio(["選項1","選項2","選項3"],label="選擇一個選項")Slider滑動條,用于選擇一定范圍內的數值。gr.Slider(minimum=0,maximum=10,step=1,label="調整數值")Textbox單行文本輸入框,適用于簡短文本。gr.Textbox(default="默認文本",placeholder="輸入文本")Textarea多行文本輸入區域,適合較長的文本輸入。gr.Textarea(lines=4,placeholder="輸入長文本")Time用于輸入時間。gr.Time(label="選擇時間")Video視頻上傳組件,支持多種視頻格式。gr.Video(label="上傳視頻")Data用于上傳二進制數據,如圖像或音頻的原始字節。gr.Data(type="auto",label="上傳數據")2.3.2Gradio輸出組件說明及示例

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。組件名說明示例Audio播放音頻文件。gr.Audio(type="auto")Carousel以輪播方式展示多個輸出,適用于圖像集或多個數據點。gr.Carousel(item_type="image")DataframePandasDataFrame展示,適用于表格數據。gr.Dataframe(type="pandas")Gallery以畫廊形式展示一系列圖像。gr.Gallery(label="images",show_label=False,elem_id="gallery",columns=[2],rows=[1],object_fit="contain",height="auto")HTML展示HTML內容,適用于富文本或網頁布局。gr.HTML(value=generate_html())Image展示圖像。gr.Image(type="pil")JSON以JSON格式展示數據,便于查看結構化數據。gr.JSON(value=json.dumps({"a":30})Label展示文本標簽,適用于簡單的文本輸出。gr.Label(value="cat")

Markdown支持Markdown格式的文本展示。gr.Markdown(value="##Mark")Plot展示圖表,如matplotlib生成的圖表。gr.Plot(value=plt.gcf())Text用于顯示文本,適合較長的輸出。gr.Text(value=echo("Hello,World!"))Video播放視頻文件。gr.Video(value="VideoPath.mp4")2.3.3Gradio布局組件說明及示例

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。組件名說明示例Row播放音頻文件。withgr.Blocks()asdemo:withgr.Row():gr.Button("Button1")gr.Button("Button2")Column以輪播方式展示多個輸出,適用于圖像集或多個數據點。withgr.Blocks()asdemo:withgr.Column():gr.Textbox(label="Enteryourname")gr.Button("Submit")Accordion允許用戶通過展開和折疊來顯示或隱藏其內容。withgr.Blocks()asdemo:withgr.Accordion("Clickmetoexpand"):gr.Text("Thistextishidden")Tab用于創建帶有多個標簽頁的界面,用戶可以在這些標簽頁之間切換withgr.Blocks()asdemo:withgr.Tab("Tab1"):gr.Text("ThisisinTab1.")withgr.Tab("Tab2"):gr.Text("ThisisinTab2.")2.4 程序代碼介紹-程序的整體流程

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。四個組件分別為Sam全分割、GroundingDINO目標檢測、SamPredictor指定區域分割、StableDiffusion圖像編輯。該程序對應的四個功能及其過程為:1.全分割功能:無需輸入參數,通過圖中①⑤進行;2.目標檢測功能:需要輸入待檢測對象文本,通過圖中②⑥進行;3.文本分割功能:需要輸入待檢測對象文本,通過圖中②③⑦進行;4.圖像編輯功能:需要輸入待檢測對象文本及編輯提示文本,通過圖中②③④⑧進行。程序的整體流程。該程序的整體過程如下圖所示,程序由SamAutomaticMaskGenerator、GroundingDINO、SamPredictor、StableDiffusionInpaintPipeline等四個算法組件及1-8個路徑組成。2.4.1 程序代碼介紹–模型加載

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。模型加載。該部分主要為模型加載部分,主要為模型路徑設置,模型加載。具體可見右側代碼,其中run_grounded_sam函數中僅有圖像獲取及轉換過程,模型推理、結果輸出部分在后面介紹。2.4.2 程序代碼介紹-模型推理

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。模型推理。推理部分封裝了四個功能的推理腳本,見右側代碼。當task_type為'automask'直接進行全分割模型;當task_type為'det',僅進行文本提示目標檢測;當task_type為'seg'或'inpainting'進行文本提示目標檢測模型及指定區域主體分割算法。2.4.3 程序代碼介紹-結果輸出

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。下面為結果輸出部分,其輸出為圖像列表。當任務類型為目標檢測或全分割時,返回繪制的推理結果的圖像;當任務類型為文本提示分割、圖像編輯兩種情況時,返回的是繪制推理結果圖像及掩碼圖像。2.4.4 程序代碼介紹-Gradio頁面實現Gradio包含豐富的組件,能夠快速構建展示程序。本項目頁面中設置圖像組件、文本輸入組件、下拉框組件、滑動組件等,并設定單擊按鈕,將按鈕與上文run_grounded_sam函數綁定。能夠自動獲取輸入的圖片、文本以及參數等,調用推理函數。最后將函數返回結果呈現到輸出組件。defvisual_interface():

withgr.Blocks(title="Grounded-SAMStyleImage")asblock:#設置界面名

withgr.Row():#添加一行

input_image=gr.Image(type="pil")#創建輸入圖像組件

gallery=gr.Gallery(#創建輸出結果組件

label="Generatedimages",show_label=False,elem_id="gallery"

,columns=[2],rows=[1],object_fit="contain",height="auto"

)

withgr.Row():

#選擇框,選擇任務(全分割、文本提示檢測、文本提示分割、圖像編輯)

task_type=gr.Dropdown(["automask","det","seg","inpainting"],value="inpainting",label="task_type")

withgr.Row():#添加圖像檢測的文本輸入行

text_prompt=gr.Textbox(label="TextPrompt")

withgr.Row():#添加圖像編輯的文本輸入行

inpaint_prompt=gr.Textbox(label="InpaintPrompt")

withgr.Row():#添加擴散迭代次數

infer_steps_num=gr.Textbox(label="InpaintInferenceSteps")

withgr.Row():#設置按鈕

run_button=gr.Button()

withgr.Row():#高級屬性,用于修改對象檢測文本、框閾值及圖像編輯方式

withgr.Accordion("Advancedoptions",open=False):box_threshold=gr.Slider(label="BoxThreshold",minimum=0.0,maximum=1.0,value=0.3,step=0.05)text_threshold=gr.Slider(label="TextThreshold",minimum=0.0,maximum=1.0,value=0.25,step=0.05)

inpaint_mode=gr.Dropdown(["merge","first"],value="merge",label="inpaint_mode")

#將按鈕與推理函數綁定

run_button.click(run_grounded_sam,

inputs=[input_image,text_prompt,task_type,inpaint_prompt,

box_threshold,text_threshold,inpaint_mode,infer_steps_num],

outputs=gallery)

block.launch()2.5.1 圖像編輯操作界面展示

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。如圖所示,第一行左側為圖像輸入組件,右側為結果輸出組件;接下來分別為task_type選擇欄,能用于選擇功能類別,默認為”inpainting”,即圖像編輯;TextPrompt用于輸入檢測(待編輯)對象的提示文本;InpaintPrompt用于輸入需要生成對象的提示文本;InpaintInferenceSteps用于輸入擴散循環次數(決定了生成對象的特征程度)。后面的高級選項用于設定閾值和模式。當輸入及參數設置完成,點擊run按鈕后進行處理。2.5.2圖像編輯效果展示

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。針對圖像編輯進行了兩組實驗,分別以提示詞、擴散迭代次數為變量來進行比對。圖像(a)為原始圖像,該測試設置檢測文本提示為dog,擴散迭代次數為30,中間為當編輯提示詞為”acat”時的輸出圖像,右側為當編輯提示詞為”apig”時的輸出圖像??梢?,當要編輯生成的對象與原檢測對象的大小和類型比較一致的時候,編輯生成的效果較好。2.5.3圖像編輯效果展示

請注意,以上命令僅是示例,實際上可能需要根據系統配置和需求進行一些調整,輸出結果也會根據版本不同而有所不同。此外,為了獲得更好的性能和穩定性,在使用GPU版本時需確保GPU驅動和CUDA版本與PyTorch兼容。針對圖像編輯進行了兩組實驗,分別以提示詞、擴散迭代次數為變量來進行比對。(a)為原始圖像,該測試設置檢測文本提示為”Hair”,編輯生成提示詞為”Whitehair”,如圖8-9(b)

為擴散迭代次數為20時的輸出圖像,如圖(c)

為擴散迭代次數為40時的輸出圖像??梢钥闯霾煌臄U散次數會編輯出不同效果的圖像,可通過設置不同的迭代次數來編輯出較為滿意的圖像。目錄2基于Grounded-SAM的圖像編輯1認識Grounded-SAM開源項目3GroundingDINO模型的微調3.模型訓練與評估

任務目標(1)模型微調環境部署。(2)模型微調配置文件設置。(3)基于數據加載及損失函數編寫。3.1.1微調任務分析–貓咪數據集自建貓咪寵物數據集數據集圖像來自于家里兩只不同貓咪的拍攝,分別為橘貓和英短,具體可見圖,圖中(a)為橘貓(Gingercat),(b)的為英短(BritishShorthair)。本項目中,數據集格式轉為coco樣式,訓練集、測試集圖片以文件夾形式存放,標注文件分別是對應一個json文件。訓練集中有300張圖像,圖像包含的橘貓、英短兩種對象數量分別為160個、157個;測試集中有26張圖像,圖像包含的橘貓、英短兩種對象數量分別為18個、12個。(b)英短(a)橘貓3.1.2微調任務分析–貓咪檢測測試2)GroundingDINO細類貓咪檢測測試在貓咪數據集中篩選出了典型圖像用于測試GroundingDINO對貓咪的細類描述的檢測效果,圖(a)為測試圖像,該圖中同時存在橘貓和英短兩只貓咪。圖(b)、(c)、(d)是在輸入的檢測文本描述分別為Gingercat、BritishShorthair、Gingercat.BritishShorthair這三種種情況下的結果展示:從測試結果中可看出GroundingDINO原始模型實際上分不清楚Gingercat、BritishShorthair兩種貓,當輸入提示文本為Gingercat時,模型將兩只貓都識別為Gingercat;當輸入提示文本為BritishShorthair時,模型將兩只貓都識別為BritishShorthair;當輸入提示文本為Gingercat.BritishShorthair時,模型將圖像上側的BritishShorthair識別為Gingercat,將Gingercat識別為BritishShorthair。鑒于上述的測試結果,接下來的主要任務是在該數據集上微調GroundingDINO模型,使該模型能夠識別橘貓、英短兩種類別貓咪。3.2模型微調-工程結構介紹本次微調工程的主要文件和目錄結構。其中,bert-base-uncased/、weight分別為存放模型的目錄,configs/中包含GroundingDINO微調的配置文件。Demo中image_demo.py為推理代碼,tools中dist_train.sh為訓練腳本。Data中為數據集存放目錄,cats/train中為訓練集圖像、cats/val中為驗證集圖像、annotations中為標簽文件。3.2.1模型微調-環境部署首先需要部署好MMDetection框架微調GroundingDINO所需要的環境。根據本機硬件環境安裝cuda、torch、torchvision,這里不做詳細說明。需注意:訓練需要8G以上的顯存。下面分別介紹環境包安裝、預訓練模型及所依賴的語言模塊下載。(1)依賴包安裝。執行以下命令安全相關依賴包。其中MMDetection的代碼也可從課程資源下載。pipinstall-Uopenmimmiminstallmmenginemiminstall"mmcv>=2.0.0"gitclone/open-mmlab/MMDetection.gitcdMMDetectionpipinstall-v-e.(2)預訓練模型及NLTK庫模塊下載。下載預訓練模型bert-base-uncased、GroundingDINO_swint_ogc_mmdet-822d7e9d.pth,分別將其放置在項目根路徑及項目根路徑下的weight中。MMDetection微調GroundingDINO過程依賴于NLTK庫(NaturalLanguageToolkit)中的部分模塊,分別為punkt、averaged_perceptron_tagger,前者是NLTK庫中用于句子分割(句子切分)的模塊,后者是NLTK庫中用于詞性標注的模塊。由于nltk包的download方法無法下載,會導致程序長時間等待后發生錯誤。因此通過手動方式下載這兩個模塊,首先在MMDetection安裝路徑下的mmdet/models/detectors/glip.py中刪除nltk.download,如下圖所示。之后在github上下載其壓縮包后分別以下面的文件格式存放在用戶home文件夾中nltk_data中,具體的目錄結構如下圖所示。|+--~/nltk_data/|+--taggers/

|+--averaged_perceptron_tagger/

|+--averaged_perceptron_tagger.zip|+--tokenizers/

|+--punkt/

|+--punkt.zip3.2.2模型微調利用MMDetection微調GroundingDINO主要涉及準備數據集、配置訓練參數、運行訓練腳本并評估模型性能。

(1)配置文件參數設置:

設置data_root、class_name、palette、train_dataloader、test_dataloader、val_evaluator、max_epoch等參數。data_root為數據集目錄;class_name為微調數據集類別名;palette為顏色列表,用于可視化檢測結果;train_dataloader

溫馨提示

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

評論

0/150

提交評論