import algorithm.partitionizing as prt from tsp_solver.greedy import solve_tsp import algorithm.mineByPattern as mp #Reading from file fileName = 'myKinect/v2RanLong.skl' joint = 'KneeLeft_X' time, frameNumbers, angles= ae.getAngleVec(fileName, joint, True, 'NEW') #Extracting clean fractions minimalCluster=20 fracs = ke.clusterByTime(time, frameNumbers, angles, False, minimalCluster) prob = 0.1 fracs = ke.filterOutliers(fracs, False, prob) i=0 cleanedParts, _ = ke.cleanFracs(fracs, False, 5, 1.5) st.plotParts(cleanedParts) #Creating pattern to mine for lenOfCycle = 35 pattern = mp.createFlippedUpattern(angles, lenOfCycle, 3) #Mining the pattern from the input fig = plt.figure() framSize= np.ceil(np.sqrt(len(cleanedParts))) minedParts = [] minedPartsAsList = [] dises = [] threshold = 0 sizeFactor=2 lengths = [] for index, part in enumerate(cleanedParts):
for t, a in zip(time, angles): if np.abs(lastT - t) < 5: currTime.append(t) currAngles.append(a) else: if len(currAngles)>100: marginSize = int(len(currTime)*0.1) currAngles = currAngles[marginSize:-marginSize] #fracs.append((currTime, currAngles)) anglesSplited.append(currAngles) currTime = [t] currAngles = [a] lastT = t #fracs = ke.clusterByTime(time, angles, False, minimalCluster) #cleanedParts, kuku = ke.cleanFracs(fracs, False) st.plotParts(anglesSplited) periods =[] strides = [] stances = [] swings = [] for cluster in anglesSplited: maximaOrder=27 clusteringGranularity=0.5 breaked = part.breakToPeriods(cluster,maximaOrder, clusteringGranularity) for cycle in breaked: if len(cycle)>80 and len(cycle)<180: #periods.append(cycle) strides.append(cycle) min = np.argmin(cycle) stances.append(cycle[:min]) swings.append(cycle[min:])