Mask_RCNN:使用COCO权重进行特定类别预测(只标记出你需要的类别)

#采用自己的模型进行预测,或者直接使用COCO权重进行全部类别的预测看这里:

Mask_RCNN:使用自己训练好的模型进行预测

目录

#采用自己的模型进行预测,或者直接使用COCO权重进行全部类别的预测看这里:

1.问题提出

2.解决思路

3.得到class_id

4.筛选出需要的boungding box


1.问题提出

        

        大家可能都知道,这个版本的COCO一共有如下80个类别:

        但是针对某些特定的场景,你可能只需要检测出其中的一种或者多种,例如只检测'traffic light'这一类,而不检测其他的类该怎么做呢?类似下图:

    

        a.直接使用COCO权重预测:

    b.经过筛选后,只检测'traffic light'这一类:

2.解决思路

        

        其实解决这个问题的办法很简单,每次调用detect对图像处理后,都可以得到一系列boungding box,而每一个boungding box也都对应这一个个class_id,因此只需要对这些class_id进行筛选就可以得到需要的这些类了。

3.得到class_id

        

        因此,问题就变成了如何拿到这些类对应的class_id了,你可以通过以下语句得到class_id:

class_id = class_names.index('traffic light')

         

4.筛选出需要的boungding box

        拿到这些class_id后就可以按他们筛选出需要的boungding box:

 if class_names.index('traffic light') in r['class_ids']:
            k = list(np.where(r['class_ids'] == class_names.index('traffic light'))[0])
            r['scores'] = np.array([r['scores'][i] for i in k])
            r['rois'] = np.array([r['rois'][i] for i in k])
            r['masks'] = np.array([r['masks'][i] for i in k])
            r['class_ids'] = np.array([r['class_ids'][i] for i in k])
            visualize.display_instances(image, r['rois'], r['masks'], r['class_ids'], class_names, r['scores'], figsize=(8, 8))

        其他步骤和上面贴出来的链接一致,对应修改即可!

评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任博啥时候能毕业?

有用的话,请博主喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值