Технический форум по робототехнике.
maljavka » 06 апр 2008, 14:58
Здравствуйте.
Есть задача: с помощью нейросети (это обязательно) определять границу черного и белого. может кто-нибудь писал простенькие классы на С++? или знает библиотеки с нормальной документацией? желательно на русском. был бы очень благодарен. вообще получаю готовые изображения в массив обычный. и как из него с помощью нейросети понять где черное где белое?
Премного благодарен.
=DeaD= » 06 апр 2008, 15:23
В целом про нейросети полно информации в рунете, там же полно готовых классов для работы с ними. Выбирать есть из чего, однако для такой простой задачи можно и самому написать эмуляцию 1-слойной нейросети.
А детектировать границы - так это проще простого
просто не забывайте что такое нейрон и вы сами легко пропишете нейросеть формирующую из входного изображения изображение с границами, вопрос только - зачем тут нейросети?
PS: Искать за вас библиотеки никто не будет, тем более черт его знает какая вам удобнее окажется.
maljavka » 06 апр 2008, 15:40
=DeaD= писал(а):В целом про нейросети полно информации в рунете, там же полно готовых классов для работы с ними. Выбирать есть из чего, однако для такой простой задачи можно и самому написать эмуляцию 1-слойной нейросети.
А детектировать границы - так это проще простого
просто не забывайте что такое нейрон и вы сами легко пропишете нейросеть формирующую из входного изображения изображение с границами, вопрос только - зачем тут нейросети?
PS: Искать за вас библиотеки никто не будет, тем более черт его знает какая вам удобнее окажется.
нейросети - потому что такое задание.
понимаю, что просто, но не знаю с чего начать.
понимаю, что однослойной достаточно, но как ее создавать? всмысле с чего хотя бы начать? функционал примерно понимаю...
=DeaD= » 06 апр 2008, 15:44
Эээ... я даже не знаю что и рассказать то, всё настолько очевидно...
Ну по сути нейрон - это функция от суммы входов с коэффициентами.
Чтобы выделить точку в которой есть граница нужно взять её значение, умножить на 4 и вычесть из него сумму окружения, таким образом получим меру отличия точки от её ближайшего окружения.
Вот и вся нейросеть вроде?
maljavka » 06 апр 2008, 16:27
а как обучить такую нейронную сеть?
Виталий » 06 апр 2008, 16:37
а как обучить такую нейронную сеть?
1. Прочитать предыдущее сообщение еще раз.
2. Проделать это руками на бумаге.
3. Подумать.
4. Понять, что сеть уже обучена.
maljavka » 06 апр 2008, 16:59
попробую сформулировать вопрос: например есть картинка 30*30 белых пикселей. например в правой верхней части картинки появляются черные пиксели. нейросеть должна дать один ответ. если в левой - другой. и не должна обращать внимания на одиночные пиксели - шум. подскажите пожалуйста как примерно делается.
спасибо.
=DeaD= » 06 апр 2008, 17:02
Мда, вы издеваетесь над нами...
Определитесь сначала что вам надо, потом задавайте вопросы. А то начинается с детектирования границ, а заканчивается на детектировании тёмных крупных областей на рисунке с игнорированием незначительных отклонений.
maljavka » 06 апр 2008, 17:07
прошу прощения, что сначала неправильно поставил задачу.
=DeaD= » 06 апр 2008, 18:39
Так нужно то что? Конкретно скажите только
maljavka » 06 апр 2008, 18:59
получил с камеры картинку. перевожу ее в обычный массив единиц и нулей. получается так, что фон - белый цвет. любые препятствия - черный. надо понять где на картинке находятся препядствия и принимать решение. поскольку движение камеры всегда только вперед, то препядствия могут появляться только спереди, то есть сверху картинки. необходимо значит классифицировать всего по двум признакам: препядствие появляется справа или слева. если по центру, то будем считать, что всё равно, что справа, например. мелкий мусор, то есть шум картинки или неравномерность фона, в рассчет не берется.
спасибо
=DeaD= » 06 апр 2008, 19:04
Дык вам тогда вообще несколько нейронов хватит. Что мудрить то? Каждый нейрон настраиваете на определенную область картинки (заводите в него соответствующую тучу пикселей с равными весами) и всё, т.к. вы завели кучу пикселей с равными весами, то отдельные пиксели шума ничего существенно не испортят. Всё.
maljavka » 06 апр 2008, 19:28
а как это примерно будет выглядеть в виде схемы и формул? не очень понял что-то
=DeaD= » 06 апр 2008, 21:35
Что именно вам не ясно? Я как-то не очень горю рисовать в графике схему сложения N чисел с коэффициентами.
Пусть N1...Nk - значения яркости (0 - минимальная яркость, 1 - максимальная) пачки пикселей в левом верхнем углу, берете X=(N1+...+Nk)/k - это типа нейрон отвечающий за препятствие в левом верхнем углу, как только X близко к 0, значит препятствие. Вот примерно так, что именно тут не ясно?
maljavka » 07 апр 2008, 13:08
ясно =) только как-то настолько просто получается =) ее же фактически и обучать не надо.