Короткий посібник із розпізнавання відеозаписів у НРВ BBC

Часто це завдання, які люди виконують, не замислюючись, вимагають найскладнішої обробки за кадром. Дегустувати їжу, спілкуватися з друзями, слухати музику і, справді, впізнавати людей. Під час перегляду епізоду "Істтендерс" ви бачите різних акторів в різних умовах, під різними ракурсами та різним освітленням, але миттєво ваш мозок обробляє ці зміни, знаючи, що на сцені стоять Дот Коттон та Філ Мітчелл. Оскільки ми не замислюємося над обробкою, що займається, ми з подивом виявили, що ці завдання набагато складніші, ніж ми спочатку думали, намагаючись застосувати їх до машинного навчання.

Візьміть такі фотографії принца Гаррі та Меган Маркл на вулиці. Тут ми можемо бачити Гаррі та Меган з різних куточків - спереду, збоку і ззаду - але ми легко розпізнаємо їх за їхніми особливостями: кольором шкіри, кольором волосся тощо. Ми також беремо до уваги певні соціальні підказки. Натовп дивиться на них, вони добре одягнені, вони в центрі кожного знімка, і очевидна безперервність пострілів з однієї сцени. Тут є багато шарів людської інтуїції, які ми, як правило, не задумуємось над тим, як виявляємо як культурні, так і фізичні показники.

Ми, природно, впізнаємо Гаррі та Меган, незважаючи на різний кут на цих знімках

Тож як ми навчимо комп’ютер навчитися робити все це? Хоча ми не можемо створити алгоритм, щоб мислити, як людина, ми можемо змусити його робити те, що робить машинне навчання найкраще: виявляти шаблони у великих, мічених наборах даних. Це включає збирання зображень, навчання алгоритму, обробку відео та розпізнавання людей у ​​них. Остаточний вихід - це список людей, розпізнаних у відео, разом із часом та місцем розташування у кадрах, на яких вони з'являються.

Ми вже працюємо над створенням цієї технології в BBC. Наша система під назвою FaceRec розробляється командою даних з досліджень в Інтернеті та майбутніх послуг у рамках досліджень і розробок BBC (ми збережемо деякі натискання клавіш і просто назвемо їх командою даних звідси). Він створений за допомогою комбінації внутрішнього коду та зовнішнього програмного забезпечення з відкритим кодом - зокрема, Seetaface, двигуна розпізнавання обличчя C ++.

FaceRec працює, обробляючи відео через ряд алгоритмічних кроків, кожен вирішує конкретну частину загальної проблеми. Ми дамо вам огляд того, як це працює.

1. Виявити кадри

Для того, щоб кожне обличчя було виявлене у відео, спочатку нам потрібно розбити це відео на складові кадри (кадр визначається як серія кадрів, що працює протягом безперебійного періоду часу). Для цього FaceRec використовує бібліотеку обробки медіа-файлів FFmpeg, яка використовує функцію для повернення часу початку та закінчення знімків у межах даного відео.

2. Виявити обличчя

Наступний крок - перевірити кожен кадр, щоб побачити, чи містить він обличчя людини. Це складна проблема - чи варто спробувати виявити кожне обличчя на футбольному матчі? Чи вважається обличчя на футболці? Фотографії на передній частині газет?

Ітератуючи через кожен кадр, FaceRec знімає кадри з пострілу та подає їх у SeetaFace, який потім повертає обмежувальні поля, де він вважає, що їх обличчя. Система виявлення обличчя SeetaFace розпізнає, чи достатньо підрахунку обличчя, щоб включити його у вихід. Зауважте, що SeetaFace не говорить, хто вважає, що виявлені люди, лише те, що він вважає, що виявив обличчя в даному місці в кадрі.

3. Створення доріжок обличчя

Тепер, коли ми зібрали всі кадри, що містять обличчя, наступне завдання - зшити ці виявлені обличчя разом, щоб створити обличчя. Лицьова доріжка - це безперервний потік обмежувальних коробок навколо обличчя під час руху в кадрі зйомки.

FaceRec приймає кожне обмежувальне поле для обличчя і намагається відобразити його в наступне логічне обмежувальне поле в наступному кадрі. Це не завжди цілком очевидно, оскільки обличчя можуть бути тимчасово затемнені або обмежувальні коробки можуть перетинатися один з одним, коли одна людина рухається за іншою.

Обмежувальні коробки відстежують обличчя через постріл

Під капотом ця проблема вирішується за допомогою методу Дліба та методу Лукаса-Канаде. Це створює обличчя, які визначаються часовими точками, списком кадрів та обмежувальними полями граней.

4. Створіть обличчя-вектори для треків

Алгоритми машинного навчання часто працюють шляхом перетворення вхідного матеріалу в математичні вектори. Потім вони дізнаються, які частини цього «векторного простору» належать до певних категорій або типів введення. З точки зору обличчя вони дізнаються, що вектори, що представляють обличчя принца Гаррі, як правило, знаходяться в певній області, а вектори Меган, як правило, в іншому розділі. Ви також очікуєте, що вектори обличчя принца Вільяма будуть в цьому просторі ближче до Гаррі, ніж до Меган, оскільки вони пов'язані та поділяють схожі характеристики.

Для створення векторів для виявлених облич FaceRec використовує бібліотеку ідентифікації обличчя SeetaFace. FaceRec подає обрізані фотографії виявлених облич у їх обмежувальних полях із середини точки обличчя. Він отримує назад 2024-мірний вектор, який представляє риси цього обличчя.

5. Розпізнайте обличчя людей у ​​векторах, що ведуть обличчя

