сравнение квартир по фотографиям на идентичность

Можно ли сделать оценку квартиры по фотографиям

Это зависит от того, какого рода оценка необходима и кто у вас эту оценку запросил (какая организация). Существуют различные разновидности оценки квартир и каждая из них имеет свою специфику.

Далее рассмотрим несколько вариантов: и те, когда оценка по фото допускается, и те, когда не допускается.

Когда можно сделать оценку квартиры по вашим фото

Например справку об оценке у вас могут попросить в органах опеки, если вы продаете или покупаете квартиру, где прописан несовершеннолетний или инвалид, находящийся под вашей опекой.

Когда нельзя сделать оценку по фотографиям клиента

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

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

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

Заключение

Выше были описаны только самые распространенные ситуации. Но бывают и другие случаи.

Не стану останавливаться на них подробно, иначе вы просто устанете читать эту статью.

Если ваш случай все же не описан выше, то вы можете лично задать нам вопрос, описав ситуацию. Наша консультация абсолютно бесплатна.

Источник

Алгоритм быстрого нахождения похожих изображений

Недавно наткнулся на статью, размещенную на Хабрахабре, посвященную сравнению изображений «Выглядит похоже». Как работает перцептивный хэш. Так как я сам достаточно долго занимался этой тематикой (являюсь автором программы AntiDupl), то мне захотелось поделиться здесь своим опытом по данному вопросу. В статье я приведу два варианта алгоритма сравнения похожих изображений — базовый и улучшенный. Все они были проверены автором на практике в рамках указанного выше проекта. Изложение мое будет вестись без строгих доказательств, сложных формул и специальной математической терминологии. Надеюсь, что читатели простят меня за это.

Мера схожести изображений

При сравнении похожих изображений первым встает вопрос: что считать мерой схожести изображений? Очевидно, что это величина имеет значение обратное различию изображений друг от друга. Следственно нужно выбрать некую метрику, характеризующую различие изображений друг от друга. Тогда схожими изображениями будут считаться изображения, отличие между которыми меньше некоторого порога. Для изображений с одинаковыми габаритами, обычно такой мерой различия служит среднеквадратическое отклонение пикселей одного изображения от другого. Хотя конечно, нам ни что не мешает выбрать другую метрику, например усредненную абсолютную разность пикселей изображений друг от друга.

Картинки разных размеров

Вопрос несколько усложняется, если нужно сравнить изображения разных размеров. Однако достаточно очевидным решением этой проблемы является приведение всех изображений к одинаковому размеру. Остается выбрать это размер — если выбрать его слишком маленьким, то очевидно, что различия между изображениями тогда будут нивелироваться, и у нас будет много ложно положительных срабатываний. При слишком большом размере неоправданно повышается ресурсоёмкость алгоритма сравнения. Опыт показывает, что наиболее оптимальным является размер приведенного изображения от 16х16 до 64х64. Так же опыт показывает, что цветовые характеристики изображения оказывают гораздо меньшее влияние на визуальные ощущения схожести изображений по сравнению с яркостными, потому их можно отбросить.

Основные шаги

Недостатки базового алгоритма

К недостаткам данного алгоритма, можно отнести его плохую чувствительность при сравнении слабо контрастных изображений, а также изображений без крупномасштабных особенностей (контурные рисунки, изображения текста). Слабая чувствительность объясняется тем, что при уменьшении исходного изображения до размера 32х32, как правило все такие изображения становятся не различимыми друг от друга. Также недостатком данного подхода можно считать квадратическую зависимость времени исполнения алгоритма в зависимости от общего числа изображений, так как нужно провести сравнение для каждой пары изображений. Так для сравнения пары отнормированных изображений друг с другом алгоритму нужно выполнить порядка 10^3 арифметических операций, то для тысячи изображений это уже порядка 10^9 операций, а для миллиона изображений — 10^15 операций. Конечно не у каждого пользователя есть коллекции изображений с миллионом картинок, но даже для сравнения 100 тысяч изображений (что не является такой уж редкостью для фотолюбителей) нам требуется выполнения порядка 10^13 операций, что может занять существенное время даже на современном железе.

Читайте также:  ионный котел для отопления частного дома

Быстрый алгоритм

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

Соотношение сторон

Визуально одинаковые изображения, как правило, обладают близкими соотношениями ширины и высоты. Отсюда логичный вывод — сравнивать только изображения с близкими соотношениями сторон. На практике, большинство изображений в одной коллекции, как правило, имеет одинаковое соотношение сторон (например — 3:4), но имеет разную ориентацию (вертикальную или горизонтальную). Таким образом, мы получаем два изолированных класса изображений, которые не обязательно сравнивать друг с другом. Приблизительное ускорение алгоритмов от этого факта — около двух раз.

Предварительное сравнение

Первый самый очевидный шаг: если мы один раз уменьшили изображение, то почему бы не сделать это снова? Делаем из картинки 32х32 картинку размером 4х4, где каждая точка уменьшенного изображения представляет собой усредненную яркость соответствующей части исходного изображения размером 8х8. Можно математически строго доказать, что среднеквадратическая разность для этого уменьшенного изображения будет не больше, чем среднеквадратическая разность исходного изображения. Следовательно, мы можем путем предварительного сравнения уменьшенных изображений размером 4х4 создать своеобразный фильтр, который будет отсеивать большую часть кандидатов на полноценное сравнение (при условии, что в выборке большая часть изображений относительно уникальны). Таким несложным приемом можно достичь, как несложно подсчитать, практически 50-и кратного ускорения. Однако, очевидно, что чем выше порог, с которым мы сравниваем изображения, тем меньше эффективность данного фильтра.

Одномерное индексирование изображений

Как известно, поиск в упорядоченном массиве данных может быть осуществлен за время порядка О(ln(N)), в отличие от неупорядоченного, которое требует О(N). Таким образом, если каким-то образом нам удастся упорядочить изображения, то теоретически можно свести квадратичную сложность поиска О(N^2) к квазилинейной — О(N*ln(N)). И так попытаемся создать индекс, с помощью которого мы будем производить сортировку изображений. Для этого берем нашу уменьшенную картинку размером 4х4 и уменьшаем ее еще в два раза до размера 2х2. Из этой картинки легко сформировать первый индекс:

который представляет собой среднюю яркость нашего изображения. Фактически, это изображение, уменьшенное до размера 1х1. Среднеквадратическая разность исходных изображений, будет не меньше, чем разность их интенсивностей. Таким образом, если порог для сравнения изображений имеет значение t, то все возможные кандидаты на сравнение должны иметь среднюю яркость в диапазоне от i[0] — t до i[0] + t. Фактически, если мы отсортируем все изображения по индексу i[0], то можем проводить сравнение со значительно меньшим числом изображений — 2*t/255. Не сложно подсчитать, что для типичного порога в 5% — имеем теоретический выигрыш в 10 раз. Практически, выигрыш будет меньше, так как статистическое распределение изображений по средней яркости не равномерно в диапазоне [0. 255], а имеет колоколообразный максимум вблизи значения 127 и спадает по краям диапазона. Его фактическая ширина, а следственно и практический выигрыш алгоритма от теоретически возможного составляет порядка 70-80%.

Многомерное индексирование изображений

Помимо средней яркости i[0], из изображения размером 2×2 можно построить еще 3 дополнительных индекса:

i[1] = 128 + (p[0][0] — p[0][1] + p[1][0] — p[1][1])/4,

i[2] = 128 + (p[0][0] + p[0][1] — p[1][0] — p[1][1])/4,

i[3] = 128 + (p[0][0] — p[0][1] — p[1][0] + p[1][1])/4,

которые имеют простой физический смысл: индекс i[1] показывает на сколько левая часть изображения ярче чем правая, i[2] — на сколько верхняя часть ярче нижней, а i[3] — на сколько отличаются диагонали изображения. По всем этим индексам можно также отсортировать изображения, как и по первому, причем все возможные кандидаты на сравнение будут лежать в диапазонах от i[j] — t до i[j] + t. Т.е. в четырехмерном пространстве, образованном этими индексами область поиска будет представлять 4-х мерный куб со стороной 2*t и центром с координатами, образованными индексами искомого изображения. Теоретическое ускорение, равно отношению объема этого 4-мерного куба к общему объему индексного пространства и равна (2*t/255)^4 = 1/10000. Практическое ускорение значительно скромнее, так как эффективная ширина распределения изображений по индексам i[1] и i[2] составляет порядка 40-50%, а i[3] — всего 20-30% от максимально возможного. Из-за узкого фактического диапазона, на практике использование последнего индекса часто вообще не целесообразно, потому можно ограничиться первыми 3-мя индексами. Тем не менее практически достижимое ускорение достигает двух порядков (для пороговой разности в 5%).

Основные этапы улучшенного алгоритма

Недостатки быстрого алгоритма

В целом эффективность индексирования сильно зависит от порога схожести изображения — при нулевом пороге сложность поиска похожих изображений приближается к линейной О(N), а при большом пороге к квадратичной О(N^2). Тем не менее, это является значительным прогрессом, так как в базовом варианте алгоритма сложность поиска всегда квадратична О(N^2). Также стоит отметить, что на практике для реализации сортировки по n-мерному индексному пространству приходится организовывать n-мерный массив со списками изображений, лежащих в определенном диапазоне индексов. Что вносит дополнительные накладные расходы и делает неоправданным использование индексирования большой размерности, а также не эффективность такого индексирования для небольших коллекций изображений.

Читайте также:  разметка на полу в салонах красоты

Заключение

Надеюсь, что читателей заинтересовало мое изложение. Возможно, даже кому-то показалось полезным. Жду отзывов.

Источник

Экспертиза предметного сходства объектов

Точная стоимость зависит от конкретного случая. Оставьте заявку или уточняйте по телефону.

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

В соответствии со ст. 1259 Гражданского кодекса Российской Федерации, к объектам авторских прав относятся «фотографические произведения и произведения, полученные способами, аналогичными фотографии». Законодательство Российской Федерации предусматривает уголовную ответственность за незаконное использование объектов авторского права (ч. 2 ст.146 Уголовного кодекса РФ).

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

Данная экспертиза может назначаться в двух случаях:

Начальным этапом данной экспертизы является осуществление исследования на установление фотомонтажа, то есть наличия или отсутствия внесение изменений в цифровую структуру исследуемых объектов с помощью программных средств типа Adobe PhotoShop и других специализированных программ. Далее осуществляется сопоставление исследуемых изображений по общим и частным признакам.

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

Обладая исследуемым объектом надлежащего качества и образцами, отвечающими всем вышеперечисленным признакам, эксперты нашей организации проведут достоверное, полное и всестороннее исследование в кратчайшие сроки и ответят на любые вопросы, входящие в их компетенцию.

Вид экспертизы Стоимость экспертизы, руб.
Установление наличия фотомонтажа в электронных светокопиях от 12 500
Фототехническое сопоставление внешнего облика предметов от 15 000
Портретная фототехническая экспертиза от 12 500

Цена фототехнической экспертизы указана с учетом налогов. Транспортные расходы оплачиваются отдельно.

Источник

Python. Как сравнить фотографии?

Наверняка у каждого из Вас есть большой домашний архив фотографий, а в нем лежат собственные снимки и фотографии, которыми с Вами поделились родственники. Просматривая свою фототеку, Вы наткнулись на дубли и тут же возник вопрос – сколько же еще таких? В этой статье я поделюсь тем, как я решал свою задачу по поиску одинаковых фотографий.

Совсем недавно у меня появилась интересная задача – необходимо было найти одинаковые фотографии на разных объектах недвижимости. Т.е. к объектам недвижимости расположенных с разным местоположением крепилась одна и та же фотография, может ошибочно, может специально, но такие объекты надо было найти. И я хотел бы поделиться тем, как я решал эту задачу. Для примера у Вас может быть домашняя фототека.

Посмотрев просторы интернета, первым делом на глаза мне попалась библиотека OpenCV, эта библиотека имеет интерфейсы на различных языках, среди которых Python, Java, C++ и Matlab. Мне стало интересно, есть ли у Python стандартная библиотека для работы с изображениями и вот она – Pillow. Это форк PIL, которая успешно развивается и был принят в качестве замены оригинальной библиотеки. Свой выбор я остановил на ней.

Начнем работу с библиотекой, и попробуем открыть файл и показать его.

Данный скрипт откроет нам изображение. Почитав документацию, я нашел функцию, которая по пикселям сравнивает два изображения и выдает разницу. Функция называется difference и находится в модуле ImageChops. Что бы показать принцип работы функции, для примера возьмем фотографию и добавим на нее какой-нибудь текст:

result.show() вернет разницу в пикселях. Так же прошу обратить внимание на result.getbbox(), функция либо вернет рамку где расходятся пиксели, либо вернет None если картинки идентичны. Если мы сравним первую картинку саму с собой, то получим полностью черное изображение.

Напишем простенькую функцию по сравнению двух картинок:

Читайте также:  рейтинг красок для внутренних работ в квартире

Теперь необходимо подумать над алгоритмом перебора имеющихся изображений.

Данный алгоритм перебирает все файлы в папке и сравнивает их между собой исключая проверку между собой и файлы, которые уже были проверены на совпадение.

А если файлов для сравнения очень много и их обработка очень долгая? Можно пойти двумя способами:

Первый способ простой, в нашу функцию difference_images добавляем несколько строк:

Второй способ уже сложнее и более интересный, потому что нужно будет управлять и потоками, и очередями, так же нужно будет переписать часть кода. Для этого нам понадобятся следующие библиотеки threading и Queue (подробней можно почитать в интернете), ниже приведен готовый код с внесенными изменениями, я постарался прокомментировать все действия что бы было понятно:

