Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Gelecekteki bilgisayarlı görme sistemimiz için teknolojiler ve modeller, şirketimizin Posta, Bulut, Arama gibi farklı projelerinde kademeli olarak oluşturuldu ve geliştirildi. İyi peynir veya konyak gibi olgunlaştılar. Bir gün sinir ağlarımızın tanınma konusunda mükemmel sonuçlar verdiğini fark ettik ve bunları, artık kendimizin kullandığı ve sizin de kullanımına sunduğumuz tek bir b2b ürünü olan Vision'da birleştirmeye karar verdik.

Bugün Mail.Ru Bulut Çözümleri platformundaki bilgisayarlı görme teknolojimiz başarıyla çalışıyor ve çok karmaşık pratik sorunları çözüyor. Veri setlerimiz üzerinde eğitilmiş ve uygulanan problemlerin çözümünde uzmanlaşmış bir dizi sinir ağına dayanmaktadır. Tüm hizmetler sunucu tesislerimizde çalışır. Hizmetin tüm özelliklerinin kullanılabileceği genel Vision API'yi uygulamalarınıza entegre edebilirsiniz. API hızlıdır; sunucu GPU'ları sayesinde ağımızdaki ortalama yanıt süresi 100 ms'dir.

Kediye gidin, detaylı bir hikaye ve Vision'ın çalışmalarından birçok örnek var.

Bahsedilen yüz tanıma teknolojilerini bizzat kullandığımız bir hizmete örnek: Etkinlikler. Bileşenlerinden biri de çeşitli konferanslarda kurduğumuz Vision fotoğraf standlarıdır. Böyle bir fotoğraf standına yaklaştığınızda, dahili kamerayla bir fotoğraf çekip e-posta adresinizi girerseniz, sistem, konferansın kadrolu fotoğrafçıları tarafından çekildiğiniz fotoğrafları bir dizi fotoğraf arasından anında bulacaktır ve istenirse, Bulunan fotoğrafları size e-postayla gönderecektir. Ve sahnelenen portre çekimlerinden bahsetmiyoruz; Vision sizi kalabalık bir ziyaretçi kalabalığının içinde bile arka planda tanır. Tabii ki, tanınan fotoğraf standlarının kendisi değil, bunlar sadece dahili kameralarıyla misafirlerin fotoğraflarını çeken ve tüm tanıma büyüsünün gerçekleştiği sunuculara bilgi aktaran güzel stantlardaki tabletlerdir. Ve teknolojinin etkinliğinin görüntü tanıma uzmanları arasında bile ne kadar şaşırtıcı olduğunu defalarca gördük. Aşağıda bazı örneklerden bahsedeceğiz.

1. Yüz Tanıma modelimiz

1.1. Sinir ağı ve işlem hızı

Tanıma için, ResNet 101 sinir ağı modelinin bir modifikasyonunu kullanıyoruz, sonunda Ortalama Havuzlama, ArcFace'te yapıldığına benzer şekilde tamamen bağlantılı bir katmanla değiştiriliyor. Ancak vektörel gösterimlerin boyutu 128 değil 512'dir. Eğitim setimiz 10 kişinin yaklaşık 273 milyon fotoğrafını içermektedir.

Model, dikkatle seçilmiş sunucu yapılandırma mimarisi ve GPU hesaplaması sayesinde çok hızlı çalışır. Dahili ağlarımızda API'den yanıt almak 100 ms sürer; buna yüz algılama (fotoğraftaki bir yüzün algılanması), tanınma ve API yanıtında PersonID'nin döndürülmesi dahildir. Büyük miktarda veri (fotoğraf ve video) geldiğinde, verilerin hizmete aktarılması ve yanıt alınması çok daha fazla zaman alacaktır.

1.2. Modelin etkililiğinin değerlendirilmesi

Ancak sinir ağlarının verimliliğini belirlemek oldukça belirsiz bir iştir. Çalışmalarının kalitesi, modellerin hangi veri kümeleri üzerinde eğitildiğine ve bunların belirli verilerle çalışmak üzere optimize edilip edilmediğine bağlıdır.

