Meta graph convolutional neural network-assisted resilient swarm communications

Overview

Resilient UAV Swarm Communications with Graph Convolutional Neural Network

This repository contains the source codes of

Resilient UAV Swarm Communications with Graph Convolutional Neural Network

Zhiyu Mou, Feifei Gao, Jun Liu, and Qihui Wu

Fei-Lab

Problem Descriptions

In this paper, we study the self-healing of communication connectivity (SCC) problem of unmanned aerial vehicle (UAV) swarm network (USNET) that is required to quickly rebuild the communication connectivity under unpredictable external destructions (UEDs). Firstly, to cope with the one-off UEDs, we propose a graph convolutional neural network (GCN) and find the recovery topology of the USNET in an on-line manner. Secondly, to cope with general UEDs, we develop a GCN based trajectory planning algorithm that can make UAVs rebuild the communication connectivity during the self-healing process. We also design a meta learning scheme to facilitate the on-line executions of the GCN. Numerical results show that the proposed algorithms can rebuild the communication connectivity of the USNET more quickly than the existing algorithms under both one-off UEDs and general UEDs. The simulation results also show that the meta learning scheme can not only enhance the performance of the GCN but also reduce the time complexity of the on-line executions.

Display of Main Results Demo

One-off UEDs

randomly destruct 150 UAVs                             randomly destruct 100 UAVs

150 100

General UEDs

general UEDs with global information           general UEDs with monitoring mechanism

general_global_info general

Note: these are gifs. It may take a few seconds to display. You can refresh the page if they cannot display normally. Or you can view them in ./video.

Environment Requirements

pytorch==1.6.0
torchvision==0.7.0
numpy==1.18.5
matplotlib==3.2.2
pandas==1.0.5
seaborn==0.10.1
cuda supports and GPU acceleration

Note: other versions of the required packages may also work.

The machine we use

CPU: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
GPU: NVIDIA GeForce RTX 3090

Necessary Supplementary Downloads

As some of the necessary configuration files, including .xlsx and .npy files can not be uploaded to the github, we upload these files to the clouds. Anyone trying to run these codes need to download the necessary files.

Download initial UAV positions (necessary)

To make the codes reproducible, you need to download the initial positions of UAVs we used in the experiment from https://cloud.tsinghua.edu.cn/f/c18807be55634378b30f/ or https://drive.google.com/file/d/1q1J-F2OAY_VDaNd1DWCfy_N2loN7o1XV/view?usp=sharing. Upzip the download files to ./Configurations/.

Download Trained Meta Parameters (alternative, but if using meta learning without training again, then necessary)

Since the total size of meta parameters is about 1.2GB, we have uploaded the meta parameters to https://cloud.tsinghua.edu.cn/f/2cb28934bd9f4bf1bdd7/ and https://drive.google.com/file/d/1QPipenDZi_JctNH3oyHwUXsO7QwNnLOz/view?usp=sharing. You need to download the file from either two links and unzip them to ./Meta_Learning_Results/meta_parameters/if you want to use the trained meta parameters. Otherwise, you need to train the meta parameters again (directly run Meta-learning_all.py)

Download Meta Learning Loss Functions Pictures (alternative)

The loss function pictures of meta learning are available on https://cloud.tsinghua.edu.cn/f/fc0d84f2c6374e29bcbe/ and https://drive.google.com/file/d/1cdceleZWyXcD1GxOPCYlLsRVTwNRWPBy/view?usp=sharing. You can store them in ./Meta_Learning_Results/meta_loss_pic/

Quick Start

Simulate SCC under one-off UEDs

directly run ./Experiment_One_off_UED.py

python Experiment_One_off_UED.py

Simulate meta learning process

directly run ./Meta-learning_all.py

python Meta-learning_all.py

Simulate SCC under general UEDs

directly run ./Experiment_General_UED.py

python Experiment_General_UED.py

File and Directory Explanations

  • ./Configurations/

the initial positions of 200 UAVs

  • ./Drawing/

the drawing functions

  • ./Experiment_Fig/

the experiment figures and the drawing source codes

  • ./Main_algorithm_GCN/

the proposed algorithms in the paper

  • ./Main_algorithm_GCN/CR_MGC.py

the CR-MGC algorithm (Algorithm 2 in the paper)

  • ./Main_algorithm_GCN/GCO.py

the GCO algorithm

  • ./Main_algorithm_GCN/Smallest_d_algorithm.py

algorithm of finding the smallest distance to make the RUAV graph a CCN (Algorithm 1 in the paper)

  • ./Meta_Learning_Results/

the results of meta learning

  • ./Meta_Learning_Results/meta_loss_pic

the loss function pictures of 199 mGCNs

  • ./Meta_Learning_Results/meta_parameters

