Научная статья на тему 'ПРИМЕНЕНИЕ И ВНЕДРЕНИЕ СВЕРТОЧНЫХ НЕЙРОСЕТЕЙ В РАДИОЛОКАЦИОННУЮ СТАНЦИЮ'

ПРИМЕНЕНИЕ И ВНЕДРЕНИЕ СВЕРТОЧНЫХ НЕЙРОСЕТЕЙ В РАДИОЛОКАЦИОННУЮ СТАНЦИЮ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
168
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАДИОЛОКАЦИЯ / СВЕРТОЧНАЯ НЕЙРОСЕТЬ / АЛГОРИТМ / МАТРИЦА / АУГМЕНТАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Исабаев К. Ж., Имансакипова Н. Б., Шакиева Г. С., Демин Д.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Исабаев К. Ж., Имансакипова Н. Б., Шакиева Г. С., Демин Д.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION AND IMPLEMENTATION OF CONVOLUTIONAL NEURAL NETWORKS IN A RADAR STATION

The scientific article reveals the possibility of using new algorithms for searching objects in images using convolutional neural networks. A specific case of the application and implementation of this technology is being analyzed. Based on this article, the developer can start using similar technology to solve their own problems. The introduction of this article is a general description of the technology, possible applications and advantages of its use.

Текст научной работы на тему «ПРИМЕНЕНИЕ И ВНЕДРЕНИЕ СВЕРТОЧНЫХ НЕЙРОСЕТЕЙ В РАДИОЛОКАЦИОННУЮ СТАНЦИЮ»

their failure-free operation / A.M. Baranov // Collection of scientific works of the NA of the SBGSU. Series: Military and Technical sciences. - 2018. - №2(76). -P. 207-215.

6. Baranov Yu.M. Analysis of modern scientific approaches to managing the technical condition of objects and ways of their improvement / Yu.M. Baranov // Collection of scientific works of the NA of the

SBGSU. Series: Military and Technical sciences. -2017. - №1(71). - C. 323-332.

7. Kalenyk M.M. Operation and repair of engineering weapons. Part 2. Organization of maintenance of engineering equipment: Training manual / N.O. Ma-linovsky, V.M Ivansky, V.S. Mishchenko, V.F. Kmin -Lviv: NASV, 2020. 143 p.

ПРИМЕНЕНИЕ И ВНЕДРЕНИЕ СВЕРТОЧНЫХ НЕЙРОСЕТЕЙ В РАДИОЛОКАЦИОННУЮ

СТАНЦИЮ

Исабаев К.Ж.

Военно-инженерный институт радиоэлектроники и связи, старший преподаватель, Алматы Имансакипова Н.Б. Сатпаев университет, старший преподаватель, Алматы Шакиева Г. С. Сатпаев университет преподаватель, Алматы Демин Д. Студент, Алматы

APPLICATION AND IMPLEMENTATION OF CONVOLUTIONAL NEURAL NETWORKS IN A

RADAR STATION

Issabayev K.,

Military Engineering Institute of Radio Electronics and Communications,

senior lecturer, Almaty Imansakipova N., Satbayev University, senior lecturer

Almaty Shakieva G., Satbayev University, lecturer Almaty Demin D.

Student, Almaty DOI: 10.5281/zenodo.7401789

Аннотация

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

Abstract

The scientific article reveals the possibility of using new algorithms for searching objects in images using convolutional neural networks. A specific case of the application and implementation of this technology is being analyzed. Based on this article, the developer can start using similar technology to solve their own problems. The introduction of this article is a general description of the technology, possible applications and advantages of its use.

Ключевые слова: радиолокация, сверточная нейросеть, алгоритм, матрица, аугментация.

Keywords: radar, convolutional neural network, algorithm, matrix, augmentation.

Введение

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

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

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

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

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

Структура сверточной сети предполагает следующие части:

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

