Object Instance Mining for Weakly Supervised Object Detection

论文题目:Object Instance Mining for Weakly Supervised Object Detection
论文链接:https://arxiv.org/pdf/2002.01087.pdf
论文代码:https://github.com/bigvideoresearch/OIM


        提出了一种端到端的物体实例挖掘(Object Instance Mining,OIM)弱监督目标检测框架。其实就是提供了一种充分挖掘proposals的方法。


从现有的多目标检测发现:

       1、很容易陷入局部最优。因为这个学习机制倾向于对每一个类别学习一张图片中最明显的特征,其他被忽略的物体实例容易使学习网络陷入局部最优,进而影响弱监督目标检测的性能。在训练过程中可能会选择缺失的区域作为负样本,这可能会进一步降低CNN分类器的识别能力。
        2、置信度最高的region proposal 很容易集中在目标的局部位置。这可能会导致只检测到物体的一小部分的问题。


两个 Contribution

    1、提出了一个基于spatial graphs和appearance graphs模型的网络框架。(OIM)
    2、提出了目标实例权重重调损失函数。(Instance Reweighted Loss)

OIM基于两个基本假设:

    1、置信度最高的proposal 及其周围高度重叠的proposal 可能属于同一类 ——> spatial similarity 建立spatial graphs
    2、同一类的对象应具有较高的相似度 ——>appearance similar建立appearance graphs


框架

        该框架引入了基于Spatial Graph及Appearance Graph的信息传播机制,在网络迭代学习过程中,就可以只使用image-level的监督信息在每张图片中挖掘所有可能的目标实例。这样使得在基于多实例学习方法的网络学习过程中,特征不够显著的物体实例可以被检测到并加入训练,进而提升特征的表达能力和鲁棒性。

        框架由两部分组成:MID + OIM
        MID(多实例检测器)进行行候选区域的选择和分类。
        OIM集成候选框的特征和MID的检测结果。
        主要介绍OIM

在这里插入图片描述

OIM

    给定一张图片 I,选定置信度最高的proposal P

  • 建立spatial graphs:
    G i c s = ( V i c s , E i c s ) G_{i_c}^s = (V_{i_c}^s , E_{i_c}^s ) Gics=(Vics,Eics)
    V i c s V_{i_c}^s

要复现论文'Online Easy Example Mining for Weakly - supervised Gland Segmentation from Histology Images'的相关工作,可以从以下几个方面着手: ### 1. 环境搭建 根据论文要求,安装合适的深度学习框架(如PyTorch或TensorFlow)以及相关依赖库。确保使用的Python版本与论文一致。 ```python # 以PyTorch为例,安装命令 pip install torch torchvision ``` ### 2. 数据集准备 按照论文描述,获取组织学图像的数据集。通常需要对数据集进行预处理,包括图像的裁剪、归一化等操作。 ```python import torchvision.transforms as transforms # 定义图像预处理操作 transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) ``` ### 3. 模型构建 依据论文中的模型架构,使用深度学习框架构建模型。需要仔细阅读论文,确保模型的层数、参数等设置正确。 ```python import torch.nn as nn # 简单示例,假设模型是一个简单的卷积神经网络 class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(3, 16, kernel_size=3, padding=1) self.relu = nn.ReLU() self.pool = nn.MaxPool2d(2, 2) self.fc1 = nn.Linear(16 * 112 * 112, 10) def forward(self, x): x = self.pool(self.relu(self.conv1(x))) x = x.view(-1, 16 * 112 * 112) x = self.fc1(x) return x model = SimpleCNN() ``` ### 4. 在线简单样本挖掘(Online Easy Example Mining)实现 这是论文的核心部分,需要根据论文中的算法细节,实现在线简单样本挖掘的逻辑。 ### 5. 训练模型 使用准备好的数据集对模型进行训练,同时应用在线简单样本挖掘策略。 ```python import torch.optim as optim criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) for epoch in range(10): # 训练10个epoch running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch {epoch + 1}, Loss: {running_loss / len(trainloader)}') ``` ### 6. 模型评估 使用测试集对训练好的模型进行评估,计算相关的指标,如准确率、召回率等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值