最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python和yolo方法實(shí)現(xiàn)yolo標(biāo)簽自動標(biāo)注

 更新時間:2024年11月15日 11:23:38   作者:Jumbuck_10  
本文介紹了基于YOLOv10的自動標(biāo)注方法,從初階的固定標(biāo)注到高階的基于YOLO檢測結(jié)果的自動標(biāo)注,兩者相比,高階方法顯著提高了標(biāo)注的準(zhǔn)確性,并減少了人工操作的時間,</P><P>

yolo代碼自動標(biāo)注

1.引言

在圖像處理與機(jī)器視覺領(lǐng)域,標(biāo)注數(shù)據(jù)的質(zhì)量和數(shù)量對于模型的訓(xùn)練至關(guān)重要。然而,手動標(biāo)注大量圖像是一項(xiàng)繁瑣且耗時的工作。為了解決這個問題,自動標(biāo)注技術(shù)應(yīng)運(yùn)而生。本文將介紹如何使用YOLOv10結(jié)合傳統(tǒng)圖像處理算法進(jìn)行驗(yàn)證碼圖像的自動標(biāo)注,從初步的自動標(biāo)注到高階的基于檢測結(jié)果的自動標(biāo)注。

2.初階“自動標(biāo)注”,給每個圖像都生成一個固定的標(biāo)注文件,進(jìn)而在labglimg中對矩形框進(jìn)行微調(diào),減少標(biāo)注的工作量

在初步的自動標(biāo)注階段,我們首先為每張圖像生成一個固定的標(biāo)注文件,這些文件的內(nèi)容通常是預(yù)設(shè)的,矩形框的位置并不精確,因此適合用作標(biāo)注的初步框架。

import os
# 圖像文件夾路徑
image_folder = 'D:'
# 標(biāo)注文件即txt文件路徑
txt_folder = 'D:'
# 基于上述兩個路徑檢索圖像和txt即yolo格式的標(biāo)注文件
image_files = [f.split('.')[0] for f in os.listdir(image_folder) if f.lower().endswith(('jpg', 'jpeg', 'png', 'bmp'))]
txt_files = [f.split('.')[0] for f in os.listdir(txt_folder) if f.lower().endswith('txt')]
# 遍歷圖像文件名
for img_name in image_files:
    # 如果某圖像沒有對應(yīng)的標(biāo)簽文件即txt文件
    if img_name not in txt_files:
        # 寫入txt文件
        txt_content = """0 0.808621 0.945652 0.072414 0.073913
                        0 0.250000 0.604348 0.093103 0.078261
                        0 0.660345 0.584783 0.086207 0.100000
                        0 0.613793 0.160870 0.117241 0.139130
                        0 0.293103 0.184783 0.103448 0.117391"""
        with open(os.path.join(txt_folder, img_name + '.txt'), 'w') as f:
            f.write(txt_content)
print("Process complete.")

由于我們對每張圖都生成的是一份固定的標(biāo)注txt文件,所以生成的文件一般都是這種的,矩形框 不在正確的位置上,雖然能夠降低一定的標(biāo)注工作量,但是我們還是想讓它更精準(zhǔn)一點(diǎn),那就需要使用訓(xùn)練好的模型了。

局限性:
矩形框位置不準(zhǔn)確,標(biāo)注結(jié)果可能與實(shí)際物體位置存在偏差。
無法自動識別圖像中的所有物體,可能遺漏檢測。

3.高階自動標(biāo)注,利用我們訓(xùn)練好的(但是沒有特別精準(zhǔn)的)yolo文件先對每張圖進(jìn)行檢測,再手動微調(diào)

為了提高自動標(biāo)注的精度,我們可以使用YOLOv10模型對每張圖像進(jìn)行目標(biāo)檢測,并根據(jù)檢測結(jié)果生成標(biāo)注文件。這種方式能夠提供較為準(zhǔn)確的初步標(biāo)注,用戶只需要對檢測框進(jìn)行微調(diào)即可,減少了大量的手動標(biāo)注工作。

import os
from ultralytics import YOLOv10
# Folder paths
image_folder = 'D:'
txt_folder = 'D:'
# Load a pretrained YOLOv10n model
model = YOLOv10("\weights\\best.pt")
image_files = [f for f in os.listdir(image_folder) if f.lower().endswith(('jpg', 'jpeg', 'png', 'bmp'))]
# Perform object detection on each image file
for img_name in image_files:
    img_path = os.path.join(image_folder, img_name)
    # Perform prediction
    results = model.predict(img_path)
    # Extract detection results (assuming results[0] contains the detection)
    detections = results[0].boxes.xywh  # Get bounding box coordinates (xywh format)
    # If no .txt file exists, create a new one
    txt_path = os.path.join(txt_folder, img_name.split('.')[0] + '.txt')
    if not os.path.exists(txt_path):  # Check if .txt file already exists
        # Write detection results to the .txt file
        with open(txt_path, 'w') as f:
            for detection in detections:
                # Assuming you want the format: class_id x_center y_center width height (normalized)
                # Convert coordinates from pixels to normalized values by dividing by image width/height
                x_center, y_center, width, height = detection
                x_center /= results[0].orig_img.shape[1]  # Normalize by image width
                y_center /= results[0].orig_img.shape[0]  # Normalize by image height
                width /= results[0].orig_img.shape[1]  # Normalize by image width
                height /= results[0].orig_img.shape[0]  # Normalize by image height
                # Write to file (Assuming class id is 0 here, change based on your model)
                f.write(f"0 {x_center} {y_center} {width} {height}\n")
