Facebook AI, 2018'de Detectron adlı bir nesne algılama kitaplığı geliştirdi . Harika bir kütüphaneydi ama kullanımı biraz zordu. Daha eski bir sürümüm, Detectron'un nasıl kurulacağı ve örnek demoların nasıl çalıştırılacağı hakkında bir blog yazısı yazdı , daha fazlası değil. Detectron'un kurulumu ve kullanımı biraz zordu ve Caffe2 tarafından destekleniyordu. 2018'den bu yana, Caffe2 ve PyTorch'u tek bir depoya getiren birçok kod değişikliği oldu ve bu, Detectron'u kullanmanın zorluğunu artırıyor.
Görünüşe göre topluluktan bazı yapıcı geri bildirimler geldi ve Facebook bir v2 ile geldi.
Detectron2'nin GitHub sayfasına göre:
Detectron2, Facebook AI Research'ün son teknoloji nesne algılama algoritmalarını uygulayan yeni nesil yazılım sistemidir.
Detectron2, artık TensorFlow ile rekabet edebilecek ölçüde daha aktif bir topluluğa sahip olan PyTorch kullanılarak oluşturulmuştur. Ayrıca kurulum talimatları çok daha kolaydır ve puanlama sonuçlarını çıkarmak için kullanımı çok kolay bir API'dir. YOLO gibi diğer çerçeveler, düz çok boyutlu bir dizi olarak sunulan puanlama sonuçlarının çok belirsiz bir biçimine sahiptir. YOLO ile çalışan herkes, puanlama sonucunu ayrıştırmak ve ilk etapta doğru sonuca ulaşmak için gereken çabayı hayal edebilir.
Yeterince tarih, bu yazıda, nesne algılama için bir web API'si barındıran bir Detectron2 docker görüntüsünün nasıl hazırlanacağına ve bir hizmet tüketicisi olarak işlev gören küçük bir web uygulamasından nasıl kullanılacağına dair uçtan uca bir alıştırmada size rehberlik edeceğim.
İlk önce kurulumla başlayacağım. Maalesef Windows desteklenmiyor, ancak kapsayıcıları kullanarak bunu atlayacağım. Hızlı olmak gerekirse, GPU'nun ihtiyaç duyduğu (tahmin et ne olduğunu) bir GPU, CUDA ve NVIDIA'dan gelen tüm o güzel şeyler için bir CPU sürümü yüklemeyi düşünmeyiz.
Dolayısıyla, tercih ettiğiniz metin düzenleyiciyi kullanarak bu içerikle bir Dockerfile oluşturun.
Detectron2 kurulum talimatı tarafından talep edildiği gibi ilk olarak Python sürümü image 3.6 olan temel görüntüyü seçerek başlar. Daha sonra birkaç ön koşul kurulur ve ardından Detectron2 kurulum sayfasındaki aynı kurulum talimatlarının bir kopyası kurulur . Yüklenen sürüm bir CPU sürümüdür, süper hızlı olmayacak, ancak bir eğitim için yeterince iyi. Son olarak, bu docker görüntüsü istemcilerden gelen puanlama çağrılarını kabul etmek için bir web API web sitesini barındıracağından Flask dahildir.
Önce görüntüyü oluşturalım.
docker build --rm . -t ylashin/detectron2:latest
docker run -it ylashin/detectron2:latest bin/bash
Aşağıdaki
test.pybetik, docker CLI kullanılarak veya kapsayıcıda yüklü olan nano kullanılarak kapsayıcıya kopyalanmalıdır.
İlgili ana görevler şunlardır:
Detectron2, yazım sırasında 0.1.1 sürümünde görünüyor. Ayrıca puanlama doğru yapılır ve sonuç YOLO gibi düz bir tensör değildir. Sınırlayıcı kutular ve öngörülen sınıflar gibi kullanımı kolay üyelere sahip yazılı bir sınıftır. Sınıf kodlarını insan tarafından okunabilir adlarla eşleştirmeye daha sonra geleceğiz. Burada sahip olduğumuz şey, bir çift sınırlayıcı kutu ve birkaç yüksek puan artı tahmini 0 (kişi) ve 32 (spor topu) sınıfları.
Not: Çözmekte olduğunuz soruna bağlı olarak, doğru mimariyi seçmeniz ve benzer veri kümelerine göre eğitilip eğitilmediğini görmeniz gerekir, aksi takdirde özel eğitim yapmanız gerekebilir.
Bir sonraki adım, bu puanlama işlevini kapsayıcı dışından erişilebilir hale getirmektir. Bir görüntüyü kabul etmek ve puanlama sonucunu döndürmek için bir Flask web API'sinin bu kapsayıcıda barındırılması gerekir. Basit olması için, API bir resim URL'sini kabul edecek ve indirmeyi kendisi yapacaktır. Yapılması doğal olan ikili yükü kabul etmeyecek, ancak aynı test komut dosyasını küçük değişikliklerle kullanmak çok kolay.
Ayrıca yanıt, karmaşık bir ayrıştırma olmaksızın arayan tarafından ihtiyaç duyulan yeterli bilgiye sahip bir JSON nesnesi olarak serileştirilmiş bir sözlük olacaktır.
Artık konteyner bir Flask web sunucusunu barındıracağından, yayınlanan web API portu ile başlatılması gerekir. Bu yüzden mevcut konteynerden çıkın ve port yayınlama ile tekrar başlatın.
docker run -p 8181:5000 -it ylashin/detectron2:latest bin/bash
Şimdi, adlandırılmış konteynerin içinde bir dosya oluşturun
web_api.pyve aşağıdaki GitHub özetini içine yapıştırın.
Bu, aşağıdaki farklılıklar ile daha önce kullanılan test komut dosyasının neredeyse aynısıdır:
python web_api.py
Postman'daki yanıtı aşağı kaydırırsak, sınırlayıcı kutular, puanlar ve sınıf tahminleri gibi beklenen puanlama alanlarını bulacağız.
Artık web API sunucusu iyi çalışıyor gibi görünüyor, Dockerfile tanımının bir parçası olarak dahil edilmesi daha iyi. Bu, yerleşik görüntüyü docker hub'a veya başka bir kayıt defterine göndermemize ve başkalarıyla paylaşmamıza veya her seferinde onu oluşturma konusunda endişelenmeden kullanmamıza olanak tanır.
Güncellenmiş Dockerfile bulunabilir repo Bu yayına verilen ancak kısa sürmesi için bağlantılı, Docker dosyasına eklenen delta:
WORKDIR /app COPY web_api.py web_api.py ENTRYPOINT ["python", "/app/web_api.py"]
docker run -p 8181:5000 -d ylashin/detectron2:latest
Çalışan kapsayıcıdan memnun kaldığımızda, onu kapatabilir ve görüntüyü yayınlayabiliriz.
docker push ylashin/detectron2:latest
Vay be, neredeyse bitti. Son aşama, bu web API'sini herhangi bir RESTful istemcisinden kullanmaktır. Ama önce Azure CLI ve Azure kapsayıcı örnekleri hizmetini kullanarak Azure'da kapsayıcıyı başlatacağım. Kapsayıcıyı yerel olarak kullanmaya devam etmek istiyorsanız, bu Azure bitini atlayabilir, ancak daha sonra gelecek web uygulamasında web API URL'sini ayarlayabilirsiniz.
az group create --name detectron2 --location eastus az container create --resource-group detectron2 --name predictor --image ylashin/detectron2:latest --cpu 2 --memory 4 --dns-name-label detectron2api --ports 5000 az container show --resource-group detectron2 --name predictor --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
Bulutta çalışan ve herhangi bir REST istemcisinden her yerde kullanılabilen bir web API uç noktamız var. Küçük bir JavaScript uygulaması oluşturdum. Uygulama oldukça basit:
git clone https://github.com/ylashin/detectron2-tutorial cd '.\3. client\' npm install npm install -g browserify npm install -g watchify watchify index.js -o bundle.js
Bu yazının kurulum bölümünde kullanılan görsel yukarıda denenmiştir. Messi ve top üzerindeki sınırlayıcı kutuları, skorları ve etiketleri görebiliriz. Geliştirici konsolu bölmesi, API'nin JSON yanıtıyla da gösterilir.
Bu web uygulamasında dikkate alınması gereken ana kısım, çok basit ve anlaşılır olan API yanıtını ayrıştırmak ve kullanmaktır.
Kalan tüm kod, bir npm paketi aracılığıyla sıhhi tesisat ve HTML tuval oluşturmadır.
Detectron2'nin yüzeyini zar zor çizdik, keşfedilecek daha birçok harika özelliği var. Ayrıca, gönderiyi olabildiğince özlü hale getirmek için birçok kısayol yapıldı. Sonuç olarak, Detectron2, özellikleri nedeniyle ancak daha da önemlisi kullanım kolaylığı nedeniyle herhangi bir geliştirici araç kutusuna çok hoş bir ektir.
Kapsayıcıyı Azure'da oluşturuyorsanız, lütfen kaynak grubunu silmeyi veya deney yaptıktan sonra kapsayıcıyı durdurmayı unutmayın, aksi takdirde kredinizi yakmaya devam eder.
Milvus 2.0'ın yakında piyasaya sürülmesiyle, ekip Milvus eğitim kampını yeniledi.
Makine Öğrenimi, birçok farklı yönü olan çeşitli bir alandır. Makine öğreniminin başlıca kaygılarından biri görsel temsillerin (alanlara karşılık gelen resimler/şemalar vb.) öğrenilmesidir.
Önceki blog gönderimde, günümüzün makine öğrenimi ekosisteminde kalite ve güvenin ne kadar büyük zorluklar olduğunu anlattım. Okumaya fırsat bulamadıysanız, bu yazıya geçmeden önce okumanızı şiddetle tavsiye ederim.
Yapay Zeka (AI) algoritmaları, özellikle eğlence ve sosyal medyanın en popüler ürünlerinden bazılarında istihdam edilmesiyle ya da başarılı bir şekilde araba kullanabildikleri için popüler hale geldiğinden, daha önce hiç olmadığı kadar halkın incelemesine girdi. Elon Musk veya Steven Hawking gibi yapay zeka hakkında konuşan ünlü bilim adamlarının, algoritmalara hayatımızın belirli yönlerine izin vermenin etik sonuçlarını ve kariyerlerinin işe yarayıp yaramadığını merak eden ünlü bilim adamlarının etkisi altında her türden insanın şüphesi yok. yeni teknolojinin yerini alma riski.
Medya, Ex Machina ve I, Robot gibi bilimkurgu filmleri ve Elon Musk gibi birkaç açık sözlü vizyon sahibi sayesinde, çoğu insan artık Yapay Zeka (AI), çeşitli alt kümeleri ve potansiyelleri hakkında en azından temel bir anlayışa sahip. uygulamalar. Peki ya Ambient Intelligence (AmI) - bunu duydunuz mu? Endişelenmeyin, bu yeni ortaya çıkan alan bu noktada on yıldan fazla bir süredir etrafta olmasına rağmen çok az kişi var.
Makine öğrenimi ve benzer teknolojilerin ekonomi üzerindeki etkisini tartan tartışmada, dünyanın uzmanları büyük ölçüde iki kampa bölünmüş durumda. İyimserler olarak adlandıracağımız bir kamp, bu dijital devrimin, geçmişin teknolojik çalkantıları gibi ekonomiyi rayından çıkarmayacağını ve işsizlik oranlarının sonsuza dek pandemik seviyelere fırlamasına neden olmayacağını düşünüyor.
'The Handmaid's Tale' yazarı Eric Tuchman Entertainment Weekly ile yaptığı röportajda, Nick'in Haziran'dan kalma alyansını neden sakladığını açıkladı.
Nico Tortorella, Josh karakterini 7 sezon sonra 'Younger'dan tamamladı ancak 'Mr. Büyük an.
Eski 'The Challenge' şampiyonu Ashley Kelsey ve NFL geri koşuyor Kerryon Johnson birlikte ilk bebeği, kızı Snoh Marie'yi karşılıyor.
HBO Max, 'Genera+ion' Sezon 1: Bölüm 2'nin prömiyer tarihini doğruladı ve dizinin hayranları fragmana tepki gösteriyor.
Bilim adamları bir asırdan fazla bir süredir bilmelerine rağmen, Güney Okyanusu nihayet resmen tanındı.
Katılmalarına izin verilen Polonyalı subaylar için oyunlar, ölüm ve yıkım zamanında insanlığın bir kutlamasıydı. Ancak bu oyunlar - bugüne kadar - sporun müthiş iyileştirici gücünü gösteriyor.
Orijinal alçı modelden dökülen 9 metrelik bronz bir Özgürlük Heykeli Amerika'ya geliyor. Fransa ve Amerika arasındaki uzun süreli dostluğun şerefine ve New York City'nin Bağımsızlık Günü kutlamalarının en önemli anlarından biri olacak.
Mohs sertlik ölçeği, jeologlar ve gemologlar tarafından bir sertlik testi kullanarak mineralleri tanımlamaya yardımcı olmanın bir yolu olarak kullanılır. O nasıl çalışır?
Kocam ve ben yeni bir ev aldık. Bu yaz çeşitli yarış pistlerine bir aylık bir gezi yapmayı planlamıştık bile.
Denver Nuggets böyle çıkamaz. Nuggets, Batı Konferansı Yarı Finallerinde Suns'a 3-0 mağlup olmakla kalmıyor, görünüşe göre taraftarları da yenilgi alıyor.
Hiç Boston gibi bir şehirde dolaşıp, Fort Worth, Texas gibi bir şehirde olduğundan daha iyi hissettirdiğini merak ettiniz mi? Bir şehir senin için yapıldı, bir yaya. Diğeri senin araban için yapıldı.
O gerçekten iyi, ama ah. Tenis tarihini tartışırken, insanların zevkleri her zaman kimin ne olduğu ve tuttukları yerler hakkındaki tartışmaları etkileyecek ve bulandıracaktır.
Hollywood'dan New York'a ve aradaki her yere, en sevdiğiniz yıldızların neler yaptığını görün
Pekingese köpeği Wasabi, tacı 2020 Westminster Kennel Club Köpek Şovu kazananı Siba the Standard Fino köpeğinden alıyor.
Beyoncé web sitesinde ikizleri Rumi ve Sir'e 4. yaş gününü kutlayarak "1 hediyeden daha iyi ne olabilir... 2" yazdı.
"Şimdiye kadar söylediğim en kolay EVET oldu!" Taryn Manning TMZ'ye anlattı