Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 04.03.2018
Сообщений: 34

Создание нейросети для сравнения людей на двух фото

27.07.2019, 13:31. Показов 3842. Ответов 1

Студворк — интернет-сервис помощи студентам
Проблема заключается в следующем.
При помощи dlib я определяю лицо на фото и делаю его дескрипт, но в конечном итоге два выбранных фото, отсканированные dlib, не сравниваются.
Я знаю, что return прекращает выполнение функции и возвращает указанное после выражения значение.
Голова уже на пределе и не соображает, как можно сделать так, что бы в итоге показывался результат анализа двух фото.
P.s. он должен быть такой - 0.92 или другое число.Зависит от анализа.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import dlib, os
import numpy as np
from skimage import io
from scipy.spatial import distance
sp = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
facerec = dlib.face_recognition_model_v1('dlib_face_recognition_resnet_model_v1.dat')
detector = dlib.get_frontal_face_detector()
 
filename = input("filename - ")
 
def getfacedescriptor(filename):
    #name = file_ + str(qq=+1)
 
    img = io.imread(filename)
    win1 = dlib.image_window()
    win1.clear_overlay()
    win1.set_image(img)
    dets = detector(img, 1)
    for k, d in enumerate(dets):
        shape = sp(img, d)
        win1.clear_overlay()
        win1.add_overlay(d)
        win1.add_overlay(shape)
        try:
             face_descriptor1 = facerec.compute_face_descriptor(img, shape)
             print("face_descriptor1")
        except:
             print("None")
             face_descriptor1=None
        return(face_descriptor1)#Тут проблема
    print("getfacedescriptor")
    f1=getfacedescriptor('1.jpg')
    f2=getfacedescriptor('2.jpg')
    a = distance.euclidean(f1,f2)
    print('Result: '+str(a)+' (Чем меньше, тем лучше)')
 
getfacedescriptor(filename)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2019, 13:31
Ответы с готовыми решениями:

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

Сравнить похожесть людей на двух разных фото
Здравствуйте все! Посоветуйте, пожалуйста, программу или сервис позволяющий сравнить похожесть людей на двух разных фото. Гугл советует...

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

1
1 / 1 / 0
Регистрация: 04.03.2018
Сообщений: 34
28.07.2019, 00:12  [ТС]
Видимо у меня действительно мозги поплыли, если я решил, что проблема из-за return
Проблема на самом деле в другом.
Цикл, в котором после "try:"программа делала дескрипт, который кстати можно вывести командой print(face_descriptor1)
Этот цикл ОГРОМЕН, если не бесконечен, ибо после вывода дескрипта, скрипт вновь,снова и снова открывает окно с фото, находит лицо и делает дескрипт.
Что сделать, что бы скрипт грамотно работал?
Находил лицо, делал дескрипт,все тоже самое с другой фоткой и в итоге сравнивал эти дескрипты.

Добавлено через 1 час 14 минут
Решил и эту фигню.
Теперь выходит ошибка в строке :

a = distance.euclidean(f1,f2)
unsupported operand type(s) for -: 'NoneType' and 'NoneType'
неподдерживаемые типы операндов для -: 'NoneType' и 'None Type'
Т.е. как я понял NoneType не поддерживает NoneType.
Что тут делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2019, 00:12
Помогаю со студенческими работами здесь

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

С помощью QReport вывести фото для всех людей, которые есть в Query
Доброе время суток! У меня БД в Access, в ней поле фото (тип строка). При формировании отчета с помощью QReport надо вывести фото для...

Создание нейросети для анализа продаж игр
Здравствуйте. Сейчас работаю над дипломом. Тема - создание нейросети для анализа продаж игр. Начал создавать обучающую выборку в excel,...

Создание нейросети для распознавания букв с матрицы
Помогите написать нейросеть которая будет считывать с файла матрицу, в которой записана буква(например буква 'c') 0 1 1 1 0 0 1 0 0 0 ...

Для класса банковский счет переопределить операторы == и != для сравнения информации в двух счетах
Для класса банковский счет переопределить операторы == и != для сравнения информации в двух счетах. Переопределить метод Equals...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru