Skip to content

Vlad15lav/ors-detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

65 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Optical Remote Sensing Detection

Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° спутниковых снимках πŸŒπŸ›°

Π­Ρ‚ΠΎΡ‚ кСйс прСдставляСт собой систСму для дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° спутниковых снимках. БистСма основана Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ YOLOv3 ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ здания, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π° спутниковых снимках Π—Π΅ΠΌΠ»ΠΈ.

ОглавлСниС

  1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  2. Requirements
  3. Набор Π΄Π°Π½Π½Ρ‹Ρ… DIOR
  4. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
  5. ΠžΡ†Π΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ
  6. Π”Π΅ΠΌΠΎ Inference
  7. Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ Π±ΠΎΡ‚
  8. Web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  9. Бсылки

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ЦСлью Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° - Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° оптичСских спутниковых снимках. На Π²Ρ…ΠΎΠ΄ подаСтся спутниковоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ располоТСниС ΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Requirements

Для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… зависимостСй Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pip install -U -r requirements.txt

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… для Π·Π°Π΄Π°Ρ‡ΠΈ дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² - Набор инструмСнтов для дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Набор Π΄Π°Π½Π½Ρ‹Ρ… DIOR

Для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ использовался Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Detection in Optical Remote.
DIOR прСдставляСт собой ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΉ ΠΈ общСдоступный Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° оптичСских спутниковых снимках. Π’ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… содСрТится 23463 изобраТСния с 192472 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ 20 классов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². DIOR отличаСтся большим Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ условиями съСмки (ΠΏΠΎΠ³ΠΎΠ΄Π°, сСзоны) ΠΈ качСством ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… прСдоставляСт исслСдоватСлям Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ слуТит Π±Π°Π·ΠΎΠΉ для сравнСния соврСмСнных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π² этой области.

Набор Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Google Disk

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ

Для Π½Π°Ρ‡Π°Π»Π° обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python train.py --path data/DIOR-full --cfg dior --img_size 512 --lr 0.005 --epoches 50 --batch_size 12 --debug

Для продолТСния обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python train.py --path data/DIOR-full --cfg dior --img_size 512 --load_train --epoches 50 --batch_size 12 --debug

Π“Ρ€Π°Ρ„ΠΈΠΊ обучСния:

Π“Ρ€Π°Ρ„ΠΈΠΊ обучСния

ΠžΡ†Π΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ

Для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python eval.py --path data/DIOR-full --cfg dior --img_size 512 --batch_size 12

Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ точности обнаруТСния (mAP): 73.1%

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π» рассчитан ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ точности (AP):

Класс AP
airplane 81.6
airport 76.1
baseballfield 84.6
basketballcourt 88.6
bridge 48.9
chimney 75.9
dam 61.1
Expressway-Service-area 82.9
Expressway-toll-station 78.0
golffield 69.1
groundtrackfield 86.5
harbor 56.3
overpass 90.4
ship 51.9
stadium 78.4
storagetank 88.9
tenniscourt 61.1
trainstation 56.0
vehicle 89.2
windmill 57.8

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ дСтСктирования:

drawing

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ вСсов YOLOv3 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

wget https://github.com/Vlad15lav/ors-detection/releases/download/weights/dior_weights.pth -O states/dior_weights.pth

Π”Π΅ΠΌΠΎ Inference

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ простой скрипт:

python inference.py -p images/test_sample.jpg --cfg dior --img_size 512

Π­Ρ‚ΠΎΡ‚ скрипт позволяСт Π²Π°ΠΌ быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π±Π΅Π· нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ выполнСния обучСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ скрипта:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ скрипта

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ Π±ΠΎΡ‚

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… MySQL для Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ Π±ΠΎΡ‚Π°:

mysql -u root -p detector_bot < db/detector_bot.sql

Π’ скриптС bot.py ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для MySQL сСрвСра ΠΈ Token Bot Father:

# Π”Π°Π½Π½Ρ‹Π΅ для Π²Ρ…ΠΎΠ΄Π° Π² Π‘Π” ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌΠ°
DATABASE_ADDRESS = "YOUR ADDRESS"
DATABASE_USER = "YOUR USER"
DATABASE_PASW = "YOUR PASSWORD"
DATABASE_NAME = "YOUR DATABASE NAME"
BOT_TOKEN = "YOUR TOKEN"

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

python bot.py

Web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

НашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Streamlit ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ использованию прямо сСйчас! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΈ возмоТностями систСмы для дСтСктирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° оптичСских спутниковых снимках. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС сюда ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Web-интСрфСйса, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ спутниковыС снимки, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° снимках ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ввСсти ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ любой Ρ‚ΠΎΡ‡ΠΊΠΈ Π—Π΅ΠΌΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ снимок.

Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Бсылки