print("Process complete.")

代碼詳解:
1.加載YOLOv10模型:使用YOLOv10模型進(jìn)行物體檢測。通過model.predict()函數(shù)對每張圖像進(jìn)行檢測。
2.提取檢測結(jié)果:模型返回的結(jié)果中包含了檢測到的目標(biāo)的坐標(biāo)信息,采用boxes.xywh提取出目標(biāo)的位置。
3.坐標(biāo)歸一化:將檢測結(jié)果的坐標(biāo)從像素值轉(zhuǎn)換為相對圖像大小的比例(即歸一化值),以符合YOLO標(biāo)注格式。
4.生成標(biāo)注文件:根據(jù)模型檢測結(jié)果生成標(biāo)注文件,格式為class_id x_center y_center width height。

這種方式得到的數(shù)據(jù)一般是下圖這樣的,1.會有一些框不準(zhǔn),2.有一些框是重復(fù)的,3.有一些代碼沒有檢測到。此時我們只需要微調(diào)這三種情況的框即可,顯著降低了工作量。

4.總結(jié)

本文介紹了基于YOLOv10的自動標(biāo)注方法,從初階的固定標(biāo)注到高階的基于YOLO檢測結(jié)果的自動標(biāo)注。兩者相比,高階方法顯著提高了標(biāo)注的準(zhǔn)確性,并減少了人工操作的時間。

初階方法:快速生成標(biāo)注文件,適用于初步標(biāo)注,但需要人工微調(diào)和修正。
高階方法:通過YOLOv10檢測得到較為精準(zhǔn)的標(biāo)注結(jié)果,適合更高精度要求的任務(wù),但仍需要人工微調(diào)。
希望這些代碼能幫助大家提升標(biāo)注工作的效率和精度,降低人工標(biāo)注的成本。在未來的工作中,我們可以繼續(xù)優(yōu)化和擴(kuò)展該方法,進(jìn)一步提高自動標(biāo)注的精度和適用范圍。

到此這篇關(guān)于使用python和yolo方法實(shí)現(xiàn)yolo標(biāo)簽自動標(biāo)注的文章就介紹到這了,更多相關(guān)python yolo標(biāo)簽自動標(biāo)注內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django基于客戶端下載文件實(shí)現(xiàn)方法

    Django基于客戶端下載文件實(shí)現(xiàn)方法

    這篇文章主要介紹了Django基于客戶端下載文件實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • python3 flask實(shí)現(xiàn)文件上傳功能

    python3 flask實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了python3 flask實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 詳解如何從TensorFlow的mnist數(shù)據(jù)集導(dǎo)出手寫體數(shù)字圖片

    詳解如何從TensorFlow的mnist數(shù)據(jù)集導(dǎo)出手寫體數(shù)字圖片

    這篇文章主要介紹了詳解如何從TensorFlow的mnist數(shù)據(jù)集導(dǎo)出手寫體數(shù)字圖片,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python類中的self和變量用法及說明

    python類中的self和變量用法及說明

    這篇文章主要介紹了python類中的self和變量用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python?windows安裝cuda+cudnn+pytorch教程

    python?windows安裝cuda+cudnn+pytorch教程

    這篇文章主要介紹了python?windows安裝cuda+cudnn+pytorch教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python的tkinter、socket庫開發(fā)tcp的客戶端和服務(wù)端詳解

    python的tkinter、socket庫開發(fā)tcp的客戶端和服務(wù)端詳解

    本文介紹了TCP通訊流程和開發(fā)步驟,包括客戶端和服務(wù)端的實(shí)現(xiàn),客戶端使用Python的tkinter庫實(shí)現(xiàn)圖形化界面,服務(wù)端使用socket庫監(jiān)聽連接并處理消息,文章還提供了客戶端和服務(wù)端的代碼示例
    2025-01-01
  • 詳解Python給照片換底色(藍(lán)底換紅底)

    詳解Python給照片換底色(藍(lán)底換紅底)

    這篇文章主要介紹了詳解Python給照片換底色(藍(lán)底換紅底),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python_opencv用線段畫封閉矩形的實(shí)例

    python_opencv用線段畫封閉矩形的實(shí)例

    今天小編就為大家分享一篇python_opencv用線段畫封閉矩形的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • pycharm配置anaconda環(huán)境時找不到python.exe解決辦法

    pycharm配置anaconda環(huán)境時找不到python.exe解決辦法

    今天來說一下python中一個管理包很好用的工具anaconda,可以輕松實(shí)現(xiàn)python中各種包的管理,這篇文章主要給大家介紹了關(guān)于pycharm配置anaconda環(huán)境時找不到python.exe的解決辦法,需要的朋友可以參考下
    2023-10-10
  • 使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程

    這篇文章主要介紹了使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程,本文來自于IBM官方網(wǎng)站的技術(shù)文檔,需要的朋友可以參考下
    2015-04-04

最新評論

无棣县| 承德县| 简阳市| 内乡县| 漠河县| 耒阳市| 甘德县| 涟水县| 梅州市| 宿松县| 江油市| 资阳市| 武定县| 正定县| 台北县| 金沙县| 大方县| 仪陇县| 全州县| 东阿县| 富阳市| 拜泉县| 平顺县| 盈江县| 明水县| 宁河县| SHOW| 阜康市| 阿鲁科尔沁旗| 望都县| 新龙县| 垦利县| 明溪县| 宣武区| 小金县| 溧阳市| 旅游| 剑河县| 丰城市| 长春市| 南充市|