Example #1
0
def doGet(path, videoName, savePath):
    import Make_wavedata, clusteringPoint, make_figure, make_fft
    from pythonFile import make_dirs
    import os
    import pickle
    import shutil

    print(path)

    #保存ディレクトリの作成
    '''
    if not os.path.isdir(savePath + '/cat1/pict'):
        for i in range(4):
            os.makedirs(savePath + '/cat' + str(i+1) + '/pict')
    if not os.path.isdir(savePath + '/fft'):
        os.makedirs(savePath + '/fft')
    else:
        shutil.rmtree(savePath + '/fft')
        os.makedirs(savePath + '/fft')
    '''
    make_dirs.makeDir(savePath)

    zahyou = Make_wavedata.todo(path)  #オプティカルフローで各特徴点の移動を推定
    print(zahyou)
    zahyou = clusteringPoint.todo(path, zahyou)  #手動で分類する
    make_figure.todo(zahyou, savePath, videoName)  #取得した特徴点の動きをグラフにする

    fft_savepaht = savePath + '/fft'
    make_fft.doGet(path, zahyou, fft_savepaht, videoName)  #取得した特徴点の動きをFFT変換する

    f = open(savePath + '/pointData_' + videoName + '.txt', 'wb')
    pickle.dump(zahyou, f)
Example #2
0
def doGet(path, videoName, savePath):
    import Make_wavedata, clusteringPoint, make_figure, make_fft, make_dirs
    import os
    import pickle
    import shutil

    print(path, videoName, savePath)
    #保存ディレクトリの作成
    make_dirs.makeDir(savePath)

    zahyou = Make_wavedata.todo(path)   #オプティカルフローで各特徴点の移動を推定
    print(zahyou)
    zahyou = clusteringPoint.todo(path, zahyou) #手動で分類する
    make_figure.todo(zahyou, savePath, videoName)   #取得した特徴点の動きをグラフにする

    f = open(savePath + '/pointData_' + videoName + '.txt', 'wb')
    pickle.dump(zahyou, f)
    
    fft_savepaht = savePath + '/fft'
    make_fft.doGet(path, fft_savepaht, videoName)   #取得した特徴点の動きをFFT変換する
Example #3
0
def doGet(path, videoName, savePath):
    import Make_wavedata, clusteringPoint, make_figure, make_fft
    from pythonFile import make_dirs, getVideoData
    import os
    import pickle
    import shutil

    print(path, videoName, savePath)

    dirName = getVideoData.getDirName(path)
    videoName = getVideoData.getVideoName(path)
    #保存ディレクトリの作成
    make_dirs.makeDir(savePath)

    zahyou = Make_wavedata.todo(path)  #オプティカルフローで各特徴点の移動を推定
    print(zahyou)
    if os.path.isdir('/media/koshiba/Data/opticalflow/point_data/' + dirName +
                     '/' + videoName + '/category.txt'):
        f = open(
            '/media/koshiba/Data/opticalflow/point_data/' + dirName + '/' +
            videoName + '/category.txt', 'rb')
        noise = pickle.load(f)
    else:
        noise = clusteringPoint.todo(path, zahyou)  #手動で分類する
    make_figure.todo(zahyou, savePath)  #取得した特徴点の動きをグラフにする

    make_fft.doGet(zahyou, savePath)  #取得した特徴点の動きをFFT変換する

    predList = [[], [], []]
    accuracy = ['-1', '-1', '-1']
    precision = ['-1', '-1', '-1']
    recall = ['-1', '-1', '-1']
    specificity = ['-1', '-1', '-1']
    tmp = 0

    for index1, pred in enumerate(zahyou):
        for index2, answer in enumerate(noise):
            #print(index1, index2)
            if (pred[index2] == 0 or pred[index2] == -1):
                if answer == 0:
                    predList[index1].append(0)
                else:
                    predList[index1].append(3)
            else:
                if answer == 1:
                    predList[index1].append(1)
                else:
                    predList[index1].append(2)

        predAll = len(predList[index1])
        tp = predList[index1].count(1)
        tn = predList[index1].count(0)
        fp = predList[index1].count(2)
        fn = predList[index1].count(3)

        print(predAll, tp, tn)
        accuracy[index1] = str((tp + tn) / predAll)
        if tp + fp != 0:
            precision[index1] = str(tp / (tp + fp))
        if tp + fn != 0:
            recall[index1] = str(tp / (tp + fn))
        if tn + fp != 0:
            specificity[index1] = str(tn / (fp + tn))

    print(zahyou)

    #elapsed_time = time.time() - start
    #print ("elapsed_time:{0}".format(elapsed_time) + "[sec]")

    print('accuracy:' + accuracy[0] + ' ' + accuracy[1] + ' ' + accuracy[2])
    print('precision' + precision[0] + ' ' + precision[1] + ' ' + precision[2])
    print('recall' + recall[0] + ' ' + recall[1] + ' ' + recall[2])
    print('specificity' + specificity[0] + ' ' + specificity[1] + ' ' +
          specificity[2])

    f = open(savePath + '/pointData_' + videoName + '.txt', 'wb')
    pickle.dump(zahyou, f)
Example #4
0
            videoPath = '/media/koshiba/Data/video/yohaku/' + dirName + '/' + videoName + '.avi'
            print(videoPath)

            # 選択された動画の解析が終わっていれば実行
            if os.path.exists(videoPath):
                for num in range(5, 41):  # windowSizeを5~40で実行
                    if not os.path.isdir(i + 'window_' + str(num) +
                                         '/cat4/toFirstErrorFFT'):
                        make_dirs.makeDir(i[:-1] + '/winsize/winsize_' +
                                          str(num))  # 保存するフォルダがなければ作成
                    savePath = i + 'winsize/winsize_' + str(num)  # 保存先のPATH
                    zahyou = Make_wavedata.todo(
                        videoPath,
                        num)  # 動画を解析する(時間はかかるけど毎回動画を読み込む),特徴点の各フレームにおける座標を取得
                    make_figure.todo(
                        zahyou,
                        savePath)  # 各特徴点の各波形(vec, error, toFirstError)を取得
                    make_fft.doGet(
                        zahyou,
                        savePath)  # 各波形のFFT解析(toFirstFFT, toFirstErrorFFT)
            else:
                error.append(videoName)
        print("Could not be executed:" + error)

    else:
        dirName = getVideoData.getDirName(path)
        videoName = getVideoData.getVideoName(path)

        videoPath = '/media/koshiba/Data/video/yohaku/' + dirName + '/' + videoName + '.avi'

        for num in range(5, 7):