На GitHub появилось приложение video-object-removal, которое удаляет объекты с видео. Для этого достаточно выделить нежелательный объект, нарисовав рамку вокруг него, как на фото. Приложение само отследит и удалит информацию внутри рамки, а затем восстановит изображение, чтобы заполнить «дыру».

Утилита использует нейросеть, которая обрабатывает видео покадрово, заменяя ненужный объект фоном. Пока что этот метод обработки видео не идеален: на месте удалённого объекта может остаться след. Все зависит от фона — чем он проще и однороднее, тем «чище» получается результат.

При разработке приложения его авторы опирались на два проекта — SiamMask и Deep Video Inpainting. SiamMask может создавать маски сегментации объектов и обрабатывать видео со скоростью 55 кадров в секунду. Deep Video Inpainting, в свою очередь, предназначен для заполнения «дыр» видео контентом.

Приложение video-object-removal было протестировано на Ubuntu 16.04, Python 3.5, Pytorch 0.4.0 и CUDA 8.0. Исходный код открыт, и его может использовать любой желающий. Для этого достаточно установить модели SiamMask и Inpainting, поместив их в папку cp/.

Ранее, в апреле 2019 года, компания Adobe внедрила в свой видеоредактор After Effects похожую функцию, также работающую с использованием нейросетей. Функция Content-Aware Fill доступна подписчикам Adobe Creative Cloud. При работе с ней пользователь также может выделить объекты, которые хочет удалить с видеоролика, а программа рассчитает маски покадрово и заменит их на окружающий фон.

Комментарии (12)


  1. AllexIn
    22.07.2019 17:18
    +2

    Original и Inpainting — два совершенно разных кадра. Вполне допускаю что скейтер просто ушел.


    1. Andchir
      22.07.2019 18:45

      На Гитхабе были гифки, но сейчас там какие-то технические проблемы и картинки не отображаются. Но качество «удаления» объектов так себе.


    1. rombell
      22.07.2019 19:31

      классические картинки «надите 10 отличий». Действительно, по фигурам сверху ясно видно, что это разные кадры.


  1. kudryavy
    22.07.2019 18:45

    "Объект с видео" — это:


    1. объект, содержащий видеоконтент (объект с чем-то)
      или
    2. объект, присутствующий в видеоряде (объект из определенного места)
      Я не знаю, какой заголовок будет более точным, но настоящий заголовок статьи двусмысленный.
      Самая простая правка "объект из видео", но тоже может не внести ясность


  1. IvUs
    22.07.2019 21:08

    Nvidia ngx sdk такое умеет, но требует видюшку с rtx
    https://youtu.be/gg0F5JjKmhA


  1. namikiri
    23.07.2019 00:22

    Функция Content-Aware Fill...

    Гораздо веселее функция Content-Aware Scale!
    Вот несколько примеров




    1. Desavian
      23.07.2019 09:58
      -1

      А почему только на двух картинках функция сработала?


  1. nidalee
    23.07.2019 11:52

    Функция Content-Aware Fill доступна подписчикам Adobe Creative Cloud. При работе с ней пользователь также может выделить объекты, которые хочет удалить с видеоролика, а программа рассчитает маски покадрово и заменит их на окружающий фон.
    Также есть в DaVinci Resolve — «Object Removal».


  1. kahi4
    23.07.2019 12:41

    Удалить объект с видео со статичным фоном — то же мне задача. Если брать видео с примеров с гитхаба — хорошо видно, что объект нигде не пересекает другие подвижные объекты (с лодкой в море сложнее, но там и артифакты больше), а в таком случае это делается довольно просто и гораздо более качественно без алхимии с нейросетями. Наприм, http://www.mee.tcd.ie/~sigmedia/Research/RigRemoval статьи от 2005 года. Что за мода пихать нейронные сети везде и выдавать это как невероятный результат?


    1. AllexIn
      23.07.2019 13:43

      Исследуют возможности нейросетей.
      Показывают возможности нейросете.
      А выдача за невероятный результат… Где такое?


      1. kahi4
        23.07.2019 15:16

        Потому что это выглядит как очень хорошая, но все же курсовая работа. Мы же не будем публиковать все хорошие курсовые работы на хабр (хотя я бы почитал).


        А что касается возможностей — вряд ли у кого-либо возникали сомнения что нейронная сеть способна достроить недостающую информацию базируясь на предыдущих и следующих кадрах, как и реализовать автокоррелятор (который, к слову, было бы интересно проверить на работоспособность при пересечении движущихся объектов, а то на статичном фоне тоже мне возможности).


    1. Mykola_Von_Raybokobylko
      24.07.2019 12:08

      Мне кажется вопрос тут не совсем технической направленности. Удалить объект из кадра и раньше можно было. Тут вопрос наверное в том чтобы подключить сеть у удалению объекта на массовых видеосвидетельствах. Это конечно конспирология но вполне возможный сценарий.
      Либо использовать потоковый метод при трансляции эфирного видео.