Материал: Информационная система анализа типоразмерных характеристик объектов на гибридной аппаратной платформе

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

где x и y - номера столбцов и строк пикселей , входящих в объект.

Далее вычисляем минимальное и максимальное расстояния от центра до границ изображения объекта.

 (4.10)

 , (4.11)

 , (4.12)

Нормированный признак  =  инвариантен к масштабу изображения объекта.

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

Вычисления проходят следующим образом:

В начале находятся координаты центра тяжести изображения объекта.

 , (4.13)

 . (4.14)

Далее находятся промежуточные моменты .

, (4.15)

 , (4.16)

 . (4.17)

В итоге вычисляются главные моменты.

 (4.18)

где  - главные искомые моменты инерции изображения объекта,

 - моменты инерции относительно вертикальной и горизонтальной осей системы координат,

 - смешанный момент.

4.2.3 Алгоритм хеширования MD5

MD5 (англ. Message Digest 5) - 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщений произвольной длины и последующей проверки их подлинности. Широко применятся для проверки целостности информации и хранения паролей в закрытом виде.

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

Для обработки MD5 получает некоторую строку (данные). Далее она преобразуется в последовательность из нулей и единиц. Это происходит следующим образом: у каждого символа есть свой номер, их можно записать в двоичной системе счисления, то есть получается, что каждый отдельный символ записывается как последовательность нулей и единиц.Воспользовавшись этим, получим из входящей строки последовательность нулей и единиц. Примем «q» за длину получившейся последовательности (ровно 64 бита). К данной последовательности приписывается 1, то есть ее длина увеличивается на 1. Затем к этой же последовательности приписываются нули, пока длина не станет по модулю 512 равна 448. Далее дописываются младшие 32 бита числа q, затем - старшие. После всех операций длина становится кратной 512. Полученную последовательность назовем «S». Для подсчета результата используются четыре двойных слова (32 бита). Эти слова инициализируются следующими шестнадцатеричными значениями, где первым следует самый младший байт:: 01 23 45 67: 89 ab cd ef: fe dc ba 98: 76 54 32 10

Кроме того для подсчета результата применяются следующие функции:

(X,Y,Z) = XY v not(X) Z(X,Y,Z) = XZ v Y not(Z)(X,Y,Z) = X xor Y xor Z(X,Y,Z) = Y xor (X v not(Z))

где X,Y,Z - это двойные слова. Результаты функций, то же являются двойными словами. Для подсчета используется еще одна функция, обозначим ее «W». Она обрабатывает данные и возвращает результат. Обработка данных происходит с использованием функций F, G, H, I.

Рисунок 4.2 - Функция «W»

На рисунке схематически изображена функция. Слева - входные данные, справа - выходные.

Просчет результата происходит по следующим принцмпам:

. запоминаются первые 512 бит последовательности S;

. удаляются первые 512 бит последовательности S;

. вызывается функция W.

Параметры A,B,C,D являются текущими значениями соответствующих двойных слов. Параметр T - это запомненные 512 бит.

. Суммируются результаты вычислений:

=A+A0.=B+B0.=C+C0.=D+D0.

. Если длина последовательности равна нулю, то выходим, в противном случае переходим к шагу 1.

После выполнения данного алгоритма A,B,C,D - это результат (его длина будет 128 бит). Так же результат MD5может быть записан как последовательность из 32 символов 0..f. Это означает, что результат записан не в двоичной системе счисления, а в шестнадцатеричной.

4.3 Построение общего алгоритма работы

Программно-аппаратная платформа анализа бинарных образов объектов распознавания состоит из трех главных модулей:

-   обработка и анализ образа исследуемого объекта;

-   сравнение образа с загруженными эталонами;

-   визуализация результатов обработки.

Все модули осуществляют какую-либо одну из существующих задач распознавания, обобщенная схема выполнения программы изображена на рисунке 4.3.

Данная система начинает свою работу с подключения к базе данных. Далее она загружает эталоны изображений для проведения сравнительного анализа со случайно выбранными изображениями.

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

Данный подход решения задач обработки и анализа образов следует отнести к комплексному методу распознавания объектов, так как при анализе учитываются множество различных характеристик. Функциональная и структурная схемы представлены в приложениях на страницах 55 и 56 данной работы. Код программы представлен в приложении «Листинг программы», страница 57.

Рисунок 4.3 - Обобщенная блок-схема системы распознавания

. НАДЕЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

5.1 Понятие надежности

Надежность программного обеспечения есть вероятность его работы без отказов в течение определенного периода времени, рассчитанная с учетом стоимости для пользователя каждого отказа[10].

Надежность программного обеспечения не является внутренним свойством программы и во многом связана с тем, как программа используется. Кроме того она существенно отличается от надежности аппаратной части и так как программы не изнашиваются, то их поломка невозможна. Из этого следует, что надежностью программного обеспечения является исключение ошибок проектирования, то есть ошибок, полученных в процессе разработки ПО.

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

Одним из параметров надежности является интенсивность отказов - количество отказов в единицу времени. Так же величина обратная интенсивности отказов - наработка на отказ, математическое ожидание времени между отказами.

