<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給skura
      發送

      0

      如何用 coco 數據集訓練 Detectron2 模型?

      本文作者: skura 2019-10-15 16:46
      導語:附有詳細的代碼~

      如何用 coco 數據集訓練 Detectron2 模型?

      隨著最新的 Pythorc1.3 版本的發布,下一代完全重寫了它以前的目標檢測框架,新的目標檢測框架被稱為 Detectron2。本教程將通過使用自定義 coco 數據集訓練實例分割模型,幫助你開始使用此框架。如果你不知道如何創建 coco 數據集,請閱讀我之前的文章——如何創建自定義 coco 數據集用于實例分割。

      為了快速開始,我們將在 Colab Notebook 上進行實驗,這樣你就不必擔心在使用 pytorch 1.3 和 detectron2 之前在自己的機器上設置開發環境的問題了。

      安裝 Detectron2

      在 Colab Notebook 中,只需運行這 4 行代碼即可安裝最新的 pytorch 1.3 和 detectron2。

      !pip install -U torch torchvision

      !pip install git+https://github.com/facebookresearch/fvcore.git

      !git clone https://github.com/facebookresearch/detectron2 detectron2_repo

      !pip install -e detectron2_repo

      單擊輸出單元格中的「RESTART RUNTIME」以使安裝生效。

      如何用 coco 數據集訓練 Detectron2 模型?

      注冊一個 coco 數據集

      為了告訴 Detectron2 如何獲取數據集,我們將「注冊」它。

      為了演示這個過程,我們使用了水果堅果分割數據集,它只有 3 個類:數據、圖和榛子。我們將從現有的 coco 數據集訓練模型中分離出一個分割模型,該模型可在 DeCtTrON2 model zoo 中使用。

      你可以這樣下載數據集。

      # download, decompress the data

      !wget https://github.com/Tony607/detectron2_instance_segmentation_demo/releases/download/V0.1/data

      !unzip data.zip > /dev/null

      或者你也可以從這里上傳你自己的數據集。

      如何用 coco 數據集訓練 Detectron2 模型?

      按照 Detectron2 自定義數據集教程,將水果堅果數據集注冊到 Detectron2。

      from detectron2.data.datasets import

      register_coco_instances register_coco_instances("fruits_nuts", {}, "./data/trainval.json", "./data/images")

      每個數據集都與一些元數據相關聯。在我們的例子中,可以通過調用fruits_nuts_metadata=metadatacatalog.get(“fruits_nuts”)來訪問它。

      Metadata(evaluator_type='coco', image_root='./data/images',

      json_file='./data/trainval.json', name='fruits_nuts', thing_classes=['date', 'fig', 'hazelnut'], thing_dataset_id_to_contiguous_id={1: 0, 2: 1, 3: 2})

      要獲取目錄的實際內部表示形式,可以調用 dataset_dicts=dataset catalog.get("fruits_nuts")。內部格式使用一個 dict 來表示一個圖像的注釋。

      為了驗證數據加載是否正確,讓我們可視化數據集中隨機選擇的樣本的注釋:

      import random

      from detectron2.utils.visualizer import Visualizer


      for d in random.sample(dataset_dicts, 3):

               img = cv2.imread(d["file_name"])

               visualizer = Visualizer(img[:, :, ::-1], metadata=fruits_nuts_metadata, scale=0.5)

               vis = visualizer.draw_dataset_dict(d)

              cv2_imshow(vis.get_image()[:, :, ::-1])

      其中一張圖像可能是這樣子的:

      如何用 coco 數據集訓練 Detectron2 模型?

      模型訓練

      現在,讓我們微調水果堅果數據集上的 coco 預訓練 R50-FPN Mask R-CNN 模型。在 colab 的 k80 gpu 上訓練 300 次迭代需要大約 6 分鐘。

      from detectron2.engine import DefaultTrainer

      from detectron2.config import get_cfg

      import os


      cfg = get_cfg()

      cfg.merge_from_file(

              "./detectron2_repo/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3   x.yaml" )

      cfg.DATASETS.TRAIN = ("fruits_nuts",)

      cfg.DATASETS.TEST = () # no metrics implemented for this dataset cfg.DATALOADER.NUM_WORKERS = 2

      cfg.MODEL.WEIGHTS = "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/mode

      cfg.SOLVER.IMS_PER_BATCH = 2

      cfg.SOLVER.BASE_LR = 0.02

      cfg.SOLVER.MAX_ITER = ( 300 ) # 300 iterations seems good enough, but you can certainly train longer

      cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = ( 128 ) # faster, and good enough for this toy dataset

      cfg.MODEL.ROI_HEADS.NUM_CLASSES = 3 # 3 classes (data, fig, hazelnut)


      os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)

      trainer = DefaultTrainer(cfg)

      trainer.resume_or_load(resume=False)

      trainer.train()

      如果切換到自己的數據集,請相應地更改類數、學習速率或最大迭代次數。

      如何用 coco 數據集訓練 Detectron2 模型?




      作出預測

      現在,我們用訓練好的模型在水果堅果數據集上進行推理。首先,讓我們使用我們剛剛訓練的模型創建一個預測:

      cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth")

      cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 # set the testing threshold for this model

      cfg.DATASETS.TEST = ("fruits_nuts", )

      predictor = DefaultPredictor(cfg)

      然后,隨機選取多個樣本對預測結果進行可視化處理。

      from detectron2.utils.visualizer import ColorMode


      for d in random.sample(dataset_dicts, 3):  

              im = cv2.imread(d["file_name"])

             outputs = predictor(im)

             v = Visualizer(im[:, :, ::-1], metadata=fruits_nuts_metadata,  scale=0.8,  instance_mode=ColorMode.IMAGE_BW # remove the colors of unsegmented pixels  )

             v = v.draw_instance_predictions(outputs["instances"].to("cpu"))

             cv2_imshow(v.get_image()[:, :, ::-1])

      這是一個覆蓋了預測的樣本圖像所得到的結果。

      如何用 coco 數據集訓練 Detectron2 模型?

      總結與思考

      你可能已經閱讀了我以前的教程,其中介紹了一個類似的對象檢測框架,名為 MMdetection,它也構建在 pytorch 上。那么 Detectron2 和它相比如何呢?以下是我的一些想法。

      兩個框架都很容易用一個描述模型訓練方法的配置文件進行配置。Detectron2 的 yaml 配置文件效率更高,有兩個原因。首先,可以通過先進行「基本」配置來重用配置,并在此基本配置文件上構建最終的訓練配置文件,從而減少重復代碼。第二,可以先配置配置文件,并允許在 Python 代碼中進行必要的進一步修改,從而使其更加靈活。

      那么推理速度如何?簡單地說,Detectron2 比相同 Mask RCNN Resnet50 FPN 模型的 MMdetection 稍快。MMdetection 的 FPS 是 2.45,而 Detectron2 達到 2.59 FPS,在推斷單個圖像時提高了 5.7% 的速度。我們基于以下代碼做了基準測試。

      import time

      times = []

      for i in range(20):

              start_time = time.time()

              outputs = predictor(im)

              delta = time.time() - start_time

              times.append(delta)

      mean_delta = np.array(times).mean()

      fps = 1 / mean_delta

      print("Average(sec):{:.2f},fps:{:.2f}".format(mean_delta, fps))

      所以,你現在學會啦,Detectron2 讓你用自定義數據集訓練自定義實例分割模型變得非常簡單。你可能會發現以下資源很有幫助:

      via:https://medium.com/@chengweizhang2012/how-to-train-detectron2-with-custom-coco-datasets-4d5170c9f389

      雷鋒網雷鋒網雷鋒網

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      如何用 coco 數據集訓練 Detectron2 模型?

      分享:
      相關文章
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 69老司机精品视频免费观看| 河源市| 欧美黑人又粗又硬xxxxx喷水| 人人添人人妻人人爽夜欢视频| 亚洲区综合区小说区激情区| 成人免费亚洲av在线| 精品人妻久久久久久888| 亚洲熟女av中文字幕| av四虎| 邹平县| 九九热精彩视频在线免费| 青青青青久久精品国产| 欧美交a欧美精品喷水| 免费av网站| 亚洲国产精品人人做人人爱| 午夜男女爽爽影院免费视频| 久久久久成人精品无码中文字幕| 韩国日本三级在线观看| 国产一级AAAAA片免费| 日韩久久不卡| 欧美精品99久久久| 丁香花在线影院观看在线播放| 成人午夜国产内射主播| 国产亚洲精选美女久久久久| 亚洲V色| 乃东县| av手机版天堂网免费观看| 国产高h| 毛片大全真人在线| 国产偷窥熟女精品视频大全| 婷婷色香合缴缴情AV第三区| 岛国在线观看无码不卡| 美女网站免费| 亚洲人人妻| 冷水江市| 国产精品午夜无码AV天美传媒| 337p粉嫩大胆噜噜噜| 情欲少妇人妻100篇| 国产色婷婷精品综合在线| 精品国产av无码一区二区三区| 乱伦日屄|