- каждый нейрон внутреннего слоя локально связан с каждым из нейронов соседних слоев. Это реализовано входным и выходным сигналом каждого нейрона.

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

Методика исследования

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

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

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

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

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

ф [{]x_train, y_train), [X_test, y_test) = SDurce_dataset

print[1X_train shape", X_train.shape) print[1y_train shape", y_train.shape) print[1X_test shape", X_test.shape) print[1y_test shape", y_test.shape)

X_train shape (6mm, 28, 23) y_train shape (6mm,) X_test shape (10000, 23, 23} y_test shape (1ЭС00,)

Рис. 1. Размерности образца датасета.

Массивы x в датасете хранят набор изображений, а массивы Y — метки к ним. Видно, что всего в датасете 70000 изображений с размером 28*28 пикселей. Также видно, что датасет разделен на подсборки train и test: обучающую и тестирующую. Это необходимо для того, чтобы после обучения сети проверить качество ее обучения. Дело в том, что некорректных вводимых параметрах, нейросеть

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

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

В этом случае, для каждого изображения, содержащего искомый объект, создается аннотация.

Аннотации содержат в себе координаты объектов и хранятся уже не как массивы, а как аннотационные файлы, в директории со всеми обучающими изображениями. Формат файла и изображений зависит от используемого для проектирования и обучения нейросети фреймворка. Например, при использовании Yolov4 и РуЮгЛ структура директории дата-сета отражена на рис. 2.

0_target_ipg.rf.9735cc69a5e6bd4e7f608ccSf 5416ea0.jpg

6_target_;pg.rf. 9_stray_jpg.rf .1 11_stray_;pg.rf. 13_stray_;pg.rf. 14_target_;pg.rf 15_target_;pg.rf 24_target_;pg.rf 25_target_jpg.rf 30_stray_;pg.rf. 35_target_jpg.rf 39_stray_;pg.rf. 41_stray_;pg.rf. 44_target_;pg.rf 48_target_;pg.rf 51_stray_;pg.rf. 51_stray_;pg.rf. 52_stray_jpg.rf. 53_target_;pg.rf 56_target_jpg.rf 57_target_;pg.rf 5S_stray_;pg.rf. 61_stray_;pg.rf. 63_stray_;pg.rf. 66_target_;pg.rf 66_target_jpg.rf 71_target_;pg.rf 72_target_jpg.rf 73_target_;pg.rf 75_stray_;pg.rf. 78_stray_;pg.rf. 78_target_;pg.rf 79_stray_;pg.rf.

. 0a80c399ff92adffec9a4d45df6ad:fo7. jpg H4f43Eb6fcetij7dllce73df5190fd0c.;pg . 586d8722c81c70c4df4ad5526c3705fa.jpg . sb720f f ■4ccü8627b68a45a60e2b93e6. jpg .2albea02f478e9f 457Ü6916d69023)a.jpg .d392362d7384ba9497732a758fd43557.jpg .f 7f 45ad954661191201d72d3b dc67526.jpg .ee845197e16f8862071658c5dc51ЗасЗ.jpg . 66c482037d4daecfd649935c79a43632.jpg :.45e268alelbf5e24f803947aaal07ed8.jpg . 61e9308de5e68223a7fIbdd3e2061198.;pg . 37ae85645279612ed 13f 37e±31 йбаа. ;pg :. 4752b6adc518613Sb45127de9a7627c2 .jpg : .b69285e88c9d1d80744edd0e5rbe9e05.jpg . 3a81c863532f39289334142bb sb 9d018.jpg . еЗеЭбЭЬ13f543f817ba2fd7c9077ad3d.jpg . 4e3be335943c6b6493e798975c595äi3.jpg .b8fe4b7cd889idcde2dc9d53fb6bf275.;pg .83ff 95dle5b44e7B2335c6d49bbbS316.;pg .Sbe274797c3dc322ae884de1e9ea2331.jpg . 451fdf78e18d4e4f3£Ьа305аб35998;й .jpg . 1780c0a3637c923c170c093b 4380d2d7.jpg . Bf 68336c97c196f 9f 1 S5fb05eti 1786f 9. ;pg . 7f df 86471519adcd5562295190d8a5d4 .jpg .1Sb4b7ef 2a9d20894037a1ee4e000156.;pg .68f9fb1188eac62cafel6Eb 1406067f0.jpg .30a01fd0ct)038c6dl497d43e67fd8df 1.jpg .5a912da5a294386ce547c9240allb234.;pg . d2bea01d0d82760d421019c3c3ed2063.jpg . 6b 01± 6bf14394936371d3dff 23d705c.jpg :.1942829a46b22f32815695421354f901.jpg . 0d9479d5802d1e17d0ea46bff 3f 0ce20.jpg

