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

mmdet.structures.DetDataSample 數(shù)據(jù)結(jié)構(gòu)解析

這篇具有很好參考價值的文章主要介紹了mmdet.structures.DetDataSample 數(shù)據(jù)結(jié)構(gòu)解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

官方文檔??https://mmdetection.readthedocs.io/zh-cn/latest/api.html#mmdet-structures

  • ``gt_instances``(InstanceData): Ground truth of instance annotations. 標注的數(shù)據(jù)

  • <InstanceData(
    
        META INFORMATION
    
        DATA FIELDS
        bboxes: tensor([], size=(0, 4))
        labels: tensor([], dtype=torch.int64)
        masks: BitmapMasks(num_masks=0, height=3456, width=4608)
    ) at 0x7fc26252dbb0>
  • ``pred_instances``(InstanceData): Instances of detection predictions. 預(yù)測的數(shù)據(jù)

  • <InstanceData(
    
        META INFORMATION
    
        DATA FIELDS
        labels: tensor([0])
        bboxes: tensor([[ 687.5951, 1478.1307, 2670.1741, 2215.1914]])
        scores: tensor([0.9946])
        masks: tensor([[[False, False, False,  ..., False, False, False],
                     [False, False, False,  ..., False, False, False],
                     [False, False, False,  ..., False, False, False],
                     ...,
                     [False, False, False,  ..., False, False, False],
                     [False, False, False,  ..., False, False, False],
                     [False, False, False,  ..., False, False, False]]])
    ) at 0x7fc25f2c3d00>
  • ``ignored_instances``(InstanceData): Instances to be ignored during?training/testing. 訓(xùn)練或測試中忽略的數(shù)據(jù)

  • <InstanceData(
    
        META INFORMATION
    
        DATA FIELDS
        bboxes: tensor([], size=(0, 4))
        labels: tensor([], dtype=torch.int64)
        masks: BitmapMasks(num_masks=0, height=3456, width=4608)
    ) at 0x7fc25f2cb610>
  • ``gt_panoptic_seg``(PixelData): Ground truth of panoptic?segmentation. 全景分割的標注數(shù)據(jù),

  • ``pred_panoptic_seg``(PixelData): Prediction of panoptic?segmentation.?全景分割的預(yù)測?

  • ``gt_sem_seg``(PixelData): Ground truth of semantic segmentation.?語義分割的標注數(shù)據(jù)

  • ``pred_sem_seg``(PixelData): Prediction of semantic segmentation.?語義分割預(yù)測數(shù)據(jù)

我這里面主要使用的是?pred_instances

from mmengine.structures import InstanceData, PixelData

問題: 獲取mask后, 如果做計算?

根據(jù)mask將圖片扣取出來

如下程序獲取mask, 當(dāng)然?epoch_24.pth 是預(yù)先訓(xùn)練好的

from mmdet.apis import init_detector,inference_detector
import mmcv
import matplotlib.pyplot as plt

from mmdet.registry import VISUALIZERS


config_file_retrain = 'configs/radish/mask_rcnn_r50_fpn_2x_coco_radish.py'
checkpoint_file_retrain = 'work_dirs/mask_rcnn_r50_fpn_2x_coco_radish/epoch_24.pth'

model = init_detector(config_file_retrain,checkpoint_file_retrain,device='cpu')

# image_path = './data/radish/20231121145620_1-1.jpg'
# image_path = './data/radish/20231220/20231202115005_1-1.jpg'
# image_path = './data/radish/20231220/20231129161723_1-1.jpg'
# image_path = './data/radish/test2012/2012120076_20201212094819.png'
image_path = './data/radish/test2012/2012120261_20201212151200.png'
image_path = './data/radish/test2012/2012140043_20201214085421.png'
image_path = './data/radish/test2012/2012120158_20201212111739.png'
image_path = './data/radish/test2012/2012120305_20201212154238.png'
image_path = './data/radish/20231220/20231129161409_1-1.jpg'
image_path = './data/radish/test2012/2012120179_20201212133724.png'


img = mmcv.imread( image_path, channel_order='rgb')
plt.imshow(img)

result_retrain = inference_detector(model,img)

# init the visualizer(execute this block only once)
visualizer = VISUALIZERS.build(model.cfg.visualizer)
# the dataset_meta is loaded from the checkpoint and
# then pass to the model in init_detector
# visualizer.dataset_meta = model0.dataset_meta
visualizer.dataset_meta = model.dataset_meta   # set the visualizer metadata when you changed your dataset


# print(result_retrain)

# show the results
visualizer.add_datasample(
    'result',
    img,
    data_sample=result_retrain,
    draw_gt=False,
    wait_time=0,
)
visualizer.show()

處理mask

import cv2
import numpy as np
masks = result_retrain.pred_instances.masks.detach().cpu().numpy()
# print(masks[0])
height = masks[0].shape[0]
width = masks[0].shape[1]
# print(height)
# print(width)
# print(result_retrain.pred_instances.masks[0].cpu().numpy())

from mmdet.structures.mask import encode_mask_results, mask2bbox
encode_masks = encode_mask_results(result_retrain.pred_instances.masks)
# print(encode_masks)

bboxes = mask2bbox(result_retrain.pred_instances.masks.cpu()).numpy().tolist()
#  mask的 x, y, w, h
bboxes = bboxes[0]
print(bboxes)


image_path = './data/radish/test2012/2012120179_20201212133724.png'
#img=cv2.imread(image_path, cv2.COLOR_BGR2GRAY)

img = mmcv.imread( image_path, channel_order='rgb')

# bboxes 畫框
# mask_BGR = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
color = (0, 0, 255) # Red color in BGR;紅色:rgb(255,0,0)
thickness = 2 # Line thickness of 1 px 
# start_point, end_point = (bboxes[0], bboxes[1]), (bboxes[0]+bboxes[2], bboxes[1]+bboxes[3])

x0, y0 = int(bboxes[0]), int(bboxes[1])
x1 = int(bboxes[2]-1)
y1 = int(bboxes[3]-1)
print(f'x0:{x0}, y0:{y0}, x1:{x1}, y1:{y1}')
start_point, end_point = (x0, y0), (x1, y1)

print(start_point)
print(end_point)
mask_bboxs = cv2.rectangle(img, start_point, end_point, color, thickness)
plt.imshow(img)

#剪裁
patch_bboxes = np.array(bboxes)
patch = mmcv.imcrop(img, patch_bboxes)
plt.imshow(patch)

mask = masks[0]


# 將其它區(qū)域顏色變成0
# change color of background and balloon
masked_b = img[:, :, 0] * mask
masked_g = img[:, :, 1] * mask
masked_r = img[:, :, 2] * mask
masked = np.concatenate([masked_b[:, :, None], masked_g[:, :, None], masked_r[:, :, None]], axis=2)

un_mask = 1 - mask
frame_b = img[:, :, 0] * un_mask
frame_g = img[:, :, 1] * un_mask
frame_r = img[:, :, 2] * un_mask
img = np.concatenate([frame_b[:, :, None], frame_g[:, :, None], frame_r[:, :, None]], axis=2).astype(np.uint8)

# background gray color with 3 channels
img = mmcv.bgr2gray(img, keepdim=True)
img = np.concatenate([img, img, img], axis=2)
# img += masked
plt.imshow(masked)

# 旋轉(zhuǎn)



# show the results
# visualizer.add_datasample(
#     'result',
#     img,
#     data_sample=result_retrain,
#     draw_gt=False,
#     wait_time=0,
# )
# visualizer.show()

打印出來處理結(jié)果

mmdet.structures.DetDataSample 數(shù)據(jù)結(jié)構(gòu)解析,AI,深度學(xué)習(xí),機器學(xué)習(xí),人工智能

然后針對隔離出來的圖片進行后續(xù)處理?文章來源地址http://www.zghlxwxcb.cn/news/detail-807838.html

