Мультимодальное объединение для получения прогнозов по аудио и видео FI V2

d34f415719f64bd4bf073ac499af5a34


Импорт необходимых инструментов

[2]:
from oceanai.modules.lab.build import Run

Сборка

[3]:
_b5 = Run(
    lang = 'ru', # Язык
    color_simple = '#333', # Цвет обычного текста (шестнадцатеричный код)
    color_info = '#1776D2', # Цвет текста содержащего информацию (шестнадцатеричный код)
    color_err = '#FF0000', # Цвет текста содержащего ошибку (шестнадцатеричный код)
    color_true = '#008001', # Цвет текста содержащего положительную информацию (шестнадцатеричный код)
    bold_text = True, # Жирное начертание текста
    num_to_df_display = 30, # Количество строк для отображения в таблицах
    text_runtime = 'Время выполнения', # Текст времени выполнения
    metadata = True # Отображение информации о библиотеке
)

[2023-12-14 22:46:31] OCEANAI - персональные качества личности человека:    Авторы:        Рюмина Елена [ryumina_ev@mail.ru]        Рюмин Дмитрий [dl_03.03.1991@mail.ru]        Карпов Алексей [karpov@iias.spb.su]    Сопровождающие:        Рюмина Елена [ryumina_ev@mail.ru]        Рюмин Дмитрий [dl_03.03.1991@mail.ru]    Версия: 1.0.0a16    Лицензия: BSD License

Получение и отображение версий установленных библиотек

  • _b5.df_pkgs_ - DataFrame c версиями установленных библиотек

[4]:
_b5.libs_vers(runtime = True, run = True)
Package Version
1 TensorFlow 2.15.0
2 Keras 2.15.0
3 OpenCV 4.8.1
4 MediaPipe 0.9.0
5 NumPy 1.26.2
6 SciPy 1.11.4
7 Pandas 2.1.3
8 Scikit-learn 1.3.2
9 OpenSmile 2.5.0
10 Librosa 0.10.1
11 AudioRead 3.0.1
12 IPython 8.18.1
13 PyMediaInfo 6.1.0
14 Requests 2.31.0
15 JupyterLab 4.0.9
16 LIWC 0.5.0
17 Transformers 4.36.0
18 Sentencepiece 0.1.99
19 Torch 2.0.1+cpu
20 Torchaudio 2.0.2+cpu

— Время выполнения: 0.006 сек. —

Анализ аудио информации (формирование и загрузка весов моделей)

Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (аудио модальность)

  • _b5.audio_model_hc_ - Нейросетевая модель tf.keras.Model для получения оценок по экспертным признакам

[5]:
res_load_audio_model_hc = _b5.load_audio_model_hc(
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:31] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (аудио модальность) …

— Время выполнения: 0.322 сек. —

Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (аудио модальность)

  • _b5.audio_model_hc_ - Нейросетевая модель tf.keras.Model для получения оценок по экспертным признакам

[6]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['audio']['fi']['hc']['sberdisk']

res_load_audio_model_weights_hc = _b5.load_audio_model_weights_hc(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:31] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (аудио модальность) …

[2023-12-14 22:46:32] Загрузка файла “weights_2022-05-05_11-27-55.h5” 100.0% …

— Время выполнения: 0.277 сек. —

Формирование нейросетевой архитектуры модели для получения оценок по нейросетевым признакам (аудио модальность)

  • _b5.audio_model_nn_ - Нейросетевая модель tf.keras.Model для получения оценок по нейросетевым признакам

[7]:
res_load_audio_model_nn = _b5.load_audio_model_nn(
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:32] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (аудио модальность) …

— Время выполнения: 0.244 сек. —

Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (аудио модальность)

  • _b5.audio_model_nn_ - Нейросетевая модель tf.keras.Model для получения оценок по нейросетевым признакам

[8]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['audio']['fi']['nn']['sberdisk']

res_load_audio_model_weights_nn = _b5.load_audio_model_weights_nn(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = False, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:32] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (аудио модальность) …

