AutoML ile küçük bir nesne algılama modelini eğitin

ŞUNLAR IÇIN GEÇERLIDIR: Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, Azure Machine Learning'de otomatik ML ile yüksek çözünürlüklü görüntülerdeki küçük nesneleri algılamak için nesne algılama modelini eğitmeyi öğreneceksiniz.

Genellikle, nesne algılamaya yönelik görüntü işleme modelleri, görece büyük nesnelere sahip veri kümelerinde iyi çalışır. Ancak, bellek ve hesaplama kısıtlamaları nedeniyle, bu modeller yüksek çözünürlüklü görüntülerdeki küçük nesneleri algılama görevi verildiğinde düşük performans gösterme eğilimindedir. Yüksek çözünürlüklü görüntüler genellikle büyük olduğundan, modele giriş yapmadan önce yeniden boyutlandırılırlar ve bu da ilk görüntü boyutuna göre daha küçük nesneleri algılama yeteneklerini sınırlar.

Bu soruna yardımcı olmak için otomatik ML, görüntü işleme özelliklerinin bir parçası olarak döşemeyi destekler. Otomatik ML'deki döşeme özelliği, Küçük Nesne Algılama için Döşemenin Gücü'ndeki kavramları temel alır.

Döşeme sırasında her resim bir kutucuk kılavuzuna bölünür. Bitişik kutucuklar genişlik ve yükseklik boyutlarında birbirleriyle çakışıyor. Kutucuklar, aşağıdaki görüntüde gösterildiği gibi özgün kutucuklardan kırpılır.

Örtüşen kutucuklardan oluşan bir kılavuza bölünmüş bir görüntüyü gösteren diyagram.

Önkoşullar

Desteklenen modeller

Döşeme kullanan küçük nesne algılama, nesne algılama görevi için görüntüler için Otomatik ML tarafından desteklenen tüm modeller için desteklenir.

Eğitim sırasında döşemeyi etkinleştirme

Döşemeyi etkinleştirmek için parametresini tile_grid_size '3x2' gibi bir değere ayarlayabilirsiniz; burada 3, genişlik boyutu boyunca kutucuk sayısı ve 2 yükseklik boyutu boyunca kutucuk sayısıdır. Bu parametre '3x2' olarak ayarlandığında, her görüntü 3 x 2 kutucuklu bir kılavuza bölünür. Her kutucuk bitişik kutucuklarla çakıştığı için, kutucuk sınırına düşen tüm nesneler kutucuklardan birine tamamen eklenir. Bu çakışma, varsayılan olarak %25 olan parametresi tarafından tile_overlap_ratio denetlenebilir.

Döşeme etkinleştirildiğinde, görüntünün tamamı ve ondan oluşturulan kutucuklar modelden geçirilir. Bu görüntüler ve kutucuklar modele min_size beslemeden önce ve max_size parametrelerine göre yeniden boyutlandırılır. Bu ek verilerin işlenmesi nedeniyle hesaplama süresi orantılı olarak artar.

Örneğin, parametre '3x2' olduğunda tile_grid_size , hesaplama süresi döşeme olmadan yaklaşık yedi kat daha yüksek olur.

Eğitim parametrelerinizde değerini tile_grid_size dize olarak belirtebilirsiniz.

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

training_parameters:
  tile_grid_size: '3x2'

parametresinin değeri tile_grid_size görüntü boyutlarına ve görüntü içindeki nesnelerin boyutuna bağlıdır. Örneğin, görüntülerde daha küçük nesneler olduğunda daha fazla sayıda kutucuk yararlı olabilir.

Veri kümeniz için bu parametre için en uygun değeri seçmek için hiper parametre aramasını kullanabilirsiniz. Bunu yapmak için hiper parametre alanınızda bu parametre için bir değer seçimi belirtebilirsiniz.

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

search_space:
  - model_name:
      type: choice
      values: ['fasterrcnn_resnet50_fpn']
    tile_grid_size:
      type: choice
      values: ['2x1', '3x2', '5x3']

Çıkarım sırasında döşeme

Döşemeyle eğitilen bir model dağıtıldığında, döşeme çıkarım sırasında da gerçekleşir. Otomatik ML, çıkarım sırasında kutucukları oluşturmak için eğitimden alınan değeri kullanır tile_grid_size . Görüntünün tamamı ve karşılık gelen kutucuklar modelden geçirilir ve bu kutucuklardan gelen nesne teklifleri, aşağıdaki görüntüde olduğu gibi son tahminleri elde etmek için birleştirilir.

Son tahminleri oluşturmak için birleştirilen görüntü ve kutucuklardan nesne tekliflerini gösteren diyagram.

Not

Aynı nesne birden çok kutucuktan algılanıyor olabilir, yinelenenleri kaldırmak için yineleme algılaması yapılır.

Yinelenen algılama, kutucuklardan ve görüntüden gelen tekliflerde NMS çalıştırılarak yapılır. Birden çok teklif çakıştığında, en yüksek puana sahip olan seçilir ve diğerleri yinelenen olarak atılır. Aralarındaki birleşim (iou) üzerindeki kesişim parametresinden büyük olduğunda iki teklifin tile_predictions_nms_thresh çakıştığı kabul edilir.

Ayrıca, eğitimde etkinleştirmeden yalnızca çıkarım sırasında döşemeyi etkinleştirme seçeneğiniz vardır. Bunu yapmak için parametresini tile_grid_size eğitim için değil yalnızca çıkarım sırasında ayarlayın.

Bunu yapmak, bazı veri kümelerinin performansını artırabilir ve eğitim zamanında döşemeyle birlikte gelen ek maliyete neden olmaz.

Döşeme hiper parametreleri

Döşeme özelliğini denetlemek için kullanabileceğiniz parametreler aşağıdadır.

Parametre Adı Açıklama Varsayılan
tile_grid_size Her görüntüyü döşemek için kullanılacak kılavuz boyutu. Eğitim, doğrulama ve çıkarım sırasında kullanılabilir.

Biçimde bir dize '3x2' olarak geçirilmelidir.

Not: Tüm kutucuklar ve görüntüler model tarafından işlendiği için bu parametrenin ayarlanması hesaplama süresini orantılı olarak artırır.
varsayılan değer yok
tile_overlap_ratio Her boyuttaki bitişik kutucuklar arasındaki çakışma oranını denetler. Kutucuk sınırına düşen nesneler kutucuklardan birine tamamen sığamayacak kadar büyük olduğunda, nesnelerin kutucuklardan en az birine tamamen sığması için bu parametrenin değerini artırın.

[0, 1) içinde bir float olmalıdır.
0,25
tile_predictions_nms_thresh Kutucuklardan ve görüntüden tahminleri birleştirirken maksimum olmayan gizleme (nms) yapmak için kullanılacak birleşim eşiği üzerindeki kesişim. Doğrulama ve çıkarım sırasında kullanılabilir. Son tahminlerde nesne başına algılanan birden çok kutu varsa bu parametreyi değiştirin.

[0, 1] içinde kaydırılmalıdır.
0,25

Örnek not defterleri

Nesne algılama modelini ayarlama ve eğiterek ilgili ayrıntılı kod örnekleri için bkz. nesne algılama örnek not defteri .

Not

Bu makaledeki tüm görüntüler , MIT lisans sözleşmesinin izin verilen kullanım bölümüne uygun olarak kullanıma sunulmuştur. Telif Hakkı © 2020 Roboflow, Inc.

Sonraki adımlar