Рис. 2. Структура директории датасета.

Помимо уже описанных train и test отделений сборки, появилась сборка valid. Она нужна, когда нейросеть проходит обучение на одних и тех же данных несколько раз, тогда после каждой обучающей итерации, нейросети на вход подаются валида-ционные данные, по которым позже становится

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

Аннотация в данном случае выглядит так (рис. 3).

2607_target_;pg.rf. e84±38a391 acf аа756с872Л801633a .jpg 2627_strayjpg.rf.Eb4aea57467f099f9d2EfcSScc351b026.jpg 2633_strav_;pg.rf.23bS94cbfba4fs4210aef08522eEbcfa.jpg 2635_stray_;pg.rf,054faS16a8le8576f3c6765c4Ge73164.;pg 2636_target jpg.rf.93Sceb3791SB91ce02e=l]24dlЖ327a.jpg 2643_targat jpg.rf.e08a69d92ja2c19ac31fd417t)b 2b825.jpg 2645_target jpg.rf.5d60e470c95d5b02eel43867c5126f Se.jpg 2647_stray-jpg.rf.cSS2c5dScdla4197cc83709fcbfle2Sb.;pg 2650_targetjpg.rf.1508c820397df10C671395a72ef4e348.jpg 2652_targetjpg.rf.25с23±Ь59561555d3bfc01651443312 jpg 2656_targatjpg.rf.fb51172a77c2e6d88a4calc50f643cd.jpg 2658_strayjpg.rf.4090de449435cc3189da21f26a3a4105.;pg 267g_tsrget_;pg.rf.SeSc456e5c4b4Bsb427123cf6a33d7b.;pg 2683_targetjpg.rf.99a0a0484bb7caa9e585cce75c8659d3jpg 2687_strayjpg.rf.6735aS53ticd4669ea4c136lddccd8f8 jpg 26SB_stray jpg.rf ,bä)ba]c493e3d5b87834№6e67cada5 jpg 2700_targetjpg.rf.bebff66cbSl60f cdd±c28c0aef18057.;pg 2703_targetjpg. rf.d3239086cde0331d089f tba928dc4dcb jpg 2706_targetjpg.rf. c34S9£baabeB5dcbbcd!bS2501 аЗЭ02Ь jpg 2713_strayjpg.rf.f5ea2140656dec3c69baad53d3eff754.jpg 2716_target jpg. rf.85c29№8d009d37b268263d451 e 3b4jpg 2720_targetjpg.rf.03dfa05ca41f7363cac63934e0d303d2.;pg 2722_targetjpg.rf.c41a5343ecl6332010c320Ebd7d4ee26 jpg 2729_target_;pg. rf .f Ebbeaf d9cdS6B47bb 6Sb0cbb2513c2S jpg 2732_strayjpg.rf.cf75e13e73c219e6ca4S760f23b7971.jpg 2733_strayjpg.rf.72d36073a8a02e11ceaf595c43a3499c.jpg 2737_target_;pg.rf.8ed949c4dj 1d96cf1469c623e48e4183.;pg 2756_strayjpg.rf.f806428fc01f345622241a56985d06fe.jpg 2771.strayjpg.rf.a5acc4Et]66e78Ife4a53]565630c5878 jpg 2732_strayjpg.rf.6Ebd3cc1ae7cf021058614f826aa7f5a.jpg 2792_targetjpg.rf.4aff0d4f713cbf036d23cf3f10df4686 jpg 2797-Stray-;pg.rf.e029cB14e59ff02e4429B579933998c0.;pg