Modelimizin doğruluğunu popüler LFW doğrulama testiyle değerlendirmeye başladık ancak test çok küçük ve basit. %99,8 doğruluğa ulaştıktan sonra artık kullanışlı değildir. Tanıma modellerini değerlendirmek için iyi bir rekabet var - Megaface, bunda yavaş yavaş %82'lik bir oranla 1. sıraya ulaştık. Megaface testi bir milyon fotoğraftan - dikkat dağıtıcılardan - oluşuyor ve model, ünlülerin birkaç bin fotoğrafını Facescrub'dan iyi bir şekilde ayırt edebilmelidir. dikkat dağıtıcılardan gelen veri seti. Bununla birlikte, Megaface hata testini temizledikten sonra, temizlenmiş sürümle %98'lik 1. derece doğruluk elde ettiğimizi gördük (ünlülerin fotoğrafları genellikle oldukça spesifiktir). Bu nedenle Megaface'e benzer ancak "sıradan" insanların fotoğraflarının yer aldığı ayrı bir kimlik testi oluşturdular. Daha sonra veri kümelerimizdeki tanıma doğruluğunu iyileştirdik ve çok ileri gittik. Ayrıca birkaç bin fotoğraftan oluşan bir kümeleme kalite testi kullanıyoruz; kullanıcının bulutundaki yüz işaretlerini simüle eder. Bu durumda kümeler, her tanınabilir kişi için bir grup olacak şekilde benzer bireylerden oluşan gruplardır. Gerçek gruplar üzerinde çalışmanın kalitesini kontrol ettik (doğru).

Elbette her modelde tanıma hataları meydana gelir. Ancak bu tür durumlar genellikle eşiklerin belirli koşullar için ince ayarlanmasıyla çözülür (tüm konferanslar için aynı eşikleri kullanırız, ancak örneğin erişim kontrol sistemleri için eşikleri büyük ölçüde artırmamız gerekir, böylece daha az yanlış pozitif olur). Konferans ziyaretçilerinin büyük çoğunluğu Vision fotoğraf kabinlerimiz tarafından doğru bir şekilde tanındı. Bazen birisi kırpılmış önizlemeye bakıp şöyle derdi: "Sisteminiz bir hata yaptı, o ben değildim." Sonra fotoğrafı bütünüyle açtık ve fotoğrafta gerçekten bu ziyaretçinin olduğu ortaya çıktı, ancak biz onun fotoğrafını çekmiyorduk, başka biri, o kişi tesadüfen arka planda bulanıklık bölgesindeydi. Üstelik sinir ağı, yüzün bir kısmı görünmediğinde veya kişi profilde durduğunda, hatta yarı dönük olduğunda bile sıklıkla doğru bir şekilde tanır. Sistem, örneğin geniş açılı bir mercekle çekim yaparken, yüz optik bozulma alanında olsa bile bir kişiyi tanıyabiliyor.

1.3. Zor durumlarda test örnekleri

Aşağıda sinir ağımızın nasıl çalıştığına dair örnekler verilmiştir. Fotoğraflar, bir kişinin benzersiz tanımlayıcısı olan PersonID'yi kullanarak etiketlemesi gereken girişe gönderilir. İki veya daha fazla fotoğraf aynı kimliğe sahipse, modellere göre bu fotoğraflar aynı kişiyi tasvir ediyor demektir.

Test sırasında belirli bir sonuca ulaşmak için yapılandırabileceğimiz çeşitli parametrelere ve model eşiklerine erişimimizin olduğunu hemen belirtelim. Genel API, yaygın durumlarda maksimum doğruluk sağlayacak şekilde optimize edilmiştir.

