Live demo is available via this link: https://zeus.mkskom.ru/
- Install python3.7
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7
sudo apt-get install python3.7-venv
- Create virtual enviroment:
python3.7 -m venv venv
- Activate environment
source venv/bin/activate
- Install requirements:
venv/bin/pip install --upgrade pip && venv/bin/pip install -r requirements.txt
- If you need yolo:
venv/bin/pip install -r yolov5/requirements.txt
Works out of the box.
Tensorflow is known to be susceptible to versions of dependencies.
So, installation differs from pc to pc. Here is our setup:
- Xiaomi Mi Gaming Laptop
- NVIDIA GeForce GTX 1060
- Ubuntu 16.04
- Cuda installed via instructions from this link: https://www.tensorflow.org/install/gpu
- Python 3.7
- TensorFlow 2.4.0
We hope, you will be able to put this all together.
To train the network, we use open geo data of Switzerland:
- Hi-res RGB aero images are downscaled to imitate satellite images.
- Lidar data is used to produce vegetation height map.
You can get prepared dataset from yandex disk Put directory "swiss_lidar_and_surface" into <repo_root>/RES
Or, you can download data manually and prepare it via jupyter notebook at <repo_root>/jupyter_notebooks/prepare_dataset_lidar_unet.ipynb
To start jupyter:
venv/bin/jupyter notebook
Vizualization of dataset's processed 1x1 km image:
./unet_lidar/train.py --name binary_mask
./unet_lidar/train.py --name regression --is_regression 1
Validation script:
./unet_lidar/validate.py --name binary_mask
./unet_lidar/validate.py --name regression
Segmentation example:
Regression example:
Segmentation metrics:
- IOU = 0.538
- binary_accuracy = 0.865
Regression metrics (each height division is 0.25 m):
- Metric mae: 18.090 (~4.5 m)
- Metric mse: 70.259
- Metric rmse: 8.368 (σ ~ 2.09 m)
В этой работе также представлены другие алгоритмы компьютерного зрения, для решения кейсовых задач. Их методы и примеры работы выведены на web-страницу. Чтобы запустить веб-сервис, установите dockerfile командой
docker-compose up -d
Через браузер зайдите на страницу
Ниже кратко описаны все алгоритмы, которые есть на главной странице сайта.
Применяются для задачи обнаружения опор ЛЭП по тени. Скрипт располагается в директории './classica/izmeritel_teney.py'. В нем описан код по выделению теней - более темных участков земли, фильтрации высокочастотного шума и выделению больших контуров с измерением длины в направлении угла на солнце.
Показан код для обучения ('./RL/train detector.py') и тестирования ('./RL/play.py') нейросети для управления курсором, у которого есть задание, найти все квадраты и поменять им цвет, выполнив действие. Подобный алгоритм планируется использовать для увеличения точности сетей продукта.
В блокноте './stereo img/exp na drone.ipynb' показан пример обработки стереопары, построение карты диспарантности и использования фильтра для сглаживания шумов.
В папке './unet_type_dkr/...' приведен код для обучения (train.py) и предсказания (predict.py) масок лесов по двум типам: "хвойные леса" и "лиственные леса"
В папке yolov5 клон репозитория 'https://github.com/ultralytics/yolov5/' с небольшими правками. Там же лежат обученные веса.
Файл main.py - страница сайта, куда выведены все алгоритмы. Написан на библиотеки https://streamlit.io/