_annotations.txt

844_strayjpg.rf.0084ea937a70cc9ad1097e06f3d57060.jpg 0,53,8,114,0 728_targetjpg.rf.04645a0cda0f263437ai94da2292558d.jpg 117,87,123,139,0 3,; 1846_target_;pg.rf.00684c5f023»ldaf453e3a02d&f&8.;pg 111,85,118,152,1 1098_target_;pg.rf.08f67b cbEb84afcf1998124±b8f 9988. :pg 109,84,116,139,1 1584_target_jpg.rf.046364dddfa996fe17777244602af251.jpg 111,84,118,136,1 2635_strayjpg.rf.054fa816a81a8576f3c6765c40e73164.jpg 218,71,224,115,0 2720_targetjpg.rf.03dfa05ca41f7363cac63934e0d303d2.;pg 83,114,89,146,0 139_stray_;pg.rf.05e0albd0415addj051ddc7b4129ff57.jpg 29,146,39,187,0 921_target_;pg.rf.0810193fc5lb64287eld379219ffb6e8jpg 111,75,117,140,1 2308_stray_jpg.rf.083f8e54bde29382d5232dcf2ebf05ae.jpg 56,87,63,132,0 2319_targetjpg.rf.0B19a7509ccb 9392o9564c6c60fa: 3iD.jpg 121,82,126,153,1 II 93_strayjpg.rf.064232dl23426fde615ifcea365Ga52d8.jpg 195,20,209,70,0 116_target_;pg.rf.0aelttiaae494e52c5d5d8770449±575.;p6 112,82,118,141,1 1518_ tar get jpg.rf.0094938f116da373dja0ba05b485432d jpg 111,85,117,144,1 596_targetjpg.rf.05a444bdcd33cf9a: 2dca3ae19038827.jpg 98,82,107,154,1 941_strayjpg.rf.0f21e62blfl6217e71cl50a3f7696da3.jpg 211,103,223,132,0 2549_target jpg.rf.0936199dd01f0c4933)2922d4c4e45fb jpg 100,81,104,150,1 506_stray_;pg.rf.04e8rfc761S7a2ffafl2dle4c4377128.jpg 70,11,75,49,0 1688_stray_;pg.rf.019582a650728551407893bf4823d670jpg 73,68,79,102,0 1852jarget jpg.rf .0ec273d3ed08cce1ac7d4a5&2i8d52.;pg 109,88,114,142,1 1006_stray jpg.rf,0ä32466b7d518a971dlb2cdcf09S4797.;pg 10,37,18,63,1 63_stravjpg.rf.0f68336c97cl96f9fl95fb05Ebl786f9.jpg 112,87,119,146,0 6_target_;pg.rf.0a80c399ff92aclffec9a4d45df6ad7b7jpg 110,83,116,152,1 1494_targetjpg.rf,0dc880e6ac692c2ded79338d21042a68 jpg 110,96,118,140,1 1369jar get jpg.rf.Bf269e72fe0da06d402f20d957a67d31.jpg 110,56,119,132,1 1570_targetjpg.rf.07346539f66aa44d8552ec4b4Eta7a815.jpg 172,40,178,95,1 348_target_;pg.rf.167e06cblfll6d0c4da009dfl6e897a8.;pg 100,78,108,152,1 1036_stray_;pg.rf,107133ffad73c9f233flae2f824b65c8.;pg 0,60,6,131,0 9_stray_jpg.rf.114f43eb6fceeb7d11ce73df5190fd0c.jpg 181,178,195,223,0 0,30 79_strayjpg.rf.0d9479d5302d1a17d0ea46bff3f0ce20.jpg 73,13,79,75,0 2037_stray_jpg.rf.093d47f1607a4eS211c1c51dGaG6521.jpg 31,82,37,124,0 866_stray_:pg. rf.l41376fff4c0dfe510060ce6111af0cd.jpg 14,128,22,148,0 331_target_;pg.rf,02Eb863e7c2a21b29294821Eb33f913a jpg 115,66,120,143,1 1668_targetjpg.rf.0fe53279219208dl3f4lb2d2ie3083d.;pg 103,78,110,142,1

