Π‘ΡΡΠ»ΠΊΠ° Π΄Π»Ρ ultralytics/models/sam/amg.py
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/amg .py. ΠΡΠ»ΠΈ ΡΡ Π·Π°ΠΌΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π΅, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² Pull Request π οΈ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ π!
ultralytics.models.sam.amg.is_box_near_crop_edge(boxes, crop_box, orig_box, atol=20.0)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ tensor , ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π»ΠΈ Π±ΠΎΠΊΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅Π·ΠΊΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.batch_iterator(batch_size, *args)
ΠΠΎΠ»ΡΡΠ°ΠΉ ΠΏΠ°ΡΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.calculate_stability_score(masks, mask_threshold, threshold_offset)
ΠΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠΈ ΠΌΠ°ΡΠΎΠΊ.
ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ - ΡΡΠΎ IoU ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΡΠΎΠ² ΠΌΠ°ΡΠΎΠΊ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΈΡ ΠΈ Π½ΠΈΠ·ΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
- ΠΠ΄Π½Π° ΠΌΠ°ΡΠΊΠ° Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ.
- ΠΠΊΠΎΠ½ΠΎΠΌΡ ΠΏΠ°ΠΌΡΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ torch.int64
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.build_point_grid(n_per_side)
Π‘Π³Π΅Π½Π΅ΡΠΈΡΡΠΉ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠΊΡ ΠΈΠ· ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΎΡΠ΅ΠΊ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [0,1]x[0,1].
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.build_all_layer_point_grids(n_per_side, n_layers, scale_per_layer)
Π‘ΠΎΠ·Π΄Π°ΠΉ ΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠ΅ΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΠΎΠ΅Π² ΠΊΡΠ»ΡΡΡΡΡ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.generate_crop_boxes(im_size, n_layers, overlap_ratio)
ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅Π·Π½ΡΡ ΠΊΠΎΡΠΎΠ±ΠΎΠΊ ΡΠ°Π·Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ².
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΠΎΠ΅ Π΅ΡΡΡ (2i)2 ΡΡΠΈΠΊΠ° Π΄Π»Ρ i-Π³ΠΎ ΡΠ»ΠΎΡ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.uncrop_boxes_xyxy(boxes, crop_box)
Π Π°Π·Π²Π΅ΡΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΌΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΊΠΈ ΠΎΠ±ΡΠ΅Π·ΠΊΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.uncrop_points(points, crop_box)
Π Π°Π·Π²Π΅ΡΠ½ΠΈ ΡΠΎΡΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΊΠΈ ΠΎΠ±ΡΠ΅Π·ΠΊΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.uncrop_masks(masks, crop_box, orig_h, orig_w)
ΠΠ±ΡΠ΅Π·Π°ΠΉ ΠΌΠ°ΡΠΊΠΈ, ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ ΠΈΡ ΠΏΠΎΠ΄ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.remove_small_regions(mask, area_thresh, mode)
Π£ΡΡΡΠ°Π½ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠΈΡ Π² ΠΌΠ°ΡΠΊΠ΅, Π²Π΅ΡΠ½ΡΠ² ΠΌΠ°ΡΠΊΡ ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
ultralytics.models.sam.amg.batched_mask_to_box(masks)
Π Π°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XYXY Π²ΠΎΠΊΡΡΠ³ ΠΌΠ°ΡΠΎΠΊ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉ [0,0,0,0] Π΄Π»Ρ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ. ΠΠ»Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΡ C1xC2x...xHxW Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ Π±ΡΠ΄Π΅Ρ C1xC2x...x4.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/models/sam/amg.py
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 2023-11-12, ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 2024-05-08
ΠΠ²ΡΠΎΡΡ: Burhan-Q (1), Glenn-jocher (3), Laughing-q (1)