Download Center
| |
Ниже приведён список программ, входящих в состав пакета Character Recognition |
 |
Проект осуществляет моделирование, функционирование и обучение искусственной нейронной сети (ИНС) архитектуры многослойный персептрон (MLP).
COM-Server используется в других проектах, где требуется моделирование сетки (COM-Client, Character Recognition (Q recognition), SimpleImageQualifier) или другие возможности модуля (напр, удаление дублей из обучающей выборки: CharacterMaker).
|
|
|
|
 |
Проект создан для демонстрации возможностей класса TNet, который реализован в проекте COM-Server.
Например, имеется видео, где используются сетки Num.ann, Rus.ann и Eng.ann для распознавания символов соответсвующих алфавитов.
|
|
|
|
 |
Проект создан для формирования обучающей выборки, которой и будет обучаться искусственная нейросетка дальше. В проекте Character Recognition используется обучение с учителем, поэтому обучающая выборка состоит из входных векторов и соответствующих выходных векторов. Входные векторы - это информация, подаваемая на вход сетки, а выходные векторы - это состояния нейронов выходного слоя, которые должны быть у сетки после функционирования, при подаче на её вход соответсвующих входных векторов.
|
|
|
|
 |
Проект создан для формирования двух специфических обучающих выборок - для нейросеток Parts.ann и Parts2.ann. Идея этих сеток заключается в том, что перед тем, как подать изображение (а также, некоторые др. признаки, например, топологическую проекцию) на главную сетку (напр., Num.ann), изображение разрезается особым образом на некоторое кол-во кусков, каждый из этих кусоков подаётся на сетку Parts.ann или Parts2.ann затем, ловится выход этой сетки и подаётся на вход главной сетки. Таким образом, главная сетка "имеет представление" о классах кусках изображения.
|
|
|
|
 |
В данном модуле реализованы функции по работе с изображениями; с использованием графической библиотеки CxImage.
Библиотека написана на C++ в среде разработки MS Visual Studio 6 SP5.
|
|
|
|
 |
Проект создан для демонстрации возможностей библиотеки ImgProcess. С помощью программы ImageProcessing можно преобразовывать (централизация, скелетонизация, ликвидация шума ...) изображения, получившиеся после создания обучающей выборки программы charactermaker.
|
|
|
|
 |
Проект создан для конвертации LeCun'овской MNIST-базы формата *.IDX в кучу BMP-файлов.
|
|
|
|
 |
Проект для конвертации одной древней базы символов. Смысл программы заключается в том, чтобы преобразовать кучу файлов векторного формата в два файла target и pattern, которые имеют несколько другую структуру. Для конвертации этих файлов в BMP'хи нужно воспользоваться программой Convert_CC to BMP Converter.
Этот проект создавал не я. Однако, в нём наблюдались какие-то непонятные bug'и с памятью, из-за чего программа просто нафиг вылетала. Надо сказать, что эта проблема до сих пор полностью не решена. Однако, мне кое-как удалось переконвертить всё это дело.
|
|
|
|
 |
Проект для конвертации файлов target и pattern, получившихся в результате работы программы Convert_CC в кучу BMP-файлов.
|
|
|
|
 |
Данный проект (QM) создан для формирования конфигурационных файлов анкет. Т.е. открывается шаблон анкеты, и, пользователь указывает поля и ячейки этого шаблона а также тип этих полей и ячеек (чтобы потом можно было определить какую нейросеть использовать для распознавания того или иного поля). После чего информация сохраняется в виде конфигурационного файла, оригинального изображения анкеты (*_orign.png) и изображения анкеты с наложенными ячейками полей - эта инфа сохраняется в папку Configs.cfg.
|
|
|
|
 |
Данный проект (CR: Q recognition) создан для демонстрации возможностей модуля распознавания символов при распознавании отсканированных изображений анкет.
|
|
|
|
 |
Проект представляет собой библиотеку, в которой имеются control'ы (а также, описан интерфейс для доступа к этим control'ам), используемые в разных проектах. Например, контрол, отображающий окно с лог-файлом используется в двух проектах: COM-Client и Character Recognition (Q recognition).
|
|
|
|
 |
Проект представляет собой библиотеку, в которй имеются функции, используемые в разных проектах. Например, функция AddBitmapToCollection(), используемая в проектах CharacterMaker и CharacterRecognition (Q recognition).
|
|
|
|
|
 |
PhotoShop'ный проектик анкеты, которая используется в проекте CharacterRecognition.
|
|
|
|
 |
Результаты моего исследования по проекту Character Recognition.
Смысл заключается в том, что чем больше информации о объекте распознавания на вход сетки подаётся в процессе обучения, тем быстрее сеть обучается несмотря на её "разрастающийся" размер.
И вообще - чем больше информации об объекте распознавания поступает на вход, тем больший процент распознавания сетка покажет на тестовой выборке, когда достигнет "конца" процесса обучения (по крайней мере, так получилось в предметной области распознавания изображений символов, в проекте CharacterRecognition).
В данном случае, нейросетки Parts & Parts2 применяются для увеличения кол-ва информации, подаваемой на вход главной сетки.
|
|
|
|
 |
Modified sources from LIB_CXIMAGE v5.99c
Проект ImgProcess использует библиотеку CxImage. В процессе реализации функций библиотеки ImgProcess, в проекте CxImage обнаружились кое-какие ошибки. Эти ошибки были успешно устранены, и, поэтому, я выкладываю файлы (sources), которыми нужно будет заменить оригинальные файлы в проекте CxImage.
|
|
|
|
 |
Поскольку проект CR содержит множество проектов, при этом, каждый проект находится в отдельной папке, причём исполняемые файлы одних проектов ожидают "увидеть" исполняемые файлы других проектов в "своей" папки ...
В общем, этот исполняемый файл помещается в папку с проектами, и, при запуске, пихает исполняемые файлы куда нужно. А также, удаляет лишний хлам.
|
|
|
|
 |
Этот проект (который был написан не мной - спасибо доброму человеку с форума http://www.gamedev.ru/forum) используется в проекте ImgProcess. Выполняет трансформацию изображения, как будто это изображение вписано в четырёхугольник.
|
|
|
|
 |
Внутри архивчиков находятся сами файлы нейросеток (*.ANN) и их конфиги (*.CFG). Они же находятся в инсталлере.
Parts.ann и Parts2.ann - это нейросетки, которые используются тремя другими: Num.ann, Rus.ann и Eng.ann. Причём на вход сеток Parts.ann и Parts2.ann подаются куски распознаваемого изображения размерами 10x10 и 5x5 соответственно (+ некоторая др. инфа), а результаты их функционирования подаются на сетку Num.ann или Rus.ann или Eng.ann (зависит от алфавита, который нужно распознать). После чего ответ ловится с соотв. сетки.
|
|
|
|
 |
Обучающая выборка (Dataset)
Обучающая выборка состоит из двух вещей: входные векторы (dataset) и соответствующие им выходные векторы (состояния нейронов выходного слоя - напр., генерируются программой CharacterMaker).
Грубо говоря, входные вектора - это изображения, на которых сетка учится. Чем больше база с этими векторами тем лучше она научится.
Для того, чтобы было удобно создать такую базу векторов, была создана программа charactermaker. Мне было лень создавать большую обучающую выборку, и, поэтому сетки Rus.ann и Eng.ann были обучены на малой обучающей выборке, которую я создавали лично (см. Rus*.dat и Eng*.dat).
В сети интернет ужасные напряги с этими базами: подавляющее большинство из них платные. Однако, мне удалось найти две базы:
LeCun'овская MNIST;
И ещё какая-то с префиксом "CC" ();
База 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.
|
|
|
|
|