1 50,8,58,61

Рис. 3. Аннотация датасета.

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

Перед тем как раскрыть создание датасета для данной работы, необходимо описать процесс сбора необработанных данных, непосредственно снимков, которые позже и вошли в датасет.

Итак, исходными данными, на которых должна быть обучена нейросеть и которые впоследствии будут предоставляться обученной модели

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

Рис. 4. Исходный буфер радиолокатора.

На самом деле, это просто слой canvas, который отрисовывает набор сигналов. Сами же сигналы хранятся в формате dat. в виде матриц с раз-

мерностью 2048 (рис. 5) (по количеству лучей, отражающих азимут) на 1200 (длина каждого луча; дальность)._

00109 00169 00165 00133 00079 00063 00042 00031 00013 00130 00213 00216 00189 00123 00095 00070 00052 00019 00070 00131 00175 00170 00110 00077 00056 00043 00019 00055 00116 00166 00165 00109 00076 00054 00043 00019

00146 00311 00152 00352 00150 00349 00137 00274

00124 00249 00132 00191 00210 00251 00265 00306 00263 00299 00250 00327 00187 00300 00104 00210 00093 00172 00116 00244 00129 00243 00135 00276

00125 00230

00284 00191 0033Й 00220 00325 00209

00266 00178

00267 00179 00211 00147 00144 00108 00128 00098 00133 00100 00200 00141 00135 00101 00155 00113 00204 00144 00239 00164

00132 00088 00162 00112 00163 00116

00143 00098

00144 00099 00116 00076 00079 00045 00084 00054

00232 00164 00228 00162

00101 00067 00086 00057 00092 00061 00119 00090 00138 00094 00148 00103 00133 00083 00124 00074

00052 00027 00078 00042 00080 00040

00057 00026

00058 00035 00049 00024 00026 00016 00029 00013

00032 00012 00052 00027

00033 00019 00046 00035 00066 00043 00060 00034 00060 00023 00046 00014 00036 00008

Рис.5. Структура исходного буфера.

Для обучения сверточной сети было необходимо получить из матрица с размерами 2048*1200 изображений в каком—либо из трехканальных форматов, а также сократить размер каждого входного в нейросеть изображения, так как при больших размерах входного внешнего слоя, скорость распознавания увеличивается настолько, что само использование нейросети становится нерациональным.

Для решения проблемы исходный буфер был разделен на подматрицы с размерами 256*240. На заранее совершенных записях, были образованы буферы с известными координатами целей. На их основе из исходной большой матрицы были вырезаны подматрицы с необходимыми размерами (рис. 6).

Рис. 6. Примеры обучающих изображений.

Так как снимков было необходимо большое количество (около 2000 оригинальных объектов),

их создание вручную было бы крайне нецелесообразным. Потому из сборка была реализована программно (табл. 1).

Табл. 1.

Сбор исходных изображений в датасет._

import input_helper from png_control import npz_to_png from Matrix import Matrix from Chunks import Chunks from Dataset import Dataset

if_name_== '_main_':

yn = {'1': 'Создать матрицу', '2': 'Создать связку снимков', '3': 'Создать сборку', '4': 'Склеить сборки (train + test)', '5': 'Сохранить в png', '6': 'Завершить работу'} while True: for key in yn:

