paint-brush
Kuş Algılama Yapay Zekası Oluşturma: Fikir Geliştirmeden Ürün Lansmanınaile@olegkokorin
2,790 okumalar
2,790 okumalar

Kuş Algılama Yapay Zekası Oluşturma: Fikir Geliştirmeden Ürün Lansmanına

ile Oleg Kokorin10m2023/09/23
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Karmaşık bir bilgisayarlı görüntü ürününün nasıl geliştirildiğinin 'perde arkası': ● zayıf donanım üzerinde nesne algılama modeli çalıştırma sorununu çözme ● yanlış pozitif sonuçlarla ve dengesiz bir veri kümesiyle uğraşmak ● bir makineye neredeyse aynı görünen kuş türlerini ayırt etmeyi öğretmek
featured image - Kuş Algılama Yapay Zekası Oluşturma: Fikir Geliştirmeden Ürün Lansmanına
Oleg Kokorin HackerNoon profile picture
0-item

Bilgisayarlı görme dünyanın her yerindeki girişimcilerin ilgisini çekti ve bunun iyi bir nedeni var: Modern yapay zeka teknolojisinin yetenekleri, daha önce imkansız olan fikirleri gerçek ürünlere dönüştürüyor.


Fotoğraf ve videolardaki nesnelerin algılanması ve sınıflandırılması, yerleşik yüz tanıma özelliğine sahip güvenlik kameralarından röntgen taramalarına dayalı hastalıkların tespitine ve basit mobil uygulamalara kadar birçok farklı alanda ve yüzlerce sistemde uygulama alanı bulmuştur.


Ancak girişle yetinelim, bu makalede bir bilgisayarlı görme ürününün, özellikle de karmaşık bir ürünün nasıl geliştirildiğinin 'perde arkasını' paylaşmak istedim.


Arka bahçelerini kimlerin ziyaret ettiğini, kendileri bakmadan görmek isteyenlere yönelik bir kuş tanıma uygulaması olan Birdsy üzerinde çalışma fırsatım oldu.


Birdsy, kuşları ve küçük memelileri gerçek zamanlı olarak tespit eden ve kullanıcıların daha sonra izlemesi için videolar kaydeden, yapay zeka destekli bir hizmettir.



Birdsy, zayıf donanım üzerinde çalışabilmesi, kuş türlerini ve cinsiyetini yüksek doğrulukla tespit edebilmesi gereken, gerçek zamanlı nesne algılama ve sınıflandırma özelliğine sahip, karmaşık, yapay zeka destekli bir uygulamadır.


Bütün bunlar göz önüne alındığında, ilk fikirden uygulamayı uygulama mağazalarında yayınlamaya kadar geçen yol karmaşıktı ve aynı zamanda büyüleyiciydi.


Aynı projeyle karşı karşıya olabilecek girişimcilere ve yapay zeka geliştiricilerine yardımcı olmak amacıyla, hem iş hem de geliştirme açısından birçok engelle karşılaştık. Bunları tek bir yerde paylaşmaya karar verdim.


Eldeki görev


Kuşlar, yırtıcı hayvanlardan ve bu durumda kuş gözlemcilerinden kaçınmak için çevreleriyle mükemmel bir şekilde uyum sağlamak üzere milyonlarca yıllık bir evrim geçirdiler ve bu da onların yaban hayatına hayran kalmasını zorlaştırdı.


Belirli kuş türlerini gagayla yüz yüze gözlemlemek sorunlu olsa da, onları evinizin rahatlığında bir video kamera aracılığıyla izlemek, kanatlı dostlarımızın keyfini çıkarmanın güzel bir yoludur, özellikle de yapay zeka saatlerce süren video görüntülerine bakma ihtiyacını ortadan kaldırır ve gagaya gönderirse Bir kuş kameranın görüş alanına girdiğinde uyarı verir ve bunun hangi kuş türü olduğunu otomatik olarak algılarsınız.


