国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注

這篇具有很好參考價(jià)值的文章主要介紹了標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在實(shí)際生產(chǎn)項(xiàng)目中,為了提升目標(biāo)識別的準(zhǔn)確性,我們往往需要3000-5000張圖片進(jìn)行標(biāo)注。而直接參與過標(biāo)注的人都有一個(gè)共同的感覺,就是標(biāo)注是一個(gè)簡單、枯燥、無聊且十分耗時(shí)費(fèi)力的差事。為此,我們可以在有了初步訓(xùn)練模型的基礎(chǔ)上,采用更加自動化的方式進(jìn)行標(biāo)注,屆時(shí),你講不用每個(gè)照片、每個(gè)目標(biāo)的重復(fù)標(biāo)注,而是直接在現(xiàn)有模型對圖片進(jìn)行識別后的結(jié)果上進(jìn)行調(diào)整標(biāo)注或者新增標(biāo)注。本章節(jié),筆者將重點(diǎn)圍繞使用labelIMG進(jìn)行自動化高效率的標(biāo)注進(jìn)行講解。

1、前期模型準(zhǔn)備

前期,筆者使用約1000張圖片對摩托車、電動自行車頭盔配搭和加裝雨棚進(jìn)行了訓(xùn)練,得到了一個(gè)已經(jīng)初步訓(xùn)練好的模型。暫且將其命名為“best_jx.pt”。下面我們將依托該pt文件模型,對新增的圖片進(jìn)行識別,并導(dǎo)入labelIMG進(jìn)行自動化標(biāo)準(zhǔn),從而非常明顯的提升我們的圖片標(biāo)注工作效率。

相信,當(dāng)你讀到本文時(shí),你也已經(jīng)有了自己的best.pt訓(xùn)練模型文件,大家可以直接套用本文檔的步驟。

2、編寫圖片識別腳本程序

當(dāng)你的圖片文件夾中已經(jīng)有了上千張最新的圖片后,我們現(xiàn)在要做的就是編寫代碼,調(diào)用前期你已經(jīng)生成的pt文件,將文件夾中的圖片逐一進(jìn)行識別。唯一不同的是,本次我們不光是要識別,還需要將識別的結(jié)果以標(biāo)簽的形式存為txt文檔。這個(gè)功能YOLO V8已經(jīng)在程序中實(shí)現(xiàn)了,我們只需要直接調(diào)用。

2.1 圖片標(biāo)簽生成程序

具體代碼示例如下:

from ultralytics import YOLO
import os
import glob
import threading

# 加載現(xiàn)有的xxx.pt模型
model = YOLO("E:/pyCharmProject/pythonProjectDetection/best_jx.pt")

# 指定圖片文件夾的路徑
image_folder = "E:/pyCharmProject/DetectionProjectHelmetRainshield/20230817pan1IMG/imgs/"

#本函數(shù)為調(diào)用YOLO V8的predict方法,進(jìn)行識別,并將其存為txt格式的標(biāo)簽文件
def auto_get_img_tag(image_path):
    results = model.predict(source=image_path, save_txt=True)
    print('done..........',image_path)
    return results
    
# 對每張圖片進(jìn)行預(yù)測,并保存標(biāo)簽文件
for image_path in glob.glob(image_folder + "*.jpg"):
    # 對圖片進(jìn)行預(yù)測,并保存標(biāo)簽文件
    results = model.predict(source=image_path, save_txt=True)
    print('done..........', image_path)
print('done.....................overall')

上述函數(shù)中使用了model.predict()方法,其與筆者之前直接使用的model()方法有所不同。

result = model(source) 是一個(gè)低級的 API,它直接調(diào)用了模型的 forward 方法,返回一個(gè) Results 對象,其中包含了模型的原始輸出,例如預(yù)測的類別、置信度、邊界框坐標(biāo)等。這個(gè) API 適合那些想要對模型的輸出進(jìn)行自定義處理的高級用戶,但是它不會執(zhí)行任何后處理或保存操作,也不會考慮任何預(yù)測參數(shù),例如圖像大小、置信度閾值等。

