Download Center


Инсталлятор пакета прикладных программ Character Recognition - 7.14 MB

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

Ниже приведён список программ, входящих в состав пакета Character Recognition

5.59 KB

Проект осуществляет моделирование, функционирование и обучение искусственной нейронной сети (ИНС) архитектуры многослойный персептрон (MLP).

COM-Server используется в других проектах, где требуется моделирование сетки (COM-Client, Character Recognition (Q recognition), SimpleImageQualifier) или другие возможности модуля (напр, удаление дублей из обучающей выборки: CharacterMaker).

SOURCE (dll_com-server.rar) - 29.51 KB
PROGRAMMER'S MANUAL (com-server_pmanual.rar) - 13.62 KB
PROGRAMMER'S MANUAL (HTML Online version)

12.42 KB

Проект создан для демонстрации возможностей класса TNet, который реализован в проекте COM-Server.

Например, имеется видео, где используются сетки Num.ann, Rus.ann и Eng.ann для распознавания символов соответсвующих алфавитов.

SOURCE (exe_com-client.rar) - 198.94 KB
PROGRAMMER'S MANUAL (com-client_pmanual.rar) - 6.74 KB
PROGRAMMER'S MANUAL (HTML Online version)
VIDEO MANUAL (com-client_-_users_manual.exe) - 9.48 MB


DEMO-VIDEO (characters_recognition_num.exe) - 1.2 MB
DEMO-VIDEO (characters_recognition_eng.exe) - 203.15 KB
DEMO-VIDEO (characters_recognition_rus.exe) - 223.43 KB

15.92 KB

Проект создан для формирования обучающей выборки, которой и будет обучаться искусственная нейросетка дальше. В проекте Character Recognition используется обучение с учителем, поэтому обучающая выборка состоит из входных векторов и соответствующих выходных векторов. Входные векторы - это информация, подаваемая на вход сетки, а выходные векторы - это состояния нейронов выходного слоя, которые должны быть у сетки после функционирования, при подаче на её вход соответсвующих входных векторов.

SOURCE (exe_charactermaker.rar) - 763.11 KB
VIDEO MANUAL (charactermaker_-_users_manual.exe) - 5.61 MB

25.42 KB

Проект создан для формирования двух специфических обучающих выборок - для нейросеток Parts.ann и Parts2.ann. Идея этих сеток заключается в том, что перед тем, как подать изображение (а также, некоторые др. признаки, например, топологическую проекцию) на главную сетку (напр., Num.ann), изображение разрезается особым образом на некоторое кол-во кусков, каждый из этих кусоков подаётся на сетку Parts.ann или Parts2.ann затем, ловится выход этой сетки и подаётся на вход главной сетки. Таким образом, главная сетка "имеет представление" о классах кусках изображения.

SOURCE (exe_simpleimagequalifier.rar) - 249.55 KB
VIDEO MANUAL (simpleimagequalifier_-_users_manual.exe) - 2.46 MB

5.59 KB

ImgProcess (DLL)

В данном модуле реализованы функции по работе с изображениями; с использованием графической библиотеки CxImage.

Библиотека написана на C++ в среде разработки MS Visual Studio 6 SP5.

SOURCE (dll_imgprocess.rar) - 53.31 KB
SOURCE (img_process.chm) - 495.33 KB

8.74 KB

Проект создан для демонстрации возможностей библиотеки ImgProcess. С помощью программы ImageProcessing можно преобразовывать (централизация, скелетонизация, ликвидация шума ...) изображения, получившиеся после создания обучающей выборки программы charactermaker.

SOURCE (exe_imageprocessing.rar) - 113.45 KB
VIDEO MANUAL (imageprocessing_-_users_manual.exe) - 2.12 MB

5.19 KB

Проект создан для конвертации LeCun'овской MNIST-базы формата *.IDX в кучу BMP-файлов.

SOURCE (exe_idx_to_bmp_converter.rar) - 67.45 KB

6.78 KB

Проект для конвертации одной древней базы символов. Смысл программы заключается в том, чтобы преобразовать кучу файлов векторного формата в два файла target и pattern, которые имеют несколько другую структуру. Для конвертации этих файлов в BMP'хи нужно воспользоваться программой Convert_CC to BMP Converter.