Наиболее частыми причинами ошибок являются:

-   большая сложность программного обеспечения, например, по сравнению с аппаратной частью;

-   некорректный перевод информации из одного представления в другое на макро и микроуровнях. На макроуровне осуществляется передача и преобразование информации между организациями, подразделениями и различными исполнителями на всех этапах жизненного цикла программного обеспечения. На микроуровне производится преобразование информации по схеме: получить информацию - запомнить - выбрать из памяти (вспомнить) - воспроизвести информацию (передать).

Чаще всего ошибки в программном обеспечении случаются из - за:

-   внутренних ошибок (ошибки проектирования, программирования, алгоритмизации, недостаток средств защиты, ошибки в документации);

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

Одними из важных этапов жизненного цикла программного обеспечения, определяющих надёжность всей системы, являются тестирование и контроль[11].

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

Первостепенная задача контроля работоспособности основывается на своевременном выявлении фактов отказов или сбоев в накоплении и обобщении данных, которые определяют работоспособность системы. На работоспособность так же влияют необходимые для контроля ресурсы и расходы на них.

По мимо перечисленного важным критерием надежности является восстанавливаемость. Она определяется затратами времени и труда для устранения отказа программы и его последствий.

Восстановление может заключаться в корректировке и восстановлении текста программы, исправлении данных, внесении изменений в организацию вычислительного процесса.

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

5.2 Оценка надежности

При оценке надежности применяют три основные группы показателей: количественные, качественные и порядковые[11].

Количественными показателями надежности программного обеспечения являются:

-     вероятность безотказной работы P(t) - это вероятность того, что в пределах заданной наработки или заданном интервале времени отказ объекта не возникает;

Наработкой называют продолжительность или объем работ. Вероятность безотказной работы в течение наработки t определяется статистической оценкой:

 , (5.1)

где  - число объектов, работающих исправно в интервале [0,t];

Возьмем число объектов в начале испытания равное 50. Допустим, что за время работы равное 168 часов отказало 4 объектов, тогда:

.

- вероятность отказа - вероятность того, что в пределах заданной наработки возникнет хотя бы один отказ;

Данный параметр находится по формуле:

 , (5.2)

.

- безотказность системы можно также характеризовать плотностью вероятности возникновения отказов системы или её невосстанавливаемого элемента, которая статистически определяется по формуле:

 , (5.3)

где  - интервал времени;

 - число отказов за интервал времени ;

- число объектов в начале испытания.

.

- интенсивность отказов системы l(t) - отношение числа отказавших объектов в единицу времени к среднему числу объектов, работающих в данный отрезок времени исправно, при условии, что отказавшие объекты не восстанавливаются и не заменяются исправными;

Находится по формуле:

 , (5.4)

где  - число отказов за интервал времени .

 , (5.5)

.

где  - число работающих исправно объектов в начале интервала времени ;

 - число работающих исправно объектов в конце интервала времени .

.

- средняя наработка на отказ Т0 - характеризует надёжность восстанавливаемого прибора, устройства или технической системы. Средняя продолжительность работы устройства между отказами, то есть показывает, какая наработка в среднем приходится на один отказ. Выражается в часах. Находиться по формуле:

 , (5.6)

где n - число отказов в системе;

 - время исправной работы системы между (i-1) и i - м отказами системы.

Допустим, за весь период наблюдения произошло 2 отказа системы. Перед началом наблюдения система проработала 72 часа, в конце наблюдения наработка составила 336 часов. Используя эти данные получим:

 

5.3 Модели надежности


Модель надежности программного обеспечения относится к математическим терминам и построена для оценки зависимости надежности программного обеспечения от определенных параметров. Значения данных параметров могут быть известными, или измерены в ходе наблюдений за функционированием программного обеспечения[10,11].

Модели надежности программных средств делятся на аналитические и эмпирические. Аналитические модели позволяют рассчитывать количественные показатели надежности и основываются на данных о поведении программы в процессе тестирования (измеряющие и оценивающие модели). Эмпирические модели основываются на анализе структурных особенностей программного обеспечения. Они используют зависимость показателей надежности от числа межмодульных связей, отношение количества прямолинейных участков программы к количеству точек ветвления количество циклов в модулях и т.д. Во многих случаях эмпирические модели не дают конечных результатов показателей надежности, но они включены в классификационную схему, так как их развитие дает возможность выявлять взаимосвязи между сложностью программного обеспечения и его надежностью. Эти модели можно использовать на этапе проектирования программного обеспечения, во время, когда осуществлена разбивка на модули и известна его структура.

Аналитические модели, в свою очередь, представлены двумя группами: динамические и статические модели. В динамических моделях поведение программ, появление отказов, рассматривается во времени. Статические модели появление отказов не связывают со временем, они рассматривают только зависимость количества ошибок от числа тестовых прогонов или от характеристики входных данных.

5.3.1 Модель Муса

Модель Муса относят к динамическим моделям непрерывного времени. Это означает, что в процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа. Но в данной модели считается, что не всякая ошибка программного средства может вызвать отказ, следовательно допускается нахождение более одной ошибки при выполнении программы до возникновения отказа.