the meta parameters (Since the total size of meta parameters is about 1.2GB, we have uploaded the meta parameters to https://cloud.tsinghua.edu.cn/f/2cb28934bd9f4bf1bdd7/ or https://drive.google.com/file/d/1QPipenDZi_JctNH3oyHwUXsO7QwNnLOz/view?usp=sharing)

  • ./Traditional_Algorithm/

the implementations of traditional algorithms

  • ./video/

the gif files of one-off UEDs

  • ./Configurations.py

the simulation parameters

  • ./Environment.py

the Environment generating UEDs

  • ./Experiment_General_UED.py/

the simulation under general UEDs

  • ./Experiment_One_off_UED.py/

the simulation under one-off UEDs

  • ./Experiment_One_off_UED_draw_Fig_12_d.py/

draw the Fig. 12(d) in the simulation under one-off UEDs

  • ./Meta-learning_all.py/

the meta learning

  • ./Swarm.py/

the integration of algorithms under one-off UEDs

  • ./Swarm_general.py/

the integration of algorithms under general UEDs

  • ./Utils.py/

the utility functions

Note that some unnecessary drawing codes used in the paper are not uploaded to this responsitory.

Code for "Contextual Non-Local Alignment over Full-Scale Representation for Text-Based Person Search"

Contextual Non-Local Alignment over Full-Scale Representation for Text-Based Person Search This is an implementation for our paper Contextual Non-Loca

Tencent YouTu Research 50 Dec 03, 2022
Learning with Noisy Labels via Sparse Regularization, ICCV2021

Learning with Noisy Labels via Sparse Regularization This repository is the official implementation of [Learning with Noisy Labels via Sparse Regulari

Xiong Zhou 38 Oct 20, 2022
TeachMyAgent is a testbed platform for Automatic Curriculum Learning methods in Deep RL.

TeachMyAgent: a Benchmark for Automatic Curriculum Learning in Deep RL Paper Website Documentation TeachMyAgent is a testbed platform for Automatic Cu

Flowers Team 51 Dec 25, 2022
Generating Radiology Reports via Memory-driven Transformer

R2Gen This is the implementation of Generating Radiology Reports via Memory-driven Transformer at EMNLP-2020. Citations If you use or extend our work,

CUHK-SZ NLP Group 101 Dec 13, 2022
A Python 3 package for state-of-the-art statistical dimension reduction methods

direpack: a Python 3 library for state-of-the-art statistical dimension reduction techniques This package delivers a scikit-learn compatible Python 3

Sven Serneels 32 Dec 14, 2022
Code for paper "Do Language Models Have Beliefs? Methods for Detecting, Updating, and Visualizing Model Beliefs"

This is the codebase for the paper: Do Language Models Have Beliefs? Methods for Detecting, Updating, and Visualizing Model Beliefs Directory Structur

Peter Hase 19 Aug 21, 2022
Human Detection - Pedestrian Detection using OpenCV Python

Pedestrian Detection using OpenCV Python Follow us on Instagram for Machine Lear

Hrishikesh Dutta 1 Jan 23, 2022
HMLET (Hybrid-Method-of-Linear-and-non-linEar-collaborative-filTering-method)

Methods HMLET (Hybrid-Method-of-Linear-and-non-linEar-collaborative-filTering-method) Dynamically selecting the best propagation method for each node

Yong 7 Dec 18, 2022
Python library for computer vision labeling tasks. The core functionality is to translate bounding box annotations between different formats-for example, from coco to yolo.

PyLabel pip install pylabel PyLabel is a Python package to help you prepare image datasets for computer vision models including PyTorch and YOLOv5. I

PyLabel Project 176 Jan 01, 2023
Its a Plant Leaf Disease Detection System based on Machine Learning.

My_Project_Code Its a Plant Leaf Disease Detection System based on Machine Learning. I have used Tomato Leaves Dataset from kaggle. This system detect

Sanskriti Sidola 3 Jun 15, 2022
A dataset for online Arabic calligraphy

Calliar Calliar is a dataset for Arabic calligraphy. The dataset consists of 2500 json files that contain strokes manually annotated for Arabic callig

ARBML 114 Dec 28, 2022
FID calculation with proper image resizing and quantization steps

clean-fid: Fixing Inconsistencies in FID Project | Paper The FID calculation involves many steps that can produce inconsistencies in the final metric.

Gaurav Parmar 606 Jan 06, 2023
Occlusion robust 3D face reconstruction model in CFR-GAN (WACV 2022)

Occlusion Robust 3D face Reconstruction Yeong-Joon Ju, Gun-Hee Lee, Jung-Ho Hong, and Seong-Whan Lee Code for Occlusion Robust 3D Face Reconstruction

Yeongjoon 31 Dec 19, 2022
Multimodal Descriptions of Social Concepts: Automatic Modeling and Detection of (Highly Abstract) Social Concepts evoked by Art Images

MUSCO - Multimodal Descriptions of Social Concepts Automatic Modeling of (Highly Abstract) Social Concepts evoked by Art Images This project aims to i

0 Aug 22, 2021
Lorien: A Unified Infrastructure for Efficient Deep Learning Workloads Delivery

Lorien: A Unified Infrastructure for Efficient Deep Learning Workloads Delivery Lorien is an infrastructure to massively explore/benchmark the best sc

Amazon Web Services - Labs 45 Dec 12, 2022
Repository for the paper : Meta-FDMixup: Cross-Domain Few-Shot Learning Guided byLabeled Target Data

1 Meta-FDMIxup Repository for the paper : Meta-FDMixup: Cross-Domain Few-Shot Learning Guided byLabeled Target Data. (ACM MM 2021) paper News! the rep

Fu Yuqian 44 Nov 18, 2022
Train neural network for semantic segmentation (deep lab V3) with pytorch in less then 50 lines of code

Train neural network for semantic segmentation (deep lab V3) with pytorch in 50 lines of code Train net semantic segmentation net using Trans10K datas

17 Dec 19, 2022
Mahadi-Now - This Is Pakistani Just Now Login Tools

PAKISTANI JUST NOW LOGIN TOOLS Install apt update apt upgrade apt install python

MAHADI HASAN AFRIDI 19 Apr 06, 2022
[ECE NTUA] 👁 Computer Vision - Lab Projects & Theoretical Problem Sets (2020-2021)

Computer Vision - NTUA (2020-2021) This repository hosts the lab projects and theoretical problem sets of the Computer Vision course held by ECE NTUA

Dimitris Dimos 6 Jul 21, 2022
An Api for Emotion recognition.

PLAYEMO Playemo was built from the ground-up with Flask, a python tool that makes it easy for developers to build APIs. Use Cases Is Python your langu

greek geek 2 Jul 16, 2022