根據報錯信息,打印如下內容:app
代碼以下:圖片
for i in xrange(num_images):
#print ('in append_flipped==================',self.roidb)
boxes = self.roidb[i]['boxes'].copy()
oldx1 = boxes[:, 0].copy()
oldx2 = boxes[:, 2].copy()
boxes[:, 0] = widths[i] - oldx2 - 1
boxes[:, 2] = widths[i] - oldx1 - 1
try:
assert (boxes[:, 2] >= boxes[:, 0]).all()
except:
print ('in append_flipped==================',self.roidb[i]['boxes'],boxes[:, 0],boxes[:, 2],widths[i],oldx2)ip
其中,self.roidb是從標記的框那裏得來的。這個代碼的目的是旋轉圖片還能獲得框,是一個數據加強的作法。im
打印出來後,能看到是哪些異常數據致使這個assert的。這個assert (boxes[:, 2] >= boxes[:, 0]).all()數據
的意思是:右下角的值應該比左上角的值大。這樣纔是一個正確的框。異常
常見的數據錯誤有:db
1)數據越界了。這個跟數據清洗有關。有可能標記的時候。圖片的寬只有1000,硬是變成了左上角 990,框的寬度20。加在一塊兒就是1010.越界了。sse