Birdsy'nin iki bölümü var:


  • Nesne tespiti — bir kuşun veya memelinin varlığını tespit etmekten sorumlu bir sinir ağı
  • Nesne sınıflandırması - hangi kuş veya memeli türünün yakalandığını belirlemekten sorumlu bir sinir ağı



Nesne algılama için düşük kaliteli kameralar


Hizmeti daha erişilebilir ve kullanımı kolay hale getirmek için kuş gözlemciliği için herhangi bir kamera kullanılabilir. İlk sorunla burada karşılaştık: düşük kaliteli kameralar, çünkü bunlar en uygun fiyatlı ve en yaygın olanları.


'Kamera sınırının olmaması' kullanıcılar için harika olsa da, nesne algılama modeli kamera yonga setini kullanarak çalıştığından bizim için zorluk teşkil ediyordu.


Birisi iyi bir anlaşma yaptığında, diğerleri işin kısa ucunu alır; bu durumda 'diğerleri' CV geliştiricilerimizdir. Ucuz bir kamerayla çalışmak, ucuz bir yonga seti ile çalışmak anlamına gelir ve bu da varsayılan sinir ağı mimarisini kullanmayı imkansız hale getirir.


Varsayılan YOLO v4'ün yaklaşık 120 katmanının kullanılmasına izin veren, birinci sınıf, altın standarttaki bilgisayarlı görüntü video kameralarıyla (NVIDIA Jetson Nano) karşılaştırıldığında, çalışmak zorunda olduğumuz kameralar yalnızca 22 katmana izin veriyordu.


Tam bir YOLO v4 sinir ağı mükemmel tanıma sonuçları sağlarken sadeleştirilmiş bir sürüm düşük performans gösterir. Her ikisini de test ettik ve ucuz bir yonga seti kullanarak çalıştırırken model derinliğinin ne kadar düşük olduğunu görünce hoş olmayan bir şekilde şaşırdık.


Varsayılan YOLO v4 ile Azaltılmış karşılaştırması test ediliyor


Varsayılan YOLO v4 modelini eğitmek ve müşterinin veri kümesinde test etmekle başladık. Elde ettiğimiz sonuçlar tatmin ediciydi - %95 mAp, bilgisayarlı görme dünyasında bir modeli üretime geçirmek için fazlasıyla yeterli.


Modeli kameranın parametrelerine uyacak şekilde yeniden eğittikten sonra algılama kalitesi önemli ölçüde düştü. Ancak makinelerin başarısız olduğu yerde insanlar ilerler.


Sinir ağını test verileri üzerinde test ettik ve yanlış pozitifleri ve yanlış negatifleri görsel olarak değerlendirdik. Bu, ağın nerede bilgi eksikliği yaşadığını ve en çok nerede hata yaptığını vurguladı.


Biz memelilerden veya yanlış pozitiflerden başka bir şey değiliz

Ağ, insanları, özellikle de insanların ellerini hayvan olarak tespit etmeye hevesliydi (ve biz bunu suçlamıyoruz, sonuçta insanlar hayvandır). Biyolojik açıdan bakıldığında bu doğru olsa da, son kullanıcı komşularından çok kuşlara bakmakla ilgileniyor, bu nedenle ağa insanları görmezden gelmeyi ve bunun yerine kuşlara ve memelilere odaklanmayı öğretmek için çalışmamız gerekiyordu.


Bunu yapmak için çeşitli açılardan insan resimlerinin yanı sıra insan elinin de yer aldığı olumsuz örnekler ekledik.

Model bazen insan ellerini, parmaklarını ve gövdelerini kuş olarak algıladı



Karanlıkta ne gizleniyor


Kameraların iki modu vardır: tam renkli görüntüler üreten normal gündüz modu ve siyah beyaz görüntüler üreten gece kızılötesi modu. Kamera kızılötesine geçtiğinde model birçok hatalı sonuç üretti:


  • rüzgarda hareket eden ağaç yaprakları
  • sıcak bir kameranın çektiği güveler gibi böcekler
  • çeşmeler


