In [1]:
import numpy as np
import pandas as pd
import cv2
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
data = pd.read_csv('KITTI.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]:
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]:
#data analysis
#total imgs
total_num = pd.unique(data['Frame'])
print(len(total_num))
In [5]:
#cls
print(data.describe())
In [6]:
#total objects: 51865
#each cls[0,1,2,3,4,5,6,7,8]
cls = {'Car','Van','Truck','Pedestrian', 'Person_sitting', 'Cyclist', 'Tram', 'Misc', 'DontCare'}
classes = []
df = data
for i in range(9):
df_ = df[df['labels'] == i]
#print(len(df_))
classes.append(len(df_))
print(classes)
#plt
_nums_ = pd.Series.from_array(classes)
plt.figure(figsize = (12,8))
fig = _nums_.plot(kind = 'bar')
fig.set_ylabel("numbers")
fig.set_xlabel("Classes")
plt.show()
In [7]:
df['area'] = df['w'] * df['h']
print(df.head())
In [9]:
classes = []
df = data
for i in range(9):
df_ = df[df['labels'] == i]
small_obj = df_[df_['area'] <= 2304]
df__ = df_[df_['area'] > 2304]
regular_obj = df__[df__['area'] <= 9216]
large_obj = df_[df_['area'] > 9216]
#print(len(df_))
classes.append(len(small_obj))
classes.append(len(regular_obj))
classes.append(len(large_obj))
print(classes)
#plt
_nums_ = pd.Series.from_array(classes)
plt.figure(figsize = (12,8))
fig = _nums_.plot(kind = 'bar')
fig.set_ylabel("numbers")
fig.set_xlabel("Classes")
plt.show()
In [10]:
#if conside truncated type
classes = []
df = data[data['truncated'] == 1]
for i in range(9):
df_ = df[df['labels'] == i]
small_obj = df_[df_['area'] <= 2304]
df__ = df_[df_['area'] > 2304]
regular_obj = df__[df__['area'] <= 9216]
large_obj = df_[df_['area'] > 9216]
#print(len(df_))
classes.append(len(small_obj))
classes.append(len(regular_obj))
classes.append(len(large_obj))
print(classes)
#plt
_nums_ = pd.Series.from_array(classes)
plt.figure(figsize = (12,8))
fig = _nums_.plot(kind = 'bar')
fig.set_ylabel("numbers")
fig.set_xlabel("Classes")
plt.show()
In [11]:
classes = []
df = data[data['truncated'] == 0]
for i in range(9):
df_ = df[df['labels'] == i]
small_obj = df_[df_['area'] <= 2304]
df__ = df_[df_['area'] > 2304]
regular_obj = df__[df__['area'] <= 9216]
large_obj = df_[df_['area'] > 9216]
#print(len(df_))
classes.append(len(small_obj))
classes.append(len(regular_obj))
classes.append(len(large_obj))
print(classes)
#plt
_nums_ = pd.Series.from_array(classes)
plt.figure(figsize = (12,8))
fig = _nums_.plot(kind = 'bar')
fig.set_ylabel("numbers")
fig.set_xlabel("Classes")
plt.show()
In [ ]: