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

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

這篇具有很好參考價(jià)值的文章主要介紹了使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

MMDetection 是一個(gè)基于 PyTorch 的目標(biāo)檢測(cè)開(kāi)源工具箱,它是 OpenMMLab 項(xiàng)目的一部分。包含以下主要特性:

  • 支持三個(gè)任務(wù)
    • 目標(biāo)檢測(cè)(Object Detection)是指分類并定位圖片中物體的任務(wù)
    • 實(shí)例分割(Instance Segmentation)是指分類,分割圖片物體的任務(wù)
    • 全景分割(Panoptic Segmentation)是統(tǒng)一了語(yǔ)義分割(對(duì)圖像的每個(gè)像素進(jìn)行分類)和實(shí)例分割(檢測(cè)出對(duì)象實(shí)例并進(jìn)行分割)的檢測(cè)任務(wù)
  • 模塊化設(shè)計(jì)以靈活支持 6 個(gè)數(shù)據(jù)集,57 種不同算法和豐富的數(shù)據(jù)增強(qiáng),提供 450+ 個(gè)預(yù)訓(xùn)練模型
  • 支持?jǐn)?shù)十個(gè)算法模型的部署

安裝(目標(biāo)檢測(cè))

使用下面的命令快速生成虛擬環(huán)境:

$ python -m venv venv
# Windows 下進(jìn)入虛擬環(huán)境
$ venv/Scripts/activate

提前看下 MMDetection 和 MMCV 版本兼容性 里 PyTorch + MMDetection + MMCV 的匹配版本號(hào),比如我當(dāng)下看到的版本要求是:

  • PyTorch: 1.3+
  • MMDetection: 2.28.1
  • MMCV: >=1.3.17, <1.8.0

MMDetection 是基于 PyTorch 的檢測(cè)框架,首先安裝 torch 庫(kù):

$ pip install torch
$ pip install opencv-python
$ pip install torchvision

MMDetection 包括 MMDetection 和 MMCV,兩者是一體的,需要安裝 MMCV,按 安裝 MMCV - 使用 mim 安裝 的說(shuō)明使用 mim(OpenMMLab項(xiàng)目的包管理工具)安裝:

$ pip install openmim
$ mim install mmcv-full==1.7.1

然后再安裝 MMDetection,(重要的事說(shuō)兩遍)提前看下 MMDetection 和 MMCV 版本兼容性 里 PyTorch + MMDetection + MMCV 的匹配版本號(hào),選擇合適的版本安裝,建議直接用 mim 快速安裝:

$ mim install mmdet==2.28.1

在 Windows 系統(tǒng)下,如果安裝過(guò)程中遇到下面的異常:

$       error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
$       [end of output]
$ 
$   note: This error originates from a subprocess, and is likely not a problem with pip.
$   ERROR: Failed building wheel for pycocotools
$ Failed to build pycocotools
$ ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

可以按照 《Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"的解決辦法》 提供的方法解決。

安裝完成后,執(zhí)行下面的 Python 代碼(demo.py)驗(yàn)證是否正確安裝了 MMDetection 和所需的環(huán)境:

import mmcv
from mmdet.apis import init_detector, inference_detector

# 一、指定模型的配置文件和 checkpoint 文件路徑
# 下載 https://github.com/open-mmlab/mmdetection 項(xiàng)目并解壓
# 把 mmdetection-master/configs/_base_ 文件夾復(fù)制到當(dāng)前項(xiàng)目 configs/ 目錄下
# 把 mmdetection-master/configs/faster_rcnn 文件夾復(fù)制到當(dāng)前項(xiàng)目 configs/ 目錄下
config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# 從 model zoo 下載 checkpoint 并放在 `checkpoints/faster_rcnn/` 文件下
# 網(wǎng)址為: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
checkpoint_file = 'checkpoints/faster_rcnn/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'

