在物体检测(object detection)任务中,box的操作是一个比较麻烦的事情,特别是要在tensorflow的graph中实现这些操作。
tensorflow考到这点,也提供了一些工具函数。本篇文章就用一个例子来引导大家使用这些工具。
首先是 BoxList类:存储多个box信息的数据结构
box_list_ops:提供了很多操作BoxList的方法,比如计算iou,排序等等
这两个py文件地址:https://github.com/tensorflow/models/tree/master/research/object_detection/core
import tensorflow as tf
from core import box_list
from core import box_list_ops
boxes1=tf.convert_to_tensor([[0.25, 0.25, 0.5, 0.5],[0.25, 0.25, 0.4, 0.5]]) #cx, cy,width, height
xmin=boxes1[:,0]-boxes1[:,2]/2
xmax=boxes1[:,0]+boxes1[:,2]/2
ymin=boxes1[:,1]-boxes1[:,3]/2 #I just want to try the [:] function of tensorflow
ymax=boxes1[:,1]+boxes1[:,3]/2 #the simplest way of doing this is using slice
boxes1=tf.transpose(tf.stack([ymin, xmin, ymax, xmax]))