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()
Esempio n. 3
0
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