# 二、根據(jù)配置文件和 checkpoint 文件構(gòu)建模型
# 有 GPU 時(shí)使用 device = 'cuda:0'
device = 'cpu'
# 初始化檢測(cè)器
model = init_detector(config_file, checkpoint_file, device=device)

# 三、測(cè)試單張圖片并展示結(jié)果
# 圖像地址: https://github.com/open-mmlab/mmdetection/blob/master/demo/demo.jpg
img = mmcv.imread('demo/demo.jpg')
# 推理演示圖像, 結(jié)果是一個(gè) `numpy.ndarray` 列表
result = inference_detector(model, img)
# 將結(jié)果可視化
model.show_result(img, result)
# 將可視化結(jié)果保存為圖片
model.show_result(img, result, out_file='demo/demo_result.jpg')

這個(gè)時(shí)候的項(xiàng)目目錄結(jié)構(gòu)如下:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

如果成功安裝 MMDetection,則上面的代碼可以完整地運(yùn)行,并順利生成下面的 demo/demo_result.jpg 文件:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

實(shí)例分割

實(shí)例分割(Instance Segmentation)是指分類,分割圖片物體的任務(wù)。打開(kāi) MMDetection - 模型庫(kù)/MMDetection 并選擇 Instance Segmentation 任務(wù)類型:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

挑選一個(gè) AP(平均精確度)值 較高,而且年份比較新的算法,比如當(dāng)下看到的算法名是 SCNet(算法 RF-Next 需要 GPU 才能跑起來(lái)),就在前面下載好的 mmdetection-master/configs/ 目錄下找到對(duì)應(yīng)的 scnet 文件夾及其依賴的 htc 文件夾,并將它們復(fù)制到當(dāng)前項(xiàng)目 configs/ 目錄下。點(diǎn)擊 算法名 進(jìn)入算法詳情頁(yè)面:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

同樣的,挑選一個(gè) AP(平均精確度)值 較高的模型,這里先復(fù)制 模型名稱 的文本,然后在 configs/scnet/metafile.yml 文件中搜索這個(gè)文本:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

