标签: detectron

什么是total_loss、loss_cls等

我想使用 Faster_rcnn 或 mask_rcnn 与 Pytorch 和 Detectron2 来训练自定义数据集。一切正常,但我想知道我想知道我得到的结果是什么。

[11/29 20:16:31 d2.utils.events]:  eta: 0:24:04  iter: 19  total_loss: 9.6  loss_cls: 1.5  loss_box_reg: 0.001034  loss_mask: 0.6936  loss_rpn_cls: 6.773  loss_rpn_loc: 0.5983  time: 1.4664  data_time: 0.0702  lr: 4.9953e-06  max_mem: 2447M
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果,我想知道这一切意味着什么

python machine-learning conv-neural-network pytorch detectron

8
推荐指数
1
解决办法
4116
查看次数

_C.cpython-38-x86_64-linux-gnu.so:未定义符号:_ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPK​​NS_6detail12TypeMetaDataEv

此错误的原因是什么,我该如何解决?我正在运行这个 repo 的代码:https : //github.com/facebookresearch/frankmocap

(frank) mona@goku:~/research/code/frankmocap$ python -m demo.demo_frankmocap --input_path ./sample_data/han_short.mp4 --out_dir ./mocap_output
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/mona/research/code/frankmocap/demo/demo_frankmocap.py", line 25, in <module>
    from handmocap.hand_bbox_detector import HandBboxDetector
  File "/home/mona/research/code/frankmocap/handmocap/hand_bbox_detector.py", line 33, in <module>
    from detectors.hand_object_detector.lib.model.roi_layers import nms # might raise segmentation fault at the end of program
  File "/home/mona/research/code/frankmocap/detectors/hand_object_detector/lib/model/roi_layers/__init__.py", line 3, in <module>
    from .nms import nms
  File "/home/mona/research/code/frankmocap/detectors/hand_object_detector/lib/model/roi_layers/nms.py", …
Run Code Online (Sandbox Code Playgroud)

c python ubuntu pytorch detectron

6
推荐指数
1
解决办法
1985
查看次数

如何将 Detectron2 模型转换为另一个深度学习框架?

我想将 detectorron2 模型转换为另一个深度学习框架,即 PyTorch、TensorFlow 或 ONNX。我该如何进行这种转换?

cfg我可以使用(我相信这意味着 detectorron2 行话中的配置)对 detectorron2 模型进行推理。

目标是最终在 Nvidia Jetson 主板上运行 Detectron2 模型。因此,目标是转换模型。

tensorflow pytorch tensorrt onnx detectron

5
推荐指数
1
解决办法
3606
查看次数

pip:找不到 detectorron2 的匹配分布

当我有以下行时requirements.txt

detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/index.html
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ERROR: Could not find a version that satisfies the requirement detectron2 (from versions: none)
ERROR: No matching distribution found for detectron2
Run Code Online (Sandbox Code Playgroud)

然而,尝试在命令行上执行此操作时,它会安装软件包,但我真的更希望所有内容都在requirements.txt中

即使requirements.txt 没有任何其他条目,也会发生这种情况。

pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/index.html
Run Code Online (Sandbox Code Playgroud)

知道有什么问题吗?requirements.txt 中列出的其他要求是否会导致此问题?我怎样才能找到是哪一个?

这是一个 Docker 容器python:3.7-slim-buster,如果我没记错的话,它是基于 Debian buster 的。它运行的是 Python 3.7.11。

我在 virtualenv 和没有 virtualenv 的情况下都尝试过这个。

requirements.txt 中的其他软件包已正确安装。

python pip detectron

5
推荐指数
0
解决办法
1472
查看次数

cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 在 detectorron2 中做什么?

希望你做得很好!

我不太明白 detectorron2 colab 笔记本教程中的这两行,我尝试查看官方文档,但我不太明白,有人可以向我解释一下吗:

cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5  # set threshold for this model
# Find a model from detectron2's model zoo. You can use the https://dl.fbaipublicfiles... url as well
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
Run Code Online (Sandbox Code Playgroud)

我预先感谢您并祝您度过愉快的一天!

python object-detection-api detectron

5
推荐指数
1
解决办法
5548
查看次数

Detectron2 - 在目标检测阈值处提取区域特征

我正在尝试使用detectron2框架提取类检测高于某个阈值的区域特征。我稍后将在我的管道中使用这些功能(类似于:VilBert第 3.1 节训练 ViLBERT)到目前为止,我已经使用此配置训练了一个 Mask R-CNN,并在一些自定义数据上对其进行了微调。它表现良好。我想要做的是从我训练的模型中为生成的边界框提取特征。

编辑:我查看了关闭我帖子的用户所写的内容并试图对其进行改进。尽管读者需要了解我在做什么的上下文。如果您对我如何改进问题有任何想法,或者您对如何做我想做的事情有一些见解,欢迎您提供反馈!

我有个问题:

  1. 为什么我只得到一个预测实例,但是当我查看预测 CLS 分数时,有超过 1 个通过阈值?

我相信这是产生 ROI 特征的正确方法:

images = ImageList.from_tensors(lst[:1], size_divisibility=32).to("cuda")  # preprocessed input tensor
#setup config
cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_101_FPN_3x.yaml"))
cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth")
cfg.SOLVER.IMS_PER_BATCH = 1
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 1  # only has one class (pnumonia)
#Just run these lines if you have the trained model im memory
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.7   # set the testing threshold for this model …
Run Code Online (Sandbox Code Playgroud)

