![]() |
|
![]() ![]() ![]() |
|
killobyte |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.9.2010 Репутация: нет Всего: нет |
Вообщем задача: дано трехзначное число в виде изображения, нудно распознать число. Известно что изображение сгенерировано стандартным системным шрифтом размером от 20 до 50.
вот пример http://dl.dropbox.com/u/1507766/samples.tar.bz2 но есть некоторые ограничения. размер исходника до 64кб. программа вся одним файлом. за счет чего возникает сомнения по использование однослойного перцептрона. Может можно как то реализовать генерацию изображения заданного шрифта? |
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: нет Всего: 23 |
Можно попробовать воспользоваться нейронными сетями. На них такие задачи решают.
|
|||
|
||||
killobyte |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.9.2010 Репутация: нет Всего: нет |
facepalm >_______<
я же написал про ограничение размера, и то что считаю сомнительным использование однослойного перцептрона |
|||
|
||||
VictorTsaregorodtsev |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 28.7.2006 Репутация: 3 Всего: 8 |
killobyte, Них... не понял. Причём тут персептрон для
реализовать генерацию изображения заданного шрифта? А 64кил исходника хватит и для реализации нейросетки посложнее персептрона. Или надо 64кил исполняемого файла? |
|||
|
||||
killobyte |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.9.2010 Репутация: нет Всего: нет |
для генерации изображения нейросеть не нужна. это просто вариант исходящий из того что шрифты стандартные.
а 64 кб мало потому что максимальный размер цифры 64х64 (шрифт 50 + закорючки) 10 нейронов, у каждого 64*64 входа. итого получаем 40960 весовых коэффициентов. каждый из них записывается в исходник. числа там 1-2 знака, плюс половна отрицательные, так что на каждое число нужно в среднем 2-3 байта. итого получаем около 100кб |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
если время не критично - перебор
![]() генерируем изображения цифр всеми шрифтами всех размеров и сравниваем попиксельно ![]() можно сузить поиск, измерив высоту естественно, есть смысл распознавать цифры отдельно -------------------- qqq |
|||
|
||||
killobyte |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.9.2010 Репутация: нет Всего: нет |
вот как раз и вопрос как генерировать изображение с заданным шрифтом?
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
а... ну по вопросам того, как получить изображение того или иного текста с нужным шрифтом, эффективнее будет обратиться в форум, соответствующий той операционке, на которой всё должно работать
например, в WinAPI это - вызов нескольких функций (создать картинку, контекст к ней, шрифт, написать, всё поудалять), в других ОС, думаю, не сложнее если дело касается C++, то адреса форумов такие: Unix/Linux WinAPI Qt и прочее -------------------- qqq |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 4 Всего: 27 |
а зачем для каждого нейрона делать 64х64 входа? Сделайте 32х32, усредняя соседние значения пикселов. Думаю распознавание цифр от этого не пострадает
|
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: нет Всего: 23 |
||||
|
||||
Enter |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.2.2007 Репутация: 1 Всего: 2 |
я бы сделал так:
1. берем картинку
2. отделяем 1 символ 3. либо определяем размер шрифта, либо растягиваем картинку до нужной величины 4. пишем на ней сверху белым цветом цифру
5. определяем яркость картинки, суммируя яркость всех пикселей
6. далее цикл по цифрам и по шрифтам 7. самая подходящая цифра будет с самой большой яркостью ну и далее по символам естественно, всё это в потоке(ах) зы. только сейчас посмотрел ссылки. там алгоритм крутой, и быстрый, но если посмотреть на картинки, то он не справится с некоторыми. ззы.. эх, ветку не посмотрел. ну думаю алгоритм понятен, и в других языках похожее можно сваять Это сообщение отредактировал(а) Enter - 2.9.2010, 17:31 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |