Azure AI Custom Vision ile Görüntüleri Sınıflandırma
Görüntü sınıflandırma, yapay zeka (AI) uygulamalarında yaygın bir iş yüküdür. Yapay zeka sistemlerinin görüntülere dayalı olarak gerçek dünyadaki öğeleri tanımlamasını sağlamak için makine öğreniminin tahmin gücünden yararlanır. Görüntü sınıflandırmanın bazı potansiyel kullanımları şunlardır:
- Ürün tanımlama: Çevrimiçi aramalarda ve hatta mağazada mobil cihaz kullanarak belirli ürünler için görsel aramalar yapmak.
- Afet araştırması: Büyük afet hazırlık çabaları için temel altyapının belirlenmesi. Örneğin, hava görüntülerinde köprü ve yolların belirlenmesi, afet yardım ekiplerinin iyi haritalandırılmamış bölgelerde önceden plan yapmasına yardımcı olabilir.
- Tıbbi teşhis: X-ışını veya MRI cihazlarından alınan görüntülerin değerlendirilmesi, kanserli tümörler olarak bulunan belirli sorunları veya tıbbi görüntüleme teşhisiyle ilgili diğer birçok tıbbi durumu hızlı bir şekilde sınıflandırabilir.
Bir şeyin hangi kategoriye veya sınıfa ait olduğunu tahmin etmek için makine öğrenimi sınıflandırma tekniğini kullanabilirsiniz. Sınıflandırma makine öğrenimi modelleri, her olası sınıf için bir olasılık puanı hesaplamak ve bir nesnenin ait olduğu en muhtemel sınıfı belirten bir etiketi tahmin etmek için özellik adını verdiğimiz bir dizi girdiyi kullanır.
Örneğin bir çiçeğin özellikleri, yapraklarının, sapının, çanak yapraklarının ve diğer ölçülebilir özelliklerinin ölçümlerini içerebilir. Bir makine öğrenimi modeli, bu ölçümlere çiçeğin en muhtemel türünü (sınıfını) hesaplayan bir algoritma uygulanarak eğitilebilir.
Görüntü sınıflandırma, sınıflandırılan nesnenin fotoğraf gibi bir görüntü olduğu bir makine öğrenme tekniğidir. Bir görüntü sınıflandırma modeli oluşturmak için özelliklerden ve bunların etiketlerinden oluşan verilere ihtiyacınız vardır. Mevcut veriler, kategorize edilmiş bir dizi resimdir. Dijital görüntüler bir dizi piksel değerinden oluşur ve bunlar, bilinen görüntü sınıflarına dayalı olarak modeli eğitmek için özellikler olarak kullanılır. Model, piksel değerlerindeki desenleri bir dizi sınıf etiketiyle eşleştirecek şekilde eğitilir. Model eğitildikten sonra, bilinmeyen etiket değerlerini tahmin etmek için onu yeni özelliklerle birlikte kullanabilirsiniz.
Çoğu modern görüntü sınıflandırma çözümü, belirli sınıflara karşılık gelen piksellerdeki desenleri ortaya çıkarmak için convolutional neural networks (CNN’ler) kullanan derin öğrenme tekniklerine dayanmaktadır. Etkili bir CNN’yi eğitmek, veri bilimi ve makine öğrenimi konusunda önemli ölçüde uzmanlık gerektiren karmaşık bir görevdir. Görüntü sınıflandırma modellerini eğitmek için kullanılan yaygın teknikler, Microsoft Azure’daki Azure AI Özel Görüntüleme hizmetine dahil edilmiştir; Derin öğrenme teknikleri hakkında minimum bilgiyle bir modeli eğitmeyi ve onu bir yazılım hizmeti olarak yayınlamayı kolaylaştırır. Görüntü sınıflandırma modellerini eğitmek ve bunları uygulamaların kullanabileceği hizmetler olarak dağıtmak için Azure AI Custom Vision’ı kullanabilirsiniz.
Azure AI Hizmetleri tekliflerinin bir parçası olarak sunulan Azure AI Custom Vision kullanarak görüntü sınıflandırması gerçekleştirebilirsiniz. Bu genellikle kendi model eğitim kodunuzu yazmaktan daha kolay ve hızlıdır ve makine öğrenimi uzmanlığı çok az olan veya hiç olmayan kişilerin etkili bir görüntü sınıflandırma çözümü oluşturmasına olanak tanır.
Azure AI Özel Vizyon ile görüntü sınıflandırma çözümü oluşturmak iki ana görevden oluşur. Öncelikle modeli eğitmek için mevcut görüntüleri kullanmanız ve ardından istemci uygulamalarının tahminler oluşturmak için kullanabilmesi için modeli yayınlamanız gerekir. Bu görevlerin her biri için Azure aboneliğinizde bir kaynağa ihtiyacınız vardır. Aşağıdaki kaynak türlerini kullanabilirsiniz:
- Custom Vision: Custom Vision hizmeti için eğitim, tahmin olabilen özel bir kaynak.
- Azure AI hizmetleri: Azure AI Custom Vision’nın yanı sıra diğer birçok Azure AI hizmetini içeren genel bir kaynak. Bu tür kaynakları eğitim, tahmin veya her ikisi için kullanabilirsiniz.
Eğitim ve tahmin kaynaklarının ayrılması, model eğitimi için kaynak kullanımını görüntü sınıflarını tahmin etmek için modeli kullanan istemci uygulamalarından ayrı olarak izlemek istediğinizde kullanışlıdır. Ancak bir görüntü sınıflandırma çözümünün geliştirilmesini biraz kafa karıştırıcı hale getirebilir.
En basit yaklaşım, hem eğitim hem de tahmin için genel bir Azure AI hizmetleri kaynağı kullanmaktır. Bu, yalnızca bir uç nokta (hizmetinizin barındırıldığı HTTP adresi) ve anahtar (istemci uygulamalarının kendilerini doğrulamak için kullandıkları gizli bir değer) ile ilgilenmeniz gerektiği anlamına gelir.
Bir Custom Vision İşleme kaynağı oluşturmayı seçerseniz, sizden eğitimi, tahmini veya her ikisini birden seçmeniz istenir; “her ikisini de” seçerseniz, biri eğitim için, diğeri tahmin için olmak üzere iki kaynak oluşturulacağını unutmamak önemlidir.
Ayrıca, eğitim için özel bir Custom Vision kaynağı kullandığınız, ancak modelinizi tahmin için bir Azure AI hizmetleri kaynağına dağıttığınız bir karıştır ve eşleştir yaklaşımını benimsemek de mümkündür. Bunun işe yaraması için eğitim ve tahmin kaynaklarının aynı bölgede oluşturulması gerekir.
Bir sınıflandırma modelini eğitmek için görüntüleri eğitim kaynağınıza yüklemeniz ve bunları uygun sınıf etiketleriyle etiketlemeniz gerekir. Daha sonra modeli eğitmeli ve eğitim sonuçlarını değerlendirmelisiniz.
Bu görevleri Custom Vision İşleme portalında gerçekleştirebilir veya gerekli kodlama deneyimine sahipseniz Azure AI Custom Vision İşleme hizmeti programlama diline özgü yazılım geliştirme kitlerinden (SDK’ler) birini kullanabilirsiniz.
Sınıflandırma için görselleri kullanırken dikkat edilmesi gereken en önemli hususlardan biri, söz konusu nesnelerin yeterli görseline sahip olduğunuzdan emin olmaktır ve bu görseller, nesneye birçok farklı açıdan ait olmalıdır.
Model eğitim süreci, Azure AI Custom Vision İşleme hizmetinin, verilerin bir kısmını kullanarak modeli tekrar tekrar eğittiği, ancak bazılarını modeli değerlendirmek için geri tuttuğu yinelemeli bir süreçtir. Eğitim sürecinin sonunda eğitilen modelin performansı aşağıdaki değerlendirme ölçümleriyle gösterilir:
- Precision: Modelin yaptığı sınıf tahminlerinin yüzde kaçı doğruydu? Örneğin, model 10 görüntünün turuncu olduğunu ve bunların sekizinin aslında turuncu olduğunu tahmin ederse doğruluk 0,8 (%80) olur.
- Recall: Model sınıf tahminlerinin yüzde kaçını doğru belirledi? Örneğin, 10 adet elma görüntüsü varsa ve model bunlardan 7 tanesini bulduysa geri çağırma 0,7 (%70) olur.
- Average Precision (AP): Hem precision hem de recall dikkate alan genel bir ölçüm.
Modeli eğittikten ve değerlendirilen performansından memnun kaldıktan sonra modeli tahmin kaynağınızda yayınlayabilirsiniz. Modeli yayınladığınızda, ona bir ad atayabilirsiniz (varsayılan “YinelemeX”tir; burada X, modeli kaç kez eğittiğinizdir).
Modelinizi kullanmak için istemci uygulaması geliştiricilerinin aşağıdaki bilgilere ihtiyacı vardır:
- Proje Kimliği: Modeli eğitmek için oluşturduğunuz Custom Vision İşleme projesinin benzersiz kimliği.
- Model adı: Yayınlama sırasında modele atadığınız ad.
- Tahmin uç noktası: Modeli yayınladığınız tahmin kaynağının (eğitim kaynağı değil) uç noktalarının HTTP adresi.
- Tahmin anahtarı: Modeli yayınladığınız tahmin kaynağının (eğitim kaynağı değil) kimlik doğrulama anahtarı.