[2023-12-14 22:46:32] Загрузка файла “weights_2022-05-03_07-46-14.h5”

— Время выполнения: 0.389 сек. —

Анализ видео информации (формирование и загрузка весов моделей)

Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (видео модальность)

  • _b5.video_model_hc_ - Нейросетевая модель tf.keras.Model для получения оценок по экспертным признакам

[9]:
res_load_video_model_hc = _b5.load_video_model_hc(
    lang = 'en',
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:32] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (видео модальность) …

— Время выполнения: 0.257 сек. —

Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (видео модальность)

  • _b5.video_model_hc_ - Нейросетевая модель tf.keras.Model для получения оценок по экспертным признакам

[10]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['video']['fi']['hc']['sberdisk']

res_load_video_model_weights_hc = _b5.load_video_model_weights_hc(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:32] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (видео модальность) …

[2023-12-14 22:46:33] Загрузка файла “weights_2022-08-27_18-53-35.h5” 100.0% …

— Время выполнения: 0.226 сек. —

Формирование нейросетевой архитектуры для получения нейросетевых признаков (видео модальность)

  • _b5.video_model_deep_fe_ - Нейросетевая модель tf.keras.Model для получения нейросетевых признаков

[11]:
res_load_video_model_deep_fe = _b5.load_video_model_deep_fe(
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:34] Формирование нейросетевой архитектуры для получения нейросетевых признаков (видео модальность) …

— Время выполнения: 0.783 сек. —

Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность)

  • _b5.video_model_deep_fe_ - Нейросетевая модель tf.keras.Model для получения нейросетевых признаков

[12]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['video']['fi']['fe']['sberdisk']

res_load_video_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:35] Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность) …

[2023-12-14 22:46:40] Загрузка файла “weights_2022-11-01_12-27-07.h5” 100.0% …

— Время выполнения: 4.311 сек. —

Формирование нейросетевой архитектуры модели для получения оценок по нейросетевым признакам (видео модальность)

  • _b5.video_model_nn_ - Нейросетевая модель tf.keras.Model для получения оценок по нейросетевым признакам

[13]:
res_load_video_model_nn = _b5.load_video_model_nn(
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:40] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (видео модальность) …

— Время выполнения: 0.724 сек. —

Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (видео модальность)

  • _b5.video_model_nn_ - Нейросетевая модель tf.keras.Model для получения оценок по нейросетевым признакам

[14]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['video']['fi']['nn']['sberdisk']

res_load_video_model_weights_nn = _b5.load_video_model_weights_nn(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = False, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:40] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (видео модальность) …

[2023-12-14 22:46:42] Загрузка файла “weights_2022-03-22_16-31-48.h5”

— Время выполнения: 1.355 сек. —

Анализ мультимодальной информации (формирование, загрузка весов моделей, получение оценок персональных качеств)

Формирование нейросетевых архитектур моделей для получения результатов оценки персональных качеств (мультимодальное объединение)

  • _b5.av_models_b5_ - Нейросетевые модели tf.keras.Model для получения результатов оценки персональных качеств

[15]:
res_load_av_models_b5 = _b5.load_av_models_b5(
    show_summary = False, # Отображение сформированной нейросетевой архитектуры модели
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:42] Формирование нейросетевых архитектур моделей для получения результатов оценки персональных качеств (мультимодальное объединение) …

— Время выполнения: 0.048 сек. —

Загрузка весов нейросетевых моделей для получения результатов оценки персональных качеств (мультимодальное объединение)

  • _b5.av_models_b5_ - Нейросетевые модели tf.keras.Model для получения результатов оценки персональных качеств

[16]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url_openness = _b5.weights_for_big5_['av']['fi']['b5']['openness']['sberdisk']
url_conscientiousness = _b5.weights_for_big5_['av']['fi']['b5']['conscientiousness']['sberdisk']
url_extraversion = _b5.weights_for_big5_['av']['fi']['b5']['extraversion']['sberdisk']
url_agreeableness = _b5.weights_for_big5_['av']['fi']['b5']['agreeableness']['sberdisk']
url_non_neuroticism = _b5.weights_for_big5_['av']['fi']['b5']['non_neuroticism']['sberdisk']

res_load_av_models_weights_b5 = _b5.load_av_models_weights_b5(
    url_openness = url_openness, # Открытость опыту
    url_conscientiousness = url_conscientiousness, # Добросовестность
    url_extraversion = url_extraversion, # Экстраверсия
    url_agreeableness = url_agreeableness, # Доброжелательность
    url_non_neuroticism = url_non_neuroticism, # "Эмоциональная стабильность
    force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2023-12-14 22:46:47] Загрузка весов нейросетевых моделей для получения результатов оценки персональных качеств (мультимодальное объединение) …

[2023-12-14 22:46:47] Загрузка файла “weights_2022-08-28_11-14-35.h5” 100.0% … Открытость опыту

[2023-12-14 22:46:47] Загрузка файла “weights_2022-08-28_11-08-10.h5” 100.0% … Добросовестность

[2023-12-14 22:46:47] Загрузка файла “weights_2022-08-28_11-17-57.h5” 100.0% … Экстраверсия

[2023-12-14 22:46:47] Загрузка файла “weights_2022-08-28_11-25-11.h5” 100.0% … Доброжелательность

[2023-12-14 22:46:47] Загрузка файла “weights_2022-06-14_21-44-09.h5” 100.0% … Эмоциональная стабильность

— Время выполнения: 0.785 сек. —

Получение прогнозов (мультимодальное объединение)

  • _b5.df_files_ - DataFrame с данными

  • _b5.df_accuracy_ - DataFrame с результатами вычисления точности

[17]:
# Настройки ядра
_b5.path_to_dataset_ = 'E:/Databases/FirstImpressionsV2/test' # Директория набора данных
# Директории не входящие в выборку
_b5.ignore_dirs_ = []
# Названия ключей для DataFrame набора данных
_b5.keys_dataset_ = ['Path', 'Openness', 'Conscientiousness', 'Extraversion', 'Agreeableness', 'Non-Neuroticism']
_b5.ext_ = ['.mp4'] # Расширения искомых файлов

# Полный путь к файлу с верными предсказаниями для подсчета точности
url_accuracy = _b5.true_traits_['fi']['sberdisk']

_b5.get_av_union_predictions(
    depth = 1,         # Глубина иерархии для получения аудио и видеоданных
    recursive = False, # Рекурсивный поиск данных
    sr = 44100,        # Частота дискретизации
    window_audio = 2,  # Размер окна сегмента аудио сигнала (в секундах)
    step_audio = 1,    # Шаг сдвига окна сегмента аудио сигнала (в секундах)
    reduction_fps = 5, # Понижение кадровой частоты
    window_video = 10, # Размер окна сегмента видео сигнала (в секундах)
    step_video = 5,    # Шаг сдвига окна сегмента видео сигнала (в секундах)
    lang = 'en',
    accuracy = True,   # Вычисление точности
    url_accuracy = url_accuracy,
    logs = True,       # При необходимости формировать LOG файл
    out = True,        # Отображение
    runtime = True,    # Подсчет времени выполнения
    run = True         # Блокировка выполнения
)

