Advertisement
lamiastella

compute_accuracy.py

Jul 7th, 2017
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.86 KB | None | 0 0
  1. import itertools
  2. import math
  3. from PIL import Image
  4. import numpy as np
  5. import cv2
  6. import glob
  7. import os
  8. import itertools
  9.  
  10. #os.system("C:\\OpenARK\\x64\\Release\\OpenARK-SDK.exe")
  11.  
  12. total_correct_fingertips_count = 0
  13. total_CVAR_fingertips = 0
  14. per_folder_correct_fingertips_count = {}
  15. per_folder_accuracy = {}
  16.  
  17.  
  18. CVAR_dataset_path = "E:\\datasets\\hand\\CVAR\\test"
  19.  
  20.  
  21. for subdirs, dirs, files in os.walk(CVAR_dataset_path):
  22.     for dir in dirs:
  23.         print("current dir in walk is {}".format(dir))
  24.         per_folder_correct_fingertips_count[dir] = 0
  25.         per_folder_accuracy[dir] = 0
  26.         root_path = CVAR_dataset_path+"\\"+dir
  27.         fingertips_file = open(root_path+"\\"+"fingertips.txt", 'w')
  28.         with open(root_path+"\\"+"joint.txt") as joints_file:
  29.             next(joints_file)
  30.             for line in joints_file:
  31.                 line_split = ' '.join(line.split(' ')[1:]).rstrip()
  32.                 line_split = line_split.split(' ')
  33.                 list_of_list = []
  34.                 iterable = iter(line_split)
  35.                 sliced_list = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
  36.                 fingertips = []
  37.                 # fingertips.extend([sliced_list[16], sliced_list[12], sliced_list[8], sliced_list[4], sliced_list[20]])
  38.                 fingertips.append(sliced_list[16])
  39.                 fingertips.append(sliced_list[12])
  40.                 fingertips.append(sliced_list[8])
  41.                 fingertips.append(sliced_list[4])
  42.                 fingertips.append(sliced_list[20])
  43.                 # fingertips.extend([sliced_list[20], sliced_list[4], sliced_list[8], sliced_list[12], sliced_list[16]])
  44.                 flat_list = [item for sublist in fingertips for item in sublist]
  45.                 str_flat_list = " ".join(str(x) for x in flat_list)
  46.                 fingertips_file.write(str_flat_list + "\n")
  47.         fingertips_file.close()
  48.         for file in glob.glob("*_depth.png"):
  49.             im = Image.open(file, 'r')
  50.             width, height = im.size
  51.             pixel_val = list(im.getdata())
  52.             for i in range(len(pixel_val)):
  53.                 if (pixel_val[i] == 32001):
  54.                     pixel_val[i] = 0
  55.             np_arr = np.array(pixel_val)
  56.             np_reshaped = np_arr.reshape(height, width)
  57.             modified_depth_file = file[:-4] + '_modified.png'
  58.             cv2.imwrite(modified_depth_file, (np_reshaped).astype(np.uint16))
  59.  
  60.         cvar_file = open(root_path+"\\"+"fingertips.txt")
  61.         cvar_file_lines = cvar_file.readlines()
  62.         cvar_fingertips_count = len(cvar_file_lines) * 5
  63.         total_CVAR_fingertips += cvar_fingertips_count
  64.  
  65.  
  66.         if os.path.exists('fingertips_openark.txt'):
  67.             openark_file = open("fingertips_openark.txt")
  68.             openark_file_lines = openark_file.readlines()
  69.  
  70.             for line_count in range(len(cvar_file_lines)):
  71.                 line_split = ' '.join(cvar_file_lines[line_count].split(' ')[:]).rstrip()
  72.                 line_split = line_split.split(' ')
  73.                 list_of_list = []
  74.                 iterable = iter(line_split)
  75.                 cvar_sliced = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
  76.                 cvar_sliced_reverse = cvar_sliced[::-1]
  77.  
  78.                 print("cvar reversed is {0}".format(cvar_sliced_reverse))
  79.                 #print(len(cvar_sliced_reverse))
  80.                 line_split = ' '.join(openark_file_lines[line_count].split(' ')[:]).rstrip()
  81.                 line_split = line_split.split(' ')
  82.                 CVAR_folder = line_split[0]
  83.                 #print(CVAR_folder)
  84.                 #print(os.path.dirname(CVAR_folder))
  85.                 CVAR_dir = os.path.dirname(CVAR_folder)
  86.                 print("CVAR dir for depth image is {}".format(CVAR_dir))
  87.                 line_split = line_split [1:]
  88.                 list_of_list = []
  89.                 iterable = iter(line_split)
  90.                 openark_sliced = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
  91.                 print("openark sliced is {}".format(openark_sliced))
  92.                 #print(len(openark_sliced))
  93.                 #print(os.linesep)
  94.                 print("cvar dir for fingertips.txt is {}".format(os.path.dirname(root_path+"\\"+"fingertips.txt")))
  95.                 print(os.linesep)
  96.                 print("cvar directory from openark is: {}".format(CVAR_dir))
  97.                 if (os.path.dirname(root_path+"\\"+"fingertips.txt") == CVAR_dir):
  98.                     for i in range(len(openark_sliced)):
  99.                         for j in range(len(cvar_sliced_reverse)):
  100.                             if (abs(math.sqrt(pow((float(cvar_sliced_reverse[j][0]) - float(openark_sliced[i][0])),2)
  101.                                 + pow((float(cvar_sliced_reverse[j][1]) - float(openark_sliced[i][1])),2)  ))<10):
  102.                                 per_folder_correct_fingertips_count[dir]+=1
  103.                                 total_correct_fingertips_count+=1
  104.             #print(total_correct_fingertips_count)
  105.                     print(dir)
  106.                     print(per_folder_correct_fingertips_count)
  107.                     print("per_folder_correct_fingertips_count[dir]")
  108.                     print(per_folder_correct_fingertips_count[dir])
  109.  
  110.                 #if not os.path.exists(dir+'_accuracy.txt'):
  111.                     accuracy_file = open(dir+'_accuracy', 'w')
  112.                     accuracy = (per_folder_correct_fingertips_count[dir] / cvar_fingertips_count) * 100
  113.                     accuracy_file.write(str(accuracy))
  114.                     print(accuracy)
  115.                     accuracy_file.close()
  116.  
  117. #if not os.path.exists('accuracy.txt'):
  118. accuracy_file = open('accuracy', 'w')
  119. accuracy = (total_correct_fingertips_count/total_CVAR_fingertips) *100
  120. accuracy_file.write(str(accuracy))
  121. print(accuracy)
  122. accuracy_file.close()
  123.  
  124.  
  125.  
  126. folder = glob.glob("E:\\datasets\\hand\\CVAR\\test\\*")
  127. print(len(folder))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement