DFDNet - нейросеть обнаружения и восстановления лиц

машинное обучение в обработке фото и видео
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1375
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение mihas »

Еще интересный проект на питоне по обнаружению и восстановлению лиц на картинках - DFDNet.

Чтобы запустить проект на питоне - удобно пользоваться Anaconda Prompt (anaconda3). Скачать Анаконду можно на официальном сайте. Когда вы запустите командную строку Анаконды - выполните последовательно серию команд:

conda create -n DFDNet python=3.6
conda activate DFDNet
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
pip install cmake
pip install dlib
pip install opencv-python
pip install tqdm
pip install scikit-image
pip install dominate
pip install numba==0.48
cd C:\DFDNet-whole


Нейросеть готова к работе. Положите в инпут C:\DFDNet-whole\TestData\TestWhole нужные вам картинки, это могут быть и последовательные кадры фильма, преобразованные в jpg или png при помощи ffmpeg.
И можно запускать нейросеть DFDNet в работу, указав нужный вам графический процессор в системе (в моем примере команды медленно считает всего пару картинок на CPU, --gpu_ids -1, но на большое кол-во кадров лучше задействовать самый мощный GPU в системе, работа над роликом минуты на три может растянуться на многие часы, хороший GPU в десятки раз процесс ускоряет):

python test_FaceDict.py --test_path ./TestData/TestWhole --results_dir ./Results/TestWholeResults --upscale_factor 8 --gpu_ids -1

upscale_factor укажите какой вам требуется. В примере увеличение 8-кратное - я восстановил лицо из картинки 10% от оригинала и 25% от оригинала, и вот какие результаты получил:
Оригинальное уменьшенное до 10% изображение с плохой детализацией для эксперимента по восстановлению лица
Оригинальное уменьшенное до 10% изображение с плохой детализацией для эксперимента по восстановлению лица
• 44.34 КБ • 1938 просмотров
Восстановление с 8-кратным увеличением от DFDNet
Восстановление с 8-кратным увеличением от DFDNet
• 162.18 КБ • 1938 просмотров
Оригинальное уменьшенное до 25% изображение с плохой детализацией для эксперимента по восстановлению лица
Оригинальное уменьшенное до 25% изображение с плохой детализацией для эксперимента по восстановлению лица
• 171.23 КБ • 1938 просмотров
Восстановление с 8-кратным увеличением от DFDNet
Восстановление с 8-кратным увеличением от DFDNet
• 273.97 КБ • 1938 просмотров
В будущем, когда вы все установили для работы нейросети, в принципе хватит для запуска такого короткого набора команд:

conda create -n DFDNet python=3.6
conda activate DFDNet
cd C:\DFDNet-whole


и можно запускать нейросеть test_FaceDict.py. Иногда она ругается, что не хватает cv2. Это лечится как раз запуском команды pip install opencv-python

Потренировать модели самостоятельно для проекта DFDNet можно в дружественной программе BasicSR. Потребуются значительные вычислительные ресурсы вашего GPU.
Аватара пользователя
mihas
Администратор
Сообщения: 1375
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение mihas »

Для более комфортного запуска нейросети DFDNet, если она вам понравилась, можно немного оптимизировать большое кол-во команд.
Для этого создайте текстовый файл requirements.txt в каталоге DFDNet-whole со следующим содержанием:

Код: Выделить всё

cmake
dlib
opencv-python
tqdm
scikit-image
dominate
numba==0.48
Теперь набор команд по запуску нейросети из командной строки Анаконды будет выглядеть покороче:

conda create -n DFDNet python=3.6
conda activate DFDNet
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
cd C:\DFDNet-whole
pip install -r requirements.txt
Vesee
Сообщения: 46
Зарегистрирован: 28 апр 2012, 06:29

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение Vesee »

Спасибо за четкие компактные инструкции по запусканию всего этого добра на python. А то часто программисты создадут нечто в своей неповторимой программной среде, которую потом повторить на другом компьютере решительно нет никакой возможности. Я потому и брезговал нейросетями, что зачастую проекты на python - та еще вещь в себе, просто установить ту или иную версию python оказывается недостаточно, а четкой инструкции, как все это добро выполнить, и нету. А по вашей инструкции взял и запустил и работает, мне нравится как работает! Судя по теме

BigJpg, Topaz Gigapixel AI, Upscayl: аутсайдеры нашего обзора,

надо действительно осваивать командную строку conda, потому что с графическим интерфейсом проекты какие-то слабые.
JDS
Сообщения: 6
Зарегистрирован: 08 июн 2021, 10:23

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение JDS »

Добрый день.
mihas писал(а): 11 июл 2023, 19:42 Иногда она ругается, что не хватает cv2. Это лечится как раз запуском команды pip install opencv-python
И вот тут мне выдает огромную портянку красных букв:
Ошибка установки opencv
Ошибка установки opencv
• 277.86 КБ • 1835 просмотров
До этого, на команду pip install cmake тоже были ошибки, но выскочила рекомендация установить Visual Studio. Установил, все сработало.
Сейчас рекомендаций нет, а для меня это какая-то тарабарщина.
Мама Asus Prime Z490-P.
Проц Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz.
64 ГБ оперативы.
Видяха Radeon RX550/550 Series, 2 ГБ.
Система Вин 10 21H2 сборка 19044.1826.

Нейронка нужна пару-тройку раз в месяц, только для изображений — никакого видео. Результаты Топаза сотоварищи прям фи.
Можете что-то порекомендовать?
Аватара пользователя
mihas
Администратор
Сообщения: 1375
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение mihas »

Может быть так поможет инструкция от Анаконды с установкой opencv?
У меня случаются подобные затыки в проектах, пытаюсь вот в сети найти решения.
У вас красными буквами написано, что нужна платформа x64. Может быть поискать конкретную версию opencv для платформы x86?

Radeon RX550

Не уверен, что такие вещи работают на AMD, но пробуйте. Тут ведь явно по коду команд ставится cudatoolkit - а CUDA - проприетарная технология Nvidia, чтобы программисты на питоне могли спокойно задействовать мощности именно Nvidia, а не AMD. И не только в этом проекте, многие подобные проекты оперируют CUDA, я как стал с нейросетями знакомиться несколько лет назад - так понял, что без Nvidia тут делать просто нечего, ну и рос потихоньку с годами от GTX 1060 через RTX 2080 до RTX 3060, и в будущем планирую выше. Я честно пробовал считать подобные вещи на центральном процессоре, и это просто слезы, а не работа: там где простенькая устаревшая Nvidia 1060 поза-позапрошлого поколения считает модель сутки - там же Intel поколения 7 примерно работает 60 суток над той же задачей.

Попробуйте мощный скомпилированный проект с графическим интерфейсом и кучей нейросетей крутых Video2x из моего обзора, он и на интегрированном GPU Intel считает, и не только фильмы, но и картинки куда быстрее. Я вот поставил ролик на 5 минут и 7500 кадров считать на RTX 3060 три часа назад - так прогнозирует еще ровно 6 часов, только треть кадров прошел, причем всего-то в однопроходном режиме, при полной загрузке мощного GPU. Причем я совершенно сознательно, осмысленно, брал процессор Intel со встроенной GPU UHD Grapics 750 с целью повесить на этот интерфейс монитор 4K и телевизор FHD через разъемы материнской платы, чтобы освободить более мощную графику Nvidia от мелкой рутины, чтобы нагрузить GPU Nvidia математическими задачами под завязку, и чтобы интерфейс операционки при этом не тормозил на экране и позволял спокойно делать другую работу.

Чисто по моему личному разумению - если вам действительно нужны нейросети для работы как мне - желательно проапгрейдиться на Nvidia. Рано или поздно вопрос важности того или иного железа для работы с нейросетями при поддержке CUDA должен был появиться, я во всех темах пишу, сколько видеопамяти жрет процесс и прочее, тут Nvidia хорошо трудится, для того и покупалась:
GTX 1060 и RX 550 в бенчмарках
GTX 1060 и RX 550 в бенчмарках
• 92.86 КБ • 1831 просмотр
RTX 3060 и RX 550 в бенчмарках
RTX 3060 и RX 550 в бенчмарках
• 95.68 КБ • 1831 просмотр
Вообще, требования к тренировке моделей для нейросетей сейчас очень высокие по железу. Недавно летом 22 года были вполне актуальны топовые GPU с 12 гигами видеопамяти DDR6 на борту. А уже сейчас в 23 году тот же StableDiffusion отказывается тренировать модель в DreamBooth с 12-гиговой картой 3060, требует GPU 3090 с 24 гигами памяти на борту видеокарты. Но пока мы модели не создаем, а экспериментируем с чужими, можно обойтись меньшими капиталовложениями, чем RTX 3090 24Gb DDR6. Просто для понимания, куда оно все движется по железу уже сейчас: требования нейросети Nvidia stylegan по железу такие, что закачаешься! Причем видеопамять отдельного GPU на шине PCIe нельзя подменить системной памятью, которой у вас много. Однако если проект работоспособен на Intel UHD - тут можно задействовать и системную память, жаль только что мощнейшие Intel UHD по сравнению со средней руки Nvidia отстают по бенчмаркам производительности в десятки раз от последних:
Требования к видеопамяти GPU для тренировки модели в DreamBooth
Требования к видеопамяти GPU для тренировки модели в DreamBooth
• 55.69 КБ • 1831 просмотр
JDS
Сообщения: 6
Зарегистрирован: 08 июн 2021, 10:23

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение JDS »

mihas писал(а): 18 июл 2023, 13:33Может быть так
Благодарю!
Вроде помогло, установилось. На работать отказывается. Переустановки, перезагрузки, проматерился и плюнул. Система и так х64, а что еще от меня хочет эта загогулина с портянками красных букв, не пойму.
Все-таки командная строка не мое, привык к ползункам графинтерфейса. Взялся за Video2x, пока нарабатываю. Даже пробный шар после первоначальной настройки по вашим рекомендациям вполне устроил.
Входящие файлы порой страшны, но не слишком.
mihas писал(а): 18 июл 2023, 13:33 проприетарная технология Nvidia
Да, с Радеоном пару лет назад накосячили феерично, не исправить уже. Все улучшения это мои хотелки — заказчика устраивает исходник, а руководство весьма далеко от «вот-этого-вот-всего».
Аватара пользователя
mihas
Администратор
Сообщения: 1375
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

DFDNet - нейросеть обнаружения и восстановления лиц

Сообщение mihas »

В принципе я эту нейросеть запускал и на CPU с ключом --gpu_ids -1, где минус один - не использовать никакую графическую карту. Поэтому по идее должна запуститься, но согласен - у меня тоже вставала не идеально, а с бубном. Просто мне вот так кажется: есть такие проекты на питоне, которые ни с бубном, ни с чем не запустишь, вроде исходника отсюда. То есть автор программы не сообщает ни версию питона (а для этого проекта это важно), ни подключенные модули, мудись как хочешь, но все равно результата фиг добьешься, даже потратив многие часы. Хорошо что гугловский колаб уже сильно заряжен любыми дополнительными модулями к питону, и там стартануло без проблем. А DFDNet как-то я не очень сложно запускал на разных компах не один раз, потому и написал про него, потому у него на Гитхабе и звезд не мало. Я так на гитхабе заметил - если проект невозможно запустить просто продвинутому пользователю компьютера - то и звезд у проекта практически нет, зачем он нужен, если кроме разработчика им никто не может реально пользоваться. Я как и вы не фанат всех этих командных строк, сам начинаю программирование с интерфейса и под интерфейс уже пишу функции программы, но тут с нейросетями практически все проекты на вебе и с интерфейсом - пустышки, мало-мальски интересно работают вот проекты из командной строки на питоне, иногда скомпилированные, но тоже без интерфейса. Video2x хорош тем, что есть интерфейс, а вот алгоритмов интересных в нем маловато в процентом отношении ко всем вкладкам, но немного все же есть, и я о них пишу.
Я если узнаю еще что-то про более беспроблемную установку DFDNet - я напишу. Пока что увидел у себя несколько раз на разных компах - то и записал.
И попробуйте тоже на питоне CodeFormer вдруг легко пойдет, у меня пошло в момент без приключений. Проект один из самых продвинутых на мой вкус.
Ответить

Вернуться в «Нейросети»