Инструмент для автоматического размывания людей на фотографиях

5766
O. R. Mapper

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

Итак, я в основном хочу сделать более или менее то, что Google делает с изображениями StreetView. В настоящее время я делаю это вручную для каждой фотографии, рисуя выделения эллипса вокруг всех граней в Gimp, а затем использую фильтр размытия в выделении.

Есть ли инструмент, который позволяет мне делать это размытие более или менее одним щелчком мыши? В идеале, показывая мне все распознанные лица на первом этапе, а затем позволяя мне отменить выбор тех, которые я не хочу размыть?

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

Я уже давно искал такие инструменты, но все, что я нашел, похоже, относится к одной из трех категорий:

  • Он предназначен для запуска на смартфонах, а не на настольных компьютерах, таких как это приложение .
  • Он предназначен для видео, на что указывают похожие вопросы, такие как эта или эта, или эта статья .
  • Это веб-интерфейс, поэтому все фотографии должны быть загружены на чей-либо сервер для обработки, и при редактировании фотографий требуется подключение к Интернету, например, с помощью этой службы или этого редактора .

Я ищу исключительно программное обеспечение, которое работает в Windows и / или Ubuntu без необходимости подключения к Интернету (т.е. нет облачных инструментов, которые требуют от меня загрузки всех фотографий для обработки). Бесплатный инструмент был бы хорош, но платный инструмент все же лучше, чем никакой инструмент вообще.

10

4 ответа на вопрос

4
tardis

If you're fine with "some assembly required" solutions, try using "facedetect" (which simply uses OpenCV) and ImageMagick. There is an example at the following page:

http://www.thregr.org/~wavexx/hacks/facedetect/#blurring-faces-within-an-image

A couple of notes on the example:

  • It uses pixelation, but you can easily replace the "-scale" operators with a simple "-blur 0x100".
  • Each face is processed independently in the example, which is exactly what you need: you can use "display -crop GEOMETRY" to show the face before the blurring process. With "zenity" or some shell scripting it's relatively straightforward to ask whether to proceed with the blurring or not.

No face detection software is 100% accurate though. You will get both false positives and misses. In particular, the default OpenCV profile is definitely not the best on the market without additional training. False positives are easily worked around with the method you describe, but misses are a different story. Having to review all photos manually might not save you a lot of time. I guess it depends on your accuracy demands.

To show the detection super-imposed use the "-o" flag on a sample of your images and see if the detection rate is adequate for your needs.

2
harrymc

I have found for The GIMP the Face Detection Plugin from 2010 (no guarantee that it still works) :

image

Otherwise, you might have to roll out your own software. In this case see the following links :

face detection software
Microsoft Research Face SDK Beta
Intel Perceptual Computing SDK

Of special mention is OpenCV. See Detect face then autocrop pictures for an example using python.

