Nesne Algılama
- FİGES AŞ
- MATLAB&Simulink
- Probleminizi Nasıl Çözeceğinizi Keşfedin
- Nesne Algılama
Nesne Algılama Nedir?
Nesne algılama, görüntülerdeki veya videolardaki nesnelerin örneklerini bulmak için kullanılan bir bilgisayarla görme tekniğidir. Nesne algılama algoritmaları, anlamlı sonuçlar üretmek için genellikle makine öğreniminden veya derin öğrenmeden yararlanır. İnsanlar resimlere veya videolara baktığında, ilgilendiğimiz nesneleri birkaç dakika içinde tanıyabilir ve konumlarını belirleyebiliriz. Nesne algılamanın amacı, bu zekayı bir bilgisayar kullanarak çoğaltmaktır.
- Neden Önemlidir?
- Nasıl çalışır?
- MATLAB ile Nesne Algılama
Nesne Algılama Neden Önemlidir?
Nesne algılama, yol güvenliğini artırmak için arabaların sürüş şeritlerini algılamasını veya yaya algılamasını gerçekleştirmesini sağlayan gelişmiş sürücü destek sistemlerinin (ADAS) arkasındaki önemli bir teknolojidir. Nesne algılama, video gözetimi veya görüntü erişim sistemleri gibi uygulamalarda da kullanışlıdır.
Araçları tanımlamak ve bulmak için nesne algılamayı kullanma.
Konuyu Keşfetmeye Devam Edin
Derin Öğrenme ile Nesne Tespitine Başlangıç Computer Vision Toolbox
Nasıl Çalışır?
Derin Öğrenmeyi Kullanarak Nesne Algılama
Nesne algılamayı gerçekleştirmek için çeşitli teknikler kullanabilirsiniz. R-CNN ve YOLO v2 gibi evrişimli sinirsel ağlarını (CNN’ler) kullanan popüler derin öğrenmeye dayalı yaklaşımlar, görüntülerdeki nesneleri algılamayı otomatik olarak öğrenir.
Derin öğrenmeyi kullanarak nesne algılamaya başlamak için iki temel yaklaşım arasından seçim yapabilirsiniz:
Özel bir nesne algılayıcı oluşturun ve eğitin. Özel bir nesne algılayıcıyı sıfırdan eğitmek için, ilgilenilen nesnelerin özelliklerini öğrenmek üzere bir ağ tasarlamanız gerekir. Ayrıca CNN’i eğitmek için çok büyük bir etiketli veri seti derlemeniz gerekir. Özel bir nesne aygılayıcının sonuçları dikkat çekici olabilir. Bununla birlikte, çok fazla zaman ve eğitim verisi gerektiren CNN’de katmanları ve ağırlıkları manuel olarak ayarlamanız gerekir.
Önceden eğitilmiş bir nesne algılayıcı kullanın. Derin öğrenmeyi kullanan birçok nesne algılama iş akışı, önceden eğitilmiş bir ağla başlamanıza ve ardından uygulamanız için ince ayar yapmanıza olanak tanıyan bir yaklaşım olan transfer öğrenmeden yararlanır. Bu yöntem daha hızlı sonuçlar sağlayabilir çünkü nesne algılayıcılar binlerce hatta milyonlarca görüntü üzerinde zaten eğitilmiştir.
Önceden eğitilmiş bir R-CNN kullanarak bir dur işaretini algılama . MATLAB kodu örneğini görün
İster özel bir nesne algılayıcı oluşturun, ister önceden eğitilmiş bir nesne algılayıcı kullanın, ne tür bir nesne algılama ağı kullanmak istediğinize karar vermeniz gerekecektir. iki aşamalı bir ağ veya tek aşamalı bir ağ.
Önceden eğitilmiş bir YOLOX ağı kullanarak küçük devre kartı özelliklerini, araçları ve ilgi bölgesindeki (ROI) nesneleri tespit etme. MATLAB Kodu Örneğini Görün
İki Aşamalı Ağlar
R-CNN ve türevleri gibi iki aşamalı ağların ilk aşaması, bir nesneyi içerebilecek görüntünün bölge önerilerini veya alt kümelerini tanımlar. İkinci aşamada, bölge önerileri içindeki nesneleri sınıflandırır. İki aşamalı ağlar, çok doğru nesne algılama sonuçları elde edebilir; ancak, genellikle tek aşamalı ağlardan daha yavaştırlar.
R-CNN (üstte) ve Hızlı R-CNN (altta) nesne algılamanın üst düzey tasarımı.
Tek Aşamalı Ağlar
YOLO v2 gibi tek aşamalı ağlarda, CNN, bağlantı kutularını kullanarak tüm görüntüdeki bölgeler için ağ tahminleri üretir ve tahminlerin kodu, nesneler için nihai sınırlayıcı kutular oluşturmak üzere çözülür. Tek aşamalı ağlar, iki aşamalı ağlardan çok daha hızlı olabilir, ancak özellikle küçük nesneler içeren sahneler için aynı doğruluk düzeyine ulaşamayabilirler.
YOLO v2 nesne algılamaya genel bakış.
Makine Öğrenimi Kullanarak Nesne Algılama
Makine öğrenimi teknikleri de nesne algılama için yaygın olarak kullanılır ve derin öğrenmeden farklı yaklaşımlar sunar. Yaygın makine öğrenimi teknikleri şunları içerir:
- Toplu kanal özellikleri (ACF)
- Yönlü gradyan (HOG) özelliklerinin histogramlarını kullanarak SVM sınıflandırması
- İnsan yüzü veya üst vücut tespiti için Viola-Jones algoritması
Bir ACF nesne algılama algoritması kullanarak yayaları izleme. Örneğe bakın.
Derin öğrenmeye dayalı yaklaşımlara benzer şekilde, önceden eğitilmiş bir nesne algılayıcıyla başlamayı veya uygulamanıza uygun özel bir nesne algılayıcı oluşturmayı seçebilirsiniz. Derin öğrenme tabanlı bir iş akışındaki otomatik özellik seçimine kıyasla, makine öğrenimini kullanırken bir nesne için tanımlayıcı özellikleri manuel olarak seçmeniz gerekecektir.
Konuyu Keşfetmeye Devam Edin
- Bir Nesne Algılayıcı Seçin
- Derin Öğrenmeye Giriş: Konvolüsyonel Sinir Ağları Nedir?Drass Develops – (4:44)
- Denizcilik Ortamlarında Gerçek Zamanlı Nesne Tespiti için Derin Öğrenme Sistemi
- Şehir Ortamlarında İnsansız Hava Araçlarının Otonom İnişi için Sensör Füzyonu ve Algılama Algoritmalarının Geliştirilmesi
Nesne Algılama için Makine Öğrenimine ve Derin Öğrenme
Nesne algılama için en iyi yaklaşımı belirlemek, uygulamanıza ve çözmeye çalıştığınız soruna bağlıdır. Makine öğrenimi ile derin öğrenme arasında seçim yaparken akılda tutulması gereken temel husus, güçlü bir GPU’nuz ve çok sayıda etiketli eğitim görüntünüz olup olmadığıdır. Bu sorulardan herhangi birinin yanıtı hayırsa makine öğrenimi yaklaşımı daha iyi bir seçim olabilir. Derin öğrenme teknikleri, daha fazla görüntünüz olduğunda daha iyi çalışır ve GPU’lar, modeli eğitmek için gereken süreyi azaltır.
- Derin Öğrenmeye Giriş: Makine Öğrenimi ve Derin Öğrenme (3:47)
- Derin Öğrenme ve Geleneksel Makine Öğrenimi: Doğru Yaklaşımı Seçmek
- e-kitap oku
Diğer Nesne Algılama Yöntemleri
Derin öğrenmeye ve makine öğrenimine dayalı nesne algılamaya ek olarak, uygulamanıza bağlı olarak yeterli olabilecek birkaç başka yaygın teknik vardır, örneğin:
- Boyut, şekil veya renk gibi basit nesne özelliklerini kullanan imge bölütleme ve blob analizi
- Öznitelik segmentasyonu, her bir nesnenin tam şekli ve alanının piksel piksel segmentasyon maskelerini tahmin eden bir tekniktir.
- Öznitelik tespiti, nesne üzerindeki belirli ilgi noktalarını tahmin eden bir tekniktir.
- Bir nesnenin konumunu tahmin etmek için özellik çıkarma, eşleştirme ve RANSAC kullanan özellik tabanlı nesne algılama
Noktasal özelliği eşleştirmeyi kullanarak karmaşık bir sahnede nesne algılama. Örneğe bakın.
MATLAB ile Nesne Algılama
Yalnızca birkaç satır MATLAB® koduyla, uzman olmanıza gerek kalmadan nesne algılama için makine öğrenimi ve derin öğrenme modelleri oluşturabilirsiniz.
Eğitim Görüntülerini Uygulamalarla Otomatik Olarak Etiketleyin
MATLAB, hem eğitim verilerini hazırlamak hem de evrişimli sinir ağlarını özelleştirmek için etkileşimli uygulamalar sağlar. Test görüntülerini nesne algılayıcılar için etiketlemek sıkıcıdır ve performanslı bir nesne algılayıcı oluşturmak için yeterli eğitim verisi elde etmek önemli miktarda zaman alabilir. Görüntü Etiketleyici uygulaması, bir görüntü koleksiyonundaki nesneleri etkileşimli olarak etiketlemenizi sağlar ve yer gerçeği verilerinizi otomatik olarak etiketlemek için yerleşik algoritmalar sağlar. Otomatik sürüş uygulamaları için Ground Truth Labeler uygulamasını, video işleme iş akışları için Video Labeler uygulamasını kullanabilirsiniz.
Etkileşimli Olarak Nesne Algılama Algoritmaları Oluşturun ve Çerçeveler Arasında Birlikte Çalışın
Mevcut bir CNN’i özelleştirmek veya sıfırdan bir tane oluşturmak, değerli eğitim süresini boşa harcayabilecek mimari sorunlara eğilimli olabilir. Deep Network Designer uygulaması, derin öğrenme ağlarını etkileşimli olarak oluşturmanıza, düzenlemenize ve görselleştirmenize olanak tanırken aynı zamanda ağı eğitmeden önce mimari sorunları kontrol etmek için bir analiz aracı sağlar.
MATLAB ile, ONNX™ (Açık Sinir Ağı Değişimi) içe ve dışa aktarma yeteneklerini kullanarak TensorFlow™-Keras, PyTorch ve Caffe2 gibi çerçevelerden ağlar ve ağ mimarileri ile birlikte çalışabilirsiniz.
ONNX’ten içe aktarın ve ONNX’e dışa aktarın. Örneğe bakın.
Dağıtım için Optimize Edilmiş Kodu Otomatik Olarak Oluşturun
MATLAB ile algoritmalarınızı oluşturduktan sonra, döngü içinde donanım testi gerçekleştirmek üzere GPU Coder™ ile TensorRT veya CUDA® kodu oluşturmak için otomatik hale getirilmiş iş akışlarından yararlanabilirsiniz. Oluşturulan kod, mevcut projelerle entegre edilebilir ve masaüstü GPU’larda, NVIDIA® Jetson veya NVIDIA Drive platformu gibi gömülü GPU’larda nesne algılama algoritmalarını doğrulamak için kullanılabilir.
Ayrıca bkz: Örüntü tanıma, Bilgisayar Görüntüsü Araç Kutusu