计算机视觉二维/三维包围盒库
bbox的Python项目详细描述
bbox
Python库旨在通过提供一组灵活的图元和函数,直观且易于使用,从而简化了2D和3D包围盒在对象检测等领域中的使用。功能
二维边界框
使用一个抽象和维护各种属性的简单类轻松处理边界框
frombboximportBBox2D,XYXY# x, y, w, hbox=BBox2D([0,0,32,32])# equivalently, in (x1, y1, x2, y2) (aka two point format), we can usebox=BBox2D([0,0,31,31],mode=XYXY)print(box.x1,box.y1)# -> 0 0print(box.x2,box.y2)# -> 31 31print(box.height,box.width)# -> 32 32# Syntatic sugar for height and widthprint(box.h,box.w)# -> 32 32
二维边界框序列
大多数任务涉及处理多个边界框。这也可以通过BBox2DList
类方便地处理。
bbl=BBox2DList(np.random.randint(10,4),mode=XYWH)
上面的代码片段创建了一个包含10个边界框的列表,这些边界框整齐地抽象成一个方便的对象。
非最大抑制< EH3>
需要执行非最大抑制吗?它就像一个函数调用一样简单。
frombbox.utilsimportnms# bbl -> BBox2DList# scores -> list/ndarray of confidence scoresnew_boxes=nms(bbl,scores)
联合交叉口(Jaccard索引)
jaccard索引或iou是一个非常有用的度量标准,可用于查找边界框之间的相似性。bbox
为此提供本机支持。
frombbox.metricsimportjaccard_index_2dbox1=BBox2D([0,0,32,32])box2=BBox2D([10,12,32,46])iou=jaccard_index_2d(box1,box2)
我们甚至可以使用Jaccard索引计算框之间的距离度量作为距离矩阵:
frombbox.metricsimportmulti_jaccard_index_2ddist=1-multi_jaccard_index_2d(bbl,bbl)
三维边界框
bbox
还支持三维边界框,为使用它们提供了方便的方法和属性。