物体検出結果のBitMapを取得したい
解決したいこと
https://qiita.com/siganai_poteto/items/ecaf7feef0336a988875
上記記事の「2.BitMapでセグメント」を参考に自前のデータから各物体のマスクを取得しようとしたところ、以下のエラーが発生しました。
発生している問題・エラー
AttributeError Traceback (most recent call last)
<ipython-input-7-c0d7771f69a1> in <module>()
3
4 objects = []
----> 5 for id in output["instances"]._fields["pred_classes"].tensor.cpu().numpy():
6 obj = classes_list[id]
7 objects.append(obj)
AttributeError: 'Tensor' object has no attribute 'tensor'
ソースコード
# このclasses_listのindexと物体のカテゴリーIDが対応しています
classes_list= MetadataCatalog.get(cfg.DATASETS.TRAIN[0]).thing_classes
objects = []
for id in output["instances"]._fields["pred_classes"].tensor.cpu().numpy():
obj = classes_list[id]
objects.append(obj)
# 推定した物体名のリスト
object_est = [(k,i) for k,i in zip(objects,output["instances"]._fields["scores"].tensor.cpu().numpy())]
自分で試したこと
Detectron2のインストールが上記記事のものだとエラーが出たので、以下のコードを用いました。
!pip install -U torch==1.5 torchvision==0.6 -f https://download.pytorch.org/whl/cu101/torch_stable.html
!pip install cython pyyaml==5.1
!pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
import torch, torchvision
print(torch.__version__, torch.cuda.is_available())
!gcc --version
# opencv is pre-installed on colab
# install detectron2:
!pip install detectron2==0.1.3 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.5/index.html
import detectron2
from detectron2.utils.logger import setup_logger
setup_logger()
# import some common libraries
import numpy as np
import cv2
import random
from google.colab.patches import cv2_imshow
# import some common detectron2 utilities
from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog
0