In [1]:
import cv2
import pandas as pd
import numpy as np
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
data = pd.read_csv('voc_xywh.csv')
data = data.drop('Unnamed: 0', 1)
#data['File_Path'] = './VOCdevkit2007/VOC2007/JPEGImages/' + data['Frame']
#data = data[(data['label'] == 0)].reset_index()
print(data.head())
In [3]:
#This jupyter version only used on conv5-3, here I am not use multi-sclae features from different convolutional layer
import batch_generate
i_line = np.random.randint(len(data))
name_str, img, bb_boxes = batch_generate.get_img_by_name(data, i_line, size = (960, 640))
print(bb_boxes)
gta = batch_generate.bbox_transform(bb_boxes)
print(gta)
plt.figure(figsize=(10,10))
plt.imshow(img)
currentAxis = plt.gca()
for i in range(len(gta)):
currentAxis.add_patch(plt.Rectangle((gta[i,0], gta[i,1]), gta[i,2]-gta[i,0], gta[i,3]-gta[i,1], fill=False, edgecolor= 'r', linewidth=1))
In [4]:
#shifts display
import config
mc = config.model_parameters()
print(mc.ANCHOR_BOX.shape)
anchor_box = mc.ANCHOR_BOX
anchors = batch_generate.bbox_transform(anchor_box, is_df = False)
plt.figure(figsize=(10,10))
plt.imshow(img)
currentAxis = plt.gca()
for i in range(len(anchors)):
currentAxis.add_patch(plt.Rectangle((anchors[i,0], anchors[i,1]), anchors[i,2]-anchors[i,0], anchors[i,3]-anchors[i,1], fill=False, edgecolor= 'r', linewidth=1))
In [5]:
#now, start to product target label y(target fg/bg label)
print(anchor_box.shape)
anchor_box = np.expand_dims(anchor_box, axis = 0)
labels, bbox_targets, bbox_inside_weights, bbox_outside_weights = batch_generate.target_label_generate(bb_boxes, anchor_box, mc, DEBUG = True)
#print(idx)
In [6]:
postive_samples = np.where(labels == 1)[0]
print(postive_samples)
box = anchors[postive_samples,:]
plt.figure(figsize=(10,10))
plt.imshow(img)
currentAxis = plt.gca()
for i in range(len(box)):
currentAxis.add_patch(plt.Rectangle((box[i,0], box[i,1]), box[i,2]-box[i,0], box[i,3]-box[i,1], fill=False, edgecolor= 'r', linewidth=1))
In [7]:
import utils
ref_box = anchor_box[0]
coords = utils.bbox_delta_convert_inv(ref_box[postive_samples], bbox_targets[postive_samples])
plt.figure(figsize=(10,10))
plt.imshow(img)
currentAxis = plt.gca()
for i in range(len(coords)):
currentAxis.add_patch(plt.Rectangle((coords[i,0], coords[i,1]), coords[i,2]-coords[i,0], coords[i,3]-coords[i,1], fill=False, edgecolor= 'r', linewidth=1))
In [ ]: