Определить по фото ориентацию: Интернет: Интернет и СМИ: Lenta.ru

Ученые нашли способ определять сексуальную ориентацию по фотографии

Американские ученые научились определять сексуальную ориентацию человека по его фотографии. По словам исследователей, точность установления ориентации созданной ими программы даже по одному фото равна 81% для мужчин и 74% для женщин. Авторы научного труда делают оговорку, что в настоящее время данные теории отвергаются как суеверие и расизм.

Специалисты из Стэнфордского университета создали компьютерную программу, позволяющую — как они уверяют — определить сексуальную ориентацию человека по его фотографии. Для определения исследователи использовали фотографии людей с сайтов знакомств.

По словам ученых, точность установления ориентации человека даже по одному фото равна 81% для мужчин и 74% для женщин. Исследование было проведено по фотографиям более 75 тысяч мужчин и женщин разной ориентации, взятым с сайтов знакомств. При использовании алгоритмом пяти фото одного человека точность определения возрастала до 91% для мужчин и 83% для женщин.

По словам авторов исследования, гомосексуальные мужчины и женщины отличаются особенностями строения и выражения лица, что хорошо соотносится с теорией о том, что сексуальная ориентация человека формируется еще до его рождения, сообщает РИА «Новости».

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

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

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

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

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

Сравнительные данные, приводимые авторами исследования, показывают, что у респондентов, пытавшихся угадать ориентацию по внешнему виду человека, результаты были значительно хуже. Опрошенные сумели указать, является ли человек на фотографии гомосексуалистом, в 61% и 54% случаев для мужчин и женщин соответственно.

«Наука об определении предпочтений людей по их внешним характеристикам восходит к древнему Китаю и Греции. Эти методики изучали, в частности, Аристотель и Пифагор, а последний даже выбирал себе учеников на основе черт их лиц.

Основатель криминальной антропологии Чезаре Ломброзо считал, что преступники могут быть идентифицированы по их лицу», — утверждают исследователи.

Авторы научного труда делают оговорку, что в настоящее время данные утверждения отвергаются как суеверие и расизм.

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

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

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

или что нет гомосексуалистов с чрезвычайно мужественными чертами лица. То же самое касается и лесбиянок», — утверждают авторы исследования.

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

«Интересно, что женские лица являются менее выраженными для определения сексуальной ориентации, что указывает — помимо всего прочего — и на их большую гибкость в плане смены ориентации», — резюмируют ученые.

Программа для определения сексуальной ориентации вызвала споры

Автор фото, STANFORD UNIVERSITY

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

Приложение уже вызвало горячие споры между разработчиками программы и ведущими правозащитными ЛГБТ-группами.

Ученых обвинили в том, что изложенные факты — опасны и недостаточно обоснованы научно.

  • Гетеросексуальные женщины испытывают оргазм реже всех остальных

Однако исследователи называют подобные обвинения импульсивной реакцией.

Подробности проекта вскоре должны быть опубликованы в журнале психологии личности и социальной психологии, издаваемом Американской психологической ассоциацией.

«Узкие челюсти»

По словам ученых, точность установления ориентации человека даже по одному фото равна 81% для мужчин и 71% для женщин. Исследование было проведено по фотографиям более 75 тысяч мужчин и женщин разной ориентации, взятым с сайтов знакомств.

При использовании алгоритмом пяти фото одного человека точность определения возрастала до 91% для мужчин и 83% для женщин.

Нейросеть сравнивала фотографии двух случайно отобранных людей, один из которых гетеросексуален, а другой нет.

Автор фото, Getty Images

Підпис до фото,

Защитники прав ЛГБТ указывают на недостатки исследования

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

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

«Безрассудные выводы»

Пропустити подкаст і продовжити

подкаст

Що це було

Головна історія тижня, яку пояснюють наші журналісти

Випуски

Кінець подкаст

В прошлую пятницу две американские правозащитные группы, специализирующиеся на защите ЛГБТ, обнародовали заявление с критикой результатов исследования.

«Это исследование не является научным. Это просто описание стандартов красоты на сайтах знакомств. Для исследования были отобраны снимки только белых людей, поскольку достаточного количества гомосексуалов с другим цветом кожи на сайте не нашлось», — заявил Джим Галлорат, руководитель службы мониторинга медиа ЛГБТ-группы GLAAD.

«Эти безрассудные выводы исследования могут послужить в качестве оружия как против гетеросексуалов, так и против гомосексуалов и лесбиянок, для которых публичность может быть опасной», — отмечают представители ЛГБТ-сообщества.

Правозащитники добавили, что отправили в университет свои замечания еще месяц назад.

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

Ученые, в свою очередь, просят не делать преждевременных выводов.

«Результаты исследования могут быть ошибочными, но они могут быть опровергнуты только с помощью научных данных, а не умелыми адвокатами и специалистами по связям с общественностью, которым не хватает научных знаний», — сказано в ответном письме исследователей.

Автор фото, Getty Images

Підпис до фото,

Для исследования были отобраны снимки только белых людей

Как определить ориентацию объекта с помощью OpenCV — автоматический Addison

В этом руководстве мы создадим программу, которая может определять ориентацию объекта (то есть угол поворота в градусах), используя популярную библиотеку компьютерного зрения OpenCV.

Содержание

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

Начнем!

  • Python 3.7 или выше

Прежде чем мы начнем, убедитесь, что у нас установлены все программные пакеты. Проверьте, установлен ли на вашем компьютере OpenCV . Если вы используете Anaconda, вы можете ввести:

 conda install -c conda-forge opencv 

Кроме того, вы можете ввести:

 pip install opencv-python 

Установите Numpy, библиотеку научных вычислений.

 pip установить numpy 

Найдите изображение. Мое входное изображение имеет ширину 1200 пикселей и высоту 900 пикселей. Имя файла моего входного изображения input_img. jpg .

Вот код. Он принимает изображение с именем input_img.jpg и выводит аннотированное изображение с именем output_img.jpg . Фрагменты кода взяты из официальной реализации OpenCV.

импортировать cv2 как cv
из математики импортировать atan2, cos, sin, sqrt, pi
импортировать numpy как np
def drawAxis(img, p_, q_, цвет, масштаб):
  р = список (р_)
  д = список (д_)
  ## [визуализация1]
  angle = atan2(p[1] - q[1], p[0] - q[0]) # угол в радианах
  гипотенуза = sqrt((p[1] - q[1]) * (p[1] - q[1]) + (p[0] - q[0]) * (p[0] - q[0] ))
  # Здесь мы удлиняем стрелку в масштабе
  q[0] = p[0] - масштаб * гипотенуза * cos(угол)
  q[1] = p[1] - масштаб * гипотенуза * sin(угол)
  cv.line(img, (int(p[0]), int(p[1])), (int(q[0]), int(q[1])), color, 3, cv.LINE_AA)
  # создаем хуки со стрелками
  р[0] = д[0] + 9* cos(угол + пи/4)
  p[1] = q[1] + 9 * sin(угол + пи / 4)
  cv.line(img, (int(p[0]), int(p[1])), (int(q[0]), int(q[1])), color, 3, cv. LINE_AA)
  p[0] = q[0] + 9 * cos(угол - пи / 4)
  p[1] = q[1] + 9 * sin(угол - пи / 4)
  cv.line(img, (int(p[0]), int(p[1])), (int(q[0]), int(q[1])), color, 3, cv.LINE_AA)
  ## [визуализация1]
def getOrientation (pts, img):
  ## [пка]
  # Создать буфер, используемый для анализа PCA
  sz = длина (pts)
  data_pts = np.empty((sz, 2), dtype=np.float64)
  для i в диапазоне (data_pts.shape[0]):
    data_pts[i,0] = очки[i,0,0]
    data_pts[i,1] = очки[i,0,1]
  # Выполнить анализ PCA
  среднее значение = np.пусто((0))
  среднее значение, собственные векторы, собственные значения = cv.PCACompute2 (data_pts, среднее значение)
  # Сохраняем центр объекта
  cntr = (int (среднее [0,0]), int (среднее [0,1]))
  ## [пка]
  ## [визуализация]
  # Нарисуйте главные компоненты
  cv.circle(img, cntr, 3, (255, 0, 255), 2)
  p1 = (cntr[0] + 0,02 * собственные векторы [0,0] * собственные значения [0,0], cntr[1] + 0,02 * собственные векторы [0,1] * собственные значения [0,0])
  p2 = (cntr[0] - 0,02 * собственные векторы [1,0] * собственные значения [1,0], cntr[1] - 0,02 * собственные векторы [1,1] * собственные значения [1,0])
  drawAxis(img, центр, p1, (255, 255, 0), 1)
  drawAxis(img, центр, p2, (0, 0, 255), 5)
  angle = atan2(eigenvectors[0,1],eigenvectors[0,0]) # ориентация в радианах
  ## [визуализация]
  # Метка с углом поворота
  label = "Угол вращения:" + str(-int(np. rad2deg(угол)) - 90) + "градусы"
  textbox = cv.rectangle(img, (cntr[0], cntr[1]-25), (cntr[0] + 250, cntr[1] + 10), (255 255 255), -1)
  cv.putText(img, label, (cntr[0], cntr[1]), cv.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,0), 1, cv.LINE_AA)
  угол возврата
# Загрузить изображение
img = cv.imread("input_img.jpg")
# Было ли там изображение?
если img - None:
  print("Ошибка: файл не найден")
  выход(0)
