Модифицированные методы и алгоритмы распознавание образов при решении проблем "Data mining"

Анализ методов и моделей интеллектуального анализа данных. Модификация методов и алгоритмов распознавания текста и лица. Значение программного обеспечения для решения задачи распознавания текстов и лиц. Режим работы программного обеспечение "DPro".

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 24.05.2018
Размер файла 4,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

bRect.Add("sex", new Rectangle(new Point(1145, 420), new Size(175, 100)));

bRect.Add("passportNo", new Rectangle(new Point(1060, 1090), new Size(390, 90)));

bRect.Add("authority", new Rectangle(new Point(70, 740), new Size(730, 140)));

bRect.Add("picture", new Rectangle(new Point(85, 1195), new Size(400, 535)));

bRect.Add("lastnameEng", new Rectangle(new Point(490, 1175), new Size(570, 95)));

bRect.Add("firstnameEng", new Rectangle(new Point(490, 1280), new Size(570, 100)));

bRect.Add("birthdayEng", new Rectangle(new Point(490, 1450), new Size(380, 65)));

bRect.Add("dateOfIssueEng", new Rectangle(new Point(0, 0), new Size(0, 0)));

bRect.Add("dateOfExpireEng", new Rectangle(new Point(0, 0), new Size(0, 0)));

bRect.Add("sexEng", new Rectangle(new Point(490, 1515), new Size(160, 75)));

rectangles = new List<Dictionary<string, Rectangle>>();

rectangles.Add(pRect);

rectangles.Add(bRect);

}

public PleaseWaitForm(string imageLocation, bool isBioPassport)

{

InitializeComponent();

this.progressPanel1.AutoHeight = true;

this.imageLocation = imageLocation;

this.isBioPassport = isBioPassport;

fillList();

Size size;

if (isBioPassport)

size = new Size(1488, 2043);

else

size = new Size(1520, 2056);

if (!EditImage.ResizeImage(imageLocation, size))

DialogResult = System.Windows.Forms.DialogResult.Cancel;

}

#region Overrides

public override void SetCaption(string caption)

{

base.SetCaption(caption);

this.progressPanel1.Caption = caption;

}

public override void SetDescription(string description)

{

base.SetDescription(description);

this.progressPanel1.Description = description;

}

public override void ProcessCommand(Enum cmd, object arg)

{

base.ProcessCommand(cmd, arg);

}

#endregion

public enum WaitFormCommand

{

}

private void PleaseWaitForm_Shown(object sender, EventArgs e)

{

try

{

string temp = TextFromImage.GetTextFromImage(Image.FromFile(imageLocation), MODI.MiLANGUAGES.miLANG_RUSSIAN).ToLower();

if (temp.Contains("фам")

|| temp.Contains("исм")

|| temp.Contains("от"))

this.isBioPassport = false;

else

this.isBioPassport = true;

////Cropped Image Recognizing with MODI

int isBP = 0;

MODI.MiLANGUAGES language;

string tSex = "АЁЛ";

if (isBioPassport)

{

isBP = 1;

language = MODI.MiLANGUAGES.miLANG_ENGLISH;

tSex = "AYOL";

}

else

{

isBP = 0;

language = MODI.MiLANGUAGES.miLANG_RUSSIAN;

tSex = "АЁЛ";

}

string lNameR = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["lastname"]), language).Replace("ФАМИЛИЯ", "");

string lNameE = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["lastnameEng"]), MODI.MiLANGUAGES.miLANG_ENGLISH).Replace("FAMILIYA", "");

string fNameR = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["firstname"]), language).Replace("ИСМ", "");

string fNameE = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["firstnameEng"]), MODI.MiLANGUAGES.miLANG_ENGLISH).Replace("ISM", "");

lastName = isBioPassport ? EditString.GetCorrectString(LatinToCyrill.Convert(lNameR), lNameE): EditString.GetCorrectString(lNameR, lNameE);

//EditString.GetCorrectString(LatinToCyrill.Convert(lNameR), lNameE);

firstName = EditString.GetCorrectString(fNameR, fNameE);

middleName = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["middlename"]), language).Replace(" ", "");

if (isBioPassport)

middleName = EditString.GetOnlyLetters(LatinToCyrill.Convert(middleName), EditString.Alphabet.Cyrillic).Replace("ОТА", "").Replace("ОТА", "").Replace(" ", "");

else