В результате мы получили готовый алгоритм для поиска одинаковых картинок, а так же постарались ускорить обработку файлов двумя способами. Завершив свою задачу, я обнаружил 1227 совпадений в выборке из 6616 картинок.

Надеюсь, моя статья была полезна. Спасибо за внимание.

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

c1264a00a7780a

100% быстрее.
Из простых решений это phash.org, для похожести можно еще расстояние Хэмминга использовать. Загнать в постгрес, индексы которого помогут быстрее матчинг проводить, например, можно на это посмотреть https://github.com/fake-name/pg-spgist_hamming

Я поэтому и удивился, ибо сам в своём проекте столкнулся с задачей мэтчинга. Тянуть полновесную OpenCV (как ещё одну зависимость) посчитал сомнительным вариантом. А вот поиск по хэшам отрабатывался быстрее.

Можно для начала сравнить размеры в байтах

Чел, но ведь две разные картинки могут иметь одинаковый размер, ты оптимизируешь не в ту сторону.

Могут, не отрицаю, но вероятность, что две разные картинки будут иметь идентичные размер в байтах чертовски мала + можно добавить сравнение по содержанию, чтобы быть уверенным, что это одинаковые картинки.

Очень не оптимально полагать на малую вероятность в решениях задач ред.

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

Хорошая статейка, спасибо!

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

вот мой код, надеюсь он вам поможет:

import os
from PIL import Image, ImageChops

print(‘Введите ПОЛНЫЙ путь к папке: ‘, end = »)
directory_in_str = input()

directory = os.fsencode(directory_in_str)
imgs = os.listdir(directory_in_str)
dublicates = <>
try:
for file in os.listdir(directory):
filename = os.fsdecode(file)
last_name = directory_in_str
last_name += ‘\\’ + filename
f_info = os.stat(last_name)
if f_info.st_size in dublicates:
image_1 = Image.open(last_name)
image_2 = Image.open(dublicates[f_info.st_size])
result = ImageChops.difference(image_1, image_2)
result = result.getbbox()
if result == None:
couter += 1
print(f’Найден дубликат: [ и ]’)
else:
dublicates[f_info.st_size] = last_name
except:
print(‘Ошибка поиска директории!’)

print(f’Программа завершила работу, файлов обработано [].’)

Источник

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

dd9dc9364c1c4822b67068a021147568

dd9dc9364c1c4822b67068a021147568

dd9dc9364c1c4822b67068a021147568

5de38324dd683431717763

Как математик, я должен сказать, что решение этой задачи существует. (Это шутка, понятная математикам)

Только слова «полную идентичность» надо выкинуть из условия. Они тут не имеют смысла и делают задачу нерешаемой. Когда уменьшали изображения, то сначала работал какой-то алгоритм интерполяции, а таких алгоритмов с десяток, может больше, каждый даст немножко другую картинку на выходе. Потом работал алгоритм сжатия с неизвестными параметрами. Т.е. варьируя параметры, можно из одного оригинала сделать тысячи (и даже миллионы) чуточку разных миниатюр. Они между собой не полностью идентичны (хотя многие на глаз не отличимы). Вам потребуется куча удачи (это не считая кучи сил и кучи времени), чтобы получилось подобрать все параметры. Поэтому забываем про «полную идентичность», будем строгими математическими методами искать самые похожие картинки. Если «похожесть» не превысила какой-то порог (условно, 97.1% или 99.5%), то говорим, что похожих не нашли вовсе.

Сравнивать будем катинки одного разрешения, поэтому либо уменьшаем большие, либо увеличиваем маленькие. И тут совсем не очевидно, что эффективнее сравнивать маленькие (т.к. теряем часть информации в обмен на скорость сравнения и более простой алгоритм), это достойно отдельного исследования, но для простоты всё же будем уменьшать оригиналы и сравнивать только миниатюры.

Итак, само сравнение (конечно, в цикле по всем картинкам). Попиксельно вычитаем одну картинку из другой. В случае «полной идентичности» разность должна выглядеть как полностью чёрный фон. Такого у нас не будет. Но нам надо искать «самую чёрную» разность картинок (на самом деле «модуль разности», я лишь для простоты объяснения говорю «разность»). Чем меньше светлых пикселей в разности, тем сильнее похожи картинки. В математике этим занимается раздел «методы оптимизации» (загуглить, взять в библиотеке учебник и т.д.). Критерий «черноты» надо ещё правильно выбрать. Но это уже дело техники. Задача не тривиальная, но решаемая.

Источник

Adblock
detector