cv.imshow('Входное изображение', img)
# Преобразование изображения в оттенки серого
серый = cv.cvtColor (изображение, cv.COLOR_BGR2GRAY)
# Преобразование изображения в двоичное
_, bw = cv.threshold (серый, 50, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
# Найти все контуры в пороговом изображении
контуры, _ = cv.findContours (bw, cv.RETR_LIST, cv.CHAIN_APPROX_NONE)
для i, c в перечислении (контуры):
  # Рассчитать площадь каждого контура
  площадь = cv.contourArea (с)
  # Игнорировать контуры, которые слишком малы или слишком велики
  если площадь < 3700 или 100000 < площади:
    Продолжать
  # Нарисуйте каждый контур только в целях визуализации
  cv. drawContours (изображение, контуры, я, (0, 0, 255), 2)
  # Найти ориентацию каждой фигуры
  получить ориентацию (с, изображение)
cv.imshow('Выходное изображение', img)
cv.waitKey (0)
cv.destroyAllWindows()
 
# Сохраняем полученное изображение в текущий каталог
cv.imwrite ("output_img.jpg", изображение)
 

Вот результат:

Положительная ось x каждого объекта — красная линия. Положительная ось Y каждого объекта представляет собой синюю линию .

Глобальная положительная ось x проходит слева направо по горизонтали по изображению. Глобальная положительная ось z указывает на эту страницу . Глобальная положительная ось y указывает от нижней части изображения к верхней части изображения по вертикали.

Используя правило правой руки для измерения вращения, вы вытягиваете четыре пальца прямо (указательный палец к мизинцу) в направлении глобальной положительной оси x.

Затем поверните четыре пальца на 90 градусов против часовой стрелки. Кончики ваших пальцев указывают на положительную ось Y, а большой палец указывает за пределы этой страницы на положительную ось Z.

Если мы хотим рассчитать ориентацию объекта и убедиться, что результат всегда находится в диапазоне от 0 до 180 градусов, мы можем использовать этот код:

# Эта программа вычисляет ориентацию объекта.
# На входе изображение, а на выходе аннотированное изображение
# с углом ориентации для каждого объекта (от 0 до 180 градусов)
импортировать cv2 как cv
из математики импортировать atan2, cos, sin, sqrt, pi
импортировать numpy как np
# Загрузить изображение
img = cv.imread("input_img.jpg")
# Было ли там изображение?
если img - None:
  print("Ошибка: файл не найден")
  выход(0)
cv.imshow('Входное изображение', img)
# Преобразование изображения в оттенки серого
серый = cv.cvtColor (изображение, cv.COLOR_BGR2GRAY)
# Преобразование изображения в двоичное
_, bw = cv.threshold (серый, 50, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
# Найти все контуры в пороговом изображении
контуры, _ = cv. findContours (bw, cv.RETR_LIST, cv.CHAIN_APPROX_NONE)
для i, c в перечислении (контуры):
  # Рассчитать площадь каждого контура
  площадь = cv.contourArea (с)
  # Игнорировать контуры, которые слишком малы или слишком велики
  если площадь < 3700 или 100000 < площади:
    Продолжать
  # cv.minAreaRect возвращает:
  # (center(x, y), (ширина, высота), угол поворота) = cv2.minAreaRect(c)
  прямоугольник = cv.minAreaRect (с)
  коробка = cv.boxPoints (прямая)
  коробка = np.int0 (коробка)
  # Получить ключевые параметры повернутой ограничивающей рамки
  центр = (целое (прямая [0] [0]), целое (прямая [0] [1]))
  ширина = интервал (прямой [1] [0])
  высота = интервал (прямой [1] [1])
  угол = интервал (прямоугольник [2])
  
  если ширина < высота:
    угол = 90 - угол
  еще:
    угол = -угол

  label = «Угол поворота:» + str(угол) + «градусы»
  текстовое поле = cv.rectangle(img, (центр[0]-35, центр[1]-25),
    (центр [0] + 295, центр [1] + 10), (255 255 255), -1)
  cv.putText (img, метка, (центр [0] -50, центр [1]),
    cv. FONT_HERSHEY_SIMPLEX, 0.7, (0,0,0), 1, cv.LINE_AA)
  cv.drawContours(img,[box],0,(0,0,255),2)
cv.imshow('Выходное изображение', img)
cv.waitKey (0)
cv.destroyAllWindows()
 
# Сохраняем полученное изображение в текущий каталог
cv.imwrite("min_area_rec_output.jpg", изображение)
 

Вот результат:

Вот и все. Продолжайте строить!

изображение — Алгоритм определения ориентации фотографии

спросил

Изменено
11 лет, 2 месяца назад

Просмотрено
14 тысяч раз

Я хочу автоматически поворачивать фотографии, даже если метаданные EXIF ​​об ориентации изображения недоступны.

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

Я нашел эти две статьи по теме:

  • Предварительная классификация для автоматической ориентации изображения (2006)
  • Вероятностный подход к определению ориентации изображения посредством основанной на достоверности интеграции низкоуровневых и семантических сигналов (2004)

Приветствуются ссылки на другие исследования и особенно на реализации.

  • изображение
  • обработка изображений
  • ориентация
  • эвристика

6

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

Многие другие фотографии сделаны туристами, на них небо голубое, а земля зеленая.