Этот проект создавал не я. Однако, в нём наблюдались какие-то непонятные bug'и с памятью, из-за чего программа просто нафиг вылетала. Надо сказать, что эта проблема до сих пор полностью не решена. Однако, мне кое-как удалось переконвертить всё это дело.

SOURCE (exe_convert_cc.rar) - 9.96 KB

5.15 KB

Проект для конвертации файлов target и pattern, получившихся в результате работы программы Convert_CC в кучу BMP-файлов.

SOURCE (exe_convert_cc_to_bmp_converter.rar) - 67.07 KB

11.43 KB

Данный проект (QM) создан для формирования конфигурационных файлов анкет. Т.е. открывается шаблон анкеты, и, пользователь указывает поля и ячейки этого шаблона а также тип этих полей и ячеек (чтобы потом можно было определить какую нейросеть использовать для распознавания того или иного поля). После чего информация сохраняется в виде конфигурационного файла, оригинального изображения анкеты (*_orign.png) и изображения анкеты с наложенными ячейками полей - эта инфа сохраняется в папку Configs.cfg.

SOURCE (exe_questionnaire_maker.rar) - 939.94 KB
VIDEO MANUAL (questionnaire_maker_-_users_manual.exe) - 7.56 MB

13.65 KB

Данный проект (CR: Q recognition) создан для демонстрации возможностей модуля распознавания символов при распознавании отсканированных изображений анкет.

SOURCE (exe_character_recognition.rar) - 127.62 KB
VIDEO MANUAL (characterrecognition_-_users_manual.exe) -
(файл временно недоступен из-за того, что не помещается на хостинг ... скоро выложу на файлообменник =) )

5.59 KB

Controls (DLL)

Проект представляет собой библиотеку, в которой имеются control'ы (а также, описан интерфейс для доступа к этим control'ам), используемые в разных проектах. Например, контрол, отображающий окно с лог-файлом используется в двух проектах: COM-Client и Character Recognition (Q recognition).

SOURCE (dll_controls.rar) - 6.4 KB

5.59 KB

Functions (DLL)

Проект представляет собой библиотеку, в которй имеются функции, используемые в разных проектах. Например, функция AddBitmapToCollection(), используемая в проектах CharacterMaker и CharacterRecognition (Q recognition).

SOURCE (dll_functions.rar) - 5.75 KB



STUFF

20.08 KB

QSample

PhotoShop'ный проектик анкеты, которая используется в проекте CharacterRecognition.

qsample.rar - 536.21 KB

20.56 KB

Research

Результаты моего исследования по проекту Character Recognition.

Смысл заключается в том, что чем больше информации о объекте распознавания на вход сетки подаётся в процессе обучения, тем быстрее сеть обучается несмотря на её "разрастающийся" размер.

И вообще - чем больше информации об объекте распознавания поступает на вход, тем больший процент распознавания сетка покажет на тестовой выборке, когда достигнет "конца" процесса обучения (по крайней мере, так получилось в предметной области распознавания изображений символов, в проекте CharacterRecognition).

В данном случае, нейросетки Parts & Parts2 применяются для увеличения кол-ва информации, подаваемой на вход главной сетки.

research.zip - 23.17 KB

5.59 KB

Modified sources from LIB_CXIMAGE v5.99c

Проект ImgProcess использует библиотеку CxImage. В процессе реализации функций библиотеки ImgProcess, в проекте CxImage обнаружились кое-какие ошибки. Эти ошибки были успешно устранены, и, поэтому, я выкладываю файлы (sources), которыми нужно будет заменить оригинальные файлы в проекте CxImage.

SOURCE (lib_cximage.rar) - 13.54 KB

5.59 KB

GOOD_WORK.bat ;)

Поскольку проект CR содержит множество проектов, при этом, каждый проект находится в отдельной папке, причём исполняемые файлы одних проектов ожидают "увидеть" исполняемые файлы других проектов в "своей" папки ...

В общем, этот исполняемый файл помещается в папку с проектами, и, при запуске, пихает исполняемые файлы куда нужно. А также, удаляет лишний хлам.

SOURCE (good_work.rar) - 795 bytes

13.03 KB

ImageTransforming

Этот проект (который был написан не мной - спасибо доброму человеку с форума http://www.gamedev.ru/forum) используется в проекте ImgProcess. Выполняет трансформацию изображения, как будто это изображение вписано в четырёхугольник.

Заметьте, что эту технологию применили для программы "переключения между окнами" в OS Windows Vista, чтобы придать окнам 3D'шный вид

SOURCE (image_transforming.zip) - 570.98 KB

5.59 KB

Нейросетки

Внутри архивчиков находятся сами файлы нейросеток (*.ANN) и их конфиги (*.CFG). Они же находятся в инсталлере.

Parts.ann и Parts2.ann - это нейросетки, которые используются тремя другими: Num.ann, Rus.ann и Eng.ann. Причём на вход сеток Parts.ann и Parts2.ann подаются куски распознаваемого изображения размерами 10x10 и 5x5 соответственно (+ некоторая др. инфа), а результаты их функционирования подаются на сетку Num.ann или Rus.ann или Eng.ann (зависит от алфавита, который нужно распознать). После чего ответ ловится с соотв. сетки.

NUM.ANN (num.rar) - 649.32 KB
RUS.ANN (rus.rar) - 653.33 KB
ENG.ANN (eng.rar) - 648.15 KB
PARTS.ANN (parts.rar) - 56.34 KB
PARTS2.ANN (parts2.rar) - 11.72 KB
NUM.ANN & other ... (num&parts_best) - 861.45 KB (это сетка, которая обучалась больше 100 часов машинного времени на CeleronM, 1.6GHz ... там 1 нейрон выходного слоя отвечает за распознавание пробела ;), что не есть гут ... поэтому в стандартной комплектации CR-пакета её нет; вместо неё лежит та, что ~обучалась 10-15 часов)

5.59 KB

Обучающая выборка (Dataset) входные вектора

Обучающая выборка состоит из двух вещей: входные векторы (dataset) и соответствующие им выходные векторы (состояния нейронов выходного слоя - напр., генерируются программой CharacterMaker).

Грубо говоря, входные вектора - это изображения, на которых сетка учится. Чем больше база с этими векторами тем лучше она научится.

Для того, чтобы было удобно создать такую базу векторов, была создана программа charactermaker. Мне было лень создавать большую обучающую выборку, и, поэтому сетки Rus.ann и Eng.ann были обучены на малой обучающей выборке, которую я & stuff people создавали лично (см. Rus*.dat и Eng*.dat).

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

  • LeCun'овская MNIST;
  • И ещё какая-то с префиксом "CC" (однако она никуда не годится: во-первых там не полный английский алфавит, а только 10 символов (!), во-вторых изображения слишком мелкие: 8x12 пикселей и цветность у них 1 BPP (BitPerPixel));

    База MNIST замечательно подошла. В ней 60 000 изображений обучающей выборки и 10 000 изображений тестовой. Именно на ней и была обучена сетка Num.ann, и, поэтому, она показывает неплохие результаты.

    Ещё тут выложено две базы (Parts*.dat, Parts2*.dat), на которых обучались сетки Parts.ann и Parts2.ann. Надо сказать, что обучались они на выборке, где толщина скелета контура изображения символа была где-то 3 пикселя, однако распознавали они куски символов, где толщина скелета была всего 1 пиксель, что не очень хорошо (думается мне, что можно поднять качество распознавания, изменив обучающую выборку и подобрав адекватные классы для сеток Parts.ann и Parts2.ann; однако мне лень что-то менять %->> ).

    P.S.: для того, чтобы превратить *.DAT-файлы в BMP-хи, используйте программу COM-Client.

  • cache_num_(60000).rar - 1.28 MB (*.DAT; preprocessed by imageprocessing; LeCun's learn-base)
    cache_num_(10000).rar - 230.96 KB (*.DAT; preprocessed by imageprocessing; LeCun's test-base)
    cache_rus_(6135).rar - 119.89 KB (*.DAT; preprocessed by imageprocessing; my & stuff people base)
    cache_eng_(2491).rar - 48.16 KB (*.DAT; preprocessed, by imageprocessing; my & stuff people base)
    cache_parts_(4055).rar - 33.13 KB (*.DAT; created in SimpleImageQualifier; my)
    cache_parts2_(793).rar - 3.36 KB (*.DAT; created in SimpleImageQualifier; my)
    cc_learn_(1000).rar - 167.68 KB (*.BMP & STUFF; shlack_base1)
    cc_teach_(5000).rar - 802.25 KB (*.BMP & STUFF; shlack_base2)


    (c) Brain-LAB; by Alexander Panin in 2008