Detectron2 PlatoBlockchain Veri Zekası ile Python'da Nesne Tespiti ve Örnek Segmentasyonu. Dikey Arama. Ai.

Detectron2 ile Python'da Nesne Algılama ve Örnek Segmentasyonu

Giriş

Nesne algılama, bilgisayarla görü alanında geniş bir alandır ve bilgisayarlı görünün “vahşi doğada” en önemli uygulamalarından biridir. Bir tarafta, ister görevleri yerine getiren robotlar isterse kendi kendini süren arabalar olsun, ajanları ortamlarda yönlendiren otonom sistemler oluşturmak için kullanılabilir, ancak bu diğer alanlarla kesişmeyi gerektirir. Bununla birlikte, anormallik tespiti (hattaki kusurlu ürünler gibi), görüntüler içindeki nesneleri bulma, yüz algılama ve diğer çeşitli nesne algılama uygulamaları, diğer alanlar ile kesişmeden yapılabilir.

Nesne algılama, görüntü sınıflandırması kadar standartlaştırılmamıştır, çünkü yeni gelişmelerin çoğu tipik olarak büyük kütüphaneler ve çerçeveler yerine bireysel araştırmacılar, bakımcılar ve geliştiriciler tarafından yapılır. Gerekli yardımcı program komut dosyalarını TensorFlow veya PyTorch gibi bir çerçevede paketlemek ve şimdiye kadar geliştirmeyi yönlendiren API yönergelerini sürdürmek zordur.

Bu, nesne algılamayı biraz daha karmaşık, tipik olarak daha ayrıntılı (ancak her zaman değil) ve görüntü sınıflandırmasından daha az ulaşılabilir hale getirir. Bir ekosistemde olmanın en büyük faydalarından biri, size iyi uygulamalar, araçlar ve kullanım yaklaşımları hakkında faydalı bilgiler aramamanız için bir yol sağlamasıdır. Nesne algılama ile - çoğu, iyi bir kavrama elde etmek için alanın manzarası üzerinde çok daha fazla araştırma yapmak zorundadır.

Meta AI's Detectron2 – Örnek Segmentasyonu ve Nesne Algılama

dedektör2 Meta AI'nın (eski adıyla FAIR – Facebook AI Research) açık kaynaklı nesne algılama, segmentasyon ve poz tahmini paketidir – hepsi bir arada. Bir girdi görüntüsü verildiğinde, nesnelerin etiketlerini, sınırlayıcı kutularını, güven puanlarını, maskelerini ve iskeletlerini döndürebilir. Bu, deponun sayfasında iyi bir şekilde temsil edilir:

Üstünde araştırma projeleri oluşturabileceğiniz bir kütüphane olarak kullanılmak içindir. Bir model hayvanat bahçesi çoğu uygulama, RetinaNet'in yanı sıra genel olarak Mask R-CNN ve R-CNN'lere güvenir. Onlar da oldukça iyi belgeleme. Bir örnek çıkarım betiği çalıştıralım!

İlk önce, bağımlılıkları yükleyelim:

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

Ardından, Detectron2 yardımcı programlarını içe aktaracağız - bu, çerçeve etki alanı bilgisinin devreye girdiği yerdir. kullanarak bir dedektör oluşturabilirsiniz. DefaultPredictor sınıf, onu ayarlayan bir yapılandırma nesnesi ileterek. bu Visualizer sonuçları görselleştirmek için destek sunar. MetadataCatalog ve DatasetCatalog Detectron2'nin veri API'sine aittir ve meta verilerinin yanı sıra yerleşik veri kümeleri hakkında bilgi sunar.

Kullanacağımız sınıfları ve işlevleri içe aktaralım:

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

kullanma requests, bir resim indirip yerel sürücümüze kaydedeceğiz:

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

Bunun sonucu:

Detectron2 PlatoBlockchain Veri Zekası ile Python'da Nesne Tespiti ve Örnek Segmentasyonu. Dikey Arama. Ai.

Şimdi, yapılandırmayı yüklüyoruz, gerekirse değişiklikleri uyguluyoruz (modeller varsayılan olarak GPU'da çalışır, bu nedenle bir GPU'nuz yoksa, cihazı yapılandırmada 'cpu' olarak ayarlamak isteyeceksiniz):

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


Burada, hangi modelden çalıştırmak istediğimizi belirtiyoruz. model_zoo. Mask R-CNN mimarisine dayalı ve ResNet50 omurgasına sahip bir örnek segmentasyon modeli içe aktardık. Neye ulaşmak istediğinize bağlı olarak (anahtar nokta algılama, örnek segmentasyon, panoptik segmentasyon veya nesne algılama), uygun modelde yükleme yapacaksınız.

Son olarak, bununla bir tahmin edici oluşturabiliriz. cfg ve girişlerde çalıştırın! bu Visualizer class görüntü üzerinde tahminler çizmek için kullanılır (bu durumda, bölümlere ayrılmış örnekler, sınıflar ve sınırlayıcı kutular:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

Son olarak, bu şu şekilde sonuçlanır:

En iyi uygulamalar, endüstri tarafından kabul edilen standartlar ve dahil edilen hile sayfası ile Git'i öğrenmek için uygulamalı, pratik kılavuzumuza göz atın. Googling Git komutlarını durdurun ve aslında öğrenmek o!

Detectron2 PlatoBlockchain Veri Zekası ile Python'da Nesne Tespiti ve Örnek Segmentasyonu. Dikey Arama. Ai.

Daha İleri Gitmek – Bilgisayarla Görme için Pratik Derin Öğrenme

Meraklı doğanız daha ileri gitmek istemenizi sağlıyor mu? bizim kontrol etmenizi öneririz Kurs: “Python ile Bilgisayarla Görme için Pratik Derin Öğrenme”.

Detectron2 PlatoBlockchain Veri Zekası ile Python'da Nesne Tespiti ve Örnek Segmentasyonu. Dikey Arama. Ai.

Başka Bir Bilgisayarla Görme Kursu mu?

MNIST rakamları veya MNIST modası sınıflandırması yapmayacağız. Uzun zaman önce rollerine hizmet ettiler. Çok fazla öğrenme kaynağı, gelişmiş kara kutu mimarilerinin performans yükünü omuzlamasına izin vermeden önce temel veri kümelerine ve temel mimarilere odaklanıyor.

odaklanmak istiyoruz gizemden arındırma, pratiklik, anlayış, sezgi ve gerçek projeler. Öğrenmek istemek Nasıl bir fark yaratabilirsin? Beynimizin görüntüleri işleme biçiminden meme kanseri için araştırma düzeyinde bir derin öğrenme sınıflandırıcısı yazmaya, “halüsinasyon” gören derin öğrenme ağlarına, size ilkeleri ve teoriyi pratik çalışmalarla öğreterek, sizi aşağıdaki bilgilerle donatmaya kadar bir yolculuğa çıkaracağız. bilgisayar vizyonunu çözmek için derin öğrenmeyi uygulamada uzman olmak için teknik bilgi ve araçlar.

İçinde ne var?

  • Görmenin ilk ilkeleri ve bilgisayarlara “görmeyi” nasıl öğretebiliriz?
  • Bilgisayarla görmenin farklı görevleri ve uygulamaları
  • İşinizi kolaylaştıracak ticaret araçları
  • Bilgisayarla görü için veri kümelerini bulma, oluşturma ve kullanma
  • Evrişimli Sinir Ağlarının teorisi ve uygulaması
  • Veri kümelerinde etki alanı kayması, birlikte oluşma ve diğer önyargıları işleme
  • Öğrenimi aktarın ve başkalarının eğitim süresini ve hesaplama kaynaklarını kendi yararınıza kullanın
  • Son teknoloji bir meme kanseri sınıflandırıcısı oluşturmak ve eğitmek
  • Ana akım fikirlere sağlıklı bir şüphecilik dozu nasıl uygulanır ve yaygın olarak benimsenen tekniklerin sonuçları nasıl anlaşılır?
  • t-SNE ve PCA kullanarak ConvNet'in “kavram uzayını” görselleştirme
  • Şirketlerin daha iyi sonuçlar elde etmek için bilgisayarlı görme tekniklerini nasıl kullandıklarına dair vaka çalışmaları
  • Uygun model değerlendirmesi, gizli uzay görselleştirmesi ve modelin dikkatinin belirlenmesi
  • Alan araştırması yapmak, kendi veri kümelerinizi işlemek ve model testleri oluşturmak
  • Son teknoloji mimariler, fikirlerin ilerlemesi, onları benzersiz kılan nedir ve nasıl uygulanacağı
  • KerasCV – son teknoloji işlem hatları ve modeller oluşturmak için bir WIP kitaplığı
  • Makaleleri nasıl ayrıştırıp okuyabilir ve bunları kendiniz uygulayabilirsiniz
  • Uygulamanıza bağlı olarak model seçimi
  • Uçtan uca bir makine öğrenimi ardışık düzeni oluşturma
  • Daha Hızlı R-CNN'ler, RetinaNet'ler, SSD'ler ve YOLO ile nesne algılamada manzara ve sezgi
  • Örnek ve anlamsal segmentasyon
  • YOLOv5 ile Gerçek Zamanlı Nesne Tanıma
  • YOLOv5 Nesne Dedektörlerinin Eğitimi
  • KerasNLP (endüstri gücünde WIP kitaplığı) kullanarak Transformers ile çalışma
  • Görüntülerin altyazılarını oluşturmak için Transformers'ı ConvNets ile entegre etme
  • DeepDream

Sonuç

Örnek bölümleme, anlamsal bölümlemenin bir adım ötesine geçer ve bir sınıfın tek tek örneklerinin (kişi 1, kişi 2, vb...) yalnızca birine ait olup olmadıklarından ziyade niteliksel farkı not eder. Bir bakıma – piksel düzeyinde sınıflandırma.

Bu kısa kılavuzda, Detectron2'nin bir Mask R-CNN kullanarak API'leri aracılığıyla örnek segmentasyonu ve nesne algılamayı nasıl kolay ve erişilebilir hale getirdiğine hızlıca göz attık.

Zaman Damgası:

Den fazla Yığın kötüye kullanımı