def METHOD_NAME(self):
    """extract feature"""
    if not self.DEBUG:
        image_path_list = get_images(self.imgs_path)
        self.configs['PPTSM']['frame_list'] = image_path_list
        self.configs['AUDIO']['pcm_file'] = self.pcm_path
        image_features = self.image_model.predict(self.configs)
        if self.PCM_ONLY:
            sample_rate = self.configs['AUDIO']['sample_rate']
            pcm_features = mfcc_extractor.extract_pcm(
                self.pcm_path, sample_rate)
            audio_features = []
        else:
            audio_features, pcm_features = self.audio_model.predict(
                self.configs)
        np_image_features = np.array(image_features, dtype=np.float32)
        np_audio_features = np.array(audio_features, dtype=np.float32)
        np_pcm_features = np.array(pcm_features, dtype=np.float32)
        video_features = {
            'image_feature': np_image_features,
            'audio_feature': np_audio_features,
            'pcm_feature': np_pcm_features
        }
    else:
        feature_path = self.imgs_path.replace("frames", "features") + '.pkl'
        video_features = pickle.load(open(feature_path, 'rb'))
    logger.info("feature shape {} {} {}".format(
        video_features['image_feature'].shape,
        video_features['audio_feature'].shape,
        video_features['pcm_feature'].shape))
    return video_features