En basit şeyle, öne bakan yüz tanımayla başlayalım.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Bu çok kolaydı. Görevi karmaşıklaştıralım, bir sakal ve bir avuç yıl ekleyelim.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Bazıları bunun çok da zor olmadığını, çünkü her iki durumda da yüzün tamamının görülebildiğini ve algoritmanın yüz hakkında pek çok bilgiye erişebildiğini söyleyecektir. Tamam, hadi Tom Hardy'yi profile dönüştürelim. Bu sorun çok daha karmaşık ve bunu düşük hata oranını korurken başarılı bir şekilde çözmek için çok çaba harcadık: bir eğitim seti seçtik, sinir ağının mimarisi üzerinde düşündük, kayıp fonksiyonlarını geliştirdik ve ön işlemeyi geliştirdik. fotoğraflardan.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Ona bir başlık takalım:

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Bu arada, bu özellikle zor bir durumun bir örneğidir, çünkü yüz yoğun bir şekilde gizlenmiştir ve alt fotoğrafta da gözleri gizleyen derin bir gölge vardır. Gerçek hayatta insanlar koyu renk gözlüklerin yardımıyla görünüşlerini sıklıkla değiştirirler. Aynısını Tom'a da yapalım.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Tamam, farklı yaşlardan fotoğraflar atmaya çalışalım ve bu sefer farklı bir oyuncuyla deney yapacağız. Yaşa bağlı değişikliklerin özellikle belirgin olduğu çok daha karmaşık bir örneği ele alalım. Durum çok zor değil; pasaporttaki fotoğrafı hamilinin yüzüyle karşılaştırmanız gerektiğinde oldukça sık ortaya çıkıyor. Sonuçta, pasaporta ilk fotoğraf, sahibi 20 yaşındayken eklenir ve 45 yaşına gelindiğinde kişi büyük ölçüde değişebilir:

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

İmkansız görevlerdeki ana uzmanın yaşla birlikte pek değişmediğini mi düşünüyorsunuz? Üst ve alt fotoğrafları bir kaç kişi bile birleştirir diye düşünüyorum, çocuk yıllar geçtikçe çok değişti.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Sinir ağları görünüm değişiklikleriyle çok daha sık karşılaşıyor. Örneğin, bazen kadınlar kozmetiklerin yardımıyla imajlarını büyük ölçüde değiştirebilirler:

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Şimdi işi daha da karmaşık hale getirelim: Farklı fotoğraflarda yüzün farklı bölgelerinin kaplandığını varsayalım. Bu gibi durumlarda algoritma örneklerin tamamını karşılaştıramaz. Ancak Vision bu gibi durumlarla iyi başa çıkıyor.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Bu arada bir fotoğrafta çok fazla yüz olabilir; örneğin genel bir salon fotoğrafına 100'den fazla kişi sığabilir. Bu, sinir ağları için zor bir durumdur çünkü birçok yüz farklı şekilde aydınlatılabilir, bazıları odak dışı olabilir. Ancak fotoğraf yeterli çözünürlük ve kalitede (yüz kaplayan kare başına en az 75 piksel) çekilirse Vision onu algılayıp tanıyabilecek.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Röportaj fotoğraflarının ve güvenlik kameralarından alınan görüntülerin özelliği, insanların o anda odak dışında olmaları veya hareket etmeleri nedeniyle sıklıkla bulanıklaşmasıdır:

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Ayrıca aydınlatma yoğunluğu görüntüden görüntüye büyük ölçüde değişebilir. Bu da çoğu zaman tökezleyen bir engel haline gelir; birçok algoritma, çok karanlık ve çok açık görüntüleri doğru bir şekilde işlemede ve bunları doğru bir şekilde eşleştirmede büyük zorluk çeker. Bu sonuca ulaşmak için eşikleri belirli bir şekilde yapılandırmanız gerektiğini hatırlatayım; bu özellik henüz halka açık değil. Tüm istemciler için aynı sinir ağını kullanıyoruz; çoğu pratik görev için uygun eşiklere sahiptir.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Yakın zamanda modelin Asyalı yüzleri yüksek doğrulukla tanıyan yeni bir versiyonunu piyasaya sürdük. Bu eskiden büyük bir sorundu ve buna "makine öğrenimi" (ya da "sinir ağı") ırkçılığı bile deniyordu. Avrupa ve Amerika sinir ağları Kafkas yüzlerini iyi tanıdı ancak Moğol ve Zenci yüzlerinde durum çok daha kötüydü. Muhtemelen Çin'de durum tam tersiydi. Her şey belirli bir ülkedeki baskın insan türlerini yansıtan veri setlerinin eğitimi ile ilgilidir. Ancak durum değişiyor; bugün bu sorun o kadar da ciddi değil. Vizyonun farklı ırklardan insanlarla hiçbir sorunu yoktur.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Yüz tanıma, teknolojimizin birçok uygulamasından sadece bir tanesidir; Görme, her şeyi tanıyacak şekilde eğitilebilir. Örneğin, algoritmalar için zor koşullar da dahil olmak üzere plakalar: keskin açılarda, kirli ve okunması zor plakalar.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

2. Pratik kullanım örnekleri

2.1. Fiziksel erişim kontrolü: iki kişi aynı geçişi kullandığında

Vision'ın yardımıyla çalışanların geliş ve gidişlerinin kayıt altına alınmasına yönelik sistemler uygulayabilirsiniz. Elektronik geçişlere dayanan geleneksel sistemin belirgin dezavantajları vardır; örneğin, bir rozet kullanarak iki kişiyi geçebilirsiniz. Geçiş kontrol sistemi (ACS) Vision ile desteklenirse kimin geldiğini/ne zaman çıktığını dürüstçe kaydedecektir.

2.2. Zaman takibi

Bu Vision kullanım durumu bir öncekiyle yakından ilgilidir. Erişim sistemini yüz tanıma hizmetimizle desteklerseniz, yalnızca erişim kontrolü ihlallerini tespit etmekle kalmayacak, aynı zamanda çalışanların bina veya tesisteki fiili varlığını da kaydedebileceksiniz. Başka bir deyişle Vision, kimin işe gelip hangi saatte ayrıldığını ve meslektaşları üstlerinin önünde onun yerine geçse bile kimin işi tamamen atladığını dürüstçe hesaba katmanıza yardımcı olacaktır.

2.3. Video Analizi: Kişi Takibi ve Güvenliği

Vision'ı kullanarak insanları takip ederek alışveriş alanlarının, tren istasyonlarının, pasajların, sokakların ve diğer birçok halka açık yerin gerçek trafiğini doğru bir şekilde değerlendirebilirsiniz. Takip sistemimiz, örneğin bir depoya veya diğer önemli ofis binalarına erişimin kontrol edilmesinde de çok yardımcı olabilir. Ve elbette insanları ve yüzleri takip etmek güvenlik sorunlarının çözülmesine yardımcı olur. Mağazanızdan hırsızlık yapan birini mi yakaladınız? Vision tarafından geri gönderilen PersonID'yi video analiz yazılımınızın kara listesine ekleyin; bir dahaki sefere bu türün tekrar ortaya çıkması durumunda sistem güvenliği hemen uyaracaktır.

2.4. Ticarette

Perakende ve çeşitli hizmet işletmeleri kuyruk tanımayla ilgilenmektedir. Vision'ın yardımıyla bunun rastgele bir insan kalabalığı değil, bir kuyruk olduğunu fark edebilir ve uzunluğunu belirleyebilirsiniz. Daha sonra sistem, durumu anlayabilmeleri için sorumluları bir kuyruk hakkında bilgilendiriyor: Ya ziyaretçi akını var ve ek çalışanların çağrılması gerekiyor, ya da birileri iş görevlerini aksatıyor.

Bir diğer ilginç görev ise salondaki şirket çalışanlarını ziyaretçilerden ayırmak. Tipik olarak sistem, belirli kıyafetleri giyen (kıyafet kodu) veya bazı ayırt edici özelliklere sahip (markalı eşarp, göğüsteki rozet vb.) nesneleri ayırmak için eğitilmiştir. Bu, katılımın daha doğru bir şekilde değerlendirilmesine yardımcı olur (böylece çalışanlar, salondaki kişilerin istatistiklerini yalnızca varlıklarıyla "şişirmezler").