到了這里,關(guān)于mmdet.structures.DetDataSample 數(shù)據(jù)結(jié)構(gòu)解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu):二叉樹(超詳解析)

    數(shù)據(jù)結(jié)構(gòu):二叉樹(超詳解析)

    目錄 ??????? 1.樹概念及結(jié)構(gòu) 1.1樹的概念 1.2樹的相關(guān)概念 1.3樹的表示 1.3.1孩子兄弟表示法:? ?1.3.2雙親表示法:只存儲雙親的下標或指針 兩節(jié)點不在同一樹上: 2.二叉樹概念及結(jié)構(gòu) 2.1.概念 2.2.特殊的二叉樹: 2.2.1.滿二叉樹: ?編輯2.2.2. 完全二叉樹:h = (log2(N+1)

    2024年02月08日
    瀏覽(21)
  • 【數(shù)據(jù)結(jié)構(gòu)】吃透單鏈表?。。。ㄔ敿毥馕鰚)

    【數(shù)據(jù)結(jié)構(gòu)】吃透單鏈表?。。。ㄔ敿毥馕鰚)

    上篇文章介紹了順序表,這篇文章開始著重講解鏈表了。 鏈表有很多種:單、雙鏈表,循環(huán)、非循環(huán)鏈表還有帶頭、不帶頭的鏈表。 本篇的主要內(nèi)容是單鏈表(無頭,單向,非循環(huán)) 。 鏈表對比順序表有哪些不同之處,接下來會帶大家一起了解~ 1.頭部和中間的插入刪除效

    2024年02月12日
    瀏覽(22)
  • 王道數(shù)據(jù)結(jié)構(gòu)精選習(xí)題及解析

    王道數(shù)據(jù)結(jié)構(gòu)精選習(xí)題及解析

    暴力法的時間復(fù)雜度為O(n2) 不要忽略有序性 思路:因為是有序的順序表,所以重復(fù)的元素一定是連在一起的。那我們就使用兩個指針,一個指針指向當(dāng)前不重復(fù)有序表的最后一個元素,另一個會從頭到尾遍歷整個有序表,稱為工作指針。 我們讓工作指針往后移,如果與當(dāng)

    2024年02月10日
    瀏覽(20)
  • 【數(shù)據(jù)結(jié)構(gòu)】順序表:與時俱進的結(jié)構(gòu)解析與創(chuàng)新應(yīng)用

    【數(shù)據(jù)結(jié)構(gòu)】順序表:與時俱進的結(jié)構(gòu)解析與創(chuàng)新應(yīng)用

    ? 歡迎來到白劉的領(lǐng)域 ??? Miracle_86.-CSDN博客 ? ? ? ? ? 系列專欄 ? ? 數(shù)據(jù)結(jié)構(gòu)與算法 先贊后看,已成習(xí)慣 ? ?創(chuàng)作不易,多多支持! 目錄 一、數(shù)據(jù)結(jié)構(gòu)的概念 二、順序表(Sequence List) 2.1 線性表的概念以及結(jié)構(gòu) 2.2 順序表分類 2.2.1 順序表和數(shù)組的區(qū)別 2.2.2 順序表的分類

    2024年04月23日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】哈希經(jīng)典應(yīng)用:位圖——[深度解析](8)

    【數(shù)據(jù)結(jié)構(gòu)】哈希經(jīng)典應(yīng)用:位圖——[深度解析](8)

    前言 大家好吖,歡迎來到 YY 滴 數(shù)據(jù)結(jié)構(gòu) 系列 ,熱烈歡迎! 本章主要內(nèi)容面向接觸過C++的老鐵 主要內(nèi)容含: 歡迎訂閱 YY 滴C++專欄!更多干貨持續(xù)更新!以下是傳送門! YY的《C++》專欄 YY的《C++11》專欄 YY的《Linux》專欄 YY的《數(shù)據(jù)結(jié)構(gòu)》專欄 YY的《C語言基礎(chǔ)》專欄 YY的《

    2024年02月03日
    瀏覽(25)
  • Redis數(shù)據(jù)結(jié)構(gòu):Hash類型全面解析

    Redis,作為一個開源的、內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),以其出色的性能和靈活的數(shù)據(jù)類型,廣泛應(yīng)用于緩存、消息隊列、發(fā)布訂閱系統(tǒng)等多種場景。在 Redis 的五種基本數(shù)據(jù)類型中,Hash 類型是一種非常重要的數(shù)據(jù)類型。它可以存儲鍵值對的集合,且能夠用小于1毫秒的時間復(fù)雜

    2024年02月10日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)】從頭到尾全解析雙向鏈表

    【數(shù)據(jù)結(jié)構(gòu)】從頭到尾全解析雙向鏈表

    在之前我們已經(jīng)講過 單鏈表 了,單鏈表查找上一個結(jié)點的時間復(fù)雜度為O(n),尾插時也要遍歷一次鏈表也是O(n),因為我們每次都要從頭開始遍歷找,為了克服這單向性的缺點,我們就有了雙向鏈表. 如果要提高鏈表的查找,尾插等效率,那雙向鏈表(雙鏈表)無疑是首選。

    2024年02月08日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)】如何設(shè)計循環(huán)隊列?圖文解析(LeetCode)

    【數(shù)據(jù)結(jié)構(gòu)】如何設(shè)計循環(huán)隊列?圖文解析(LeetCode)

    LeetCode鏈接:622. 設(shè)計循環(huán)隊列 - 力扣(LeetCode) 目錄 做題思路 只開辟 k 個空間 多開一個空間 代碼實現(xiàn) 1. 循環(huán)隊列的結(jié)構(gòu) 2. 開辟空間 3. 判斷空 4. 判斷滿 5. 隊尾插入數(shù)據(jù) 6. 隊頭刪除數(shù)據(jù) 7. 獲取隊頭元素 8. 獲取隊尾元素 9. 銷毀隊列 全部代碼 設(shè)計循環(huán)隊列,使用數(shù)組或鏈表

    2024年02月10日
    瀏覽(23)
  • Redis數(shù)據(jù)結(jié)構(gòu):高頻面試題及解析

    Redis數(shù)據(jù)結(jié)構(gòu):高頻面試題及解析

    Redis 是速度非??斓姆顷P(guān)系型(NoSQL)內(nèi)存鍵值數(shù)據(jù)庫,可以存儲鍵和五種不同類型的值之間的映射。 鍵的類型只能為字符串,值支持五種數(shù)據(jù)類型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如將內(nèi)存中的數(shù)據(jù)持久化到硬盤中,使用復(fù)制來擴展讀性能

    2024年02月08日
    瀏覽(24)
  • 數(shù)據(jù)結(jié)構(gòu)與算法--圖(概念+練習(xí)題+解析)

    數(shù)據(jù)結(jié)構(gòu)與算法--圖(概念+練習(xí)題+解析)

    有向圖 在有向圖中有以下幾點結(jié)論: 1.所有頂點的度數(shù)之和等于邊數(shù)的二倍。 2.所有頂點的入度之和等于出度之和。 3.n個頂點的有向完全圖有n(n-1)條邊。 4.n個頂點的強連通圖至少有n條邊。 無向圖 在無向圖中有以下幾點結(jié)論: 1.所有頂點的度數(shù)之和等于邊數(shù)的二倍。 2.n個頂

    2024年02月04日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包