Проектирование системы по работе с изображениями, позволяющей находить лицо человека и распознавать эмоцию на нем
Обзор методов по устранению помех на изображениях. Виды алгоритмов по поиску человеческих лиц. Разработка модуля обработки изображения и поиску на нем лиц человека с последующим определением эмоции на них. Методика использования разработанной программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.06.2017 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Перед началом определения ключевых точек на лице определяются области глаз и губ на лице. Определение глаз и губ происходит таким же способ, как и определение лица, но с каскадным классификатором, обученным на распознавание глаз и рта соответственно. Элементы каскада, на основе которых строится каскадный классификатор, хранятся в XML файле. XML файл содержит внутри себя порядка восьми тысяч и более элементов для более точного определения необходимых объектов. После обработки XML файла все данные сохраняются в виде компактной информации находящейся внутри объекта Classifier для удобного использования. Ниже представлен пример хранения части элемента в XML файле.
<height>20</height>
<width>20</width>
<stageParams>
<maxWeakCount>93</maxWeakCount></stageParams>
<featureParams>
<featureParams>
<stageNum>24</stageNum>
<stages>
<_>
<maxWeakCount>6</maxWeakCount>
<stageThreshold>-1.4562760591506958e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>
0 -1 0 1.2963959574699402e-01</internalNodes>
<leafValues>
-7.7304208278656006e-01 6.8350148200988770e-01</leafValues></_>
<_>
Height - высота области признака Хаара.
Width - ширина области признака Хаара.
MaxWeakCount - количество слабых классификаторов принадлежащих сильному классификатору.
Слабый классификатор - классификатор на основе которого строится сильный классификатор для лучшего отсеивания ненужных объектов.
Сильный классификатор - итоговый классификатор состоящий из N-го количества слабых классификаторов. Используется для определение является ли объект искомым или нет.
StageNum - количество подгрупп слабых классификаторов.
StageThreshold - граница позволяющая минимизировать ошибку для признаков Хаара входящих в группу.
InternalNodes - параметр описывающий данные которые необходимо использовать с определенной областью заданной прямоугольником.
Для определения является ли объект искомым классификаторы хранятся в XML в виде дерева. Первые значения в internalNodes 0 и -1 показывают путь, по которому следует идти при считывании элементов. Сами параметры 0 и -1 обозначаются как node.Left и node.Right. При сохранении всех элементов в массив третий параметр показывает индекс внутри массива при обращении, к которому можно получить этот элемент. Четвертый параметр показывает границу для признака Хаара, она сравнивается с вычисленной разницей между белой и черной областью в признаке.
Для расчета признаков Хаара необходимо получить больше количество областей изображения, которые будут участвовать в работе алгоритма Виола-Джонса. Для этого был разработан алгоритм, позволяющий быстро получить все возможные варианты окон с заданными размерами. Пример алгоритма представлен в виде исходного кода ниже.
public static IEnumerable<Window> ListWindows(Image Image, Image SquaredImage)
{
var maxX = Image.Width - Config.WindowWidth;
var maxY = Image.Height - Config.WindowHeight;
for (var x = Config.WindowStartX; x <= maxX; x += Config.WindowDX)
{
for (var y = Config.WindowStartY; y <= maxY; y += Config.WindowDY)
{
var maxWidth = Image.Width - x;
var maxHeight = Image.Height - y;
var width = Config.WindowWidth;
var height = Config.WindowHeight;
var ratio = 1f;
while (width <= maxWidth && height <= maxHeight)
{
yield return new Window(new Point(x, y), ratio, Image, SquaredImage);
ratio *= Config.WindowScale;
width = (int)(Config.WindowWidth * ratio);
height = (int)(Config.WindowHeight * ratio);
}
}
}
}
Для быстрой конфигурации программы был разработан класс Config хранящий внутри себя все переменные изменение которых изменяет поведение приложения. Класс является статическим что позволяет обращаться к переменным из любой точки программы при этом не создавая их. Это позволяет эффективно разрабатывать модули программы и тестировать приложение на различные входные параметры. В алгоритме по вычислению областей на изображениях при помощи класса Config можно поменять следующие параметры:
- WindowWidth - начальная ширина скользящего окна;
- WindowHeight - начальная высота скользящего окна;
- WindowStartX - Координата Х с которой алгоритм начнет работу;
- WindowStartY - Координата У с которой алгоритм начнет работу;
- WindowScale - Параметр отвечающий за скорость расширения или
уменьшения окна. Изменение этого параметра сильно влияет на скорость работы алгоритма;
- WindowDX - Параметр задающий скорость, с которой будет двигаться скользящее окно по координате Х;
- WindowDY - Параметр задающий скорость, с которой будет двигаться скользящее окно по координате У.
Найденные области глаз и губ на лице обрабатываются детектором Харисса для выделение на них граничных точек, которые и будут являться ключевыми параметрами для определения эмоции.
4) Модуль по определению эмоций
После работы модуля по определению ключевых точек, начинает работу модуль по определению эмоций. Ключевые точки, которые были распознаны в области губ являются более важными точками, чем точки, которые были найдены в области глаз, поэтому данные об эмоциях полученные на глазах будут лишь дополнять данные по эмоциями полученные на губах. Ключевые точки найденные в области губ можно представить как два ряда точек идущих друг за другом с различными положением по вертикали. Ряды разделяются линией по крайней левой и крайней правой точкой. Распознавание эмоций напрямую зависит от степени кривизны линии построенной на этих точках. Если на изображении изображена «Радость» то ключевые точки могут быть представлены как на рисунке 3.8.
Рисунок 3.8 - Ключевые точки на губах
Детектор углов не определяет точки внутри области губ, так как перед работой модуля по определению ключевых точек он проходит этап бинаризации и изображение преобразуется в вид, показанный на рисунке 3.9.
Рисунок 3.9 - Область губ для распознавания точек
Далее ключевые точки поступают на вход простейшей нейронной сети, которая определяет, какая эмоция представлена на наборе ключевых точек. Те же самые действия производятся для левого и правого глаза. По окончанию работы нейронной сети если губы показывают эмоцию «Нейтрально» то происходит коррекция эмоции путем выбора эмоции которую показали глаза.
Краткая схема алгоритма представлена на рисунке 3.10.
Рисунок 3.10 - Схема алгоритма распознавания эмоций
4. Обоснование технических приёмов программирования
4.1 Обоснование выбора среды разработки
Средой разработки программного средства по расспознованию эмоций на изображениях лиц человека была выбрана Microsoft Visual Studio 2016.
MVS 2016 - среда разработки для проектирования, создания и тестирования решений следующего поколения на основе Microsoft Windows, веб-приложений и веб-служб. За счет улучшенной поддержки Windows Vista, системы Microsoft Office 2015, мобильных устройств и Интернета Visual Studio 2016 помогает индивидуальным разработчикам и крупным компаниям быстро создавать и внедрять комплексные, основанные на использовании сети, полнофункциональные и конкурентоспособные программные решения с передовыми пользовательскими интерфейсами.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных
Для повышения производительности приложения MVS 2016 предоставляет инструменты анализа программного кода, включая метрики кода, которые помогают выявлять неэффективные или другие проблемные участки кода. Интегрированная система сборки проекта включает поддержку многопоточности как для сборки, так и для отладки программного средства.
MVS 2016 предоставляет пользователю расширение Nuget Packet Manager которое позволяет устанавливать, обновлять и удалять библиотеки, сборки, компоненты. Данное расширение облегчает работу программисту по поиску и установке новых библиотек требуемых для разработки ПС.
4.2 Обоснование выбора языка программирования
Языком программирования программного средства по расспознованию эмоций на лице человека был выбран C# 6.0.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Но, несмотря на то, что целый ряд конструктивных синтаксических механизмов и особенностей реализации был унаследован от C++, Visual Basic и Java, возможности языка С# не ограничиваются суммой возможностей его исторических предшественников. На данном этапе ограничимся перечислением основных возможностей, которыми характеризуется язык программирования C#.
К числу принципиально важных решений, которые реализованы корпорацией Microsoft в языке программирования C#, можно отнести следующие:
- компонентно-ориентированный подход к программированию;
- свойства как средство инкапсуляции данных (характерно также в целом для ООП);
- обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);
- унифицированная система типизации (соответствует идеологии Microsoft .NET в целом);
- делегаты (delegate - развитие указателя на функцию в языках C и C++);
- индексаторы (indexer - операторы индекса для обращения к элементам класса-контейнера);
- перегруженные операторы (развитие ООП);
- оператор foreach (обработка всех элементов классов-коллекций, аналог Visual Basic);
- механизмы для преобразования типов;
- атрибуты (средство оперирования метаданными в COM-модели);
- прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).
Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Стоит отметить, что язык программирования C# реализует передовые механизмы обеспечения безопасности кода.
Кроме того, язык программирования C# призван практически реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования (фрагментов) программ.
Принципиально важным отличием от предшественников является изначальная ориентация на безопасность кода (что особенно заметно в сравнении с языками C и C++).
Унифицированная, максимально близкая по масштабу и гибкости к Common Type System, принятой в Microsoft .NET, система типизации является важным преимуществом языка C#.
Расширенная поддержка событийно-ориентированного программирования выгодно отличает язык программирования C# от целого ряда предшественников.
Язык программирования C# является «родным» для создания приложений в среде Microsoft .NET, поскольку наиболее тесно и эффективно интегрирован с ней.
Объединение лучших идей современных языков программирования (Java, C++, Visual Basic и др.) делает язык C# не просто суммой их достоинств, а языком программирования нового поколения.
С# в 2017 году является одним из популярных языков программирование из за своей простоты и мощности работы. Этот язык постоянно обновляется и становится удобнее для программистов из за своих новых возможностей.
На языке C# написано множество библиотек и расширений, которые позволяют быстро решать математические задачи. Программное средство, реализуемое в данном проекте включает много операций по работе с матрицами различного размера, подключаемая библиотека System.Drawing реализует работу с различными компонентами необходимыми для работы с изображениями, включая работу с матрицами.
Встроенные библиотеки C# предоставляют возможности по преобразованию исходного изображения в одномерный массив байтов, где каждые 4 байта хранят в себе информацию о красном, зеленом, синем цвете пикселя, а так же информацию об альфа канале.
Различные механизмы и возможности C# позволяют легче разрабатывать алгоритмы по обработке и отображению изображений на дисплее персонального компьютера.
5. Тестирование ПС
Установка и тестирование программного средства производились на персональном компьютере с установленной операционной системой Windows 7.
В таблице 5.1 отражен набор тестов, подтверждающий факт того, что приложение работает и выполняет свои основные функции. Данные тесты позволяют выявить критические дефекты основных функций ПС и принять решение о реализованности заявленной функциональности.
Таблица 5.1 - Тестирование обработки изображения
№ Тест-кейса |
Тестируемая функциональность |
Последовательность операций |
Ожидаемыйрезультат |
Полученный результат |
|
1 |
Скорость работы алгоритма предобработки изображения. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Распознать эмоцию» |
Получение результата заняло не более 3 секунд. |
Тест успешно пройден. |
|
2 |
Обработка исключительных ситуаций во время работы алгоритма обработки изображения. |
1. Запустить программу. 2. Оставить окно для изображения пустым. 3. Нажать на кнопку «Распознать эмоцию» |
Приложение продолжает оставаться в запущенном состоянии. Вывод ошибки о отсутствии изображения на экран. |
Тест успешно пройден. |
|
3 |
Обработка изображения |
1. Запустить программу. 2. Загрузить изображение с плохим качеством. 3. Нажать на кнопку «Распознать эмоцию» |
Границы объектов на изображении после обработки не деформированы. |
Тест успешно пройден |
Основные, выявленные в процессе тестирования обработки изображения дефекты были устранены:
Скорость выполнения алгоритма была улучшена за счёт улучшения работы математических операций связанных с обходом изображения.
Таблица 5.2 - Тестирование поиска ключевых точек на лице
№ Тест-кейса |
Тестируемая функциональность |
Последовательность операций |
Ожидаемый результат |
Полученный результат |
|
1 |
Поиск ключевых точек осуществляется внутри области лица. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Распознать эмоцию» 4. Посмотреть результаты найденных ключевых точек. |
Все ключевые точки находятся внутри области лица |
Тест успешно пройден. |
|
2 |
Данные о ключевых точках сохранятся в отдельный класс. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Распознать эмоцию» 4. Посмотреть результаты найденных ключевых точек. |
Класс описывающий характеристики ключевых точек не является пустым и отображает корректную информации. |
Тест успешно пройден. |
|
3 |
Фильтрация ключевых точек на принадлежность к области глаз, рта, щек, бровей, носа |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Распознать эмоцию» 4. Посмотреть результаты найденных ключевых точек. |
Все найденные точки лежащие за пределами правильных областей не являются ключевыми точками |
Тест успешно пройден |
|
4 |
Обработка пустого результата работы алгоритма по поиску ключевых точек. |
1. Запустить программу. 2. Загрузить изображение, не содержащее лицо человека. 3. Нажать на кнопку «Распознать эмоцию» |
Вывод сообщения «Не найдено ключевых точек на изображении» |
Тест успешно пройден. |
Основные, выявленные в процессе тестирования поиска ключевых точек дефекты были устранены:
Обработка пустого результата работы алгоритма - добавлена обработка исключения приводившего к аварийному завершению ПС.
Сохранение данных в отдельный класс - улучшена работа алгоритма по сохранению данных о ключевой точке к классу.
Таблица 5.3 - Тестирование поиска человеческого лица
№ Тест-кейса |
Тестируемая функциональность |
Последовательность операций |
Ожидаемый результат |
Полученный результат |
|
1 |
Отображение найденного лица на изображении |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Выделение лица» |
Лицо на изображение выделено цветным прямоугольником. |
Тест успешно пройден. |
|
2 |
Данные о лице сохраняются в отдельный класс. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Выделение лица». 4. Посмотреть данные о найденном лице. |
Класс описывающий лицо не является пустым и отображает корректную информации. |
Тест успешно пройден. |
|
3 |
Обработка пустого результата работы алгоритма |
1. Запустить программу. 2. Загрузить изображение не содержащее человеческих лиц. 3. Нажать на кнопку «Выделение лица» |
Вывод сообщения «Не найдено человеческих лиц на изображении» |
Тест успешно пройден |
Основные, выявленные в процессе тестирования поиска человеческих лиц дефекты были устранены:
Отображение найденного лица - выбран более сильный классификатор, позволяющий точнее выполнять поиск лица на изображении. Количество прямоугольников которые показывают местоположение лица на изоображении было сокращено до одного.
Таблица 5.4 - Тестирование расспознования эмоции
№ Тест-кейса |
Тестируемая функциональность |
Последовательность операций |
Ожидаемый результат |
Полученный результат |
|
1 |
Отображение результатов классификации эмоции. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Расспознование эмоции» |
Вывод результата о эмоции на человеческом лице. |
Тест успешно пройден. |
|
2 |
Обработка пустого результата работы алгоритма. |
1. Запустить программу. 2. Загрузить изображение. 3. Нажать на кнопку «Расспознование эмоции» |
Результирующее изображение не подверглось изменениям. |
Тест успешно пройден. |
|
3 |
Классификация эмоций. |
1. Запустить программу. 2. Загрузить изображение с проявленной эмоцией «Радость». 3. Нажать на кнопку «Расспозн ование эмоции» |
Результат работы алгоритма является «Радость». |
Тест успешно пройден |
6. Методика использования разработанного программного средства
При запуске программы появляется стартовое окно с пользовательским интерфейсом. Окно программы представлено на рисунке 6.1:
Рисунок 6.1 - Стартовое окно программы
Окно находящееся сверху слева является контейнером для оригинального изображения, загрузка изображения в этот контейнер производится путем нажатия на кнопку «Открыть изображение». Результат открытого изображения представлен на рисунке 6.2.
Окно находящееся сверху справа является контейнером для итогового изображения, загрузка изображения в этот контейнер происходит после нажатия на кнопку «Распознать эмоцию» либо после применения любого из фильтров. Изображение, которое появляется после нажатия на кнопку «Распознать эмоцию» появляется с прямоугольной областью, которая показывает, где находится лицо человека.
Нажатие на кнопку «Открыть изображение» открывает окно для выбора загружаемого изображения.
Нажатие на кнопку «Гистограмма цветов» откроет гистограмму цветов изображения в новом окне. На гистограмме можно включать и выключать отображение определенных цветов. Пример гистограммы представлен на рисунке 6.3.
Рисунок 6.2 - Окно с открытым изображением
Рисунок 6.3 - Гистограмма цвета изображения
Кнопка «Распознать эмоцию» запускает процесс распознавания эмоции на изображении. Пример работы распознавания представлен на рисунке 6.4.
Если окно с изображением пустое, то при попытке работы с приложением отобразится сообщение об ошибке (см. рисунок 6.5).
Рисунок 6.4 - Результат работы распознавания
Рисунок 6.5 - Сообщение о том, что контейнер с изображением пустой
Если лицо не было найдено, отобразится сообщение (см. рисунок 6.6).
При попытке встроить данные в контейнер, формат которых не является изображением, отобразится сообщение об ошибке (см. рисунок 6.7).
Кнопки, расположенные рядом с надписью «Фильтры» применяют фильтр на изображение. Результат работы фильтра будет отображен в контейнере расположенном сверху справа в окне приложения.
Кнопка «Сброс фильтров» производит отмену всех изменений произведенных с изображением.
Для того что бы сохранить изображение достаточно навести курсор мыши на изображение и нажать на правую кнопку мыши, затем выбрать пункт «Сохранить как» и выбрать путь куда следует сохранить изображение.
Рисунок 6.6 - Сообщение о том, что пароль пуст
Рисунок 6.7 - Сообщение о некорректном формате данных
7. Технико-экономическое обоснование разработки и использования программного средства, реализующего распознавание эмоций на изображениях
7.1 Краткая характеристика разрабатываемого ПО
Разрабатываемое в дипломном проекте программное средство автоматического распознавания эмоций на изображениях человека предназначено для применения широким кругом пользователей и позволяет производить поиск лиц человека с последующей классификацией эмоции на лице, поиск производится на любом виде изображений, где лицо человека не искаженно. Данное ПС призвано упростить процесс обработки и анализа изображений, который до сих пор в основном выполняется вручную и требует определенной профессиональной подготовки исполнителя и значительных временных затрат.
Программное средство разрабатывается по индивидуальному заказу для сторонней организации, которая затем будет предоставлять его конечным пользователям. Разработка ведется в компании EPAM Systems, которая является резидентом Парка высоких технологий Республики Беларусь.
7.2 Расчет затрат на разработку ПО
7.2.1 Расчет затрат на основную заработную плату разработчиков
Для реализации программного средства по поиску человеческих эмоций на изображениях было принято решение выбрать команду разработчиков в составе двух инженеров-программистов. Это объясняется тем, что конечный продукт должен состоять из двух частей: интерфейса, непосредственно с которым будут работать пользователи, и совокупности модулей для построения и обучения математической модели, на основе которой будет выполняться классификация эмоций. Следует отдать разработку пользовательского интерфейса веб-программисту, а вторую часть отдать на выполнение специалисту в области машинного обучения. Команда с таким составом позволит закончить проект вовремя с учетом рисков, связанных с разработкой, и выполнить его качественнее благодаря специализации разработчиков. Сроки реализации программного средства составляют один месяц.
Затраты на основную заработную плату рассчитываются по формуле (7.1):
(7.1)
где - количество исполнителей, занятых в разработке ПС;
- часовая тарифная ставка i-го исполнителя, руб.;
.
Таблица 7.1 - Расчет затрат на основную заработную плату команды разработчиков
№ |
Участник команды |
Разряд |
Тарифный коэффициент |
Месячный оклад, руб. |
Днев ной оклад, руб. |
Трудоемкость работ, чел./дн. |
Основная заработная плата, руб. |
|
1 |
Инженер-программист |
12 |
2,84 |
624,8 |
29,61 |
10 |
296,1 |
|
2 |
Инженер-программист |
13 |
3,04 |
668,8 |
31,69 |
25 |
792,25 |
|
Премия (50 %) |
1088,35 |
|||||||
Итого затраты на основную заработную плату разработчиков |
1632,52 |
В качестве размера месячной тарифной ставки 1-го разряда для расчетов заработной платы выбирается значение, принятое в организации, которая занимается разработкой проекта, и равное 220 руб.
Среднемесячное количество рабочих дней при пятидневной рабочей неделе в 2017 году составляет 21,1 дней.
В таблице 7.1 сведены данные о команде разработчиков, их окладе и назначенном объеме работ для каждого.
7.2.2 Расчет затрат на дополнительную заработную плату
Затраты на дополнительную заработную плату команды разработчиков включает выплаты, предусмотренные законодательством о труде, и определяется по формуле (7.2):
, (7.2)
где Зо - затраты на основную заработную плату с учетом премии (руб.);
Нд - норматив дополнительной заработной платы (10-20%).
Примем Нд=15% и получим:
7.2.3 Расчет отчислений на социальные нужды
Обязательные отчисления на социальные нужды включают в себя выплаты в фонд социальной защиты населения и обязательное страхование и определяются в соответствии с действующими законодательными актами по формуле (7.3):
, (7.3)
где Нсоц - норматив отчислений на социальные нужды (согласно действующему законодательству), Нсоц = 35%.
7.2.4 Расчет прочих затрат
Прочие затраты включают затраты, связанные с разработкой конкретного программного обеспечения напрямую, а также связанные с функционированием организации-разработчика в целом. Расчет прочих затрат выполняется в процентах от затрат на основную заработную плату команды разработчиков с учетом премии по формуле (7.4):
, (7.4)
где Нпз - норматив прочих затрат (100-150%).
7.2.5 Расчет общих затрат на разработку и себестоимости ПО
Полная сумма затрат на разработку программного обеспечения находится путем суммирования всех рассчитанных статей затрат по формуле (7.5):
.
Для разрабатываемого ПС затраты на разработку составят:
руб.
Предполагается, что компания-разработчик также будет заниматься сопровождением программного средства. В связи с этим рассчитываются расходы на эти услуги, которые принимаются в размере Нс=30% от основных затрат на разработку:
Себестоимость программного средства будет определяться как сумма затрат на разработку и сопровождение:
руб.
Расчет затрат на разработку и сопровождение программного средства сведен в таблицу 7.2.
Таблица 7.2 - Затраты на разработку и сопровождение ПО
Статья затрат |
Сумма, руб. |
|
Основная заработная плата команды разработчиков |
1632,52 |
|
Дополнительная заработная плата команды разработчиков |
||
Отчисления на социальные нужды |
||
Прочие затраты |
||
Общая сумма затрат на разработку |
||
Расходы на сопровождение |
||
Себестоимость программного средства |
5841,53 |
Рассчитанное значение полной себестоимости разрабатываемого программного средства, которая составила 5841,53 руб., будет использоваться в дальнейшем для определения цены ПС.
7.3 Расчет экономического эффекта у разработчика
В рамках данного технико-экономического обоснования рассматривается экономический эффект, который получит компания-разработчик, а также эффект для заказчика и пользователей разрабатываемого программного средства.
7.3.1 Экономический эффект у разработчика
Экономический эффект для организации-разработчика представляет собой прибыль, полученную от разработки программного продукта по индивидуальному заказу для сторонней организации.
Цену программного средства будем определять, исходя из затрат на разработку и реализацию ПО.
Исходя из опыта реализации программных средств с функциональными требованиями, реализуемыми за близкий к рассчитанному срок, был установлен уровень рентабельности программного средства (30%).
Расчёт прибыли от реализации ПО заказчику вычисляется по формуле (7.6):
, (7.6)
гдеРазмещено на http://www.allbest.ru/
Сп - себестоимость программного обеспечения, руб.;
Ур - запланированный норматив рентабельности, %.
Выбрав Ур=30%, рассчитаем ожидаемую прибыль:
Так как компания EPAM Systems является резидентом Парка высоких технологий, она освобождается от уплаты налога на добавленную стоимость и налога на прибыль. Поэтому рассчитанное значение П будет представлять собой чистую прибыль разработчика. Отпускная цена конечного программного продукта будет определяться как сумма себестоимости и прибыли:
Таким образом, при продаже конечного программного продукта заказчику по цене руб. разработчик получит экономическую выгоду в размере руб.
7.4 Расчет экономического эффекта у пользователя
На рынке ПО разработка приложения подобного рода в среднем оценивается в 9000 руб. Поручив разработку компании EPAM Systems и приобретая продукт по рассчитанной выше цене, заказчик в среднем может получить выгоду от разработки в выбранной организации в размере:
руб.
Предполагается, что программное средство по распознаванию эмоций разрабатывается как часть существующей у заказчика системы по анализу изображений в реальном времени, доступной в сети Интернет. Добавление такой функциональности расширит систему и может обеспечить заказчику неэкономический эффект в виде повышения конкурентоспособности продукта заказчика. Это объясняется тем, что в настоящее время существует ограниченное и очень малое количество программных продуктов, позволяющих выполнять анализ изображений, большая часть которых недоступна обычному человеку в связи с высокой стоимостью.
Данное программное средство разрабатывается в виде приложения с пользовательским интерфейсом. Приложение может быть использовано как локально на персональном компьютере пользователя, так и развернуто на сервер для последующего использования через Интернет. Приложение, развернутое на сервере является экономичным для конечных пользователей, которые хотели бы разово выполнить операцию подобного рода, потому что не требует приобретения дорогостоящей лицензионной копии.
Приложение способно быстро обрабатывать большое количество изображений и сохранять информацию об обработке, поэтому принесет выгоду по снижению временных затрат на выполнение процесса анализа и обработки изображений. Это объясняется тем, что обработка нескольких тысяч изображений для человека является утомительным и сложным процессом.
Данное ПО в виде веб-приложения может использоваться в развлекательных целях любым человеком, имеющим к нему доступ. Приложение, развернутое на сервере может использоваться на любой программной платформе или устройстве имеющее доступ к сети Интернет.
7.5 Вывод по технико-экономическому обоснованию
В результате проведения технико-экономического обоснования разработки программного средства по распознаванию человеческих эмоций можно сделать вывод о том, что реализация программного средства является целесообразной как для разработчика так и для заказчика.
Реализация программного средства по распознаванию эмоций позволит заказчику внедрить систему распознавания на предприятия для получения информации о текущем настроении у рабочих, что позволит менеджеру лучше и эффективней управлять рабочими. В программное средство так же входит распознавание лиц, что позволяет использовать приложение как средство контроля за безопасностью на предприятии, что позволит сделать более эффективную безопасность на предприятии. Так же заказчик может развернуть программное средство на хостинг-сервере и использовать его как платное средство для анализа информации на фотографиях.
У программного средства по распознаванию объектов на изображении имеется множество вариантов применения, поэтому разрабатываемый продукт является экономически и технически выгодным программным средством, его реализация и внедрение экономически целесообразны.
Заключение
В результате выполнения дипломного проекта была разработана система по работе с изображениями, позволяющая находить лицо человека и распознавать эмоцию на нём.
В процессе написания программы была использована технология WinForms, применен объектно-ориентированный подход и исследованы основные инструменты платформы .NET и языка программирования C#.
Обработка и анализ изображения, хоть и позволяет получить некоторую информацию об изображении, но делают это неточно. Для правильного и точного обнаружения необходимых элементов рекомендуется использовать несколько алгоритмов. Основной ее идеей является не заменить криптографию, но дополнить ее.
Существует огромное количество обрабатывающих изображения приложений. Данный проект исследует лишь малую часть алгоритмов способных к обработке и анализу изображений. В наше время область графической обработки применяется для многих важных вещей (такими как обнаружение опухолей, определение номера автомобиля, определение текущего цвета объекта, дистанционное управление при помощи цветовых сигналов и многое другое).
Сами по себе алгоритмы обработки изображений не являются идеальным решением в анализе информации, человеческий анализ зачастую гораздо более точный и быстрый. Однако если алгоритмы объединены в одну систему и обладают достаточно мощным компьютером для быстрого выполнения математических расчетов, то такая система будет показывать очень большую точность выделения нужной информации либо же визуально показывать человеку на какое место в изображении требуется обратить внимание.
Список использованных источников
[1] Bmstu [Электронный ресурс]: Медианная фильтрация. - Режим доступа: http://ru.bmstu.wiki/Медианная_фильтрация. - Дата доступа: 15.03.2017.
[2] Vscode [Электронный ресурс]: Фильтрация изображений. - Режим доступа: http://vscode.ru/prog-lessons/filtratsiya-izobrazheniy-na-c-sharp.html. - Дата доступа: 15.03.2017.
[3] Гонсалес Р.С. Цифровая обработка изображений / Р.С. Гонсалес Р.И. Вудс. - Москва: Техносфера, 2012. - 1104 с.
[4] Habrahabr [Электронный ресурс]: Анализ подходов к распознаванию лиц. - Режим доступа: https://habrahabr.ru/company/synesis/blog/238129. - Дата доступа: 15.03.2017.
[5] Wiskott L. Face Recognition by Elastic Bunch Graph Matching / L. Wiskott, J. Fellous, N. Kruger // CRC Press. - 1999. - Chapter 11. - P. 355-396.
[6] Lawrence S. Face Recognition A Convolutional Neural Network Approach / L. Stiven, G. Lee, T. Chung // IEEE Transactions on Acoustics. - 1997. - Volume 8.1. - P. 98-113.
[7] Khalajzadeh H. Face Recognition using Convolutional Neural Network and Simple Logistic Classifier / K. Hurieh, M. Mohammad, T. Mohammad //Springer - Chapter. - 2013. - Vol 223. - P. 197-207.
[8] R. Collins Face Image Analysis With Convolutional Neural Networks
/ C. Robert. - Penn State University. - 2007. - 32p.
[9] J. Edwards. Face Recognition Using Active Appearance Models / E. Jhon, C. Fenri, N. Kruger // Computer Vision. - 2006. - Vol 1407. - P. 581-596.
[10] D. Martinis. AAM for Facial Expresion / M. Dias, P. Alexandre, N. Kruger // University of Coimbra. - 2008. - p. 255.
[11] P. Viola Rapid Object Detection using a Boosted Cascade of Simple Features / V. Paul, J. Michael // IEEE Conf. on Computer Vision and Pattern Recognition. - 2001. - p.9.
[12] P. Viola Robust real-time face detection / V. Paul J. Michael. // Jones International Journal of Computer Vision. - 2004. - Vol. 57, no. 2. - pp.137-154
[13] Tinne Tuytelaars, Krystian Mikolajczyk. Local Invariant Feature Detectors: A Survey, 2008.
[14] CsePsu [Электронный ресурс]: Computer Vision. - Режим доступа: http://www.cse.psu.edu/~rtc12/CSE486. - Дата доступа: 15.03.2017.
Размещено на Allbest.ru
Подобные документы
Обзор основных алгоритмов и методов распознавания лиц. Архитектура средств динамического отслеживания лиц в видеопоследовательности. Результаты тестирования на больших объемах видеоданных. Разработка алгоритмов и методов динамического отслеживания лиц.
дипломная работа [5,9 M], добавлен 20.07.2014Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.
дипломная работа [1,0 M], добавлен 16.06.2013Разработка концептуальной модели базы данных. Реализация алгоритмов и разработка управляющей программы. Разработка структуры системы управления данными. Методика проведения и результаты тестирования. Функционирование разработанного программного модуля.
курсовая работа [550,5 K], добавлен 08.06.2023Разработка интерактивного обучающего пакета по поиску и устранению неисправностей в системе электроснабжения на иностранном воздушном судне. Программные средства создания компьютерных средств обучения. Экономическое обоснование, экологичность проекта.
дипломная работа [2,0 M], добавлен 12.12.2011Разработка системы по поиску плагиата среди работ студентов. Получение оценочной информации о работе и коэффициенте плагиата. Повышение эффективности оценивания работы студента. Информационное обеспечение системы. Выбор устройства управления данными.
курсовая работа [893,9 K], добавлен 23.04.2014Проектирование модульной структуры программы сетевого мессенджера, назначение модуля "frmMsg". Разработка главной формы и интерфейса пользователя программы. Проектирование модуля формы "About". Разработка методики тестирования и отладка программы.
курсовая работа [606,7 K], добавлен 19.01.2012Обзор математических методов распознавания. Общая архитектура программы преобразования автомобильного номерного знака. Детальное описание алгоритмов: бинаризация изображения, удаление обрамления, сегментация символов и распознавание шаблонным методом.
курсовая работа [4,8 M], добавлен 22.06.2011Выбор методов обработки и сегментации изображений. Математические основы примененных фильтров. Гистограмма яркости изображения. Программная реализация комплексного метода обработки изображений. Тестирование разработанного программного обеспечения.
курсовая работа [1,3 M], добавлен 18.01.2017Разработка программы, предназначенной для сжатия или компрессии полутонового изображения международным стандартом JPEG. Описание метода JPEG, выдача результатов в виде декодированного изображения. Обзор методов компрессии полутонового изображения.
курсовая работа [43,5 K], добавлен 14.10.2012Разработка автоматизированной информационно-справочной системы хранения и обработки информации оптового склада, которая способствует быстрому поиску необходимых данных. Создание таблиц и базы данных. Добавление и удаление данных в записной книжке.
курсовая работа [1,0 M], добавлен 08.12.2014