Yüz tanımayı kullanarak hedef kitlenizi de değerlendirebilirsiniz: Ziyaretçilerin sadakati nedir, yani işletmenize kaç kişi ve hangi sıklıkta geri dönüyor? Aylık kaç tekil ziyaretçinin size geldiğini hesaplayın. İlgi çekme ve elde tutma maliyetlerini optimize etmek için haftanın gününe ve hatta günün saatine bağlı olarak trafikteki değişimi de öğrenebilirsiniz.

Franchise verenler ve zincir şirketler, çeşitli perakende satış mağazalarının markalama kalitesinin fotoğraflarına dayalı bir değerlendirme isteyebilir: logoların, tabelaların, posterlerin, pankartların vb. varlığı.

2.5. Ulaşım yoluyla

Video analitiğini kullanarak güvenliği sağlamanın bir başka örneği de havalimanlarının veya tren istasyonlarının koridorlarında terk edilmiş eşyaların tespit edilmesidir. Görme, yüzlerce sınıftan nesneleri tanıyacak şekilde eğitilebilir: mobilya parçaları, çantalar, valizler, şemsiyeler, çeşitli giysi türleri, şişeler vb. Video analiz sisteminiz sahipsiz bir nesne tespit ederse ve onu Vision kullanarak tanırsa güvenlik servisine bir sinyal gönderir. Benzer bir görev, halka açık yerlerdeki olağandışı durumların otomatik olarak algılanmasıyla da ilişkilidir: Birisi hasta hissediyor, birisi yanlış yerde sigara içiyor veya bir kişi rayların üzerine düşüyor vb. - tüm bu modeller video analiz sistemleri tarafından tanınabilir Vision API aracılığıyla.

2.6. Belge akışı

Vision'ın şu anda geliştirmekte olduğumuz bir başka ilginç gelecek uygulaması da belge tanıma ve bunların veritabanlarına otomatik olarak ayrıştırılmasıdır. Sonsuz serileri, sayıları, yayın tarihlerini, hesap numaralarını, banka bilgilerini, doğum tarihlerini ve yerlerini ve diğer birçok resmi veriyi manuel olarak girmek (veya daha kötüsü, girmek) yerine, belgeleri tarayabilir ve bunları güvenli bir kanal üzerinden otomatik olarak gönderebilirsiniz. Sistemin bu belgeleri anında tanıyacağı, ayrıştıracağı ve veritabanına otomatik giriş için gerekli formatta verilerle bir yanıt döndüreceği buluta API. Today Vision, belgeleri (PDF dahil) nasıl sınıflandıracağını zaten biliyor - pasaportlar, SNILS, TIN, doğum belgeleri, evlilik sertifikaları ve diğerleri arasında ayrım yapıyor.

Elbette sinir ağı tüm bu durumların üstesinden gelemez. Her durumda, belirli bir müşteri için yeni bir model oluşturulur, birçok faktör, nüans ve gereksinimler dikkate alınır, veri setleri seçilir ve eğitim, test ve konfigürasyon yinelemeleri gerçekleştirilir.

3. API çalışma şeması

Vision'ın kullanıcılar için "giriş kapısı" REST API'dir. Giriş olarak ağ kameralarından (RTSP akışları) fotoğraf, video dosyası ve yayın alabilir.

Vision'ı kullanmak için şunlara ihtiyacınız vardır: kaydetmek Mail.ru Bulut Çözümleri hizmetinde ve erişim belirteçlerini (client_id + client_secret) alın. Kullanıcı kimlik doğrulaması OAuth protokolü kullanılarak gerçekleştirilir. POST isteklerinin gövdelerindeki kaynak verileri API'ye gönderilir. Ve yanıt olarak müşteri, API'den JSON formatında bir tanıma sonucu alır ve yanıt yapılandırılmıştır: bulunan nesneler ve bunların koordinatları hakkında bilgi içerir.

Sakallı, koyu renkli gözlüklü ve profilde: Bilgisayarla görme için zor durumlar

Örnek Cevap

