1. Наилучшими разделяющими свойствами классов МНЦ/подстилающая поверхность обладает группа комплексных параметров
параметры, связанные с коэффициентами анизотропии
, параметры
, параметры
2. Указанные четыре группы параметров коррелированы внутри группы (например
), поэтому целесообразно использовать только один из них.
3. В рабочий словарь признаков обнаружения целесообразно включить четыре параметра, например:
или любую возможную комбинацию из приведенных параметров, которые будут обладать приблизительно равной эффективностью. Аналогичные исследования были проведены для выявления признаков рабочего словаря при использовании классов гусеничная/колесная техника. Наименьшие ошибки классификации получены при использовании признаков
. Очевидно, что включение в рабочий словарь коррелированных признаков
нецелесообразно, поскольку они обладают приблизительно равной эффективностью. Вариант рабочего словаря признаков классификации может иметь вид
.
3. Программное обеспечение
3.1 Комплекса программных средств (КПС) и его условное обозначение
Полное наименование КПС – программное обеспечение системы распознавания радиолокационных сигналов в мм диапазоне волн. Условное обозначение – СР РЛС.
Заказчиком КПС «Программное обеспечение системы распознавания радиолокационных сигналов в мм диапазоне волн» является ТулГУ, кафедра АИУС.
Назначение КПС – распознавания радиолокационных сигналов в мм диапазоне волн.
Цели создания КПС – Разработать программный комплекс (ПК) для селекции объектов, с помощью радиолокационных сигналов в мм диапазоне волн.
3.2 Характеристика объектов автоматизации
Объект автоматизации – процесс сортировки отраженных сигналов, для классификации объектов. Объектом является техника гусеничного или колесного типа.
Схема и алгоритм обработки данных, формат выходных данных представляет собой многоузловую иерархическую систему с элементами самообучения и графически представлена на рисунках 3.1, 3.2, 3.3
Рис. 3.1. Приемное устройство входных сигналов
Входные данные (детерминированный РЛС–сигнал) поступают с приемного устройства на устройство обработки данных, всякая задача, для которой неизвестен алгоритм решения, априорно относится к искусственному интеллекту. В таких задачах программе предоставляется свобода выбора действия в условиях неопределенности. Именно эта свобода действия является существенной составляющей интеллекта, как естественного, так и искусственного, но такие алгоритмы сильно «утяжеляют» системы обработки информации, у нас же структура программных средств неизменна и представлена следующим алгоритмом:
Рис. 3.2. Алгоритм распознавания и обнаружения целей.
После обработки данных, на выходе получаем систему классификации цели с заданной вероятностью (порог вероятности распознавания определенного класса цели возможно варьировать и тем улучшать характеристики алгоритма в любом направлении – этим достигается требование интеллектуальности системы), для удобство восприятия пользователя (оператора) выходную информацию приводим к следующему виду – документов прилагаемой формы:
Рис. 3.3. Классификация объектов (выходные данные)
Сведения об условиях эксплуатации КПС: данный КПС будет эксплуатироваться в идеальных условиях. Для работы не требуется специализированных навыков. Необходимо наличие программного обеспечения и ЭВМ.
Состав к КПС в целом: КПС состоит из программных модулей для ввода исходной информации, моделирования процесса распознавания (селекции), вывода полученной информации в виде графиков и таблиц.
Структура функционирования КПС: КПС стабильно функционирует, обеспечивает легкий доступ к информации, гибок и компактен, открыт для внесения изменений и дополнений.
Для удобства внесение изменений и улучшений приведен листинг программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, ComCtrls, TeeFunci;
type
TForm1 = class(TForm) {ОБЪЕКТЫ ОКНА}
Chart1: TChart;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
ProgressBar1: TProgressBar;
Label2: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
CheckBox5: TCheckBox;
Label11: TLabel;
Series1: TPointSeries;
Series2: TPointSeries;
Series3: TPointSeries;
Series4: TPointSeries;
Series5: TPointSeries;
Series6: TPointSeries;
Series7: TPointSeries;
Series8: TPointSeries;
Series9: TPointSeries;
Series10: TPointSeries;
Series11: TPointSeries;
Series12: TPointSeries;
Series13: TPointSeries;
Series14: TPointSeries;
Series15: TPointSeries;
Series16: TPointSeries;
Series17: TPointSeries;
Series18: TPointSeries;
Series19: TPointSeries;
Series20: TPointSeries;
Series21: TPointSeries;
Series22: TPointSeries;
Series23: TPointSeries;
Series24: TPointSeries;
Series25: TPointSeries;
Button3: TButton;
Series26: TPointSeries;
Series27: TPointSeries;
Series28: TPointSeries;
Series29: TPointSeries;
Series30: TPointSeries;
Label8: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
{Работа с Файлом Sign01.txt}
function DoFileDialog(Window: HWnd;
FilePath, DialogName, Caption: PChar): Boolean;
function DoFileOpen(Window: HWnd; FilePath: PChar): Boolean;
function DoFileSave(Window: HWnd; FilePath: PChar): Boolean;
var
Form1: TForm1;
ind:byte = 0;
implementation
type
TRec = Integer;
PSYV = ^TSYV;
TSYV = Longint;
THRec = THandle;
TCL = Integer;
TALC = Longint;
THKP = Word;
type
TDF = function(dirq: Integer; InP, OutP: Pointer; Max: Integer;
Context, Data : Longint): Integer;
const
BitPenup = $8000;
function FPenUp(X: LongInt): Boolean;
inline(
$58/ { POP AX }
$5A/ { POP DX }
$2D/$00/$80/ { SUB AX,8000H }
$1B/$C0/ { SBB AX,AX }
$40); { INC AX }
const
IDC_Pen = MakeIntResource(32631);
const
IDC_AltSelect = MakeIntResource(32501);
const
rc_WDefault = $FFFF;
rc_Ldefault = $FFFFFFFF;
rc_WDefaultFlags = $8000;
rc_LDefaultFlags = $80000000;
{ Макрос идентификации(входные потоки)}
const
syvhi_Special = 0;
syvhi_ANSI = 1;
syvhi_Gesture = 2;
syvhi_Kanji = 3;
syvhi_Shape = 4;
syvhi_UniCode = 5;
syvhi_VKey = 6;
function FIsSpecial(syv: TSYV): Boolean;
function FIsAnsi(syv: TSYV): Boolean;
function FIsGesture(syv: TSYV): Boolean;
function FIsKanji(syv: TSYV): Boolean;
function FIsShape(syv: TSYV): Boolean;
function FIsUniCode(syv: TSYV): Boolean;
function FIsVKey(syv: TSYV): Boolean;
{ Конвертеры кодировки файла }
function ChSyvToAnsi(syv: TSYV): Byte;
function SyvCharacterToSymbol(c: Char): TSYV;
function SyvKanjiToSymbol(c: Char): TSYV;
{ SYV значения }
const
syv_Null = $00000000;
syv_Unknown = $00000001;
syv_Empty = $00000003;
syv_BeginOr = $00000010;
syv_EndOr = $00000011;
syv_Or = $00000012;
syv_SoftNewLine = $00000020;
syv_SpaceNull = $00010000;
const
syv_KKConvert = $0002FFD4;
syv_Clear = $0002FFD5;
syv_ExtendSelect = $0002FFD8;
syv_Undo = $0002FFD9;
syv_Copy = $0002FFDA;
syv_Cut = $0002FFDB;
syv_Paste = $0002FFDC;
syv_ClearWord = $0002FFDD;
syv_User = $0002FFDE; { Восстановление исходника }
syv_Correct = $0002FFDF;
syv_Backspace = $00020008;
syv_Tab = $00020009;
syv_Return = $0002000D;
syv_Space = $00020020;
function FIsStdGesture(syv: TSYV): Boolean;
function FIsAnsiGesture(syv: TSYV): Boolean;
{ Приложения по подгрузки масок }
const
syv_AppGestureMask = $00020000;
syv_CircleUpA = $000224B6;
syv_CircleUpZ = $000224CF;
syv_CircleLoA = $000224D0;
syv_CircleLoZ = $000224E9;
function FIsLoAppGesture(syv: TSYV): Boolean;
function FIsUpAppGesture(syv: TSYV): Boolean;
function FIsAppGesture(syv: TSYV): Boolean;
function SyvAppGestureFromLoAnsi(Ansi: Char): TSYV;
function SyvAppGestureFromUpAnsi(Ansi: Char): TSYV;