Форум программистов, компьютерный форум, киберфорум
C++: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637

Нейросетевое распознавание изображений

22.11.2010, 09:50. Показов 4257. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день!
Есть у меня курсовой проект "Нейросетевое распознавание пола человека по изображению его лица".
Я использую рециркуляционную сеть (64 х 30)+многослойный персептрон (30 х 5 х 2). Моя проблема заключается в том, что если при обучении последняя фотография, которую я подаю на сеть, мужская, то при самом распознавании сеть на все фотографии будет отвечать, что они мужские. и наоборот.
При обучении и распознавании я разбиваю фотографию на 64 сектора и т.о. в конце сеть на одном поле "пребывает" 64 раза. и весовые коэффициенты модифицируются на распознавание именно мужчины.
Что можно сделать, чтобы весовые коэффициенты "работали универсально" на всех фотографиях? Пожалуйста, подскажите, в чем моя ошибка! Мне очень нужна ваша помощь, я почти отчаялась...

Может быть, кто-то сталкивался с подобной задачей...

Заранее очень благодарна! Жду ответа.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2010, 09:50
Ответы с готовыми решениями:

Распознавание изображений
Уважаемые подскажите с сл.вопросом: Так получилось что я раздолбай прогулял весь курс по С++, но теперь нужно через месяца 2-3 сдать...

Распознавание изображений
Слышал что .net даёт возможность распознавать изображения. Какие это именно средства. И вобще подскажыте в двох словах как это...

Обработка изображений (распознавание текста)
Здравствуйте. Задача следующая: имеется сканированный документ с рукописным текстом. Каким образом выделить строки, чтобы посчитать высоту,...

8
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
22.11.2010, 17:06
чтото мне подсказывает, что надо разбивать на большее количество сегментов фотографию
0
18 / 17 / 7
Регистрация: 06.11.2009
Сообщений: 167
22.11.2010, 18:05
у меня задача состоит в распознавании текста на изображении. тоже использую нейросети. сначала идёт сегментация, выделение областей изображения, где находится буква. потом я ужимаю каждый сегмент до фиксированного размера, например 30х30 и подаю на нейросеть. пока реализован только персептрон. но у него 900 входов(по числу пикселей иконки которую я подаю на вход). почему у тебя 30 стоит?
0
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
22.11.2010, 18:16  [ТС]
потому что я использую рециркуляционную сеть для извлечения главных компонент, т.е. из 64 значений я беру значащие 30. и уже эти 30 компонент я подаю на персептрон для разделения входного пространства образов на 2 кластера.

но, в общем, я наверное поняла свою ошибку. просто читать внимательнее надо алгоритм)) всем спасибо.
0
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
22.11.2010, 19:45
SecretSilent, ну поделитесь а? в чем беда была?
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
22.11.2010, 20:29
Всем Доброго здоровья! Ребята, а где можно подробнее изучить эту тему? У кого-нибудь есть литература? Спасибо!
0
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
23.11.2010, 09:02  [ТС]
radiohobbyt, дело было в том, что алгоритм обратного распространения ошибки подразумевает сравнение с желаемой ошибкой полученной средней квадратичной ошибки после подачи всех образов, т.е. в моем случае после подачи всех изображений, представляющих обучающую выборку. А моя глупая ошибка была в том, что я обучала персептрон до нужной ошибки на каждом секторе изображений. Вот и получалось, что весовые коэффициенты сети подстраивались на распознавание только того пола, представителем которого был человек на последней фотографии в выборке.
Такая вот глупость с моей стороны Кстати, сейчас программа распознает пол!:dance3:


NewbieС,
у меня есть напиши мне в личку свой и-мэйл, я тебе вышлю всё, что нашла. Тебе именно по распознаванию пола или вообще человека по фотографии (но об этом в личке!)?


А еще попутно вопрос по рециркуляционным сетям, а именно по правилу обучения Ойя. Может быть, кто-то знает, как наиболее оптимально подобрать количество нейронных элементов в сжимающем слое? Может быть, есть какие-то формулы... Просто эмпирический подход ну никак не подходит сеть и так оооооочень долго обучается.
2
2642 / 1653 / 267
Регистрация: 19.02.2010
Сообщений: 4,377
06.12.2010, 22:07
Цитата Сообщение от SecretSilent Посмотреть сообщение
алгоритм обратного распространения ошибки подразумевает сравнение с желаемой ошибкой полученной средней квадратичной ошибки после подачи всех образов, т.е. в моем случае после подачи всех изображений, представляющих обучающую выборку. А моя глупая ошибка была в том, что я обучала персептрон до нужной ошибки на каждом секторе изображений. Вот и получалось, что весовые коэффициенты сети подстраивались на распознавание только того пола, представителем которого был человек на последней фотографии в выборке.
Можно и на каждом отдельном образе учить персептрон. Только учить его не до упора - а чуть-чуть, и переходить к следующему образу. Так называемое online-обучение. На больших и сверхбольших базах данных гарантированно будет быстрее, чем batch-обучение (обучение по суммарному для выборки образов градиенту).

Цитата Сообщение от SecretSilent Посмотреть сообщение
Может быть, кто-то знает, как наиболее оптимально подобрать количество нейронных элементов в сжимающем слое? Может быть, есть какие-то формулы... Просто эмпирический подход ну никак не подходит сеть и так оооооочень долго обучается.
Формулы есть, но они не работают. Гарантирую всем своим опытом. Т.е. всё равно приходится тупо перебирать набор размеров сети и строить график изменения желаемой функции (например, график ошибки) вдоль оси размера и искать на этом графике экстремум.
А что долго обучается - так это проблема кривого программного кода (неоптимизирован или не позволяет компилятору задействовать наиболее эффективные команды процессора), либо проблема Билдера (он о современных командах процессора и не знает), либо проблема неправильно выбранного алгоритма. У меня вариант ооочень многослойного персептрона (гораздо большего размера, чем у Вас) на 250 тыс. картинок размером в 100*200 обучается за несколько часов, а на Вашей базе и при Вашем размере сети обучится, думаю, максимум за минуты
1
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 6
04.06.2015, 18:35
SecretSilent, привет, у тебя не остталось курсача по нейросетевому программированию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2015, 18:35
Помогаю со студенческими работами здесь

AR Распознавание изображений фронтальной камерой
Всем привет! Друзья, такой вопрос, работаю над проектом, в котором необходимо распознавать изображения с помощью фронтальной камеры...

Распознавание изображений (Python код в Matlab'e)
Пoмогите пожалуйста написать в Matlab'e код написанный языком Python. заранее большое спасибo! http://habrahabr.ru/post/116603/ ...

AForge.Neuro. Распознавание графических изображений
Реализовать распознавание заданных образов на примере лаб.3 Треугольник, квадрат, ромб, круг

Распознавание изображений - ошибка при обучении
Библиотека AFORGE.NET neuro Попытался сделать распознаватель изображений / букв и т п. Получился такой алгоритм: Считать...

Перцептрон: распознавание изображений букв, заданных в виде матриц
Нужно: Теория Написал чето: using System; using System.Collections.Generic; using System.Linq; using System.Text;


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru