Lei Feng Net Not: Bu makale, Lei Feng'in altyazı grubu tarafından derlenen teknik bir blogdur, orijinal başlığı 10 satır kodlu Nesne Algılama ve yazarı Moses Olafenwa'dır.
Tercüme | Zhipeng Yu tarafından redaksiyon | Tao Chen tarafından düzenlendi | MY
Bilgisayar görüşü, yapay zekanın önemli bir alanıdır. Bilgisayar görüşü, bilgisayarların görüntüleri ve sahneleri tanımasını ve anlamasını sağlayan bilgisayarlar ve yazılım sistemleri hakkında bir bilimdir. Bilgisayar görüşü ayrıca görüntü tanıma, hedef algılama, görüntü oluşturma ve görüntünün süper çözünürlüklü yeniden yapılandırılması gibi dal alanlarını da içerir. Pek çok pratik ihtiyaç nedeniyle, nesne algılama bilgisayarla görmedeki en değerli alan olabilir. Bu eğitimde, kısaca hedef tespit kavramını, geliştiricilerin karşılaştığı zorlukları ve etkili hedef tespit kodunu içeren sağladığımız çözümleri tanıtacağım.
En son hedef tespit algoritmalarını uygulamalarda veya sistemlerde kullanmak zordur ve bu algoritmalara dayalı yeni uygulamalar oluşturmak da kolay değildir. Erken hedef tespiti, OpenCV'de (ana bilgisayar görme kitaplığı) sağlananlar gibi geleneksel algoritmaları kullanır, ancak bu klasik algoritmalar farklı senaryolarda çok kararlı değildir.
2012'de derin öğrenmenin atılımı ve hızla yaygınlaşması bize R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet ve SSD ve YOLO gibi yeni ve oldukça hassas hedef tespit algoritmaları ve yöntemleri getirdi. Hedef tespit algoritması. Derin öğrenmeye (ayrıca makine öğrenmesine dayalı) dayalı bu algoritmaları ve yöntemleri kullanmak, belirli bir matematik temeli ve derin öğrenme çerçevesi gerektirir. Şu anda, hedef tespit teknolojisini kullanarak yeni ürünlerin entegrasyonu ve geliştirilmesine adanmış milyonlarca programcı ve yazılım geliştiricisi bulunmaktadır. Ancak, bu teknoloji çok karmaşık ve zor olduğu için, algoritmayı gerçek geliştirmeye doğrudan uygulamanız sizin için zordur.
Ekibimiz birkaç ay önce bu sorunu fark etti, bu nedenle biz ve John Olafenwa, programcıların ve yazılım geliştiricilerin en son hedef algılama algoritmalarını yalnızca birkaç satır kodla kullanmasına olanak tanıyan bir python kitaplığı olan ImageAI'yi ortaklaşa geliştirdik. Kendi projenize entegre edin.
ImageAI hedef tespiti için kullanılırken aşağıdaki adımlar gereklidir:
Python'u mevcut sisteme yükleyin
ImageAI ve ilgili bağımlılıkları yükleyin
Hedef tespit modeli dosyasını indirin
Örnek kodu çalıştırın (yalnızca 10 satır)
Başlayalım.
Python3'ü resmi web sitesinden indirin
https://python.org
2. Aşağıdaki bağımlı paketleri kurmak için pip komutunu kullanın:
i. Tensorflow
pip tensorflow yüklemek
ii. Uyumsuz
pip install numpy
iii. Bilim
pip yüklemek scipy
iv. OpenCV
pip opencv-python yükle
v. Yastık
pip yastık takmak
vi. Matplotlib
pip matplotlib yüklemek
vii. H5py
pip h5py yükle
viii. Keras
pip kurulum keras
ix. ImageAI
pip kurulumu
https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl
3. Hedef tespiti için RetinaNet model dosyası bağlantısını indirin.
iyi! Bağımlı paketleri kurduğunuza göre, artık ilk hedef tespit için kod yazmaya başlayabilirsiniz. Bir Python dosyası oluşturun ve onu adlandırın (örneğin, FirstDetection.py) ve ardından içine aşağıdaki kodu yazın. RetinaNet model dosyasını ve algılanacak görüntüyü python dosyasını içeren klasöre kopyalayın.
FirstDetection.py
Ardından kodu çalıştırın ve sonuçların konsola çıkmasını bekleyin. Sonuçlar görüntülendikten sonra, FirstDetection.py'nin bulunduğu klasöre gidin ve yeni kaydedilen resmi bulacaksınız. Lütfen aşağıdaki 2 resim örneğine bir göz atın, yeni resim kod çalıştırıldıktan sonra kaydedilecektir.
Kodu çalıştırmadan önce:
Resim kaynağı: alzheimers.co.uk
Resim kaynağı: Wikicommons
Kodu çalıştırdıktan sonra:
Konsol, yukarıdaki şekilde sonuçlanır:
kişi: 55.8402955532074
kişi: 53.21805477142334
kişi: 69.25139427185059
kişi: 76.41745209693909
bisiklet: 80.30363917350769
kişi: 83.58567953109741
kişi: 89.06581997871399
kamyon: 63.10953497886658
kişi: 69.82483863830566
kişi: 77.11606621742249
otobüs: 98.00949096679688
kamyon: 84.02870297431946
araba: 71.98476791381836
Konsol, yukarıdaki şekilde sonuçlanır:
kişi: 71.10445499420166
kişi: 59.28672552108765
kişi: 59.61582064628601
kişi: 75.86382627487183
motosiklet: 60.1050078868866
otobüs: 99.39600229263306
araba: 74.05484318733215
kişi: 67.31776595115662
kişi: 63.53200078010559
kişi: 78.2265305519104
kişi: 62.880998849868774
kişi: 72.93365597724915
kişi: 60.01397967338562
kişi: 81.05944991111755
motosiklet: 50.591760873794556
motosiklet: 58.719027042388916
kişi: 71.69321775436401
bisiklet: 91.86570048332214
motosiklet: 85.38855314254761
Şimdi bu 10 satırlık kodun nasıl çalıştığını açıklamama izin verin.
Yukarıdaki 3 satır kodda, ilk satırda ImageAI nesne algılama sınıfını ve ikinci satırda python os sınıfını içe aktardık. Ardından, python dosyalarını, RetinaNet model dosyalarını ve görüntüleri kaydetmek için kullanılan klasörün yol adresini kaydetmek için üçüncü satırda bir değişken tanımlanır.
Yukarıdaki 5 satırlık kodda, ilk satırda hedef algılama sınıfının bir örneğini tanımlıyoruz, ikinci satırda örneğin model türünü RetinaNet olarak ayarlıyoruz ve örneğin model yolunu RetinaNet model dosyamızın üçüncü satırda bulunduğu yere ayarlıyoruz. Dördüncü satırda model hedef algılama sınıfının örneğine yüklenir Beşinci satırda algılama fonksiyonunu çağırır ve dosya giriş ve çıkış yolunu parametre olarak geçiririz.
Yukarıdaki iki kod satırında, ilk satır, dedektör.detectObjectsFromImage işlevi tarafından döndürülen tüm sonuçları yinelemek için kullanılır ve ikinci satır, görüntüde algılanan her hedefin adını ve olasılığını çıkarmak için kullanılır.
ImageAI ayrıca birçok güçlü özelleştirme özelliğine sahiptir. Örneğin, resimde tespit edilen her nesne çıkarılabilir. Aşağıda gösterildiği gibi, extract_detected_objects = True parametresini DetectObjectsFromImage işlevine geçirerek elde edilebilir, hedef algılama sınıfı görüntü nesnesi için bir klasör oluşturacak, algılanan her bir alt görüntüyü çıkaracak ve her bir alt görüntüyü oluşturulan Yeni klasörde ve her görüntünün yolunu içeren bir dizi döndürün.
Bu yöntemi ilk resme uyguluyoruz ve çıkarılan alt resimlerden bazıları şu şekildedir:
Tüm yayaların resimleri iyi bir şekilde çıkarılmıştır. Yerden tasarruf etmek için burada sadece bir parça gösterilmektedir.
ImageAI, özelleştirilmiş hedef algılama görevleri ve dağıtım projeleri için kullanılabilecek birçok yararlı işlev sağlar. Desteklenen özelliklerden bazıları şunlardır:
- Minimum olasılığı ayarlayın : Varsayılan olarak, algılama olasılığı yüzdesi 50'den az olan nesneler görüntülenmeyecektir. Bu değeri yüksek hassasiyet gerektiren sahnelerde artırabilir veya tüm olası hedefleri tespit etmeniz gerektiğinde azaltabilirsiniz.
- Özel hedef tespiti : CustomObject sınıfını kullanarak, algılama sınıfına bir veya daha fazla bağımsız hedefi algılamasını söyleyebilirsiniz.
- Algılama hızı : Algılama süresini kısaltmak için algılama hızı "hızlı", "daha hızlı" ve "en hızlı" olarak ayarlanabilir.
- Giriş tipi : Girdi parametresi, görüntü yolu, Numpy dizisi veya görüntü dosyası akışı türü olarak belirtilebilir.
- Çıktı türü : DetectionObjectsFromImage işlevinin görüntüleri döndürme yönteminin bir dosya mı yoksa Numpy dizisi mi olduğunu belirtebilirsiniz.
ImageAI'de yukarıdaki işlevler ve diğer bilgisayarla görme işlevlerinin ayrıntılı bilgilerini ve belgelerini resmi GitHub deposunda bulabilirsiniz.
https://github.com/OlafenwaMoses/ImageAI
Bu makalenin size yardımcı olduğunu düşünüyorsanız veya onunla da ilgileniyorsanız, lütfen beğenin. Arkadaşlarınızla ve meslektaşlarınızla paylaşmaktan çekinmeyin.
Herhangi bir sorunuz, öneriniz varsa veya benimle iletişime geçmek istiyorsanız. Lütfen guymodscientist@gmail.com adresine bir e-posta gönderin. Benimle ayrıca Twitter hesabım olan @OlafenwaMoses ve Facebook https://www.facebook.com/moses.olafenwa aracılığıyla da iletişime geçebilirsiniz.
Orijinal bağlantı: https://towardsdatascience.com/object-detection-with-10-lines-of-code-d6cb4d86f606
Lei Feng Ağı Lei Feng Ağı