{
   "status":200,
   "body":{
      "objects":[
         {
            "status":0,
            "name":"file_0"
         },
         {
            "status":0,
            "name":"file_2",
            "persons":[
               {
                  "tag":"person9"
                  "coord":[149,60,234,181],
                  "confidence":0.9999,
                  "awesomeness":0.45
               },
               {
                  "tag":"person10"
                  "coord":[159,70,224,171],
                  "confidence":0.9998,
                  "awesomeness":0.32
               }
            ]
         }

         {
            "status":0,
            "name":"file_3",
            "persons":[
               {
               "tag":"person11",
               "coord":[157,60,232,111],
               "aliases":["person12", "person13"]
               "confidence":0.9998,
               "awesomeness":0.32
               }
            ]
         },
         {
            "status":0,
            "name":"file_4",
            "persons":[
               {
               "tag":"undefined"
               "coord":[147,50,222,121],
               "confidence":0.9997,
               "awesomeness":0.26
               }
            ]
         }
      ],
      "aliases_changed":false
   },
   "htmlencoded":false,
   "last_modified":0
}

Cevap ilginç bir harikalık parametresi içeriyor - bu, bir fotoğraftaki yüzün koşullu "soğukluğu", onun yardımıyla diziden bir yüzün en iyi çekimini seçiyoruz. Bir fotoğrafın sosyal ağlarda beğenilme olasılığını tahmin etmek için bir sinir ağını eğittik. Fotoğrafın kalitesi ne kadar iyi olursa, yüz ne kadar gülerse, muhteşemlik de o kadar büyük olur.

API Vision, alan adı verilen bir kavramı kullanır. Bu, farklı yüz kümeleri oluşturmaya yönelik bir araçtır. Alanlara örnek olarak kara ve beyaz listeler, ziyaretçi listeleri, çalışanlar, müşteriler vb. verilebilir. Vision'daki her token için en fazla 10 alan oluşturabilirsiniz, her alanda en fazla 50 bin PersonID bulunabilir, yani 500 bine kadar jeton başına. Üstelik hesap başına token sayısı sınırlı değildir.

Bugün API aşağıdaki algılama ve tanıma yöntemlerini desteklemektedir:

  • Tanı/Ayarla - yüzlerin tespiti ve tanınması. Her benzersiz kişiye otomatik olarak bir PersonID atar, bulunan kişilerin PersonID'sini ve koordinatlarını döndürür.
  • Sil - belirli bir Kişi Kimliğini kişi veritabanından silme.
  • Kes - PersonID'deki tüm alanı temizler; test alanı olarak kullanıldıysa ve veritabanını üretim için sıfırlamanız gerekiyorsa kullanışlıdır.
  • Algıla - nesnelerin, sahnelerin, plakaların, yer işaretlerinin, kuyrukların vb. algılanması. Bulunan nesnelerin sınıfını ve bunların koordinatlarını döndürür
  • Belgeleri tespit et - Rusya Federasyonu'nun belirli belge türlerini algılar (pasaport, SNILS, vergi kimlik numarası vb.'yi ayırt eder).

Ayrıca OCR yöntemleri, cinsiyet, yaş ve duyguların belirlenmesinin yanı sıra mağazacılık sorunlarını çözme, yani malların mağazalarda teşhirini otomatik olarak kontrol etme yöntemleri üzerindeki çalışmalarımızı da yakında bitireceğiz. API belgelerinin tamamını burada bulabilirsiniz: https://mcs.mail.ru/help/vision-api

4. Sonuç

Artık genel API aracılığıyla fotoğraf ve videolarda yüz tanımaya erişebiliyorsunuz; çeşitli nesnelerin, plakaların, yer işaretlerinin, belgelerin ve tüm sahnelerin tanımlanması destekleniyor. Uygulama senaryoları - deniz. Gelin, hizmetimizi test edin, en zorlu görevleri ayarlayın. İlk 5000 işlem ücretsizdir. Belki de projelerinizin “eksik bileşeni” olacaktır.

Kayıt ve bağlantı sonrasında API'ye anında erişebilirsiniz. Vizyon. Tüm Habra kullanıcılarına ek işlemler için bir promosyon kodu verilir. Lütfen hesabınızı kaydederken kullandığınız e-posta adresini bana yazın!

Kaynak: habr.com

Yorum ekle