result=model.predict(source) 是一個(gè)高級的 API,它封裝了模型的 forward 方法,并且執(zhí)行了一些后處理和保存操作,例如非極大值抑制、標(biāo)簽文件生成、結(jié)果可視化等。這個(gè) API 適合那些想要快速得到預(yù)測結(jié)果的普通用戶,但是它需要指定一些預(yù)測參數(shù),例如圖像大小、置信度閾值、保存目錄等。這些參數(shù)可以在調(diào)用 predict 方法時(shí)傳入,也可以在配置文件中設(shè)置。

總之,result = model(source) 和 result=model.predict(source) 的區(qū)別在于前者返回的是模型的原始輸出,后者返回的是模型的后處理輸出。前者更靈活,但需要用戶自己處理結(jié)果;后者更方便,但需要用戶指定參數(shù)。你可以根據(jù)你的需求選擇合適的 API。

#2.2 并發(fā)實(shí)現(xiàn)圖片標(biāo)簽生成程序

當(dāng)我們圖片很多的時(shí)候,我們就需要使用高并發(fā)的形式實(shí)現(xiàn)。示例代碼如下。

from ultralytics import YOLO

import glob

from concurrent.futures import ThreadPoolExecutor

# 加載現(xiàn)有的xxx.pt模型
model = YOLO("E:/pyCharmProject/pythonProject1Chu/best_jiangxi.pt")

# 指定圖片文件夾的路徑
image_folder = "E:/pyCharmProject/DetectionProjectHelmetRainshield/20230817pan1IMG/imgs/"

# 本函數(shù)為調(diào)用YOLO V8的predict方法,進(jìn)行識別,并將其存為txt格式的標(biāo)簽文件
def auto_get_img_tag(image_path):
    results = model.predict(source=image_path, save_txt=True)
    print('done..........', image_path)
    return results

# 創(chuàng)建一個(gè)線程池,指定最大線程數(shù)為4
pool = ThreadPoolExecutor(max_workers=4)

# 對每張圖片進(jìn)行預(yù)測,并保存標(biāo)簽文件
for image_path in glob.glob(image_folder + "*.jpg"):
    # 使用map方法將函數(shù)和參數(shù)傳遞給線程池
    pool.map(auto_get_img_tag, [image_path])

# 等待所有線程完成
pool.shutdown(wait=True)

print('done.....................overall')

為了讓代碼支持并發(fā),筆者創(chuàng)建一個(gè)線程池,使用ThreadPoolExecutor類來管理多個(gè)線程,并使用map方法來將您的函數(shù)應(yīng)用到每個(gè)圖片路徑上。這樣,就可以同時(shí)處理多張圖片,并保存標(biāo)簽文件。

3、生成所需打標(biāo)簽圖片的label文件

運(yùn)行上述代碼后,你該程序py腳本文件的根目錄看到一個(gè)新的文件夾,名稱為run,每張圖片生成的label文件就在這個(gè)文件夾中,具體的存儲路徑為:
\runs\detect\predict\labels

其生成的文件進(jìn)入下圖所示:
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
當(dāng)我們將生成的文本,與導(dǎo)入上述識別腳本程序的圖片比較,可以發(fā)現(xiàn),txt標(biāo)簽文件的名稱與圖片的名稱是一一對應(yīng)的。
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能

至此,我們就已經(jīng)通過編寫的腳本程序,實(shí)現(xiàn)了對要逐個(gè)打標(biāo)簽的圖片進(jìn)行預(yù)處理的工作了,下部就可以將其導(dǎo)入labelIMG進(jìn)行自動化的打標(biāo)簽操作了。

4、準(zhǔn)備“class.txt”文件

