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

e50d8c4cb1dd496ca9a6f80e764507e5


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

[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 # Отображение информации о библиотеке
)

[2024-10-08 22:07:45] 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

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

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

[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.004 сек. —

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

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

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

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

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

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

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

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

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

corpus = 'fi'
lang = 'en'

url = _b5.weights_for_big5_['audio'][corpus]['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-08 22:07:45] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (аудио модальность) …

[2024-10-08 22:07:47] Загрузка файла «weights_2022-05-05_11-27-55.pth» 100.0% …

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['audio'][corpus]['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-08 22:07:49] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (аудио модальность) …

[2024-10-08 22:07:51] Загрузка файла «weights_2022-05-03_07-46-14.pth»

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

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['video'][corpus]['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-08 22:07:51] Загрузка весов нейросетевой модели для получения оценок по экспертным признакам (видео модальность) …

[2024-10-08 22:07:54] Загрузка файла «weights_2022-08-27_18-53-35.pth» 100.0% …

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['video'][corpus]['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-08 22:07:54] Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность) …

[2024-10-08 22:07:58] Загрузка файла «weights_2022-11-01_12-27-07.pth» 100.0% …

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['video'][corpus]['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-08 22:07:58] Загрузка весов нейросетевой модели для получения оценок по нейросетевым признакам (видео модальность) …

[2024-10-08 22:08:02] Загрузка файла «weights_2022-03-22_16-31-48.pth»

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

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

Загрузка словаря с экспертными признаками

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

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

[2024-10-08 22:08:02] Загрузка словаря с экспертными признаками …

[2024-10-08 22:08:02] Загрузка файла «LIWC2007.txt» 100.0% …

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

Формирование токенизатора и нейросетевой модели машинного перевода (RU -> EN)

[16]:
res_setup_translation_model = _b5.setup_translation_model(
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2024-10-08 22:08:02] Формирование токенизатора и нейросетевой модели машинного перевода …

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

Формирование токенизатора и нейросетевой модели BERT (для кодирования слов)

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

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

[2024-10-08 22:08:04] Формирование токенизатора и нейросетевой модели BERT …

[2024-10-08 22:08:04] Загрузка файла «bert-base-multilingual-cased.zip»

[2024-10-08 22:08:04] Формирование токенизатора и нейросетевой модели BERT …

[2024-10-08 22:08:04] Загрузка файла «bert-base-multilingual-cased.zip»

[2024-10-08 22:08:04] Разархивирование архива «bert-base-multilingual-cased.zip» …

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']

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

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

[2024-10-08 22:08:08] Загрузка файла «weights_2023-07-15_10-52-15.pth» 100.0% …

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']

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

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

[2024-10-08 22:08:10] Загрузка файла «weights_2023-07-03_15-01-08.pth» 100.0% …

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

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

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

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

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

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

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

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

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

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

url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']

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

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

[2024-10-08 22:08:14] Загрузка файла «avt_fi_2023-12-03_11-36-51.pth»

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

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

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

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

[24]:
# Настройки ядра
_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_[corpus]['googledisk']

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

[2024-10-08 23:43:10] Извлечение признаков (экспертных и нейросетевых) из текста …

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

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

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
Person ID
1 13kjwEtSyXc.003.mp4 0.552089 0.54898 0.478067 0.565956 0.539556
2 1Lv72Si4GnY.000.mp4 0.562705 0.421453 0.492522 0.572543 0.504166
3 1uC-2TZqplE.003.mp4 0.445807 0.520422 0.373454 0.551266 0.426558
4 2Z8Xi_DTlpI.000.mp4 0.670753 0.666397 0.625857 0.568944 0.616438
5 3df_Uk9EmwU.002.mp4 0.671677 0.585579 0.614424 0.658365 0.624947
6 3gmc2kLV4Bo.003.mp4 0.638604 0.7332 0.565175 0.633607 0.604074
7 3hKgh9AB3tk.003.mp4 0.526246 0.496452 0.390666 0.520226 0.470266
8 3S72dDIm1fM.005.mp4 0.644248 0.634252 0.556651 0.655743 0.648829
9 3tPq9fNOXZQ.000.mp4 0.575605 0.543385 0.447234 0.566504 0.523745
10 43tayteIFRk.001.mp4 0.522306 0.546957 0.407993 0.567965 0.563569
11 4RKQGZzPClk.000.mp4 0.633064 0.544991 0.548249 0.613651 0.592643
12 6zm71IHOCZA.005.mp4 0.455992 0.522827 0.337552 0.512441 0.473446
13 7qGYGbIg45c.001.mp4 0.417032 0.451034 0.282474 0.391847 0.355023
14 8YQKwMdiaAE.003.mp4 0.574465 0.491399 0.423553 0.432433 0.450023
15 9Crw2RtrBcY.005.mp4 0.742864 0.758821 0.466764 0.687633 0.697788
16 9eNHxfOV2Kg.005.mp4 0.619669 0.579157 0.549466 0.574119 0.537651
17 9J-KIPMQmqk.002.mp4 0.627498 0.663925 0.444421 0.61994 0.600624
18 9RfE2-aTvaM.002.mp4 0.578801 0.501743 0.468679 0.591484 0.549758
19 9_6auSk_wkY.002.mp4 0.626052 0.536571 0.567191 0.583891 0.562382
20 aaylz9A9K80.000.mp4 0.697246 0.520294 0.612363 0.644834 0.655316
21 Af_F0IzHK6o.002.mp4 0.596801 0.529443 0.470662 0.581981 0.547758
22 Ah5PEPT4xbo.000.mp4 0.523789 0.45858 0.417447 0.511926 0.45604
23 AotbiNsU85A.003.mp4 0.423835 0.474683 0.321158 0.417033 0.41548
24 BLc_GvsbI1U.001.mp4 0.696347 0.652736 0.624922 0.678726 0.658686
25 bLOSPQ8MAC8.005.mp4 0.525125 0.603376 0.376319 0.542049 0.503826
26 bPLhV0PGR50.001.mp4 0.556369 0.587692 0.392011 0.529514 0.522235
27 bYXRyimxh7A.001.mp4 0.617763 0.439809 0.478807 0.563695 0.562938
28 ch2BcBv4SdQ.003.mp4 0.669454 0.608926 0.609815 0.649637 0.650794
29 cpch8WDydcM.004.mp4 0.599099 0.55201 0.51507 0.607964 0.563158
30 De4i7-FX9Og.002.mp4 0.663971 0.612064 0.579938 0.632653 0.623737

[2024-10-08 23:43:10] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.0788 0.0751 0.0704 0.077 0.076 0.0755
Accuracy 0.9212 0.9249 0.9296 0.923 0.924 0.9245

[2024-10-08 23:43:10] Средняя средних абсолютных ошибок: 0.0755, средняя точность: 0.9245 …

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

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

[24]:
True