Multimodal fusion to obtain scores by audio and video FI V2

bffe4a0538714c67806b7a9df3238b4d


Import required packages

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

Build

[3]:
_b5 = Run(
    lang = 'en',              # Inference language
    color_simple = '#333',    # Plain text color (hexadecimal code)
    color_info = '#1776D2',   # The color of the text containing the information (hexadecimal code)
    color_err = '#FF0000',    # Error text color (hexadecimal code)
    color_true = '#008001',   # Text color containing positive information (hexadecimal code)
    bold_text = True,         # Bold text
    num_to_df_display = 30,   # Number of rows to display in tables
    text_runtime = 'Runtime', # Runtime text
    metadata = True           # Displaying information about library
)

[2024-10-09 14:52:17] 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.0a40    Лицензия: BSD License

Getting and displaying versions of installed libraries

  • _b5.df_pkgs_ - DataFrame with versions of installed libraries

[4]:
_b5.libs_vers(runtime = True, run = True)
Package Version
1 OpenCV 4.10.0
2 MediaPipe 0.10.14
3 NumPy 1.26.4
4 SciPy 1.14.1
5 Pandas 2.2.3
6 Scikit-learn 1.5.2
7 OpenSmile 2.5.0
8 Librosa 0.10.2.post1
9 AudioRead 3.0.1
10 IPython 8.28.0
11 Requests 2.32.3
12 JupyterLab 4.2.5
13 LIWC 0.5.0
14 Transformers 4.45.1
15 Sentencepiece 0.2.0
16 Torch 2.4.1+cu118
17 Torchaudio 2.4.1+cu118
18 Torchvision 0.19.1+cu118

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

Analysing audio information (forming model and loading model weights)

Formation of the neural network architecture of the model for obtaining scores by hand-crafted features (audio modality)

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

[5]:
res_load_audio_model_hc = _b5.load_audio_model_hc(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:17] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (аудио модальность) …

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

Downloading the weights of the neural network model to obtain scores by hand-crafted features (audio modality)

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

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

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

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

[2024-10-09 14:52:17] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (аудио модальность) …

[2024-10-09 14:52:21] Загрузка файла “weights_2022-05-05_11-27-55.pth” 100.0% …

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

Formation of the neural network architecture of the model for obtaining scores by deep features (audio modality)

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

[7]:
res_load_audio_model_nn = _b5.load_audio_model_nn(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:21] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (аудио модальность) …

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

Downloading the weights of the neural network model to obtain scores for deep features (audio modality)

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

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

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

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

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

[2024-10-09 14:52:25] Загрузка файла “weights_2022-05-03_07-46-14.pth”

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

Analysing video information (forming model and loading model weights)

Formation of the neural network architecture of the model for obtaining scores by hand-crafted features (video modality)

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

[9]:
res_load_video_model_hc = _b5.load_video_model_hc(
    lang = 'en', # Language selection for models trained on First Impressions V2'en' and models trained on for MuPTA 'ru'
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:25] Формирование нейросетевой архитектуры модели для получения оценок по экспертным признакам (видео модальность) …

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

Downloading the weights of the neural network model to obtain scores by hand-crafted features (video modality)

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

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

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

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

[2024-10-09 14:52:25] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (видео модальность) …

[2024-10-09 14:52:28] Загрузка файла “weights_2022-08-27_18-53-35.pth” 100.0% …

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

Formation of neural network architecture for obtaining deep features

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

[11]:
res_load_video_model_deep_fe = _b5.load_video_model_deep_fe(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:28] Формирование нейросетевой архитектуры для получения нейросетевых признаков (видео модальность) …

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

Downloading weights of a neural network model to obtain deep features

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

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

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

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 # Блокировка выполнения
)

[2024-10-09 14:52:28] Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность) …

[2024-10-09 14:52:47] Загрузка файла “weights_2022-11-01_12-27-07.pth” 100.0% …

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

Formation of the neural network architecture of the model for obtaining scores by deep features (video modality)

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

[13]:
res_load_video_model_nn = _b5.load_video_model_nn(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:48] Формирование нейросетевой архитектуры для получения оценок по нейросетевым признакам (видео модальность) …

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

Downloading the weights of the neural network model to obtain scores for deep features (video modality)

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

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

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

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

[2024-10-09 14:52:48] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (видео модальность) …

[2024-10-09 14:52:52] Загрузка файла “weights_2022-03-22_16-31-48.pth”

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

Analysing multimodal information (forming model, loading model weights, obtaining personality traits scores)

Formation of neural network architectures of models for obtaining the personality traits scores (multimodal fusion)

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

[15]:
res_load_av_models_b5 = _b5.load_av_models_b5(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True,           # Display
    runtime = True,       # Runtime count
    run = True            # Run blocking
)

[2024-10-09 14:52:52] Формирование нейросетевых архитектур моделей для получения результатов оценки персональных качеств (мультимодальное объединение) …

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

ЗDownloading the weights of neural network models to obtain the personality traits scores (multimodal fusion)

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

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

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

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 # Блокировка выполнения
)

[2024-10-09 14:52:52] Загрузка весов нейросетевых моделей для получения результатов оценки персональных качеств (мультимодальное объединение) …

[2024-10-09 14:52:54] Загрузка файла “weights_2022-08-28_11-14-35.pth” 100.0% … Открытость опыту

[2024-10-09 14:52:56] Загрузка файла “weights_2022-08-28_11-08-10.pth” 100.0% … Добросовестность

[2024-10-09 14:52:59] Загрузка файла “weights_2022-08-28_11-17-57.pth” 100.0% … Экстраверсия

[2024-10-09 14:53:01] Загрузка файла “weights_2022-08-28_11-25-11.pth” 100.0% … Доброжелательность

[2024-10-09 14:53:03] Загрузка файла “weights_2022-06-14_21-44-09.pth” 100.0% … Эмоциональная стабильность

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

Getting scores (multimodal fusion)

  • _b5.df_files_ - DataFrame with data

  • _b5.df_accuracy_ - DataFrame with accuracy

[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']['googledisk']

_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         # Блокировка выполнения
)

[2024-10-09 16:17:33] Получение прогнозов и вычисление точности (мультимодальное объединение) …

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

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
Person ID
1 13kjwEtSyXc.003.mp4 0.555285 0.507643 0.44126 0.541062 0.486505
2 1Lv72Si4GnY.000.mp4 0.556782 0.442179 0.503365 0.557368 0.520389
3 1uC-2TZqplE.003.mp4 0.47469 0.568426 0.334602 0.493305 0.459734
4 2Z8Xi_DTlpI.000.mp4 0.664059 0.623677 0.5902 0.599828 0.637361
5 3df_Uk9EmwU.002.mp4 0.639771 0.531204 0.54498 0.585063 0.545633
6 3gmc2kLV4Bo.003.mp4 0.677814 0.667441 0.623028 0.614309 0.64445
7 3hKgh9AB3tk.003.mp4 0.403166 0.397586 0.335559 0.497902 0.398648
8 3S72dDIm1fM.005.mp4 0.577434 0.597293 0.495771 0.639257 0.59949
9 3tPq9fNOXZQ.000.mp4 0.543016 0.452105 0.446706 0.481398 0.414833
10 43tayteIFRk.001.mp4 0.547357 0.504516 0.428625 0.575848 0.526416
11 4RKQGZzPClk.000.mp4 0.549941 0.401322 0.447195 0.520176 0.496661
12 6zm71IHOCZA.005.mp4 0.458676 0.430076 0.316856 0.497522 0.459488
13 7qGYGbIg45c.001.mp4 0.311843 0.321219 0.221201 0.375789 0.243581
14 8YQKwMdiaAE.003.mp4 0.64309 0.512177 0.484826 0.50723 0.556773
15 9Crw2RtrBcY.005.mp4 0.652284 0.842436 0.536853 0.710465 0.746347
16 9eNHxfOV2Kg.005.mp4 0.597793 0.528687 0.454204 0.491327 0.560673
17 9J-KIPMQmqk.002.mp4 0.573772 0.675375 0.47772 0.617765 0.626578
18 9RfE2-aTvaM.002.mp4 0.556951 0.572427 0.461965 0.616268 0.576087
19 9_6auSk_wkY.002.mp4 0.657349 0.629292 0.633481 0.6122 0.625547
20 aaylz9A9K80.000.mp4 0.660384 0.543107 0.642626 0.603371 0.628241
21 Af_F0IzHK6o.002.mp4 0.544945 0.477108 0.40823 0.557337 0.500925
22 Ah5PEPT4xbo.000.mp4 0.543 0.466857 0.422051 0.502522 0.461761
23 AotbiNsU85A.003.mp4 0.462694 0.434322 0.346588 0.428535 0.356066
24 BLc_GvsbI1U.001.mp4 0.634953 0.633947 0.585365 0.616067 0.608561
25 bLOSPQ8MAC8.005.mp4 0.453969 0.581637 0.349498 0.528774 0.470935
26 bPLhV0PGR50.001.mp4 0.601943 0.593242 0.493392 0.540426 0.504249
27 bYXRyimxh7A.001.mp4 0.58827 0.525422 0.485068 0.532413 0.535188
28 ch2BcBv4SdQ.003.mp4 0.690328 0.647787 0.699549 0.64751 0.689377
29 cpch8WDydcM.004.mp4 0.585724 0.567717 0.503909 0.556293 0.542365
30 De4i7-FX9Og.002.mp4 0.64488 0.587383 0.618146 0.614909 0.62523

[2024-10-09 16:17:33] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.0844 0.0802 0.0793 0.0858 0.0848 0.0829
Accuracy 0.9156 0.9198 0.9207 0.9142 0.9152 0.9171

[2024-10-09 16:17:33] Средняя средних абсолютных ошибок: 0.0829, средняя точность: 0.9171 …

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

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

[17]:
True