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

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ "Π›ΡŽΠ±Π°Ρ модСль" (SAM)

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ сСгмСнтации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ Segment Anything Model, ΠΈΠ»ΠΈ SAM. Π­Ρ‚Π° Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Π°Ρ модСль ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΠ³Ρ€Ρƒ, прСдставив ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, установив Π½ΠΎΠ²Ρ‹Π΅ стандарты Π² этой области.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² SAM: МодСль "Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ - всё

МодСль Segment Anything Model, ΠΈΠ»ΠΈ SAM, - это пСрСдовая модСль сСгмСнтации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, которая позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ запросу, обСспСчивая Π±Π΅ΡΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Π½ΡƒΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. SAM - это сСрдцС ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ Segment Anything, новаторского ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Π½ΠΎΠ²ΡƒΡŽ модСль, Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для сСгмСнтации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

SAMΠ£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Π°Ρ конструкция позволяСт Π΅ΠΌΡƒ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ распрСдСлСниям ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊ пСрСнос Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… снимков. ΠžΠ±ΡƒΡ‡Π°ΡΡΡŒ Π½Π° ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… SA-1B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° масок, распрСдСлСнных ΠΏΠΎ 11 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, SAM продСмонстрировал Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ снимками, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях прСвзойдя ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π½Ρ‹ΠΌ наблюдСниСм.

ΠžΠ±Ρ€Π°Π·Π΅Ρ† изобраТСния ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… SA-1B ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹Π΅ изобраТСния. На изобраТСния ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ маски ΠΈΠ· Π½Π΅Π΄Π°Π²Π½ΠΎ появившСгося Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… SA-1B. SA-1B содСрТит 11 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ высокого Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈ 1,1 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° высококачСствСнных масок для сСгмСнтации. Π­Ρ‚ΠΈ маски Π±Ρ‹Π»ΠΈ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ автоматичСски SAM, ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ чСловСчСскиС ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ многочислСнныС экспСримСнты, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ высоким качСством ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ. Для наглядности изобраТСния сгруппированы ΠΏΠΎ количСству масок Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (Π² срСднСм Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ приходится ∼100 масок).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности ΠΌΠΎΠ΄Π΅Π»ΠΈ Segment Anything Model (SAM)

  • Π—Π°Π΄Π°Ρ‡Π° сСгмСнтации ΠΏΠΎ подсказкС: SAM Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ сСгмСнтации ΠΏΠΎ подсказкС, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ маски сСгмСнтации ΠΏΠΎ любой подсказкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ пространствСнным ΠΈΠ»ΠΈ тСкстовым подсказкам, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°: Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ Segment Anything Model ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΊΠΎΠ΄Π΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ΄Π΅Ρ€ подсказок ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ масок. Π­Ρ‚Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт Π³ΠΈΠ±ΠΊΠΈΠ΅ подсказки, вычислСниС масок Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ осознаниС нСоднозначности Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… сСгмСнтации.
  • Набор Π΄Π°Π½Π½Ρ‹Ρ… SA-1B: ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Segment Anything, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… SA-1B содСрТит Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° масок Π½Π° 11 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Являясь самым большим Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… для сСгмСнтации Π½Π° сСгодняшний дСнь, ΠΎΠ½ обСспСчиваСт SAM Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΌ источником ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….
  • Zero-Shot Performance: SAM дСмонстрируСт Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ zero-shot Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… сСгмСнтации, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ использованию инструмСнтом для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с минимальной ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Для Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ознакомлСния с модСлью Segment Anything ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… SA-1B посСти сайт Segment Anything ΠΈ ознакомься с ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Segment Anything.

ДоступныС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ прСдставлСны доступныС ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ вСсами, Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚, ΠΈ ΠΈΡ… ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Inference, Validation, Training ΠΈ Export, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ βœ… emojis для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΈ ❌ emojis для Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ².

