Таблица 21. Значение у** (контролирующая выборка). Окончание
|
X4 |
X5 |
X6 |
Y |
Y* |
Y** |
||
|
16 |
0,413 |
0,176 |
0,239 |
1 |
1,165 |
1 |
|
|
17 |
0,206 |
0,143 |
0 |
1 |
0,649 |
1 |
|
|
18 |
0,660 |
0,887 |
0 |
1 |
1,086 |
1 |
|
|
19 |
0,764 |
0,722 |
1 |
1 |
1,458 |
1 |
|
|
20 |
0,471 |
0,292 |
0,996 |
1 |
1,384 |
1 |
|
|
21 |
0,448 |
0,862 |
0 |
1 |
1,162 |
1 |
|
|
22 |
0,747 |
0,967 |
1 |
1 |
1,395 |
1 |
|
|
23 |
0,695 |
0,880 |
1 |
1 |
1,448 |
1 |
|
|
24 |
0,672 |
0,984 |
0,996 |
1 |
1,440 |
1 |
|
|
25 |
0,568 |
0,961 |
0,996 |
1 |
1,484 |
1 |
|
|
26 |
0,011 |
0,001 |
0 |
0 |
0,129 |
0 |
|
|
27 |
0,011 |
0,001 |
0 |
0 |
0,129 |
0 |
|
|
28 |
0,011 |
0,0006 |
0 |
0 |
0,129 |
0 |
|
|
29 |
0,022 |
0,003 |
0 |
0 |
0,159 |
0 |
|
|
30 |
0,011 |
0,001 |
0 |
0 |
0,129 |
0 |
|
|
31 |
0 |
0 |
0 |
0 |
0,100 |
0 |
|
|
32 |
0 |
0 |
0 |
0 |
0,100 |
0 |
Ошибка аппроксимацииE при обучающей выборке:
=0
В ходе анализа ошибки Iи IIрода не выявлены.
Таблица 22. Ошибка аппроксимации
|
Ошибка аппроксимации на контролирующей выборке |
||
|
Полином 1степени |
9,335 |
|
|
Полином 2степени |
0 |
Полином второй степени допускает меньшее количество ошибок на тестирующей выборке. Полином второй степени в дальнейшем будет использоваться для поиска границы объекта на изображении.
4. ТЕХНОЛОГИЧЕСКИЙ ПРОЦЕСС ОБРАБОТКИ ДАННЫХ
4.1 Технология приобретения знаний
Технологический процесс приобретения знаний представлен на рисунке 4.1.
Рис. 4.1. Технология приобретения знаний
4.2 Технология принятия решения
Технологический процесс принятия решений представлен на рисунке 4.2.
Рис. 4.2. Технология принятия решения
5. ПРОГРАММНЫЕ СРЕДСТВА
5.1 Программные средства приобретения знаний
В данной курсовой работе использовались следующие программные средства приобретений знаний:
- программа на C# для преобразования изображения;
- программа на C# для выбора граничных и неграничных точек;
- программа на C# для вычисления признаков изображения;
- MSExcel для корреляционного анализа, выделения информационных признаков, вычисления коэффициентов полинома первой степени, вычисления значения полинома и ошибок;
- программа на C# для вычисления коэффициентов полинома второй степени.
В программу для преобразования изображения загружались необходимые изображения, проводились преобразования и на выходе получались преобразованные изображения.
Полученные изображения загружались в программу для выбора граничных и неграничных точек. На каждом изображении отмечались граничные точки и точки фона. На выходе были получен набор координат граничных и неграничных точек.
Полученные данные были использованы в программе для вычисления признаков, в которой для каждой точки были найдены заданные признаки изображения.
Найденные признаки изображения были загружены MSExcel для дальнейшего анализа по формированию выборки данных. После формирования выборки был проведен корреляционный анализ для выделения информационных признаков. Из выбранных информационных признаков были сформированы обучающая и тестовая выборки.
На основании обучающей выборки были найдены коэффициенты полинома первой и второй степени и рассчитаны ошибки первого и второго рода.
Коэффициенты полинома второй степени были получены с использованием программы для вычисления коэффициентов полинома. На вход программе подавалась обучающая выборка, на выходе программы получались коэффициенты полинома и ошибка аппроксимации. Проанализировав полученные результаты, был выбран полином для использования в принятии решений.
5.2 Программные средства принятия решений
Для принятия решения используется программное решение на языке программирования C#. Процесс принятия решения состоит из двух этапов:
· поиска границы изображения, изображенного на рисунке 5.1. На рисунках 5.2, 5.3, 5.4, 5.5 представлена детализация блоков;
· определения вида гриба, изображенного на рисунка5.6 и 5.7.
Рис. 5.1. Алгоритм поиска границы
Рис. 5.2. Алгоритм Собеля
Рис. 5.3. Алгоритм ЛБШ
Рис. 5.4. Вычисление Мат. Ожидания
Рис. 5.5. Вычисление Дисперсии
Рис. 5.6. Алгоритм определения вида гриба
Рис. 5.7. Алгоритм выделения границы
Пример использования программного средства представлен на рисунках 5.8 - 5.11.
Рис. 5.8. Общий вид программы
На рисунке 5.8. представлен общий вид программного средства. Для загрузки изображений (формат .bmp) необходимо нажать клавишу «Загрузить». Загрузка изображения показана на рисунке 5.9. После загрузки и обработки изображений у пользователя есть возможность просмотреть изображения и их параметры. Для перехода от одного изображения выборки к другому, необходимо воспользоваться клавишами перехода, изображенных на рисунке 5.10. После загрузки изображения, пользователь может вывести на экран акт и накладную для данной выборки, изображенных на рисунках 5.11 и 5.12 соответственно.
Рис. 5.9. Выбор изображения
Рис. 5.10. Просмотр изображения
Рис. 5.11. Закупочный акт
Рис. 5.12. Накладная
ЗАКЛЮЧЕНИЕ
В данном проекте была разработана автоматизированная интеллектуальная информационная система сортировки грибов.
В процессе работы был произведен анализ предметной области и определены цели и задачи АИИС.
Был разработан технологический процесс обработки данных, концептуальное и логическое проектирование реляционной БД.
Была разработана программа для сортировки грибов.
Внедрение АИИС позволит сортировать грибы с минимальным привлечением человеческих ресурсов, что позволит в перспективе уменьшить затраты на сортировку, так же увеличится качество и скорость сортировки.
CONCLUSION
In this project, an automated intellectual information system for sorting mushrooms has been developed.
In the process of work, the domain was analyzed and AIIS goals and objectives were defined.
The technological process of data processing was developed, the conceptual and logical design of a relational database.
A program for sorting mushrooms was developed.
The introduction of AIIS will make it possible to sort the mushrooms with minimal human resources, which will in the long run reduce the cost of sorting, as will the quality and speed of sorting.
ПРИЛОЖЕНИЕ 1. Словарь терминов
Таблица «Словарь терминов»
|
Код понятия |
Наименование понятия |
Определение, пояснение |
|
|
0001 |
Артель |
Добровольное объединение людей для совместной работы или иной коллективной деятельности, часто с участием в общих доходах и общей ответственностью на основе круговой поруки. |
|
|
0002 |
Белый гриб |
Гриб из рода Боровик. |
|
|
0003 |
Вид |
Совокупность близких по происхождению организмов, относительно схожих в морфофизиологическом отношении |
|
|
0004 |
Выплата |
Выплаченные деньги. Очередные выплаты. |
|
|
0005 |
Граница |
Реальная или воображаемая линия в пространстве или во времени, отделяющая один объект (тело, процесс или состояние) от другого. |
|
|
0006 |
Грибы |
Царство живой природы, объединяющее эукариотические организмы, сочетающие в себе некоторые признаки как растений, так и животных. |
|
|
0007 |
Доставка |
Подача, поставка, снабжение, обеспечение. |
|
|
0008 |
Заготовитель |
Лицо, организация, производящие государственные или кооперативные заготовки чего-нибудь |
|
|
0009 |
Закупочный акт |
Составляется в двух экземплярах в момент совершения закупки сельхозпродуктов у населения (продавца) представителем организации.Подписывается лицом, закупившим продукты, и продавцом. Утверждается руководителем организации. |
|
|
0010 |
Изображение |
Одна из разновидностей информационной модели, в которой используется картинный (наглядный) способ представления информации оператору. |
|
|
0011 |
Маслята |
Род трубчатых съедобных грибов семейства Болетовые (лат. Boletaceae). Своё название получил из-за маслянистой, скользкой на ощупь шляпки. |
|
|
0012 |
Накладная |
Документ, используемый при передаче товарно-материальных ценностей от одного лица другому. |
|
|
0013 |
Параметр |
Величина, значения которой служат для различения элементов некоторого множества между собой. |
|
|
0014 |
Получить |
Взять, приобрести вручаемое, предлагаемое, искомое |
|
|
0015 |
Процесс |
Совокупность взаимосвязанных действий, приводящих к смене состояний |
|
|
0016 |
Регистрировать |
Записывать, отмечать с целью учёта, придания законной силы, научного наблюдения и т. п. |
|
|
0017 |
Сбор грибов |
Деятельность человека, направленная на поиск грибов. Является разновидностью собирательства. |
|
|
0018 |
Сортировка |
Процесс перегруппировки заданного множества объектов в некотором определенном порядке.Сортировка предпринимается для того, чтобы облегчить последующий поиск элементов в отсортированноммножестве. |
|
|
0019 |
Сортировщик |
Работник, отвечающий за работу конвейера. |
|
|
0020 |
Сумма |
Общее количество чего-нибудь. |
|
|
0021 |
Транспортёр |
Конвейер для перемещения грузов. |
|
|
0022 |
Формирование |
Создание, составление. |
|
|
0023 |
Холодильная камера |
Теплоизолированный контейнер, поддерживающий низкую температуру для хранения скоропортящихся продуктов питания и других веществ. |
ПРИЛОЖЕНИЕ 2. Контрольный пример базы данных
Рис. 1. Таблица «Выборка входных данных»
Рис. 2. Таблица «Признаки изображения»
Рис. 3. Таблица «Правила принятия решения»
Рис. 4. Таблица «Товар»
Рис. 5. Таблица «Контейнер»
Рис. 6. Таблица «Контейнеры в накладной»
Рис. 7. Таблица «Накладная»
Рис. 8. Таблица «Акт»
Рис. 9. Таблица «Контейнеры в Актах»
Приложение 3. Листинг Программы
namespaceKurceWork
{
publicpartialclassForm1 : Form
{
privateBitmapimageBitmap;
privateMyImage image;
privateMyImage[] images;
privateboolisLoad = false;
privatebyte position = 0;
//private List<Nakladnaya>listNa = new List<Nakladnaya>();
privateNakladnayana, act;
privateList<Int32>goodBox = newList<Int32>();
privateList<Int32>badBox = newList<Int32>();
privatedoublebadMas = 0;
privatedoublegoodMas = 0;
privateintidNa = -1;
privateintidAct = -1;
public Form1()
{
InitializeComponent();
openFileDialog1.Filter = "Image Files(*.BMP)|*.BMP";
folderBrowserDialog1.SelectedPath = "D:\\Program\\C Sharp\\Kurse_Work_IIS\\KurceWork\\KurceWork\\bin\\Debug\\images";
}
//загрузкаизображения (старое)
privatevoidoldLoadImage()
{
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
//читаемизображениевбитмап
imageBitmap = newBitmap(openFileDialog1.FileName);
pictureBox1.Image = imageBitmap;
string name = openFileDialog1.FileName;
int t = name.LastIndexOf("\\");
Text = name.Substring(t + 1);
//исходное изображение в объект типа MyImage
image = newMyImage((Bitmap)pictureBox1.Image);
//устанавливаемпервоепреобразование (собель)
image.setFirstTransform(Transform.sobelTransform(image.getSrc()));
//устанавливаемвтороепреобразование (робертс)
image.setSecondTransform(Transform.robertsTransform(image.getSrc()));
//pictureBox1.Image = Transform.calculate(image);
pictureBox1.Image = Transform.anotherWay(image);
//pictureBox1.Image = Transform.secondAnotherWay(image);
//pictureBox1.Image = Transform.carrot();
//d
label1.Text = string.Format("D = {0:0.####}", image.getD());
//v
label2.Text = string.Format("V = {0:0.####}", image.getV());
//mas
label3.Text = string.Format("Mas = {0:0.####}", image.getMas());
//disp
label4.Text = string.Format("Disp = {0:0000}", image.getDisp());
//rotten
bool rotten = image.getDisp() > 1380 ? true :false;
label5.Text = string.Format("Rotten = {0}", rotten.ToString());
}
privatevoid groupBox1_Enter(object sender, EventArgs e)
{
}
privatevoid groupBox2_Enter(object sender, EventArgs e)
{
}
privatevoid label1_Click(object sender, EventArgs e)
{
}
privatevoid label5_Click(object sender, EventArgs e)
{
}
//загрузкапапкисизображениями
privatevoid button2_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.Cancel)
return;
//путькпапке
string folder = folderBrowserDialog1.SelectedPath;
//пути всех изображений в папке
string[] images = Directory.GetFiles(@folder, "*.bmp");
MyImage[] imagesFromFolder = newMyImage[images.Length];
goodBox.Clear();
badBox.Clear();
TestDBtdb = newTestDB();
//читаем изображение в битмап и устанавливаем преобразования