Kullanıcılar bir bildirimle uyandıklarında pek mutlu olmayacak, bir baykuşa ya da tilkiye bakarken heyecanlanacak, ancak sonunda bir güvenin vücudunu bir kamera merceğine vurduğu bir kayıtla karşılaşacak.


Gece boyunca model, kuş olarak mobbing yapan ağaç dallarını veya böcekleri tespit edecek



Uyku kesintilerini yalnızca en aza indirgemek için gece ortamlarında yanlış pozitif örneklerini topladık ve bunları elle işaretledik.


Instagram ve Gerçeklik

Sosyal medyanın, insanların kendilerinin en iyi versiyonlarını sunduğu 'öne çıkanlar filmi' olarak adlandırıldığını hiç duydunuz mu? Aynı şeyin vahşi hayvanlar için de geçerli olabileceğini kim bilebilirdi?


Google Görseller ve Youtube videoları gibi açık kaynaklardan elde edilebilecek kuş fotoğrafları genellikle yüksek kalitelidir, çok keskindir ve örnekleri en iyi şekilde, kameraya bakarken veya en azından kuşun arasında hiçbir şey olmayacak şekilde öne doğru konumlanmış şekilde gösterir. ve kamera görüşü engelliyor.


Gerçek her zaman bu kadar güzel değildir. Kameralar, insan gözünün bile olup biteni anlamayı zorlaştıracak kadar düşük kaliteli görüntüler üretir; yağmur, kar veya toz gibi kötü hava koşulları görüşü engelleyebilir ve biz, kuşların birisi onları yakalamak istediğinde bunu hissedip, onları yakalamak istediğinden eminiz. kendilerini mümkün olan en gülünç şekilde konumlandırıyorlar.


Kuşların internette nasıl göründükleri ile gerçek hayatta nasıl göründükleri arasındaki fark



Müşterinin sağladığı veri kümesi (İnternette bulunan kısa görüntülerden oluşan) bu proje için pek kullanışlı değildi.


Modele kuşların sosyal medyada nasıl sunulduğunu değil, gerçekte neye benzediğini göstermek için müşterinin kameralarını kullanarak gerçek koşullarda bir dizi kuş görüntüsü toplamamız gerekiyordu.

Şimdi elimizde ne var

Yani, yukarıdakilerin hepsini yaptıktan sonra:


  • ağın hatalı olduğu her örneği manuel olarak gözden geçirmek
  • Ağa insanları görmezden gelmeyi ve onları kuş veya memeli olarak algılamamayı öğretmek
  • siyah beyaz görüntülerle ve yanlış pozitiflerle çalışma
  • Gerçek yaşam koşullarında, çeşitli açılardan ve farklı hava koşullarındaki kuşlardan oluşan bir veri kümesi toplamak


Nesne tespiti için %97,5 mAP elde etmeyi başardık. Üretime giren herhangi bir CV modelinin yazılı olmayan kuralı %94'ün üzerinde mAP'ye sahip olmak olduğundan, bu bir bilgisayarlı görme modeli için çok yüksek bir sonuçtur.


Mükemmelliğe ulaşmak (neredeyse)


Şu anda elde ettiğimiz sonuçlar, nihai üründe kullanılmak için fazlasıyla yeterli olsa da, hâlâ geliştirilebilecek alanlar var.


  • ağ çiçekleri kuşlarla karıştırıyor
  • kuşların arkadan görünüşü hâlâ bazen bir sırdır
  • kısmen rastgele nesnelerle kaplı kuşlar
  • kuşlar kameraya yakın


Her grup için yeterli sayıda görüntü toplandıktan sonra mAP'nin artarak %98,5'e ulaşmasını bekliyoruz.


Görüntü sınıflandırma modeli

Arka bahçenizdeki ziyaretçilerinizi tanımanın bir sonraki adımı, kuş içeren görüntüyü bir nesne sınıflandırma modeline aktarmaktır. Amacı kuş türlerini ve cinsiyetini tanımaktır.