print(f{key}-> {yn[key]}')

inp = input() if inp == '1': x = Matrix() elif inp == '2': x = Chunks() elif inp == '3': x = Dataset() elif inp == '4':

path_to_datasets = input_helper.ForDatasets.get_path_of_dataset()

dataset = input_helper.ForDatasets.merge_test_and_train(path_to_datasets)

Dataset.merge_datasets(path_to_datasets + '/' + dataset + '/' + dataset)

elif inp == '5':

npz_to_png()

elif inp == '6':

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

break

else:

print('Некорректный ввод')

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

Данные о каждом экземпляре сохранялись в базе данных для возможности многоразового использования. Подматрицы, исходные матрицы и известные заранее координаты целей, которые собирались из отдельных, специальных лог-файлов, сохранялись в специальном формате в виде массивов — npy. Это расширение файлов сохраняемых массивов из сторонней библиотеки numpy для python.

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

использовались для обучения и самих датасетов, были созданы классы, экземпляры которых создавались при вызове из меню (табл. 2) того или иного пункта.

Табл. 2.

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

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

Для решения этой задачи существует множество сервисов: сервисов разметки данных, некоторые из которых раскрыты в главе об используемых инструментах. При выполнении данной работы применялся инструмент разметки данных roboflow (рис. 7).

Меню программы для создания датасетов.

'1': 'Создать матрицу',

'2': 'Создать связку снимков',

'3': 'Создать сборку',

'4': 'Склеить сборки (train + test)',

'5': 'Сохранить в png',

'6': 'Завершить работу'

Рис. 7. Разметка данных.

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

Annotations

создать прямоугольники классов (рис. 8), которые позже вносятся в аннотации.

Group: radiosignal

• stray target

Рис. 8. Классы искомых объектов.

При исследовании использовались два необходимых к поиску класса объектов: strays (помехи) и target (цели).

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

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

В данном случае распределение было совершено в пропорции training — 70%, validation — 20%, testing — 10% (рис. 9). Такое распределение основано на относительно большом количестве снимков. В некоторых случаях, когда в датасете вынужденно малое количество снимков, все их 100% относят к training множеству.

Рис. 9. Распределение данных в датасете.

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

Процесс увеличения количества исходных обучающих снимков путем преобразования уже су-

ществующих изображений называется аугментацией. Каждое из изображений в обучающем наборе обретает собственную расширенную версию—дубликат или несколько таких.

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

Crop (рис. 10). Увеличение. Как видно, образ искомой цели остается таким же, однако меняется его размер, что позволяет лучше обучить нейросеть к объектам с подобным образом.

Рис. 10. Crop.

Rotation (рис. 11). Вращение.

Rotation

Рис. 11. Rotation.

Shear (рис. 12).

Сдвиг, искажение перспективы.

Рис. 12. Shear.

Exposure (рис. 13). Экспозиция.

Exposure

Exposure

■25% 2554

Рис. 13. Exposure.

В результате, благодаря аугментации, обучающий набор можно увеличить троекратно или даже больше, в зависимости от конкретной решаемой задачи. При совершении исследовании исходные 2798 снимков были размножены до 6706.

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

Вывод

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

исходном изображении, неизменно происходит ее обнаружение нейросетью.

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

Благодарность. Данная статья основана на результатах исследования по теме: "Создание макетного образца одноканальной тропосферной станции метрового диапазона" № 00012/ГФ.

Литература

1. Исаков, С. Как работает сверточная нейронная сеть: архитектура, примеры, особенности / С. Исаков. — Текст: электронный // neurohive: [сайт]. URL: https://neurohive.io/ru/osnovy-data-sci-ence/glubokaya-\svertochnaja-ejronnaja-set/ (дата обращения: 08.06.2022).

2. Друки Алексей Алексеевич Применение сверточных нейронных сетей для выделения и распознавания автомобильных номерных знаков на изображениях со сложным фоном // Известия ТПУ.

2014. №5. URL: https://cyberleninka.ru/arti-cle/n/primenenie-svertochnyh-neyronnyh-setey-dlya-vydeleniya-i-raspoznavaniya-avtomobilnyh-nomernyh-znakov-na-izobrazheniyah-so-slozh nym (дата обращения: 08.06.2022).

3. Солдатова Ольга Петровна, Гаршин Александр Александрович Применение сверточной нейронной сети для распознавания рукописных цифр // КО. 2010. №2. URL: https://cyber-leninka.ru/artide/n/primeneme-svertochnoy-neyron-noy-seti-dlya-raspoznavaniya-rukopisnyh-tsifr (дата обращения: 08.06.2022).

PID CONTROLLER. ITS TYPES, WORKING AND APPLICATIONS

Safir P.

Bachelor of Science, The Azrieli College of Engineering in Jerusalem (JCE)

Israel, Jerusalem ORCID: https://orcid.org/0000-0001-9478-9839 DOI: 10.5281/zenodo.7409178

Abstract

In this article, we will define what a PID controller (A proportional-integral-derivative controller) is. We will also discuss what are the different types of PID controller and how they can be better applied in embedded system and FPGA. We will also consider all the components of a PID controller and their uses. Also, we will describe some simple PID controller algorithms and their applications.

Keywords: PID controller, relay control algorithm, hysteresis, predicting the future algorithm.

Introduction

The PID controller is a universal automatic solution for controlling processes within certain limits as agreed and selected by the engineer. PID controller systems are used in most automatic control systems. For example, a PID controller is used in your printer and controls the motor, in refrigerators and solar boilers there are PID controllers as well as in your drone whereby a PID controller is used in every stage of flight PID to control the exact altitude and location. Almost all autopilots have a PID controller in one form or another. In fact, the PID controller is quite easy to set up and works on any target based on (and not only) embedded system[1] and FPGA[2]. In embedded systems and FPGA based projects we use PID controllers to keep the system in a desired state, for example when we need the drone to achieve a required height and position, and it has to stay there in flight no matter how strong the wind is blowing. Also, we use a PID controller to define clearly designated parameters and to track the position of the system within those parameters.

PID controller theory

Let us introduce some concepts to describe PID controller. And we begin by describing our system which consists of a LASER. This LASER is our control object and our goal is to always keep a constant temperature on the controlled object. When we need to cool this object, we use a Peltier element[3]. This was our first control device. The Peltier element is a thermoelectric transducer made of two plates with a semiconductor between them. It has two pins for power. If you supply power to the element, one of the sides will start to cool but the temperature of the other side will rise

rapidly. From the hot side we can force heat away using a controlled fan. This is our second controlled device. And the control device is the fan motor driver. In the case of our fan driver, depending on the parameters you have set in the PID controller, it will change the PWM[4] duty cycle and this in turn will change the rotation speed of the fan. The PID controller itself is a part of the program which runs inside the processor of our embedded system. Next to the LASER there is a temperature sensor. The PID controller gets the current value from it. The value of this sensor provides the feedback which allows the PID controller to maintain the desired temperature in our system. The motor speed calculation feedback is shown is by the RPM[5]. It is important parameter in the PID controller is - the set point. The set point - is the parameter that the PID controller strives to obtain. It can be written into the program itself or set up from the keyboard during the operation stages of implementing the system. The PID controller will compare the current set value with the value received from the sensors and send a correction signal to the control units. The entire system works like this. In the PID controller program you set the desired value of temperature, then it receives data from the temperature sensor, performs certain calculations and sends the control signal to the fan motor driver to generate PWM frequency and a second signal to increase or decrease the current in the Peltier element. It is important that the PID controller sends the correction signal with the same frequency. The sending frequency of the correction signal is called the sampling frequency of the system and is designated as dt.

The PID controller

i Надоели баннеры? Вы всегда можете отключить рекламу.