我們知道,labelIMG工具在對圖片打標(biāo)簽后,會在輸出label的txt文檔目錄文件夾中,同步生成一個(gè)class.txt文件,按順序記錄所有標(biāo)簽內(nèi)容。為此,我們?yōu)榱藢?shí)現(xiàn)自動化的標(biāo)簽識別,也需要提前準(zhǔn)備好class.txt文件,并提前存放在標(biāo)簽輸出目錄內(nèi)。

正常來說,我們根據(jù)要打標(biāo)簽的內(nèi)容,肯定是知道class.txt中具體要寫什么標(biāo)簽的,如下圖所示:
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
但值得我們非常需要注意的一點(diǎn)是!按照labelIMG生成class.txt文件的邏輯,文件中各個(gè)標(biāo)簽的順序默認(rèn)是根據(jù)在所有圖片中,首次打上這個(gè)標(biāo)簽的順序來的。比如我們對這些圖片進(jìn)行打標(biāo)簽操作時(shí),第一個(gè)打的是nohelmet,那么nohelmet會出現(xiàn)在第一行。

由于圖片的量太大,我們很難由一個(gè)人一次打完,或者很難統(tǒng)籌每個(gè)人都是按同樣的標(biāo)簽順序進(jìn)行標(biāo)注。為此,在laeblIMG工具中,有一個(gè)預(yù)先設(shè)置標(biāo)簽的功能。也就是我們可以在以下目錄venv/Lib/site-packages/labelImg/data,找到predefined_classes.txt文件。在這個(gè)文件中,我們可以提前設(shè)置好所有的標(biāo)簽類型和標(biāo)簽順序,這樣labelIMG在進(jìn)行打標(biāo)簽的時(shí)候,就不需要每次出現(xiàn)新的標(biāo)簽就需要手動輸入的情況,而是可以在所有預(yù)先設(shè)置好的標(biāo)簽選項(xiàng)中進(jìn)行選擇。如下圖所示,筆者已經(jīng)預(yù)先設(shè)置了5個(gè)標(biāo)簽,并明確了其順序。
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
我們在實(shí)際項(xiàng)目中,可以直接將predefined_classes.txt中預(yù)先設(shè)定的標(biāo)簽內(nèi)容直接復(fù)制到class.txt文件中。從而確保我們?yōu)閘abelIMG工具提前準(zhǔn)備的class.txt文件沒有錯(cuò)誤,從而不會出現(xiàn)工具中途卡死、閃退,造成需要重新打標(biāo)簽的情況。

5、將需打標(biāo)簽的圖片、預(yù)先生成的label文本和class.txt文件存入指定文件夾目錄

我們知道,當(dāng)我們在pycharm的terminal命令行窗口輸入labelIMG命令后,程序?qū)⒆詣訂觢abelIMG工具,如下圖所示。
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
啟動labelIMG工具后,我們首先要指定“Open Dir”和"Change Save Dir",如下圖所示。也就是說,設(shè)定好我們讀取圖片的文件夾,和將生成的label文件存放的文件夾。
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
由于我們前期已經(jīng)通過腳本程序預(yù)先生成了label文件,我們就可以理解為是電腦用我們的前期訓(xùn)練的模型,幫我們使用這個(gè)工具對所有圖片進(jìn)行了標(biāo)注,并生成了對應(yīng)的label文件,我們現(xiàn)在需要做的只是逐一圖片的檢查其標(biāo)注情況是否準(zhǔn)確,如果發(fā)現(xiàn)不準(zhǔn)確或者遺漏的,我們可以在labelIMG工具中再進(jìn)行手動調(diào)整。

當(dāng)我們明確了上面的思路,便可清晰的知道我們需要做標(biāo)注的圖片和生成的label文件以及class.txt文件需要存放的路徑了。

6、開始高效圖片標(biāo)注工作

在本例子中,筆者將圖片存放于以下文件夾目錄:E:\測試\img,將label文件和class.txt文件存放于以下文件夾目錄:E:\測試\label。因此,我們在labelIMG工具中按照上圖所示,選擇完成后,便可發(fā)現(xiàn)我們打開的圖片已經(jīng)有了相關(guān)的標(biāo)注情況。只需要我們手動檢查或調(diào)整就可以了。如下圖所示:
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能