Bazı kuş türleri yalnızca belirli kıtalarda yaşadığından, biri Kuzey Amerika'da, diğeri Avrupa'da yaşayanlar için olmak üzere iki model oluşturmaya karar verdik.


Her seferinde bir adım: çok aşamalı sinir ağlarında bir ders


Başlangıçta, nesne sınıflandırma sorunu 'bire bir' yaklaşım kullanılarak çözüldü: Ağa, hem erkek hem de dişi olmak üzere tüm farklı türlerin fotoğrafları gösterildi ve bu fotoğraflardan bunların neye benzedikleri ve birbirlerinden nasıl farklı oldukları öğrenilmeye çalışıldı. diğer.


Bu durum çok zayıf doğruluk puanlarına yol açtı; başka bir deyişle ağ, kuş ve memeli türlerini tanımlarken pek çok hata yaptı.


Ağ aynı anda çok fazla konuyu öğrenmeye çalışıyordu. Pek çok kuş türü birbirine çok benzer ve birbirlerinden farklı renkte tüylerden oluşan tek bir parçayla veya farklı şekilli gagalarıyla farklılık gösterir.


Aynı türün farklı cinsiyetlerinin neye benzediğinin yanı sıra tüm bu bilgileri saklamak, belirli koşullar altında çok zordur. Ağ, daha geniş kuş türünü doğru bir şekilde belirlerken sıklıkla kuş türlerini karıştırıyordu.


Örneğin, kapüşonlu ötleğen ile siyah tüylerden oluşan bir parçadaki kentucky ötleğen arasındaki fark:


Bazı kuşlar birbirine çok benzer, bu da onları doğru bir şekilde tespit etmeyi zorlaştırır.


Ağ, kukuletalı ötleğeni Kentucky ötleğen olarak etiketleyecek ve yanlış sonuç üretecektir, ancak genel olarak doğrudur: her ikisi de ötleğendir. Zaman adına müşteri, belirli türden ziyade genel kuş türünü tespit etmenin daha önemli olduğuna karar verdi ve biz de başladığımız yer burasıydı.


Model değerlendirmesinden sonra çok aşamalı bir yaklaşım uygulamaya karar verdik:


  • tüm kuş türleri daha genel kategorilere ayrıldı: kartallar, serçeler, kargalar, güvercinler vb.
  • ağ öncelikle genel kuş türünü belirleyecek
  • ikinci adım hangi tür olduğunu tespit etmektir
  • sonuncusu kuşun erkek mi dişi mi olduğunu belirlemek olacaktır


Kuş türlerini gruplandırarak sınıf sayısını 98'den 49'a düşürmeyi başardık; bu da ağda seçilebilecek çok fazla sınıf olmadığından doğruluk puanını büyük ölçüde artırdı.


Pratik yapmak makineler için bile mükemmelleştirir


Yeni bir kavramla karşılaştığınızda onu kavramak için kitap okur ya da eğitici videolar izlersiniz. Başarısız olursanız arkadaşınızdan bunu size açıklamasını istersiniz veya konuyla ilgili bir seminere gidersiniz. Başka bir deyişle, onu daha iyi anlamak için onun hakkında daha fazla bilgi biriktirmeye çalışırsınız.


Aynı şey sinir ağları için de geçerli. Bir ötleğen kuşunun neye benzediğini anlamak için ne kadar iyiye ihtiyacınız varsa, onu o kadar çok ötleğen resmine göstermeniz gerekir. Ne kadar çok veriye bakılırsa doğruluk puanları da o kadar iyi olur.


Seçtiğimiz çok aşamalı yaklaşım, yalnızca nesne sınıflandırma modelinin doğruluğunu arttırmakla kalmadı, aynı zamanda veri kümesini analiz etmeyi ve ağın öğrenme verilerinin nerede eksik olduğunu belirlemeyi de mümkün kıldı.


Çirkin ördek yavrusu sorunu