搜索完成可以獲得兩個(gè)配置及參數(shù):

  • Config: 模型的配置文件路徑(config_file = 'xxx.py'
  • Weights: 模型的下載網(wǎng)址,通過(guò)這個(gè)地址下載模型文件(checkpoint_file = 'xxx.pth'

完成上面的準(zhǔn)備工作后,執(zhí)行下面的 Python 代碼(demo.py)驗(yàn)證是否可以對(duì)圖像進(jìn)行分類、分割物體目標(biāo)的任務(wù):

import mmcv
from mmdet.apis import init_detector, inference_detector

print('指定模型的配置文件和checkpoint文件路徑')
config_file = 'configs/scnet/scnet_r50_fpn_1x_coco.py'
checkpoint_file = 'checkpoints/scnet/scnet_r50_fpn_1x_coco-c3f09857.pth'
print('根據(jù)配置文件和checkpoint文件構(gòu)建模型')
device = 'cpu'
model = init_detector(config_file, checkpoint_file, device=device)
print('測(cè)試單張圖片并展示結(jié)果')
img = mmcv.imread('demo/demo.jpg')
result = inference_detector(model, img)
model.show_result(img, result)
model.show_result(img, result, out_file='demo/demo_result.jpg')

這個(gè)時(shí)候的項(xiàng)目目錄結(jié)構(gòu)如下:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

如果上面代碼中 MMDetection 的實(shí)例分割任務(wù)可以完整地運(yùn)行,就會(huì)順利生成下面的 demo/demo_result.jpg 文件:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

全景分割

全景分割(Panoptic Segmentation)是統(tǒng)一了語(yǔ)義分割(對(duì)圖像的每個(gè)像素進(jìn)行分類)和實(shí)例分割(檢測(cè)出對(duì)象實(shí)例并進(jìn)行分割)的檢測(cè)任務(wù)。同前面一樣,打開(kāi) MMDetection - 模型庫(kù)/MMDetection 并選擇 Panoptic Segmentation 任務(wù)類型:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

這里的算法目前就只有一個(gè),只能選擇 PanopticFPN 算法,還是在前面下載好的 mmdetection-master/configs/ 目錄下找到對(duì)應(yīng)的 panoptic_fpn 文件夾,并將其復(fù)制到當(dāng)前項(xiàng)目 configs/ 目錄下。點(diǎn)擊 算法名 進(jìn)入算法詳情頁(yè)面:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

再?gòu)闹羞x一個(gè)模型,復(fù)制 模型名稱 的文本,到 configs/panoptic_fpn/metafile.yml 文件中搜索:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

搜索完成可以獲得 Config(config_file = 'xxx.py')和 Weights 下載后文件路徑(checkpoint_file = 'xxx.pth')配置參數(shù)。然后執(zhí)行下面的 Python 代碼(demo.py)驗(yàn)證是否可以對(duì)圖像進(jìn)行對(duì)每個(gè)像素進(jìn)行分類同時(shí)檢測(cè)出對(duì)象實(shí)例并進(jìn)行分割的任務(wù):

import mmcv
from mmdet.apis import init_detector, inference_detector

# 上面代碼沒(méi)有變,就下面兩個(gè)變量的值改一下
config_file = 'configs/panoptic_fpn/panoptic_fpn_r50_fpn_1x_coco.py'
checkpoint_file = 'checkpoints/panoptic_fpn/panoptic_fpn_r50_fpn_1x_coco_20210821_101153-9668fd13.pth'
# 下面代碼也沒(méi)有變
device = 'cpu'
model = init_detector(config_file, checkpoint_file, device=device)
img = mmcv.imread('demo/demo.jpg')
result = inference_detector(model, img)
model.show_result(img, result)
model.show_result(img, result, out_file='demo/demo_result.jpg')

這時(shí)項(xiàng)目的目錄結(jié)構(gòu)如下:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

如果上面代碼里的全景分割任務(wù)可以順利運(yùn)行,就會(huì)生成下面的 demo/demo_result.jpg 文件:

使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割

實(shí)踐完成到這里,就會(huì)發(fā)現(xiàn),其實(shí)調(diào)用代碼是一樣的,就是改一下配置文件和模型文件,就可以實(shí)現(xiàn)不同的功能!

接下來(lái)還可以看 《Python調(diào)用MMDetection實(shí)現(xiàn)AI摳圖去背景》 進(jìn)一步了解實(shí)際應(yīng)用。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-465021.html

到了這里,關(guān)于使用MMDetection進(jìn)行目標(biāo)檢測(cè)、實(shí)例和全景分割的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【目標(biāo)檢測(cè)】YOLOv5-7.0:加入實(shí)例分割

    【目標(biāo)檢測(cè)】YOLOv5-7.0:加入實(shí)例分割

    前段時(shí)間,YOLOv5推出7.0版本,主要更新點(diǎn)是在目標(biāo)檢測(cè)的同時(shí)引入了實(shí)例分割。 目前,YOLOv5團(tuán)隊(duì)已經(jīng)轉(zhuǎn)向了YOLOv8的更新,因此,7.0版本大概率是YOLOv5的最終穩(wěn)定版。 官方公告中給出了YOLOv5-7.0的更新要點(diǎn): 推出了基于coco-seg的實(shí)例分割預(yù)訓(xùn)練模型 支持Paddle Paddle模型導(dǎo)出 自動(dòng)

    2024年02月11日
    瀏覽(16)
  • yolov8+多算法多目標(biāo)追蹤+實(shí)例分割+目標(biāo)檢測(cè)+姿態(tài)估計(jì)

    yolov8+多算法多目標(biāo)追蹤+實(shí)例分割+目標(biāo)檢測(cè)+姿態(tài)估計(jì)

    YOLOv8是一種先進(jìn)的目標(biāo)檢測(cè)算法,結(jié)合多種算法實(shí)現(xiàn)多目標(biāo)追蹤、實(shí)例分割和姿態(tài)估計(jì)功能。該算法在計(jì)算機(jī)視覺(jué)領(lǐng)域具有廣泛的應(yīng)用。 首先,YOLOv8算法采用了You Only Look Once(YOLO)的思想,通過(guò)單次前向傳遞將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)化為回歸問(wèn)題。它使用了深度卷積神經(jīng)網(wǎng)絡(luò),能

    2024年02月20日
    瀏覽(31)
  • 目標(biāo)檢測(cè)、實(shí)例分割、旋轉(zhuǎn)框樣樣精通!詳解高性能檢測(cè)算法 RTMDet

    目標(biāo)檢測(cè)、實(shí)例分割、旋轉(zhuǎn)框樣樣精通!詳解高性能檢測(cè)算法 RTMDet

    近幾年來(lái),目標(biāo)檢測(cè)模型,尤其是單階段目標(biāo)檢測(cè)模型在工業(yè)場(chǎng)景中已經(jīng)得到廣泛應(yīng)用。對(duì)于檢測(cè)算法來(lái)說(shuō),模型的精度以及運(yùn)行效率是實(shí)際使用時(shí)最受關(guān)注的指標(biāo)。因此, 我們對(duì)目前的單階段目標(biāo)檢測(cè)器進(jìn)行了全面的改進(jìn):從增強(qiáng)模型的特征提取能力和對(duì)各個(gè)組件的計(jì)算量

    2024年02月15日
    瀏覽(24)
  • Yolov5同時(shí)進(jìn)行目標(biāo)檢測(cè)和分割分割

    Yolov5同時(shí)進(jìn)行目標(biāo)檢測(cè)和分割分割

    基于yolov5(v6.0分支)的多任務(wù)檢測(cè)和分割模型。 之前很早就萌生idea在yolov5基礎(chǔ)上添加一個(gè)分割頭用于語(yǔ)義分割,近期正好也有論文YLOLOP是這么做的. 這里基于yolov5最新分支修改,主要改動(dòng)如下: 1 . 解耦頭:實(shí)驗(yàn)在小數(shù)據(jù)集上有一定效果(map 1%+ ),大數(shù)據(jù)集上提升不明顯; 2.

    2024年02月05日
    瀏覽(18)
  • CutLER:一種用于無(wú)監(jiān)督目標(biāo)檢測(cè)和實(shí)例分割的方法

    本文分享自華為云社區(qū)《CutLER:一種用于無(wú)監(jiān)督目標(biāo)檢測(cè)和實(shí)例分割的方法》,作者:Hint。 目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)中的一種重要任務(wù),使AI系統(tǒng)感知、推理、理解目標(biāo)。訓(xùn)練定位模型需要特別的標(biāo)注,比如目標(biāo)的框、掩膜、定位點(diǎn)等。本文的工作研究了無(wú)監(jiān)督的目標(biāo)檢測(cè)和實(shí)

    2024年02月12日
    瀏覽(21)
  • yolov8的目標(biāo)檢測(cè)、實(shí)例分割、關(guān)節(jié)點(diǎn)估計(jì)的原理解析

    yolov8的目標(biāo)檢測(cè)、實(shí)例分割、關(guān)節(jié)點(diǎn)估計(jì)的原理解析

    1 YOLO時(shí)間線 這里簡(jiǎn)單列下yolo的發(fā)展時(shí)間線,對(duì)每個(gè)版本的提出有個(gè)時(shí)間概念。 2 yolov8 的簡(jiǎn)介 工程鏈接:https://github.com/ultralytics/ultralytics 2.1 yolov8的特點(diǎn) 采用了anchor free方式,去除了先驗(yàn)設(shè)置可能不佳帶來(lái)的影響 借鑒Generalized Focal Loss,使用任務(wù)解耦,分別學(xué)習(xí)box,class。并將

    2024年01月19日
    瀏覽(25)
  • 【Jetson目標(biāo)檢測(cè)SSD-MobileNet應(yīng)用實(shí)例】(四)在Jetson上使用CSI攝像頭進(jìn)行視頻推理并輸出檢測(cè)結(jié)果

    【Jetson目標(biāo)檢測(cè)SSD-MobileNet應(yīng)用實(shí)例】(四)在Jetson上使用CSI攝像頭進(jìn)行視頻推理并輸出檢測(cè)結(jié)果

    【Jetson目標(biāo)檢測(cè)SSD-MobileNet應(yīng)用實(shí)例】(一)win11中配置SSD-MobileNet網(wǎng)絡(luò)訓(xùn)練境搭建 【Jetson目標(biāo)檢測(cè)SSD-MobileNet應(yīng)用實(shí)例】(二)制作自己的數(shù)據(jù)集–數(shù)據(jù)集的采集、標(biāo)注、預(yù)處理 【Jetson目標(biāo)檢測(cè)SSD-MobileNet應(yīng)用實(shí)例】(三)訓(xùn)練自己的檢測(cè)模型和推理測(cè)試 關(guān)于Jetson nano或者NX上的

    2023年04月10日
    瀏覽(20)
  • YOLOv5+BiSeNet——同時(shí)進(jìn)行目標(biāo)檢測(cè)和語(yǔ)義分割

    YOLOv5+BiSeNet——同時(shí)進(jìn)行目標(biāo)檢測(cè)和語(yǔ)義分割

    在Gayhub上看到個(gè)項(xiàng)目,有人在YOLOv5的基礎(chǔ)上,新增了一個(gè)分割頭,把BiSeNet語(yǔ)義分割算法加入到了目標(biāo)檢測(cè)中,使其能夠同時(shí)進(jìn)行目標(biāo)檢測(cè)和語(yǔ)義分割。 項(xiàng)目地址:https://github.com/TomMao23/multiyolov5 先看我使用原作者提供的模型,復(fù)刻出來(lái)的效果: (本來(lái)想放視頻的,不過(guò)傳了兩

    2024年02月07日
    瀏覽(20)
  • 目標(biāo)檢測(cè)實(shí)例分割數(shù)據(jù)集轉(zhuǎn)換:從XML和JSON到Y(jié)OLOv8(txt)

    ????????如果大家想要了解關(guān)于yolov8的其他任務(wù)和相關(guān)內(nèi)容可以點(diǎn)擊這個(gè)鏈接,我這邊整理了許多其他任務(wù)的說(shuō)明博文,后續(xù)也會(huì)持續(xù)更新,包括yolov8模型優(yōu)化、sam等等的相關(guān)內(nèi)容。 YOLOv8(附帶各種任務(wù)詳細(xì)說(shuō)明鏈接) 源碼下載地址: XMLJSON 目標(biāo)檢測(cè)、實(shí)例分割標(biāo)簽轉(zhuǎn)換

    2024年02月03日
    瀏覽(59)
  • 2023-一種無(wú)監(jiān)督目標(biāo)檢測(cè)和實(shí)例分割方法【Cut and Learn for Unsupervised Object Detection and Instance Segmentation】

    2023-一種無(wú)監(jiān)督目標(biāo)檢測(cè)和實(shí)例分割方法【Cut and Learn for Unsupervised Object Detection and Instance Segmentation】

    Facebook 目標(biāo)檢測(cè)和分割依賴海量數(shù)據(jù)的標(biāo)注,模型訓(xùn)練耗時(shí)最大的是數(shù)據(jù)采集和標(biāo)注過(guò)程,無(wú)監(jiān)督學(xué)習(xí)在目標(biāo)檢測(cè)和分割中的應(yīng)用較少。 這篇文章提出提出了Cut-and-LEaRn(CutLER),一種用于訓(xùn)練無(wú)監(jiān)督對(duì)象檢測(cè)和分割模型的簡(jiǎn)單方法。利用自監(jiān)督模型的特性在沒(méi)有監(jiān)督的情況

    2024年02月06日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包