ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

ΠžΠ±Π·ΠΎΡ€ Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Oriented Bounding Box (OBB)

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ (OBB) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом руководствС рассказываСтся ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… OBB, совмСстимых с модСлями Ultralytics YOLO , даСтся прСдставлСниС ΠΎΠ± ΠΈΡ… структурС, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… прСобразования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… OBB

YOLO Π€ΠΎΡ€ΠΌΠ°Ρ‚ OBB

Π€ΠΎΡ€ΠΌΠ°Ρ‚ YOLO OBB ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΠΌΠΊΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΡƒΠ³Π»ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ, Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 1. Он слСдуСт этому Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ:

class_index, x1, y1, x2, y2, x3, y3, x4, y4

Π’Π½ΡƒΡ‚Ρ€ΠΈ YOLO ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ Π² xywhr Π€ΠΎΡ€ΠΌΠ°Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ прСдставлСны Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° (xy), ΡˆΠΈΡ€ΠΈΠ½Π°, высота ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° OBB

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ *.txt Π€Π°ΠΉΠ» ΠΌΠ΅Ρ‚ΠΊΠΈ для ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса 0 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ OBB ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

ИспользованиС

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ модСль, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ OBB:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO('yolov8n-obb.yaml')

# Train the model on the DOTAv2 dataset
results = model.train(data='DOTAv1.yaml', epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

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

Π’ настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ:

  • DOTA v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) вСрсии 2 Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΠΏΠΎΡ€ Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с Π²ΠΎΠ·Π΄ΡƒΡˆΠ½Ρ‹Ρ… ракурсов ΠΈ содСрТит ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°ΠΌΠΊΠΈ с 1,7 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ экзСмпляров ΠΈ 11 268 изобраТСниями.

  • DOTA8: НСбольшоС подмноТСство ΠΈΠ· 8 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… DOTA, подходящСС для тСстирования Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (CI) Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ OBB Π² ultralytics Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ собствСнного Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… OBB

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои собствСнныС Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ "YOLO OBB", ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉ свои Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² этот Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΡƒΠΊΠ°ΠΆΠΈ ΠΏΡƒΡ‚ΠΈ, классы ΠΈ ΠΈΠΌΠ΅Π½Π° классов Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ YAML.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² этикСток

DOTA Dataset Format to YOLO OBB Format

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… DOTA Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ YOLO OBB ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого скрипта:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb('path/to/DOTA')

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ прСобразования ΠΏΠΎΠ»Π΅Π·Π΅Π½ для Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ DOTA, обСспСчивая ΠΈΡ… соотвСтствиС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Ultralytics YOLO OBB.

ΠšΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с Ρ‚Π²ΠΎΠ΅ΠΉ модСлью ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹Ρ… соглашСний. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ структурированныС Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обучСния эффСктивных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ.



Боздано 2023-11-12, ОбновлСно 2024-01-25
Авторы: glenn-jocher (6)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