[2023-12-15 01:11:04] Получение прогнозов и вычисление точности (мультимодальное объединение) …

    2000 из 2000 (100.0%) … test80_25_Q4wOgixh7E.004.mp4 …

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
ID
1 E:\Databases\FirstImpressionsV2\test\test80_01... 0.554249 0.506548 0.440194 0.540235 0.48605
2 E:\Databases\FirstImpressionsV2\test\test80_01... 0.558823 0.442357 0.50397 0.558767 0.521587
3 E:\Databases\FirstImpressionsV2\test\test80_01... 0.477549 0.568616 0.333939 0.491873 0.458966
4 E:\Databases\FirstImpressionsV2\test\test80_01... 0.662656 0.621852 0.58996 0.599038 0.636035
5 E:\Databases\FirstImpressionsV2\test\test80_01... 0.645876 0.532378 0.551939 0.589174 0.552269
6 E:\Databases\FirstImpressionsV2\test\test80_01... 0.67497 0.666972 0.617604 0.610567 0.641452
7 E:\Databases\FirstImpressionsV2\test\test80_01... 0.39908 0.397298 0.335823 0.497966 0.39729
8 E:\Databases\FirstImpressionsV2\test\test80_01... 0.577705 0.597157 0.498064 0.640584 0.600152
9 E:\Databases\FirstImpressionsV2\test\test80_01... 0.543675 0.451197 0.449555 0.482371 0.415256
10 E:\Databases\FirstImpressionsV2\test\test80_01... 0.54876 0.51097 0.433856 0.579709 0.536171
11 E:\Databases\FirstImpressionsV2\test\test80_01... 0.546634 0.398485 0.443701 0.518107 0.492343
12 E:\Databases\FirstImpressionsV2\test\test80_01... 0.459302 0.427114 0.315686 0.495817 0.457954
13 E:\Databases\FirstImpressionsV2\test\test80_01... 0.309097 0.317028 0.218514 0.372315 0.241697
14 E:\Databases\FirstImpressionsV2\test\test80_01... 0.643403 0.509414 0.483608 0.503154 0.550979
15 E:\Databases\FirstImpressionsV2\test\test80_01... 0.65016 0.840148 0.535299 0.710939 0.743357
16 E:\Databases\FirstImpressionsV2\test\test80_01... 0.598313 0.520505 0.450767 0.486345 0.561532
17 E:\Databases\FirstImpressionsV2\test\test80_01... 0.571537 0.673989 0.472203 0.615608 0.621064
18 E:\Databases\FirstImpressionsV2\test\test80_01... 0.552433 0.568787 0.457108 0.613188 0.570902
19 E:\Databases\FirstImpressionsV2\test\test80_01... 0.658695 0.625194 0.634877 0.612277 0.626052
20 E:\Databases\FirstImpressionsV2\test\test80_01... 0.660076 0.544358 0.64178 0.604572 0.628259
21 E:\Databases\FirstImpressionsV2\test\test80_01... 0.543881 0.477881 0.407731 0.555772 0.499664
22 E:\Databases\FirstImpressionsV2\test\test80_01... 0.537325 0.46375 0.419255 0.499785 0.455146
23 E:\Databases\FirstImpressionsV2\test\test80_01... 0.464761 0.434816 0.346836 0.428429 0.358087
24 E:\Databases\FirstImpressionsV2\test\test80_01... 0.633951 0.63333 0.584644 0.615227 0.608006
25 E:\Databases\FirstImpressionsV2\test\test80_01... 0.4517 0.574346 0.350136 0.526873 0.468283
26 E:\Databases\FirstImpressionsV2\test\test80_01... 0.602848 0.592382 0.494679 0.539232 0.505865
27 E:\Databases\FirstImpressionsV2\test\test80_01... 0.586638 0.521421 0.485391 0.530296 0.535499
28 E:\Databases\FirstImpressionsV2\test\test80_01... 0.689552 0.643902 0.695799 0.646209 0.686243
29 E:\Databases\FirstImpressionsV2\test\test80_01... 0.583505 0.564313 0.502263 0.554502 0.539899
30 E:\Databases\FirstImpressionsV2\test\test80_01... 0.642695 0.588222 0.617706 0.615312 0.626649

[2023-12-15 01:11:04] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.0845 0.0802 0.0793 0.0858 0.0847 0.0829
Accuracy 0.9155 0.9198 0.9207 0.9142 0.9153 0.9171

[2023-12-15 01:11:04] Средняя средних абсолютных ошибок: 0.0829, средняя точность: 0.9171 …

Лог файлы успешно сохранены …

— Время выполнения: 8654.754 сек. —

[17]:
True