middleName = EditString.GetOnlyLetters(middleName, EditString.Alphabet.Cyrillic).Replace("ОТАСИНИНГ", "").Replace("ИСМИ", "").Replace("ОТЧЕСТВО", "").Replace("ОТА", "").Replace("ОТА", "").Replace(" ", "");

string bDayR = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["birthday"]), language);

string bDayE = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["birthdayEng"]), MODI.MiLANGUAGES.miLANG_ENGLISH);

if (isBioPassport)

{

bDayR = EditString.GetCorrectDateTime(bDayR);

bDayE = EditString.GetCorrectDateTime(bDayE);

}

if (bDayR.Length == 10)

{

if (!DateTime.TryParse(bDayR, out birthday))

DateTime.TryParse(bDayE, out birthday);

}

else

DateTime.TryParse(bDayE, out birthday);

string iDateR = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["dateOfIssue"]), language);

string iDateE = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["dateOfIssueEng"]), MODI.MiLANGUAGES.miLANG_ENGLISH);

if (isBioPassport)

{

iDateR = EditString.GetCorrectDateTime(iDateR);

iDateE = EditString.GetCorrectDateTime(iDateE);

}

if (!DateTime.TryParse(iDateR, out dateOfIssue))

DateTime.TryParse(iDateE, out dateOfIssue);

string eDateR = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["dateOfExpire"]), language);

string eDateE = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["dateOfExpireEng"]), MODI.MiLANGUAGES.miLANG_ENGLISH);

if (isBioPassport)

{

eDateR = EditString.GetCorrectDateTime(eDateR);

eDateE = EditString.GetCorrectDateTime(eDateE);

}

if (DateTime.TryParse(eDateR, out dateOfExpire))

isUnlimited = false;

else if (DateTime.TryParse(eDateE, out dateOfExpire))

isUnlimited = false;

else

isUnlimited = true;

string seX = EditString.GetLastWord(TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["sex"]), language));

sex = seX == tSex ? false: true;

string pNo = TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["passportNo"]), MODI.MiLANGUAGES.miLANG_ENGLISH).Replace(" ", "");

passportNo = pNo.Substring(pNo.Length - 9).Insert(2, " ");

EditString.Alphabet alphabet = isBioPassport == true ? EditString.Alphabet.Latin: EditString.Alphabet.Cyrillic;

authority = EditString.GetOnlyLetters(TextFromImage.GetTextFromImage(EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["authority"]), language), alphabet);

if (isBioPassport)

authority = LatinToCyrill.Convert(authority);

picture = EditImage.CropImage(Image.FromFile(imageLocation), rectangles[isBP]["picture"]);

}

catch (Exception ex)

{

//MessageBox.Show(ex.ToString());

}

isClosed = true;

DialogResult = System.Windows.Forms.DialogResult.OK;

}

}

д) Распознавание лиц с видеопотока

public class EigenObjectRecognizer

{

private Image<Gray, Single>[] _eigenImages;

private Image<Gray, Single> _avgImage;

private Matrix<float>[] _eigenValues;

private string[] _labels;

private double _eigenDistanceThreshold;

public Image<Gray, Single>[] EigenImages

{

get { return _eigenImages; }

set { _eigenImages = value; }

}

/// <summary>

/// Get or set the labels for the corresponding training image

/// </summary>

public String[] Labels

{

get { return _labels; }

set { _labels = value; }

}

public double EigenDistanceThreshold

{

get { return _eigenDistanceThreshold; }

set { _eigenDistanceThreshold = value; }

}

public Image<Gray, Single> AverageImage

{

get { return _avgImage; }

set { _avgImage = value; }

}

public Matrix<float>[] EigenValues

{

get { return _eigenValues; }

set { _eigenValues = value; }

}

private EigenObjectRecognizer()

{

}

public EigenObjectRecognizer(Image<Gray, Byte>[] images, ref MCvTermCriteria termCrit)

: this(images, GenerateLabels(images.Length), ref termCrit)

{

}

private static String[] GenerateLabels(int size)

{

String[] labels = new string[size];

for (int i = 0; i < size; i++)

labels[i] = i.ToString();

return labels;

}

public EigenObjectRecognizer(Image<Gray, Byte>[] images, String[] labels, ref MCvTermCriteria termCrit)

: this(images, labels, 0, ref termCrit)

{

}

public EigenObjectRecognizer(Image<Gray, Byte>[] images, String[] labels, double eigenDistanceThreshold, ref MCvTermCriteria termCrit)

{

Debug.Assert(images.Length == labels.Length, "The number of images should equals the number of labels");

Debug.Assert(eigenDistanceThreshold >= 0.0, "Eigen-distance threshold should always >= 0.0");

CalcEigenObjects(images, ref termCrit, out _eigenImages, out _avgImage);

_eigenValues = Array.ConvertAll<Image<Gray, Byte>, Matrix<float>>(images,

delegate(Image<Gray, Byte> img)

{

return new Matrix<float>(EigenDecomposite(img, _eigenImages, _avgImage));

});

_labels = labels;

_eigenDistanceThreshold = eigenDistanceThreshold;

}

#region static methods

public static void CalcEigenObjects(Image<Gray, Byte>[] trainingImages, ref MCvTermCriteria termCrit, out Image<Gray, Single>[] eigenImages, out Image<Gray, Single> avg)

{

int width = trainingImages[0].Width;

int height = trainingImages[0].Height;

IntPtr[] inObjs = Array.ConvertAll<Image<Gray, Byte>, IntPtr>(trainingImages, delegate(Image<Gray, Byte> img) { return img.Ptr; });

if (termCrit.max_iter <= 0 || termCrit.max_iter > trainingImages.Length)

termCrit.max_iter = trainingImages.Length;

int maxEigenObjs = termCrit.max_iter;

#region initialize eigen images

eigenImages = new Image<Gray, float>[maxEigenObjs];

for (int i = 0; i < eigenImages.Length; i++)

eigenImages[i] = new Image<Gray, float>(width, height);

IntPtr[] eigObjs = Array.ConvertAll<Image<Gray, Single>, IntPtr>(eigenImages, delegate(Image<Gray, Single> img) { return img.Ptr; });

#endregion

avg = new Image<Gray, Single>(width, height);

CvInvoke.cvCalcEigenObjects(

inObjs,

ref termCrit,

eigObjs,

null,

avg.Ptr);

}

public static float[] EigenDecomposite(Image<Gray, Byte> src, Image<Gray, Single>[] eigenImages, Image<Gray, Single> avg)

{

return CvInvoke.cvEigenDecomposite(

src.Ptr,

Array.ConvertAll<Image<Gray, Single>, IntPtr>(eigenImages, delegate(Image<Gray, Single> img) { return img.Ptr; }),

avg.Ptr);

}

#endregion

public Image<Gray, Byte> EigenProjection(float[] eigenValue)

{

Image<Gray, Byte> res = new Image<Gray, byte>(_avgImage.Width, _avgImage.Height);

CvInvoke.cvEigenProjection(

Array.ConvertAll<Image<Gray, Single>, IntPtr>(_eigenImages, delegate(Image<Gray, Single> img) { return img.Ptr; }),

eigenValue,

_avgImage.Ptr,

res.Ptr);

return res;

}

public float[] GetEigenDistances(Image<Gray, Byte> image)

{

using (Matrix<float> eigenValue = new Matrix<float>(EigenDecomposite(image, _eigenImages, _avgImage)))

return Array.ConvertAll<Matrix<float>, float>(_eigenValues,

delegate(Matrix<float> eigenValueI)

{

return (float)CvInvoke.cvNorm(eigenValue.Ptr, eigenValueI.Ptr, Emgu.CV.CvEnum.NORM_TYPE.CV_L2, IntPtr.Zero);

});

}

public void FindMostSimilarObject(Image<Gray, Byte> image, out int index, out float eigenDistance, out String label)

{

float[] dist = GetEigenDistances(image);

index = 0;

eigenDistance = dist[0];

for (int i = 1; i < dist.Length; i++)

{

if (dist[i] < eigenDistance)

{

index = i;

eigenDistance = dist[i];

}

}

label = Labels[index];

}

public String Recognize(Image<Gray, Byte> image)

{

int index;

float eigenDistance;

String label;

FindMostSimilarObject(image, out index, out eigenDistance, out label);

return (_eigenDistanceThreshold <= 0 || eigenDistance < _eigenDistanceThreshold ) ? _labels[index]: String.Empty;

}

}

Размещено на Allbest.ru

...

Подобные документы

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

  • Понятие и особенности построения алгоритмов распознавания образов. Различные подходы к типологии методов распознавания. Изучение основных способов представления знаний. Характеристика интенсиональных и экстенсиональных методов, оценка их качества.

    презентация [31,6 K], добавлен 06.01.2014

  • Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.

    курсовая работа [2,7 M], добавлен 15.08.2011

  • Анализ проблем, возникающих при применении методов и алгоритмов кластеризации. Основные алгоритмы разбиения на кластеры. Программа RapidMiner как среда для машинного обучения и анализа данных. Оценка качества кластеризации с помощью методов Data Mining.

    курсовая работа [3,9 M], добавлен 22.10.2012

  • Создание программного средства, осуществляющего распознавание зрительных образов на базе искусственных нейронных сетей. Методы, использующиеся для распознавания образов. Пандемониум Селфриджа. Персептрон Розенблатта. Правило формирования цепного кода.

    дипломная работа [554,8 K], добавлен 06.04.2014

  • Необходимость в системах распознавания символов. Виды сканеров и их характеристики. Оптимальное разрешение при сканировании. Программы распознавания текста. Получение электронного документа. FineReader - система оптического распознавания текстов.

    презентация [469,2 K], добавлен 15.03.2015

  • Основные понятия теории распознавания образов и ее значение. Сущность математической теории распознавания образов. Основные задачи, возникающие при разработке систем распознавания образов. Классификация систем распознавания образов реального времени.

    курсовая работа [462,2 K], добавлен 15.01.2014

  • Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.

    дипломная работа [887,3 K], добавлен 26.11.2013

  • Проектирование приложения на языке С# в среде Microsoft Visual Studio 2008: составление алгоритмов сегментации текста документа и распознавания слова "Указ" в нем, создание архитектуры и интерфейса программного обеспечения, описание разработанных классов.

    курсовая работа [2,4 M], добавлен 05.01.2011

  • Описание функциональных возможностей технологии Data Mining как процессов обнаружения неизвестных данных. Изучение систем вывода ассоциативных правил и механизмов нейросетевых алгоритмов. Описание алгоритмов кластеризации и сфер применения Data Mining.

    контрольная работа [208,4 K], добавлен 14.06.2013

  • Основы для проведения кластеризации. Использование Data Mining как способа "обнаружения знаний в базах данных". Выбор алгоритмов кластеризации. Получение данных из хранилища базы данных дистанционного практикума. Кластеризация студентов и задач.

    курсовая работа [728,4 K], добавлен 10.07.2017

  • Условия применения и технические требования для работы программно-аппаратной платформы. Система распознавания лиц VOCORD Face Control. Система распознавания текста ABBYY FineReader. Алгоритмы и методы, применяемые в программе. Алгоритм хеширования MD5.

    дипломная работа [1,8 M], добавлен 19.01.2017

  • Распознавание образов - задача идентификации объекта или определения его свойств по его изображению или аудиозаписи. История теоретических и технических изменений в данной области. Методы и принципы, применяемые в вычислительной технике для распознавания.

    реферат [413,6 K], добавлен 10.04.2010

  • Выбор типа и структуры нейронной сети. Подбор метода распознавания, структурная схема сети Хопфилда. Обучение системы распознавания образов. Особенности работы с программой, ее достоинства и недостатки. Описание интерфейса пользователя и экранных форм.

    курсовая работа [3,0 M], добавлен 14.11.2013

  • Фильтрация шумов изображения. Алгоритмы его бинаризации и поворота. Формирование информативных признаков для распознавания нот. Схема программного обеспечения. Описание классов, функций, методов, реализованных в программе. Тестирование приложения.

    курсовая работа [2,0 M], добавлен 17.12.2013

  • Обзор математических методов распознавания. Общая архитектура программы преобразования автомобильного номерного знака. Детальное описание алгоритмов: бинаризация изображения, удаление обрамления, сегментация символов и распознавание шаблонным методом.

    курсовая работа [4,8 M], добавлен 22.06.2011

  • Понятие системы распознавания образов. Классификация систем распознавания. Разработка системы распознавания формы микрообъектов. Алгоритм для создания системы распознавания микрообъектов на кристаллограмме, особенности его реализации в программной среде.

    курсовая работа [16,2 M], добавлен 21.06.2014

  • Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.

    курсовая работа [2,1 M], добавлен 20.09.2014

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

    курсовая работа [645,2 K], добавлен 05.04.2015

  • Основные цели и задачи построения систем распознавания. Построение математической модели системы распознавания образов на примере алгоритма идентификации объектов военной техники в автоматизированных телекоммуникационных комплексах систем управления.

    дипломная работа [332,2 K], добавлен 30.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.