К сожалению, я не смог получить плагин для компиляции. Я установил несколько пакетов, помимо тех, которые указаны в статье, и обновил вызов `cvHaarDetectObjects`, чтобы сопоставить текущий (не обратно совместимый?) API с одним дополнительным параметром, но теперь gcc завершается ошибкой по неопределенной ссылке на` lrint `. O. R. Mapper 10 лет назад 1
[lrint] (http://man7.org/linux/man-pages/man3/lrint.3.html) выполняет «округление до ближайшего целого числа» и определяется как «long int lrint (double x)». Должно быть легко кодировать. harrymc 10 лет назад 0
Сейчас я приму этот ответ, так как он самый полезный и выглядит многообещающим. К сожалению, система вознаграждений SU не дает мне достаточно времени, чтобы в достаточной мере попробовать различные предложения, чтобы определить их возможную полезность до истечения срока действия вознаграждения ... * и * получить работу ;-) Другими словами, большое спасибо, хотя я мог бы добавить некоторые дополнительные замечания позже. O. R. Mapper 10 лет назад 0
Хм. Когда я добавляю определение для `lrint`, компилятор жалуется на противоречивые определения для` lrint`, а когда я его не добавляю, он жалуется на то, что `lrint` является неопределенной ссылкой. O. R. Mapper 10 лет назад 0
Найдите нужное определение и основывайте на нем свой заголовок функции. harrymc 10 лет назад 0
Хорошо, если в оригинальном сообщении об ошибке говорится, что `lrint` является« неопределенной ссылкой », это должно означать, что определения нет, верно? Как ни странно, исходный файл C, составляющий этот плагин, вообще не содержит текст `lrint`. Согласно выводу компилятора, неопределенная ссылка находится в функции `cvRound` ... это означает, что есть ошибка в заголовках API OpenCV? O. R. Mapper 10 лет назад 0
Хорошо, я мог бы решить эту последнюю проблему, следуя информации из [этой публикации в форуме] (http://tech.groups.yahoo.com/group/OpenCV/message/85129), которая объясняет, что в текущих версиях gcc опции и флаги должны быть указаны * после * входных и выходных файлов (что не было так в make-файле, поставляемом с исходным кодом плагина). Плагин был установлен правильно и распознает * некоторые * лица ... теперь, если бы я мог просто заставить его распознавать все лица, а не множество случайных кусочков бетона, зданий и кустарников ... O. R. Mapper 10 лет назад 0
Возможно, будет проще использовать OpenCV. harrymc 10 лет назад 0
Этот плагин * уже * основан на OpenCV. O. R. Mapper 10 лет назад 0
Вы связали это с последним OpenCV? harrymc 10 лет назад 0
Гектометр Я не указал какую-либо конкретную версию (или, скорее, make-файл, похоже, не указывает какую-либо конкретную версию, просто `opencv`). Я установил последний `libopencv-dev` перед компиляцией. O. R. Mapper 10 лет назад 0
Надеюсь, вы используете OpenCV версии 2. [Каскадный классификатор] (http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html) может быть полезен и может быть чем-то из версии 1 [Обнаружение лиц с использованием OpenCV ] (http://opencv.willowgarage.com/wiki/FaceDetection). harrymc 10 лет назад 0
2
Otheus

Текущий лучший ответ выглядит так:

https://github.com/openalpr/openalpr

К сожалению, это всего лишь библиотека программного обеспечения и только для обнаружения . Вам нужно будет интегрировать это в программное обеспечение, которое делает размытие.

У меня есть аналогичная потребность, поэтому я мог бы попробовать, но мои навыки программирования немного ... ржавые.

У гугла была такая же проблема. Они опубликовали здесь свое исследование, но не код: http://static.googleusercontent.com/media/research.google.com/en//archive/papers/cbprivacy_iccv09.pdf

Хм, С ++ не является моим основным языком, и у меня сейчас нет времени на эксперименты, но чуть позже (недели? Месяцы?), Я мог бы подумать об этом на практике. Хотя из файла readme кажется, что это только для номерных знаков, а не для лиц? O. R. Mapper 8 лет назад 0
0
Alex

Если вы больше в разработке приложений, вы можете попробовать использовать API от Cloudinary. Вот дополнительная информация об этом: http://cloudinary.com/blog/automatic_face_blurring_in_images_made_easy

Я не мог найти ни одно программное приложение, которое делает это автоматически. Там могут быть некоторые плагины для Photoshop или Gimp.

Извините, я уже ссылался на эту статью в своем вопросе как пример того, что я * не * ищу. Я не хочу загружать свои фотографии в какой-либо веб-сервис, потому что передача занимает много времени, и потому что кто знает, что случится с фотографиями однажды на серверах этой компании. Если нет ничего изолированного, я буду искать какой-нибудь плагин для Gimp. O. R. Mapper 11 лет назад 0
@ORMapper: извините, я должен пропустить это. дайте нам знать, если вы найдете какое-либо приложение. Alex 11 лет назад 0

Похожие вопросы