在這里,我們便可以逐一對目標(biāo)進(jìn)行該檢查,對識別錯(cuò)誤的,我們可以點(diǎn)擊目標(biāo)右鍵,重新編輯標(biāo)簽屬性,重新編輯保存的label文檔,和直接生成的文檔,效果是一樣的。如下圖所示:
標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注,手把手教你玩轉(zhuǎn)YOLO目標(biāo)識別——公安交管場景實(shí)戰(zhàn),自動化,機(jī)器學(xué)習(xí),人工智能
我們完成所有圖片的標(biāo)注審核和修改工作后,便可直接在E:\測試\label目錄下,獲取最新的label文件了。這些文件以及配套的圖片文件,還有我們提前生成的class.txt文件,都需要進(jìn)一步拷貝到用來做YOLO v8訓(xùn)練使用。這一點(diǎn)就和正常操作步驟沒有任何不同了。文章來源地址http://www.zghlxwxcb.cn/news/detail-660481.html

到了這里,關(guān)于標(biāo)簽準(zhǔn)備——labelIMG工具使用——自動化標(biāo)注的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何使用Python自動化測試工具Selenium進(jìn)行網(wǎng)頁自動化?

    如何使用Python自動化測試工具Selenium進(jìn)行網(wǎng)頁自動化?

    Selenium 是一個(gè)流行的Web自動化測試框架, 它支持多種編程語言和瀏覽器,并提供了豐富的API和工具來模擬用戶在瀏覽器中的行為 。 Selenium可以通過代碼驅(qū)動瀏覽器自動化測試流程,包括頁面導(dǎo)航、元素查找、數(shù)據(jù)填充、點(diǎn)擊操作等。 與PyAutoGUI和AutoIt相比, Selenium更適合于處

    2023年04月09日
    瀏覽(111)
  • 三天精通Selenium Web 自動化 - 項(xiàng)目實(shí)戰(zhàn)環(huán)境準(zhǔn)備

    三天精通Selenium Web 自動化 - 項(xiàng)目實(shí)戰(zhàn)環(huán)境準(zhǔn)備

    ?返回 TestNG,即Testing Next Generation,下一代測試技術(shù),是一套根據(jù)JUnit和NUnit思想而構(gòu)建的利用注釋來強(qiáng)化測試功能的一個(gè)測試框架,即可以用來做單元測試,也可以用來做集成測試。更多細(xì)節(jié)可以到官網(wǎng)去了解:TestNG - Welcome 1.1 安裝TestNG 打開eclipse,菜單help - Install New Softwa

    2024年02月04日
    瀏覽(18)
  • 如何使用自動化測試工具Selenium?

    如何使用自動化測試工具Selenium?

    哈嘍,大家好,我是小浪。那么有一段時(shí)間沒有更新了,還是在忙實(shí)習(xí)和秋招的事情,那么今天也是實(shí)習(xí)正式結(jié)束啦,開始繼續(xù)更新我們的學(xué)習(xí)博客,后期主要是開發(fā)和測試的學(xué)習(xí)博客內(nèi)容巨多,感興趣的小伙伴們可以一鍵三連支持一下歐~ 目錄 一、什么是自動化測試? 二、

    2024年02月11日
    瀏覽(100)
  • iOS 自動化測試 (2):基本環(huán)境準(zhǔn)備 - 安裝WebDriverAgent(WDA)

    iOS 自動化測試 (2):基本環(huán)境準(zhǔn)備 - 安裝WebDriverAgent(WDA)

    在配置好了Appium的基礎(chǔ)環(huán)境之后,下一步需要在被測試設(shè)備中安裝WebDriverAgent。 先介紹一下什么是WebDriverAgent,WebDriverAgent是Facebook 在SeleniumConf 大會上推出的一款新的iOS移動測試框架,支持模擬器和真機(jī)。WebDriverAgent的本質(zhì)是WebDriver Server。在iOS客戶端安裝了WebDriverAgent 就等于

    2024年01月25日
    瀏覽(20)
  • 接口自動化測試工具,Postman使用詳解

    接口自動化測試工具,Postman使用詳解

    1、Postman是一款功能強(qiáng)大的網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁HTTP請求的Chrome插件,Postman分為Postman native app和Postman Chrome app兩個(gè)版本。目前Chrome app已經(jīng)停止維護(hù),官方也不推薦使用該版本。 2、官網(wǎng)下載地址:http://www.getpostman.com 3:官方文檔:http://www.getpostman.com/docs 2、第二步:新建接口請

    2024年02月06日
    瀏覽(94)
  • Web測試自動化工具Selenium的使用

    Selenium是一個(gè)Web應(yīng)用測試的自動化工具,它通過模擬點(diǎn)擊實(shí)現(xiàn)對Web應(yīng)用的功能測試。測試時(shí),除了Selenium,還需要對應(yīng)的瀏覽器驅(qū)動,如在Chrome實(shí)現(xiàn)自動點(diǎn)擊,則需要chromedriver。 Selenium支持多種語言和多種瀏覽器,本文僅記錄python+chrome的使用。 1. 安裝python 略 2. 安裝Selenium 注

    2024年01月16日
    瀏覽(95)
  • Ansible 自動化運(yùn)維工具的使用

    Ansible 自動化運(yùn)維工具的使用

    目錄 ? 一、Ansible簡介 二、Ansible 的安裝和使用 1.下載 2.使用 三、Ansible命令和模塊 1.命令格式 2.命令行模塊 (1)command 模塊 (2)shell 模塊 (3)cron 模塊 (4)user 模塊 (5)group 模塊 (6)copy 模塊 (7)file 模塊 (8)hostname 模塊 (9)ping 模塊? (10)yum 模塊 (11)service/

    2024年02月11日
    瀏覽(25)
  • Ansible自動化部署工具|各個(gè)模塊的使用

    Ansible自動化部署工具|各個(gè)模塊的使用

    1、運(yùn)維工具特點(diǎn) Ansible 與 Saltstack 均是基于 Python 語言開發(fā),Ansible 只需要在一臺普通的服務(wù)器上運(yùn)行即可,不需要在客戶端服務(wù)器上安裝客戶端。因?yàn)?Ansible 是基于 SSH 遠(yuǎn)程管理,而Linux服務(wù)器大都離不開SSH,所以Ansible不需要為配置工作添加額外的支持。 Ansible 安裝使用非常

    2024年02月01日
    瀏覽(23)
  • 如何使用IOS自動化測試工具UIAutomation

    如何使用IOS自動化測試工具UIAutomation

    這篇文章主要介紹了UIAutomation使用實(shí)例、應(yīng)用技巧、基本知識點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值 第一部分: 熟悉Instruments的UIAutomation. 第二部分: 控件的獲取及操作 第三部分: 自定義自動化腳本 xcode中自帶的Instuments工具可以用來進(jìn)行APP的自動化測試, 以及用于進(jìn)行內(nèi)

    2024年02月03日
    瀏覽(290)
  • 職言 | 編碼是測試自動化職業(yè)生涯的關(guān)鍵:你準(zhǔn)備好了嗎?

    職言 | 編碼是測試自動化職業(yè)生涯的關(guān)鍵:你準(zhǔn)備好了嗎?

    Verily Life Sciences是一家健康管理公司,前身為Google Life Sciences。2015年,谷歌改組為Alphabet,業(yè)務(wù)調(diào)整之后,谷歌原有的健康業(yè)務(wù)分離出來。同一年,Google Life Sciences也更名為Verily,目前該公司已經(jīng)獲得包括Alphabet、淡馬錫、銀湖資本等多輪投資。 本文作者為該公司一名軟件測試

    2023年04月16日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包