python machine-learning object-detection pytorch detectron

3
推荐指数
1
解决办法
3202
查看次数

如何在 Detectron2 中保存和加载自定义数据集的模型?

我尝试使用以下方法保存和加载模型:所有键都已映射,但输出 #1 中没有预测

from detectron2.modeling import build_model
model = build_model(cfg)
torch.save(model.state_dict(), 'checkpoint.pth') 
model.load_state_dict(torch.load(checkpoint_path,map_location='cpu'))
Run Code Online (Sandbox Code Playgroud)

我也尝试使用官方文档来做,但无法理解输入格式部分

from detectron2.checkpoint import DetectionCheckpointer
DetectionCheckpointer(model).load(file_path_or_url)  # load a file, usually from cfg.MODEL.WEIGHTS
checkpointer = DetectionCheckpointer(model, save_dir="output")
checkpointer.save("model_999")  # save to output/model_999.pth
Run Code Online (Sandbox Code Playgroud)

deep-learning pytorch detectron

3
推荐指数
1
解决办法
1751
查看次数

Detectron2 中每次迭代的图像数量

我是使用检测器 2 的新手,只是在学习它。这可能是一个菜鸟问题,但我真的需要答案。我发现与存储库中的时代数无关。

我们知道,epoch 意味着所有数据通过模型一次传递,batch 意味着整个数据集的某个子集,它有能力通过梯度下降影响损失。在这个模型中,(Detectron2) 我们有一个叫做迭代的东西。这个迭代是什么意思?这是否意味着通过模式或一个时期传递一批(考虑到每次迭代的时间,情况不应该如此)

我的问题是,我怎么知道将我的所有图像传递给模型的最小迭代次数,至少一次。

iteration object-detection detectron

3
推荐指数
2
解决办法
2152
查看次数

如何注册数据集以与 detectorron2 一起使用?我们有 COCO JSON 格式的图像及其注释

我正在尝试使用 Detectron2 训练模型。我正在使用 Grocery 图像数据,并且有 COCO 格式的注释。我在模型加载时遇到问题。模型不带注释。我指的是这个博客https://gilberttanner.com/blog/detectron2-train-a-instance-segmentation-model

注册数据集时面临问题。

from detectron2.data.datasets import register_coco_instances

for d in ["train", "test"]:
    register_coco_instances(f"microcontroller_{d}", {}, f"Microcontroller Segmentation/{d}.json", f"Microcontroller Segmentation/{d}")
Run Code Online (Sandbox Code Playgroud)

这段代码有问题吗?

json image-segmentation deep-learning detectron image-classification

3
推荐指数
1
解决办法
8765
查看次数

如何将 detectorron2 的增强功能与使用 register_coco_instances 加载的数据集结合使用

我已经在以 coco 格式标记和导出的自定义数据上训练了 detectorron2 模型,但现在我想应用增强并使用增强数据进行训练。如果我不使用自定义 DataLoader,而是使用 register_coco_instances 函数,我该如何做到这一点。

cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
predictor = DefaultPredictor(cfg)
outputs = predictor(im)

train_annotations_path = "./data/cvat-corn-train-coco-1.0/annotations/instances_default.json"
train_images_path = "./data/cvat-corn-train-coco-1.0/images"
validation_annotations_path = "./data/cvat-corn-validation-coco-1.0/annotations/instances_default.json"
validation_images_path = "./data/cvat-corn-validation-coco-1.0/images"

register_coco_instances(
    "train-corn",
    {},
    train_annotations_path,
    train_images_path
)
register_coco_instances(
    "validation-corn",
    {},
    validation_annotations_path,
    validation_images_path
)
metadata_train = MetadataCatalog.get("train-corn")
dataset_dicts = DatasetCatalog.get("train-corn")

cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.DATASETS.TRAIN = ("train-corn",)
cfg.DATASETS.TEST = ("validation-corn",)
cfg.DATALOADER.NUM_WORKERS = 2
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")  # Let training initialize from model zoo
cfg.SOLVER.IMS_PER_BATCH = 2 …
Run Code Online (Sandbox Code Playgroud)

python computer-vision pytorch data-augmentation detectron

3
推荐指数
1
解决办法
5170
查看次数

如何在不同文件夹中访问yolov5的保存结果?

我使用下面的代码加载经过训练的自定义 Yolov5 模型并执行检测。

import cv2
import torch
from PIL import Image

model = torch.hub.load('ultralytics/yolov5', 'custom', 
 path='yolov5/runs/train/exp4/weights/best.pt', force_reload=True) 

img = cv2.imread('example.jpeg')[:, :, ::-1]  # OpenCV image (BGR to RGB)

results = model(img, size=416)
Run Code Online (Sandbox Code Playgroud)

#显示和保存我正在使用的结果:

results.print()  
results.save() 
results.show()
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将结果保存在不同的目录中,以便我可以在基于网络的应用程序中使用它们。我正在使用 Streamlit,供您参考。例如,目前,结果(图像)保存在运行\检测\exp*中。我想改变它。任何人都可以指导我吗?

web-applications pytorch streamlit detectron yolov5

0
推荐指数
1
解决办法
8438
查看次数