Тепер у нас є обличчя-вектор для кожного виявленого обличчя. Наступний крок - перетворити ці вектори на фактичні імена розпізнаних облич, а також позначити обличчя, яких ми не визнаємо (і тому не можемо позначити).

Перше питання тут: лише кого ми визнаємо? Ми, звичайно, не можемо створити модель, щоб визнати всіх, хто коли-небудь жив - і не хотіли б. То кого ми вважаємо достатньо важливим для цієї системи розпізнавання обличчя?

Реально, цьому потрібно керуватись журналістами BBC News та людьми, про яких найчастіше повідомляють. Ми також повинні знати, що невідомі люди щодня повідомляють новини, і коли вони це роблять, ми можемо не мати жодної попередньої картини з ними. Маючи на увазі ці обмеження, Команда даних фокусувалась головним чином на знаменитостях, міжнародних лідерах, американських політиках у парламенті та Палаті лордів під час навчання FaceRec.

Щоб розпізнати цих людей, їм потрібно було зібрати дані про навчання кожної людини - тобто безліч мічених фотографій цієї особи, що містять лише цю людину. Команда даних зібрала тисячі фотографій, а потім створила власну передню систему для легкого перегляду та маркування окремих фотографій. Несексуальна правда машинного навчання полягає в тому, що збір якості, маркованих даних часто є найдорожчою, трудомісткою і в той же час важливою частиною побудови добре функціонуючої системи ШІ.

Зібравши фотографії, Команда даних потім подала їх у класифікатор машинного навчання під назвою машина підтримки вектора для створення навчених моделей. Коли вони подаються на вектор-обличчя від SeetaFace, ці моделі передбачають ім'я людини на оригінальному зображенні обличчя або кажуть, чи не розпізнали вони обличчя взагалі.

IRFS створив дві моделі:

  1. Модель архіву: Відомі люди з 20 століття і далі обрані людьми з BBC Archive. Ця модель містила приблизно 1000 людей.
  2. Модель новин: Ще в розробці, це розширюватиметься до понад 2000 членів парламенту Великобританії та регіональних асамблей, Палати лордів та світових лідерів. Зображення навчальних програм отримані з BBC News, Factual та Drama.

Ці навчені моделі потім використовуються для передбачення того, які люди знаходяться в обличчях у відео.

6. Склади обличчя кластера

Тепер, коли всі обличчя були помічені, останнім кроком є ​​збирання всіх треків однієї особи.

Для цього ми розміщуємо всі витягнуті вектори відео в один векторний простір, який ми будемо називати простором обличчя для розваги. Для візуалізації простору обличчя ми можемо використовувати інструмент під назвою Tensorboard, частина бібліотеки машинного навчання Tensorflow.

Дивлячись на цей космічний простір, ми сподіваємось, що вектори однієї і тієї самої людини досить близько і далеко від інших людей, що ми можемо автоматично їх групувати. Це відомо в машинному навчанні як проблема кластеризації.

Нижче ми можемо побачити віктори, що простежуються в цьому космічному просторі для відео про Гаррі та Меган. І ми бачимо, що більшість треків Меган зібрані разом, що робить їх легко кластеризувати. Ось так ми знаємо, що створені вектори обличчя працюють добре.

Візуалізація облич за допомогою TensorBoard

Ті, хто знайомий з кластеризацією, побачать складність нашої проблеми з кластеризацією обличчя. Для кожного відео буде різна кількість кластерів різної величини - з великою кількістю векторів, що з’являються один раз і не належать до жодного кластеру.

Замість того, щоб впасти в темну діру, намагаючись ідеально вирішити цю проблему, команда даних вирішила побігти з кількома евристиками. FaceRec розбиває проблему на дві окремі категорії: обличчя людей, яких вона впізнає, і обличчя людей, яких вона не має. Для розпізнаних облич він просто кластеризує всі доріжки обличчя разом із однаковою передбачуваною міткою (ім'ям). Для нерозпізнаних облич вона використовує техніку, яку називають ієрархічною кластеризацією над векторами обличчя, щоб групувати їх, але не надавати їм мітки.

7. Виведіть інформацію

Останнім кроком для FaceRec є подача всієї інформації, зібраної протягом різних етапів. Це у формі файлу JSON, який містить:

Список треків у відео. Для кожної композиції:

  • Прогнозована людина для цього треку
  • Впевненість у прогнозі
  • Відстежте UUID
  • Обличчя для цього треку
  • Список кадрів у цьому треку

У списку кадрів інформація про кожен кадр включає:

  • Лицьовий вектор для цього кадру, якщо він виявлений
  • Координатні рамки для обличчя
  • Час у відео кадрі настає

Що ми можемо зробити з цими даними? Ви можете переглянути нашу наступну публікацію в блозі, щоб побачити наші ідеї.

Підбивання

Це справді про це Сподіваємось, ми допомогли вам зрозуміти багато частин, які входять у систему розпізнавання обличчя відео. І, можливо, ми також зробили вас більш усвідомленими щодо всіх важких підйомів та неоднозначностей, з якими власний мозок стикається сотні разів на день, впізнаючи своїх друзів та коханих.

Розуміючи внутрішню роботу системи FaceRec, завдання News Labs полягало в тому, щоб побачити, де ця технологія може додати ділової цінності в BBC. Як ми демонструємо здібності FaceRec завдяки інтуїтивній демонстрації? До яких виробничих систем ми могли б бачити, як FaceRec підходить? Чиї проблеми робочого процесу вони могли б вирішити? І що важливо, як люди ставляться до використання розпізнавання обличчя? Ми говоримо про проблеми впровадження нової технології у великій організації та питання, з якими ми стикалися при розробці прототипу розпізнавання обличчя в розділі «Розпізнавання обличчя - чим це корисно для Newsrooms?».