from os import listdir from os.path import join,dirname,realpath,isdir import json from csv_reader import CSVReader from body_box_extractor import BodyBoxExtractor ROOT_DIRECTORY = join(dirname(realpath(sys.argv[0])), '..', '..', 'res') data_directories = [f for f in listdir(ROOT_DIRECTORY) if isdir(join(ROOT_DIRECTORY, f))] csv_reader = CSVReader(ROOT_DIRECTORY) body_box_extractor = BodyBoxExtractor('', None) check_results = {} for data_directory in data_directories: try: type_json_file = open(join(ROOT_DIRECTORY, data_directory, 'type.json')) type_data = json.load(type_json_file) csv_reader.set_file(join(data_directory, data_directory+'.csv')) skeleton_data = {'raw_data': csv_reader.read()} data = body_box_extractor.process(skeleton_data) check_results[data_directory] = type_data check_results[data_directory]['has_shoulder'] = all(abs(data['body_box']['shoulder_left']['3d']['mean']) > 0.001) and all(abs(data['body_box']['shoulder_left']['3d']['mean']) > 0.001) check_results[data_directory]['has_hip'] = all(abs(data['body_box']['hip_left']['3d']['mean']) > 0.001) and all(abs(data['body_box']['hip_right']['3d']['mean']) > 0.001) except IOError: continue selected_signs = [data_name for data_name,data in check_results.items() if data['has_hip'] and data['oneOrTwo'] is 1 and data['handRecognized']] print sorted(selected_signs)
from hand_selector import HandSelector from body_box_extractor import BodyBoxExtractor from bspline_preprocessor import BSplinePreprocessor from dtw_processor import DTWProcessor from task_runner import TaskRunner ROOT_DIRECTORY = join(dirname(realpath(sys.argv[0])), '..', '..') left_hand = False right_hand = True smoothing = 0.01 sampling_rate = 100 hand_presenter = HandPresenter("Hand Presenter") bspline_presenter = BSplinePresenter("B-Spline Presenter") body_box_presenter = BodyBoxPresenter("Body Box Presenter") dtw_presenter = DTWPresenter("DTW Presenter") csv_reader = CSVReader(ROOT_DIRECTORY) hand_selector = HandSelector("Hand Selector", left_hand, right_hand, [hand_presenter]) body_box_extractor = BodyBoxExtractor("Body Box Extractor", [body_box_presenter]) bspline_preprocessor = BSplinePreprocessor("B-Spline Preprocessor", smoothing, sampling_rate, [bspline_presenter]) dtw_processor = DTWProcessor("DTW Processor", 2, [dtw_presenter]) task_runner = TaskRunner(csv_reader, [hand_selector, body_box_extractor, bspline_preprocessor], dtw_processor) input_files = ['res/HKG_001_a_0002 Aaron 41/HKG_001_a_0002 Aaron 41.csv', 'res/HKG_001_a_0001 Aaron 22/HKG_001_a_0001 Aaron 22.csv'] for input_file in input_files: csv_reader.set_file(input_file) task_runner.add_data() task_runner.process()
ROOT_DIRECTORY = join(dirname(realpath(sys.argv[0])), '..', '..', 'res') data_directories = [ f for f in listdir(ROOT_DIRECTORY) if isdir(join(ROOT_DIRECTORY, f)) ] csv_reader = CSVReader(ROOT_DIRECTORY) body_box_extractor = BodyBoxExtractor('', None) check_results = {} for data_directory in data_directories: try: type_json_file = open(join(ROOT_DIRECTORY, data_directory, 'type.json')) type_data = json.load(type_json_file) csv_reader.set_file(join(data_directory, data_directory + '.csv')) skeleton_data = {'raw_data': csv_reader.read()} data = body_box_extractor.process(skeleton_data) check_results[data_directory] = type_data check_results[data_directory]['has_shoulder'] = all( abs(data['body_box']['shoulder_left']['3d']['mean']) > 0.001 ) and all( abs(data['body_box']['shoulder_left']['3d']['mean']) > 0.001) check_results[data_directory]['has_hip'] = all( abs(data['body_box']['hip_left']['3d']['mean']) > 0.001) and all( abs(data['body_box']['hip_right']['3d']['mean']) > 0.001) except IOError: continue