<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          YOLOv10 自定義目標(biāo)檢測(cè) | 理論+實(shí)踐

          共 3363字,需瀏覽 7分鐘

           ·

          2024-07-22 09:00


          概述

          YOLOv10 是由清華大學(xué)研究人員利用 Ultralytics Python 軟件包開發(fā)的,它通過改進(jìn)模型架構(gòu)并消除非極大值抑制(NMS)提供了一種新穎的實(shí)時(shí)目標(biāo)檢測(cè)方法。這些優(yōu)化使得模型在保持先進(jìn)性能的同時(shí),降低了計(jì)算需求。大量實(shí)驗(yàn)表明,YOLOv10 在各種模型規(guī)模上提供了更優(yōu)的準(zhǔn)確率-延遲權(quán)衡。

          正如讀過我之前文章的朋友所知道的,我分享了使用 YOLO 模型的各種項(xiàng)目,因?yàn)樵陬A(yù)訓(xùn)練模型中,YOLO 模型在性能和效率方面明顯優(yōu)于其他模型。然而,實(shí)時(shí)目標(biāo)檢測(cè)由于依賴非極大值抑制(NMS)和架構(gòu)效率低下而面臨挑戰(zhàn)。YOLOv10 通過消除 NMS 并采用專注于效率和準(zhǔn)確性的設(shè)計(jì)策略解決了這些問題。

          架構(gòu)

          來自 Ultralytics 的圖示

          • 骨干網(wǎng)絡(luò):負(fù)責(zé)特征提取,YOLOv10 的骨干網(wǎng)絡(luò)使用增強(qiáng)版的 CSPNet(交叉階段部分網(wǎng)絡(luò))來改善梯度流動(dòng)并減少計(jì)算冗余。

          • 頸部網(wǎng)絡(luò):設(shè)計(jì)用于聚合不同尺度的特征并將其傳遞到頭部網(wǎng)絡(luò)。它包含用于有效多尺度特征融合的 PAN(路徑聚合網(wǎng)絡(luò))層。

          • 一對(duì)多頭:在訓(xùn)練過程中為每個(gè)對(duì)象生成多個(gè)預(yù)測(cè),以提供豐富的監(jiān)督信號(hào)并提高學(xué)習(xí)準(zhǔn)確性。

          • 一對(duì)一頭:在推理過程中為每個(gè)對(duì)象生成一個(gè)最佳預(yù)測(cè),消除 NMS 的需要,從而減少延遲并提高效率。

          模型變體及性能YOLOv10 提供六種模型:

          • YOLOv10-N:用于極其資源受限環(huán)境的納米版。

          • YOLOv10-S:平衡速度和準(zhǔn)確性的小型版。

          • YOLOv10-M:用于通用的中型版。

          • YOLOv10-B:增加寬度以提高準(zhǔn)確性的平衡版。

          • YOLOv10-L:在增加計(jì)算資源成本的情況下提高準(zhǔn)確性的高級(jí)版。

          • YOLOv10-X:用于最大化準(zhǔn)確性的超大型版。

          來自 Ultralytics 的圖示

          比較讓我們看看在標(biāo)準(zhǔn)基準(zhǔn)(如 COCO)上測(cè)試的不同模型在延遲和準(zhǔn)確性方面的比較。

          很明顯,YOLOv10 是實(shí)時(shí)目標(biāo)檢測(cè)應(yīng)用的前沿技術(shù),以更少的參數(shù)提供更高的準(zhǔn)確性和速度性能。

          訓(xùn)練 YOLOv10 進(jìn)行自定義目標(biāo)檢測(cè)首先,克隆官方 YOLOv10 GitHub 倉(cāng)庫(kù)以下載必要的 yolov10n 模型。

          !pip install -q git+https://github.com/THU-MIG/yolov10.git
          !wget -P -q https://github.com/jameslahm/yolov10/releases/download/v1.0/yolov10n.pt

          您可以在 Roboflow Universe 上嘗試任何自定義項(xiàng)目,創(chuàng)建自己的數(shù)據(jù)集,甚至使用由 Intel 贊助的 RF100 數(shù)據(jù)集。對(duì)于本文,我將使用一個(gè)預(yù)先準(zhǔn)備好的數(shù)據(jù)集,用于檢測(cè) X 射線圖像中的危險(xiǎn)物品。數(shù)據(jù)集鏈接:https://universe.roboflow.com/vladutc/x-ray-baggage

          使用 Roboflow API 以 YOLOv8 格式下載您的模型。

          !pip install -q roboflowfrom roboflow import Roboflowrf = Roboflow(api_key="your-api-key")project = rf.workspace("vladutc").project("x-ray-baggage")version = project.version(3)dataset = version.download("yolov8")

          配置參數(shù),開始訓(xùn)練:

          !yolo task=detect mode=train epochs=25 batch=32 plots=True \model='/content/-q/yolov10n.pt' \data='/content/X-Ray-Baggage-3/data.yaml'

          示例 data.yaml 文件

          names:- Gun- Knife- Pliers- Scissors- Wrench
          nc: 5
          roboflow: license: CC BY 4.0 project: x-ray-baggage url: https://universe.roboflow.com/vladutc/x-ray-baggage/dataset/3 version: 3 workspace: vladutc
          test: /content/X-Ray-Baggage-3/test/imagestrain: /content/X-Ray-Baggage-3/train/imagesval: /content/X-Ray-Baggage-3/valid/images

          讓我們看看結(jié)果。

          Image(filename='/content/runs/detect/train/results.png', width=1000)

          讓我們預(yù)測(cè)測(cè)試數(shù)據(jù)并在 5x2 網(wǎng)格中顯示結(jié)果。

          from ultralytics import YOLOv10
          model_path = '/content/runs/detect/train/weights/best.pt'model = YOLOv10(model_path)results = model(source='/content/X-Ray-Baggage-3/test/images', conf=0.25,save=True)
          import globimport matplotlib.pyplot as pltimport matplotlib.image as mpimg
          images = glob.glob('/content/runs/detect/predict/*.jpg')
          images_to_display = images[:10]
          fig, axes = plt.subplots(2, 5, figsize=(20, 10))
          for i, ax in enumerate(axes.flat): if i < len(images_to_display): img = mpimg.imread(images_to_display[i]) ax.imshow(img) ax.axis('off') else: ax.axis('off')
          plt.tight_layout()plt.show()

          參考資料

          官方倉(cāng)庫(kù):https://github.com/THU-MIG/yolov10Ultralytics


          本文僅供學(xué)習(xí)交流使用,如有侵權(quán)請(qǐng)聯(lián)系作者刪除

          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲风情中文字幕 | 久久色在线视频 | 成人av影视在线观看国产高清 | 内射学生妹视频在线免费观看 | 亚洲三级片免费观看 |