<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      完整教程:【DINOv3教程1-圖像分割】使用DINOv3+邏輯回歸器進行圖像前景分割【附源碼】

      《博主簡介》

      小伙伴們好,我是阿旭。
      專注于計算機視覺領域,包括目標檢測、圖像分類、圖像分割和目標跟蹤等項目開發,提供模型對比實驗、答疑輔導等。

      《------往期經典推薦------》

      一、AI應用軟件開發實戰專欄【鏈接】

      項目名稱項目名稱
      1.【人臉識別與管理系統開發2.【車牌識別與自動收費管理系統開發
      3.【手勢識別系統開發4.【人臉面部活體檢測系統開發
      5.【圖片風格快速遷移軟件開發6.【人臉表表情識別系統
      7.【YOLOv8多目標識別與自動標注軟件開發8.【基于深度學習的行人跌倒檢測系統
      9.【基于深度學習的PCB板缺陷檢測系統10.【基于深度學習的生活垃圾分類目標檢測系統
      11.【基于深度學習的安全帽目標檢測系統12.【基于深度學習的120種犬類檢測與識別系統
      13.【基于深度學習的路面坑洞檢測系統14.【基于深度學習的火焰煙霧檢測系統
      15.【基于深度學習的鋼材表面缺陷檢測系統16.【基于深度學習的艦船目標分類檢測系統
      17.【基于深度學習的西紅柿成熟度檢測系統18.【基于深度學習的血細胞檢測與計數系統
      19.【基于深度學習的吸煙/抽煙行為檢測系統20.【基于深度學習的水稻害蟲檢測與識別系統
      21.【基于深度學習的高精度車輛行人檢測與計數系統22.【基于深度學習的路面標志線檢測與識別系統
      23.【基于深度學習的智能小麥害蟲檢測識別系統24.【基于深度學習的智能玉米害蟲檢測識別系統
      25.【基于深度學習的200種鳥類智能檢測與識別系統26.【基于深度學習的45種交通標志智能檢測與識別系統
      27.【基于深度學習的人臉面部表情識別系統28.【基于深度學習的蘋果葉片病害智能診斷系統
      29.【基于深度學習的智能肺炎診斷系統30.【基于深度學習的葡萄簇目標檢測系統
      31.【基于深度學習的100種中草藥智能識別系統32.【基于深度學習的102種花卉智能識別系統
      33.【基于深度學習的100種蝴蝶智能識別系統34.【基于深度學習的水稻葉片病害智能診斷系統
      35.【基于與ByteTrack的車輛行人多目標檢測與追蹤系統36.【基于深度學習的智能草莓病害檢測與分割系統
      37.【基于深度學習的復雜場景下船舶目標檢測系統38.【基于深度學習的農作物幼苗與雜草檢測系統
      39.【基于深度學習的智能道路裂縫檢測與分析系統40.【基于深度學習的葡萄病害智能診斷與防治系統
      41.【基于深度學習的遙感地理空間物體檢測系統42.【基于深度學習的無人機視角地面物體檢測系統
      43.【基于深度學習的木薯病害智能診斷與防治系統44.【基于深度學習的野外火焰煙霧檢測系統
      45.【基于深度學習的腦腫瘤智能檢測系統46.【基于深度學習的玉米葉片病害智能診斷與防治系統
      47.【基于深度學習的橙子病害智能診斷與防治系統48.【基于深度學習的車輛檢測追蹤與流量計數系統
      49.【基于深度學習的行人檢測追蹤與雙向流量計數系統50.【基于深度學習的反光衣檢測與預警系統
      51.【基于深度學習的危險區域人員闖入檢測與報警系統52.【基于深度學習的高密度人臉智能檢測與統計系統
      53.【基于深度學習的CT掃描圖像腎結石智能檢測系統54.【基于深度學習的水果智能檢測系統
      55.【基于深度學習的水果質量好壞智能檢測系統56.【基于深度學習的蔬菜目標檢測與識別系統
      57.【基于深度學習的非機動車駕駛員頭盔檢測系統58.【太基于深度學習的陽能電池板檢測與分析系統
      59.【基于深度學習的工業螺栓螺母檢測60.【基于深度學習的金屬焊縫缺陷檢測系統
      61.【基于深度學習的鏈條缺陷檢測與識別系統62.【基于深度學習的交通信號燈檢測識別
      63.【基于深度學習的草莓成熟度檢測與識別系統64.【基于深度學習的水下海生物檢測識別系統
      65.【基于深度學習的道路交通事故檢測識別系統66.【基于深度學習的安檢X光危險品檢測與識別系統
      67.【基于深度學習的農作物類別檢測與識別系統68.【基于深度學習的危險駕駛行為檢測識別系統
      69.【基于深度學習的維修工具檢測識別系統70.【基于深度學習的維修工具檢測識別系統
      71.【基于深度學習的建筑墻面損傷檢測系統72.【基于深度學習的煤礦傳送帶異物檢測系統
      73.【基于深度學習的老鼠智能檢測系統74.【基于深度學習的水面垃圾智能檢測識別系統
      75.【基于深度學習的遙感視角船只智能檢測系統76.【基于深度學習的胃腸道息肉智能檢測分割與診斷系統
      77.【基于深度學習的心臟超聲圖像間隔壁檢測分割與分析系統78.【基于深度學習的心臟超聲圖像間隔壁檢測分割與分析系統
      79.【基于深度學習的果園蘋果檢測與計數系統80.【基于深度學習的半導體芯片缺陷檢測系統
      81.【基于深度學習的糖尿病視網膜病變檢測與診斷系統82.【基于深度學習的運動鞋品牌檢測與識別系統
      83.【基于深度學習的蘋果葉片病害檢測識別系統84.【基于深度學習的醫學X光骨折檢測與語音提示系統
      85.【基于深度學習的遙感視角農田檢測與分割系統86.【基于深度學習的運動品牌LOGO檢測與識別系統
      87.【基于深度學習的電瓶車進電梯檢測與語音提示系統88.【基于深度學習的遙感視角地面房屋建筑檢測分割與分析系統
      89.【基于深度學習的醫學CT圖像肺結節智能檢測與語音提示系統90.【基于深度學習的舌苔舌象檢測識別與診斷系統
      91.【基于深度學習的蛀牙智能檢測與語音提示系統92.【基于深度學習的皮膚癌智能檢測與語音提示系統
      93.【基于深度學習的工業壓力表智能檢測與讀數系統

      二、機器學習實戰專欄【鏈接】,已更新31期,歡迎關注,持續更新中~~
      三、深度學習【Pytorch】專欄【鏈接】
      四、【Stable Diffusion繪畫系列】專欄【鏈接】
      五、YOLOv8改進專欄【鏈接】持續更新中~~
      六、YOLO性能對比專欄【鏈接】,持續更新中~

      《------正文------》

      引言

      DINOv3是Meta于2025年8月推出的第三代自監督視覺基礎模型,其核心優勢在于:?首次證明了自監督學習模型能在圖像分類、目標檢測、語義分割等超過60項視覺任務上全面超越弱監督和專業模型?
      ,并且僅需單一凍結的骨干網絡無需微調即可實現多任務高性能,極大提升了推理效率和部署靈活性?。

      本文將詳細介紹如何使用最新的DINOv3模型搭配邏輯回歸器進行圖像前景分割,包含完整步驟與代碼說明,基本流程如下:

      1. 特征學習:利用DINOv3預訓練模型提取圖像patch的高級特征
      2. 數據準備:將圖像和mask對齊,準備訓練數據
      3. 模型訓練:使用邏輯回歸將特征映射到前景/背景標簽
      4. 模型驗證:通過交叉驗證選擇最佳參數
      5. 應用部署:保存模型并用于新圖像的前景分割

      這種方法的優勢在于利用了DINOv3強大的自監督學習能力,無需大量標注數據就能獲得高質量的視覺特征表示

      1. 導入必要的庫和模塊

      import io
      import os
      import pickle
      import tarfile
      import urllib
      from PIL import Image
      import numpy as np
      import matplotlib.pyplot as plt
      from scipy import signal
      from sklearn.metrics import precision_recall_curve
      from sklearn.metrics import average_precision_score
      from sklearn.linear_model import LogisticRegression
      import torch
      import torchvision.transforms.functional as TF
      from tqdm import tqdm
      from transformers import AutoModel

      這些庫分別用于:

      • 文件操作和數據處理(io, os, pickle等)
      • 圖像處理(PIL, torchvision)
      • 數值計算和科學計算(numpy, scipy)
      • 機器學習(sklearn)
      • 深度學習(torch)
      • 進度顯示(tqdm)
      • 模型加載(transformers)

      2. 加載DINOv3預訓練模型

      model = AutoModel.from_pretrained(
      r'D:\7studying\DinoV3_Study\dinov3-main\PreModels\dinov3-vits16-pretrain-lvd1689m',
      local_files_only=True
      )

      加載本地的DINOv3預訓練視覺Transformer模型,該模型已經學習了豐富的視覺特征表示。這里加載的是dinov3-vits16-pretrain-lvd1689m模型。

      3. 數據加載和預處理

      def load_images_from_path(base_path):
      images = []
      for name in os.listdir(base_path):
      image_path = os.path.join(base_path, name)
      image = Image.open(image_path)
      images.append(image)
      return images
      images = load_images_from_path(r'D:\7studying\DinoV3_Study\dinov3-main\datasets\data1\images')
      labels = load_images_from_path(r'D:\7studying\DinoV3_Study\dinov3-main\datasets\data1\masks')

      加載圖像和對應的mask標簽數據,用于訓練前景分割模型。
      在這里插入圖片描述

      4. 數據可視化

      # 顯示第一張圖像及其mask、前景和背景
      data_to_show = [image, mask, foreground, background]
      data_labels = ["Image", "Mask", "Foreground", "Background"]
      plt.figure(figsize=(16, 4), dpi=300)
      for i in range(len(data_to_show)):
      plt.subplot(1, len(data_to_show), i + 1)
      plt.imshow(data_to_show[i])
      plt.axis('off')
      plt.title(data_labels[i], fontsize=12)

      可視化展示原始圖像、mask標簽、前景和背景,幫助理解數據。
      在這里插入圖片描述

      5. 圖像預處理函數

      def resize_transform(mask_image, image_size=768, patch_size=16):
      w, h = mask_image.size
      h_patches = int(image_size / patch_size)
      w_patches = int((w * image_size) / (h * patch_size))
      target_size = (h_patches * patch_size, w_patches * patch_size)
      resized_image = TF.resize(mask_image, target_size)
      tensor_image = TF.to_tensor(resized_image)
      return tensor_image, (h_patches, w_patches)

      將圖像調整為適合ViT模型處理的尺寸,確保圖像尺寸能被patch大小(16)整除。
      在這里插入圖片描述

      在這里插入圖片描述

      6. 特征提取和訓練數據準備

      with torch.inference_mode():
      for i in tqdm(range(n_images), desc="Processing images"):
      # 1. 加載mask并量化
      mask_i = labels[i].split()[-1]
      mask_i_resized, (h_patches, w_patches) = resize_transform(mask_i)
      with torch.no_grad():
      mask_i_quantized = patch_quant_filter(mask_i_resized).squeeze().view(-1).detach().cpu()
      # 2. 加載并預處理圖像
      image_i = images[i].convert('RGB')
      image_i_resized,_ = resize_transform(image_i)
      image_i_resized = TF.normalize(image_i_resized, mean=IMAGENET_MEAN, std=IMAGENET_STD)
      image_i_resized = image_i_resized.unsqueeze(0)
      # 3. 使用DINOv3提取特征
      outputs = model(image_i_resized)
      patch_features = outputs.last_hidden_state[:, 1:, :]  # 去掉cls token
      # 4. 確保特征和標簽數量一致
      if actual_patches > expected_patches:
      patch_features = patch_features[:, :expected_patches, :]

      這是整個流程的核心部分:

      1. Mask處理:將mask圖像量化為patch級別的標簽
      2. 圖像預處理:調整圖像大小并進行標準化
      3. 特征提取:使用DINOv3模型提取每個patch的特征表示
      4. 數據對齊:確保特征向量和標簽數量一致

      7. 數據過濾和準備

      # keeping only the patches that have clear positive or negative label
      idx = (ys < 0.01) | (ys > 0.99)
        xs = xs[idx]
        ys = ys[idx]
        image_index = image_index[idx]

      只保留標簽非常明確(接近0或1)的patch,過濾掉模糊的中間值,提高訓練質量。

      8. 模型訓練和驗證

      # 使用留一法交叉驗證尋找最佳參數
      cs = np.logspace(-7, 0, 8)
      scores = np.zeros((n_images, len(cs)))
      for i in range(n_images):
      # 留一法:用除第i張圖像外的所有圖像訓練,用第i張圖像驗證
      train_selection = image_index != float(i)
      fold_x = xs[train_selection].numpy()
      fold_y = (ys[train_selection] > 0).long().numpy()
      val_x = xs[~train_selection].numpy()
      val_y = (ys[~train_selection] > 0).long().numpy()
      for j, c in enumerate(cs):
      # 訓練邏輯回歸分類器
      clf = LogisticRegression(random_state=0, C=c, max_iter=10000).fit(fold_x, fold_y)
      output = clf.predict_proba(val_x)
      precision, recall, thresholds = precision_recall_curve(val_y, output[:, 1])
      s = average_precision_score(val_y, output[:, 1])
      scores[i, j] = s

      使用留一法交叉驗證訓練邏輯回歸器,尋找最佳的正則化參數C。
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述
      在這里插入圖片描述

      9. 最終模型訓練和保存

      由上圖可以看出c=1.0時,模型性能最佳,這里直接取c=1.0,進行LogisticRegression回歸器的模型訓練;

      # 使用最佳參數訓練最終模型
      clf = LogisticRegression(random_state=0, C=1.0, max_iter=100000, verbose=2).fit(xs.numpy(), (ys > 0).long().numpy())
      # 保存模型
      with open(model_path, "wb") as f:
      pickle.dump(clf, f)

      使用所有數據訓練最終的前景分割分類器,并將其保存到磁盤。

      10. 測試和可視化

      # 對測試圖像進行預測
      with torch.inference_mode():
      outputs = model(test_image_normalized.unsqueeze(0))
      patch_features = outputs.last_hidden_state[:, 1:, :]
      x = patch_features.squeeze().detach().cpu()
      # 使用訓練好的分類器預測前景概率
      fg_score = clf.predict_proba(x)[:, 1].reshape(h_patches, w_patches)
      fg_score_mf = torch.from_numpy(signal.medfilt2d(fg_score, kernel_size=3))
      # 可視化結果
      plt.figure(figsize=(9, 3), dpi=300)
      plt.subplot(1, 3, 1)
      plt.imshow(test_image_resized.permute(1, 2, 0))
      plt.title('input image')
      plt.subplot(1, 3, 2)
      plt.imshow(fg_score)
      plt.title('foreground score')
      plt.subplot(1, 3, 3)
      plt.imshow(fg_score_mf)
      plt.title('+ median filter')

      對新圖像進行前景分割預測,并可視化結果,包括原始圖像、前景得分圖和經過中值濾波平滑的結果。
      在這里插入圖片描述

      總結

      這種方法的優勢在于利用了DINOv3強大的自監督學習能力,無需大量標注數據就能獲得高質量的視覺特征表示。
      如果感覺不錯的小伙伴,感謝你們的點贊關注。后續還會出一些其他的使用案例~


      在這里插入圖片描述

      好了,這篇文章就介紹到這里,喜歡的小伙伴感謝給點個贊和關注,更多精彩內容持續更新~~
      關于本篇文章大家有任何建議或意見,歡迎在評論區留言交流!

      posted @ 2025-11-05 08:15  yangykaifa  閱讀(27)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久热这里只精品视频99| 一区二区三区不卡国产| 精品嫩模福利一区二区蜜臀| 亚洲精品一二三四区| 欧美区一区二区三区| 偷拍精品一区二区三区| av永久免费网站在线观看| 忘忧草www日本韩国| 色欲国产精品一区成人精品| 尤物yw193无码点击进入| 天美传媒mv免费观看完整 | 亚洲中文字幕日产无码成人片| 精品国产乱码久久久久APP下载| 国产成人午夜福利院| 人人妻人人狠人人爽天天综合网| 日韩精品三区二区三区| 国产成人精品亚洲精品日日| 在线高清理伦片a| 丰满少妇被猛烈进出69影院| 精品国产伦理国产无遮挡| 亚洲精品视频一二三四区| 成人看的污污超级黄网站免费| 亚洲AV日韩精品久久久久| 国内精品极品久久免费看| 99久久婷婷国产综合精品青草漫画 | 久久国产成人亚洲精品影院老金| 昭通市| 国产精品毛片在线完整版| 亚洲综合日韩av在线| 永兴县| 久久久久久国产精品美女| 午夜福利片1000无码免费| 武隆县| 九九热爱视频精品视频| 午夜一区二区三区视频| 国产三级a三级三级| 肉大捧一进一出免费视频| 99精品国产兔费观看久久99| 日韩午夜无码精品试看| 午夜DY888国产精品影院| 夹江县|