Π’ΠΈΠΏ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ вСса ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Валидация Π’Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ° Экспорт
SAM Π‘Π°Π·Π° sam_b.pt БСгмСнтация экзСмпляров βœ… ❌ ❌ ❌
SAM большой sam_l.pt БСгмСнтация экзСмпляров βœ… ❌ ❌ ❌

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SAM: ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠΎΡ‰ΡŒ Π² сСгмСнтации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

МодСль Segment Anything ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для мноТСства ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡, выходящих Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΅Π΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡ€Π°Π΅Π², ΠΈ гСнСрация ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈ сСгмСнтация экзСмпляров, ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСдсказаниС тСкста ΠΏΠΎ маскС. Благодаря ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ SAM ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх Ρ‚Π²ΠΎΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ сСгмСнтации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

SAM ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСдсказания

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ с подсказками

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… подсказок.

from ultralytics import SAM

# Load a model
model = SAM('sam_b.pt')

# Display model information (optional)
model.info()

# Run inference with bboxes prompt
model('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])

# Run inference with points prompt
model('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉ всС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

from ultralytics import SAM

# Load a model
model = SAM('sam_b.pt')

# Display model information (optional)
model.info()

# Run inference
model('path/to/image.jpg')
# Run inference with a SAM model
yolo predict model=sam_b.pt source=path/to/image.jpg
  • Π›ΠΎΠ³ΠΈΠΊΠ° здСсь Ρ‚Π°ΠΊΠΎΠ²Π°: ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ссли Ρ‚Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΡˆΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… подсказок (bboxes/points/masks).

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚Ρ‹ смоТСшь ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ нСсколько Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ подсказок, Π½Π΅ запуская ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ нСсколько Ρ€Π°Π·.

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task='segment', mode='predict', imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Set image
predictor.set_image("ultralytics/assets/zidane.jpg")  # set with image file
predictor.set_image(cv2.imread("ultralytics/assets/zidane.jpg"))  # set with np.ndarray
results = predictor(bboxes=[439, 437, 524, 709])
results = predictor(points=[900, 370], labels=[1])

# Reset image
predictor.reset_image()

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉ всС с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ args.

from ultralytics.models.sam import Predictor as SAMPredictor

# Create SAMPredictor
overrides = dict(conf=0.25, task='segment', mode='predict', imgsz=1024, model="mobile_sam.pt")
predictor = SAMPredictor(overrides=overrides)

# Segment with additional args
results = predictor(source="ultralytics/assets/zidane.jpg", crop_n_layers=1, points_stride=64)
  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для Segment everything смотри Predictor/generate Бсылка.

SAM сравнСниС ΠΏΡ€ΠΎΡ‚ΠΈΠ² YOLOv8

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ сравниваСм ΡΠ°ΠΌΡƒΡŽ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ модСль ΠœΠ΅Ρ‚Ρ‹ SAM , SAM-b, с самой малСнькой модСлью сСгмСнтации Ultralytics , YOLOv8n-seg:

МодСль Π Π°Π·ΠΌΠ΅Ρ€ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (процСссор)
Meta's SAM-b 358 ΠœΠ‘ 94.7 M 51096 ms/im
MobileSAM 40,7 ΠœΠ‘ 10.1 M 46122 ms/im
FastSAM-s с ΠΌΠ°Π³ΠΈΡΡ‚Ρ€Π°Π»ΡŒΡŽ YOLOv8 23,7 ΠœΠ‘ 11.8 M 115 мс/ΠΈΠΌ
Ultralytics YOLOv8n-seg 6,7 ΠœΠ‘ (Π² 53,4 Ρ€Π°Π·Π° мСньшС) 3,4 М (Π² 27,9 Ρ€Π°Π· мСньшС) 59 мс/ΠΈΠΌ (Π² 866 Ρ€Π°Π· быстрСС)

Π­Ρ‚ΠΎ сравнСниС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π½Π° порядок Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΈ скорости ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ SAM прСдставляСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для автоматичСского сСгмСнтирования, ΠΎΠ½ Π½Π΅ являСтся прямым ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠΌ сСгмСнтным модСлям YOLOv8 , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСньшС, быстрСС ΠΈ эффСктивнСС.

ВСсты проводятся Π½Π° ΠΌΠ°ΠΊΠ±ΡƒΠΊΠ΅ Apple M2 2023 Π³ΠΎΠ΄Π° выпуска с 16 Π“Π± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π§Ρ‚ΠΎΠ±Ρ‹ воспроизвСсти этот тСст:

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

from ultralytics import FastSAM, SAM, YOLO

# Profile SAM-b
model = SAM('sam_b.pt')
model.info()
model('ultralytics/assets')

# Profile MobileSAM
model = SAM('mobile_sam.pt')
model.info()
model('ultralytics/assets')

# Profile FastSAM-s
model = FastSAM('FastSAM-s.pt')
model.info()
model('ultralytics/assets')

# Profile YOLOv8n-seg
model = YOLO('yolov8n-seg.pt')
model.info()
model('ultralytics/assets')

Автоаннотация: Быстрый ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для сСгмСнтации

АвтоаннотированиС - ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ SAM, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для сСгмСнтации с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ обнаруТСния. Π­Ρ‚Π° функция позволяСт быстро ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большоС количСство ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, минуя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠΉ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π‘ΠΎΠ·Π΄Π°ΠΉ свой Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для сСгмСнтации с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ обнаруТСния

Π§Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΠ°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Ultralytics , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ auto_annotate функция, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

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

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')
АргумСнт Π’ΠΈΠΏ ОписаниС По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
Π΄Π°Π½Π½Ρ‹Π΅ str ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, содСрТащСй изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
det_model str, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ обучСнная модСль обнаруТСния YOLO . По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - 'yolov8x.pt'. 'yolov8x.pt'
sam_модСль str, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ обучСнная модСль сСгмСнтации SAM . По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - 'sam_b.pt'. 'sam_b.pt'
Устройство str, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Устройство, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это пустая строка (CPU ΠΈΠ»ΠΈ GPU, Ссли Π΅ΡΡ‚ΡŒ).
Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ_Π΄ΠΈΡ€ str, None, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ для сохранСния Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это ΠΏΠ°ΠΏΠΊΠ° 'labels' Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ 'data'. НСт

The auto_annotate Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ‚Π²ΠΎΠΈΠΌ изобраТСниям, с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ для указания ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ обнаруТСния ΠΈ сСгмСнтации SAM , устройства, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для сохранСния Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

АвтоаннотированиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΈ усилия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания качСствСнных Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… сСгмСнтации. Π­Ρ‚Π° функция особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для исслСдоватСлСй ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с большими коллСкциями ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт ΠΈΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π° Π½Π΅ Π½Π° Ρ€ΡƒΡ‡Π½ΠΎΠΌ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Π¦ΠΈΡ‚Π°Ρ‚Ρ‹ ΠΈ благодарности

Если Ρ‚Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒ SAM ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² своих исслСдованиях ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ…, поТалуйста, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π°ΡˆΡƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ:

@misc{kirillov2023segment,
      title={Segment Anything},
      author={Alexander Kirillov and Eric Mintun and Nikhila Ravi and Hanzi Mao and Chloe Rolland and Laura Gustafson and Tete Xiao and Spencer Whitehead and Alexander C. Berg and Wan-Yen Lo and Piotr DollΓ‘r and Ross Girshick},
      year={2023},
      eprint={2304.02643},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Meta AI Π·Π° созданиС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ этого Ρ†Π΅Π½Π½ΠΎΠ³ΠΎ рСсурса для сообщСства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния.

ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова: Segment Anything, Segment Anything Model, SAM, Meta SAM, сСгмСнтация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, promptable segmentation, zero-shot performance, SA-1B dataset, advanced architecture, auto-annotation, Ultralytics, pre-trained models, SAM base, SAM large, instance segmentation, computer vision, AI, artificial intelligence, machine learning, data annotation, segmentation masks, detection model, YOLO detection model, bibtex, Meta AI.



Боздано 2023-11-12, ОбновлСно 2024-04-17
Авторы: glenn-jocher (10), ChaoningZhang (1), Laughing-q (1)

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