import os
from predictAction import predictAction
from computeMHI import computeMHI
from huMoments import huMoments

basedir = './'
actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']
allMHIs_counter = 0
allMHIs = np.empty((480,640,20), dtype=np.float32)
allMoments = np.empty((20,7), dtype=np.float64)
for actionnum in range(len(actions)):
    subdirname = basedir + actions[actionnum] + '/'
    subdir = os.listdir(subdirname)
    for seqnum in range(len(subdir)):
        allMHIs[:,:,allMHIs_counter] = computeMHI(subdirname + subdir[seqnum])
        allMoments[allMHIs_counter,:] = huMoments(allMHIs[:,:,allMHIs_counter])
        allMHIs_counter += 1

allLabels = [i for i in xrange(1,6) for j in xrange(4)]
allLabels = np.array(allLabels)
#%%
actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']
#actions = ['leftarmup']
#trainMHI = np.empty((480,640,20), dtype=np.float32)
#trainMHI_counter = 0
np.save("huVectors", allMoments)
np.save("allMHIs", allMHIs)
allMoments = allMoments/np.linalg.norm(allMoments)
confusionMatrix = np.zeros((5,5))
for actionnum in range(len(actions)):
    subdirname = basedir + actions[actionnum] + '/'
예제 #2
0
        allMHIs_counter = allMHIs_counter + 1
        allMHIs[:,:,allMHIs_counter] = computeMHI(subdirname + subdir[seqnum])
        cv2.imshow(actions[actionnum]+"- %d"%  seqnum, allMHIs[:,:,allMHIs_counter])
#    cv2.imshow("mask", motion_mask)
        if 0xFF & cv2.waitKey(1) == 27:
            break

#cv2.destroyAllWindows()



#%%

allHuMoments = np.empty((20,7), dtype=np.float32)
for i in range(allMHIs.shape[2]):
    allHuMoments[i,:] = huMoments(allMHIs[:,:,i])
#%%
#testMHI = computeMHI("./leftarmup/leftarm-up-p2-1")
testMHI = computeMHI("./punch/punch-p1-1")
testMoments = huMoments(testMHI)

actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']
#actions = ['leftarmup']
trainMHI = np.empty((480,640,20), dtype=np.float32)
trainMHI_counter = 0
for actionnum in range(len(actions)):
    subdirname = basedir + actions[actionnum] + '/'
    subdir = os.listdir(subdirname)
    for seqnum in range(len(subdir)):
    # cycle through all sequences for this action category
        trainMHI[:,:,trainMHI_counter] = computeMHI(subdirname + subdir[seqnum])
예제 #3
0
actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']

allMHIs = list()

for action in actions:
    subdirname = basedir + action + '/'
    subdirs = os.listdir(subdirname)

    for seq in subdirs:
        # cycle through all sequences for this action category
        directory = subdirname + seq
        mhi = computeMHI(directory)
        allMHIs.append(mhi)

allMHIs = np.stack(allMHIs, axis=2)
np.save('allMHIs.npy', allMHIs)
print 'saved MHIs'

allHus = list()

allMHIs = np.load('allMHIs.npy')
_, _, numSeqs = np.shape(allMHIs)
for i in range(numSeqs):
    mhi = allMHIs[:, :, i]
    huVec = huMoments(mhi)
    allHus.append(huVec)

allHus = np.stack(allHus)
np.save('huVectors.npy', allHus)
print 'saved Hus'

if __name__ == "__main__":
    actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']
    trainDirectoryNames = []
    trainMoments = np.asarray(np.load('huVectors.npy'))
    K = 4
    for action in actions:
        directory_name = './PS5_Data/' + action + '/'
        trainDirectoryNames = trainDirectoryNames + [
            directory_name + subdirectory_name
            for subdirectory_name in os.listdir(directory_name)
        ]
    trainDirectoryNames = np.reshape(trainDirectoryNames, (-1, 1))

    nMHI = showNearestMHIs(huMoments(np.load('botharms-up-p1-1_MHI.npy')),
                           trainMoments, trainDirectoryNames, K)
    plt.title("Chosen MHI - botharms-up-p1-1_MHI")
    plt.imshow(nMHI[:, :, 0])
    plt.show()
    for ith_MHI in range(1, K + 1):
        plt.title("Nearest Neighbor " + str(ith_MHI) +
                  " to botharms-up-p1-1 MHI")
        plt.imshow(nMHI[:, :, ith_MHI])
        plt.show()

    nMHI = showNearestMHIs(huMoments(np.load('crouch-p1-1_MHI.npy')),
                           trainMoments, trainDirectoryNames, K)
    plt.title("Chosen MHI - crouch-p1-1_MHI")
    plt.imshow(nMHI[:, :, 0])
    plt.show()
예제 #5
0
    return nMHI


if __name__ == "__main__":
    actions = ['botharms', 'crouch', 'leftarmup', 'punch', 'rightkick']
    trainDirectoryNames = []
    trainMoments = np.asarray(np.load('huVectors.npy'))
    K = 4
    for action in actions:
        directory_name = './PS5_Data/' + action + '/'
        trainDirectoryNames = trainDirectoryNames + [
            directory_name + subdirectory_name
            for subdirectory_name in os.listdir(directory_name)
        ]
    trainDirectoryNames = np.reshape(trainDirectoryNames, (-1, 1))
    nMHI = showNearestMHIs(huMoments(np.load('botharms-up-p1-1_MHI.npy')),
                           trainMoments, trainDirectoryNames, K)
    figure = plot.figure(frameon=False)
    axis = figure.add_subplot(1, 1, 1)
    axis.imshow(nMHI[:, :, 0])
    axis.set_title("Chosen MHI - botharms-up-p1-1_MHI")
    figure.add_axes(axis)
    plot.show()
    for ith_MHI in range(1, K + 1):
        figure = plot.figure(ith_MHI)
        axis = figure.add_subplot(1, 1, 1)
        axis.imshow(nMHI[:, :, ith_MHI])
        axis.set_title("Nearest Neighbor " + str(ith_MHI) +
                       " to botharms-up-p1-1 MHI")
        figure.add_axes(axis)
        plot.show()