Nesne sınıflandırma modeli başlatıldıktan sonra, testlerin bize gösterdiğinden çok daha kötü sonuçlar aldığımızda şaşırdık: model, kuş türünü veya tipini doğru şekilde belirleyemiyordu.


Sorun bundan daha derindi: Projenin tamamından sorumlu bilgisayarlı görme geliştiricimiz, üzerinde çalışırken tüm kuş türlerini kendisi öğrenmiş, ayrıca ağ tarafından yanlış etiketlenmiş görüntüleri aldığında kuşların ne olduğunu belirleyememişti. .


Genç kuşların uçmayı öğrendikleri ve yuvalarını terk ettikleri dönem olduğundan Temmuz ayının bir kuş sınıflandırma modeli başlatmak için en iyi zaman olmadığı ortaya çıktı.


Çirkin ördek yavrusu hikayesini hatırlıyor musunuz? Pek çok kuş için bu doğrudur; yavru kuşlar yetişkin kuşlara hiç benzemezler ve hâlâ gençse hangi kuşa baktığınızı bilmek zordur.


Yaz boyunca genç kuşların resimlerini topladık ve farklı yaşlardaki farklı kuş türlerini belirlemek için sınıflandırma ağını eğitmeyi planlıyoruz.


Çoğu zaman genç kuşlar yetişkinlere hiç benzemez


Ekip çalışması ağın çalışmasını sağlar


Kuş gözlemcileri tutkulu bir gruptur; bir kuşu tek tüyünün şekline göre nasıl tanımlayacaklarını bilirler. Sınıflandırma ağımızın sahip olmayı hayal ettiği bilgiye sahipler, o halde neden ikisini bir araya getirip dünyanın daha önce hiç görmediği kuşları seven bir ittifak kurmayasınız?


Şu anda sınıflandırma ağı, kullanıcıya yalnızca kuş türünü söylemiyor, diğer tahminlerle birlikte güven derecesini de gösteriyor.


Kullanıcı ağın tahminini onaylayabilir veya düzeltebilir, böylece her seferinde bir kuş olacak şekilde onu eğitmemize yardımcı olabilir. Kullanıcı geri bildirim sistemini 3 ay çalıştırdıktan sonra 20 binin üzerinde görsel topladık. Fotoğraflar gerçek yaşam koşullarında (kötü hava koşulları, gece vb.) çekildiğinden ve uzmanlar tarafından işaretlendiğinden bu veriler bizim için çok değerlidir.


Uçuruma baktığında uçurum da sana seslenir


Bu proje sırasında kendimizin kuş uzmanı haline geldiğimizi belirtmekte fayda var. Gün boyu kuşlara bakmak, aslında sanal bir çocuğu farklı serçe türleri arasındaki tüm küçük farklar konusunda eğitirken, kişiyi kuş gözlemciliği topluluğunun anında platin üyesi haline getirir.


Her şey başarısız olursa CV ekibi üyelerimiz kendilerini kolaylıkla ornitolojinin içinde bulabilirler.


Ciddi bir kayda göre, ister veri seti işaretlemesi ister ağın en fazla hatayı nerede yaptığını analiz etmek için olsun, binlerce kuş görüntüsüne bakarak, bu projenin derinliklerine indik ve diğer taraftan yalnızca bir sürü kuş bilgisiyle değil, aynı zamanda diğer ucundan da çıktık. karmaşık görüntü tanıma ve sınıflandırma sistemlerinin nasıl çalıştığının, bunların en iyi şekilde nasıl uygulanacağının, büyük bir veri kümesinin nasıl analiz edileceğinin ve zayıf noktalarının nasıl bulunacağının daha iyi anlaşılması.


Bu proje bizim için en son bilgisayarlı görüntü teknolojilerini araştırmak ve bunlarla çalışmak, gerçek zamanlı müşteri geri bildirimleriyle çalışmak ve güncelliğini kaybetmiş kodlarla çalışırken problem çözme becerilerimizi geliştirmek için çok değerli bir fırsattı.