首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OpenCV/Python -根据边界框的面积查找异常值

OpenCV/Python -根据边界框的面积查找异常值
EN

Stack Overflow用户
提问于 2018-08-19 04:35:29
回答 1查看 559关注 0票数 1

我有一个使用TensorFlow设置的对象检测算法,有没有办法根据盒子的大小去除异常值?

例如,我检测到20个对象。假设它们中有17个大约是50x50。但是,有几个边界框是1x1,一个框是1000x1000。显然,1x1和1000x1000的盒子太大了,应该去掉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-19 05:02:52

可以这样做的一种方法是使用z_score。z_score将检查这个数字与平均值之间有多少个std_devs。

示例:

代码语言:javascript
复制
# coding: utf-8

import cv2
import numpy as np


bboxes = [(100,200), (120,210), (114, 195), (2,190), (104, 300), (111, 3), (110, 208), (114,205)]


def z_score(ys):
    mean_y = np.mean(ys)
    stdev_y = np.std(ys)
    z_scores = np.abs([(y - mean_y) / stdev_y for y in ys])
    return z_scores

thresh   = 1
outliers = [(t[0]>thresh or t[1]>thresh) for t in z_score(bboxes)]

这将打印: False,True,False,False

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51912354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档