Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Teknologjitë dhe modelet për sistemin tonë të ardhshëm të vizionit kompjuterik u krijuan dhe u përmirësuan gradualisht dhe në projekte të ndryshme të kompanisë sonë - në Mail, Cloud, Search. Ata piqen si djathë i mirë ose konjak. Një ditë kuptuam se rrjetet tona nervore tregojnë rezultate të shkëlqyera në njohje dhe vendosëm t'i kombinojmë ato në një produkt të vetëm b2b - Vision - të cilin tani e përdorim vetë dhe ju ofrojmë ta përdorni.

Sot, teknologjia jonë e vizionit kompjuterik në platformën Mail.Ru Cloud Solutions po funksionon me sukses dhe po zgjidh probleme praktike shumë komplekse. Ai bazohet në një numër rrjetesh nervore që janë trajnuar në grupet tona të të dhënave dhe specializohen në zgjidhjen e problemeve të aplikuara. Të gjitha shërbimet funksionojnë në pajisjet e serverit tonë. Ju mund të integroni API-në publike të Vizionit në aplikacionet tuaja, përmes të cilave janë të disponueshme të gjitha aftësitë e shërbimit. API është i shpejtë - falë GPU-ve të serverëve, koha mesatare e përgjigjes brenda rrjetit tonë është 100 ms.

Shkoni te macja, ka një histori të detajuar dhe shumë shembuj të punës së Vizionit.

Si shembull i një shërbimi në të cilin ne vetë përdorim teknologjitë e përmendura të njohjes së fytyrës, mund të citojmë Ngjarje. Një nga komponentët e tij janë stendat fotografike Vision, të cilat i instalojmë në konferenca të ndryshme. Nëse i afroheni një stenda të tillë fotografike, bëni një foto me kamerën e integruar dhe futni emailin tuaj, sistemi do të gjejë menjëherë midis grupit të fotografive ato në të cilat jeni kapur nga fotografët e stafit të konferencës dhe, nëse dëshironi, do t'ju dërgojë fotografitë e gjetura me email. Dhe ne nuk po flasim për foto portrete të inskenuara - Vizioni ju njeh edhe në sfond në një turmë vizitorësh. Natyrisht, nuk janë vetë stendat e fotografive që njihen, këto janë vetëm tableta në stendat e bukura që thjesht bëjnë foto të të ftuarve me kamerat e tyre të integruara dhe transmetojnë informacione te serverët, ku ndodh e gjithë magjia e njohjes. Dhe ne kemi parë më shumë se një herë se sa befasues është efektiviteti i teknologjisë edhe midis specialistëve të njohjes së imazhit. Më poshtë do të flasim për disa shembuj.

1. Modeli ynë i njohjes së fytyrës

1.1. Rrjeti nervor dhe shpejtësia e përpunimit

Për njohje, ne përdorim një modifikim të modelit të rrjetit nervor ResNet 101. Bashkimi mesatar në fund zëvendësohet nga një shtresë plotësisht e lidhur, e ngjashme me mënyrën se si bëhet në ArcFace. Megjithatë, madhësia e paraqitjeve vektoriale është 128, jo 512. Seti ynë i trajnimit përmban rreth 10 milionë foto të 273 personave.

Modeli funksionon shumë shpejt falë një arkitekture të konfigurimit të serverit të zgjedhur me kujdes dhe llogaritjes GPU. Duhen nga 100 ms për të marrë një përgjigje nga API në rrjetet tona të brendshme - kjo përfshin zbulimin e fytyrës (zbulimin e një fytyre në një foto), njohjen dhe kthimin e personit ID në përgjigjen API. Me vëllime të mëdha të të dhënave hyrëse - foto dhe video - do të duhet shumë më tepër kohë për të transferuar të dhënat në shërbim dhe për të marrë një përgjigje.

1.2. Vlerësimi i efektivitetit të modelit

Por përcaktimi i efikasitetit të rrjeteve nervore është një detyrë shumë e paqartë. Cilësia e punës së tyre varet nga grupet e të dhënave mbi të cilat janë trajnuar modelet dhe nëse ato janë optimizuar për të punuar me të dhëna specifike.

Ne filluam të vlerësojmë saktësinë e modelit tonë me testin popullor të verifikimit LFW, por ai është shumë i vogël dhe i thjeshtë. Pasi të keni arritur saktësinë 99,8%, nuk është më i dobishëm. Ekziston një konkurrencë e mirë për vlerësimin e modeleve të njohjes - Megaface, në të cilën gradualisht arritëm 82% në renditjen 1. Testi Megaface përbëhet nga një milion fotografi - shpërqendruese - dhe modelja duhet të jetë në gjendje të dallojë mirë disa mijëra fotografi të të famshëmve nga Facescrub të dhëna nga shpërqendruesit. Sidoqoftë, pasi kemi pastruar testin e Megaface nga gabimet, zbuluam se me versionin e pastruar arrijmë një saktësi prej 98% të renditjes 1 (fotot e të famshëmve në përgjithësi janë mjaft specifike). Prandaj, ata krijuan një test të veçantë identifikimi, të ngjashëm me Megaface, por me fotografi të njerëzve "të zakonshëm". Më pas kemi përmirësuar saktësinë e njohjes në grupet tona të të dhënave dhe shkuam shumë përpara. Përveç kësaj, ne përdorim një test të cilësisë së grupimit që përbëhet nga disa mijëra foto; ai simulon etiketimin e fytyrës në renë kompjuterike të përdoruesit. Në këtë rast, grupimet janë grupe individësh të ngjashëm, një grup për çdo person të njohur. Ne kontrolluam cilësinë e punës në grupe reale (e vërtetë).

Sigurisht, gabimet e njohjes ndodhin me çdo model. Por situata të tilla shpesh zgjidhen duke rregulluar kufijtë për kushte specifike (për të gjitha konferencat ne përdorim të njëjtat pragje, por, për shembull, për sistemet e kontrollit të aksesit duhet të rrisim shumë pragjet në mënyrë që të ketë më pak pozitive false). Shumica dërrmuese e vizitorëve të konferencës u njohën saktë nga kabinat tona të fotografive Vision. Ndonjëherë dikush shikonte pamjen paraprake të prerë dhe thoshte: "Sistemi juaj bëri një gabim, nuk isha unë". Më pas e hapëm foton në tërësi dhe rezultoi që vërtet ishte ky vizitor në foto, vetëm se ne nuk po e fotografonim atë, por dikush tjetër, personi thjesht ndodhej në sfond në zonën e turbullt. Për më tepër, rrjeti nervor shpesh njeh saktë edhe kur një pjesë e fytyrës nuk është e dukshme, ose personi është në këmbë në profil, apo edhe gjysmë i kthyer. Sistemi mund të njohë një person edhe nëse fytyra është në zonën e shtrembërimit optik, të themi, kur shkrep me një lente me kënd të gjerë.

1.3. Shembuj të testimit në situata të vështira

Më poshtë janë shembuj se si funksionon rrjeti ynë nervor. Fotografitë dorëzohen në hyrje, të cilat ajo duhet t'i etiketojë duke përdorur PersonID - një identifikues unik i një personi. Nëse dy ose më shumë imazhe kanë të njëjtën ID, atëherë, sipas modeleve, këto foto përshkruajnë të njëjtin person.

Le të vërejmë menjëherë se gjatë testimit, ne kemi akses në parametra të ndryshëm dhe pragje modeli që mund t'i konfigurojmë për të arritur një rezultat të veçantë. API publike është optimizuar për saktësi maksimale në rastet e zakonshme.

Le të fillojmë me gjënë më të thjeshtë, me njohjen e fytyrës përpara.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Epo, ishte shumë e lehtë. Le ta komplikojmë detyrën, të shtojmë një mjekër dhe një grusht vitesh.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Disa do të thonë se kjo nuk ishte gjithashtu shumë e vështirë, sepse në të dyja rastet e gjithë fytyra është e dukshme dhe shumë informacione rreth fytyrës janë në dispozicion të algoritmit. Mirë, le ta kthejmë Tom Hardy në profil. Ky problem është shumë më kompleks dhe ne kemi shpenzuar shumë përpjekje për ta zgjidhur me sukses duke ruajtur një shkallë të ulët gabimi: kemi zgjedhur një grup trajnimi, kemi menduar përmes arkitekturës së rrjetit nervor, kemi përmirësuar funksionet e humbjes dhe kemi përmirësuar përpunimin paraprak. e fotografive.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Le t'i vendosim një shami:

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Nga rruga, ky është një shembull i një situate veçanërisht të vështirë, pasi fytyra është shumë e errët, dhe në foton e poshtme ka gjithashtu një hije të thellë që fsheh sytë. Në jetën reale, njerëzit shumë shpesh ndryshojnë pamjen e tyre me ndihmën e syzeve të errëta. Le të bëjmë të njëjtën gjë me Tomin.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Mirë, le të përpiqemi të hedhim foto nga mosha të ndryshme dhe këtë herë do të eksperimentojmë me një aktor tjetër. Le të marrim një shembull shumë më kompleks, ku ndryshimet në lidhje me moshën janë veçanërisht të theksuara. Situata nuk është e largët; ndodh mjaft shpesh kur duhet të krahasoni foton në pasaportë me fytyrën e mbajtësit. Në fund të fundit, fotografia e parë i shtohet pasaportës kur pronari është 20 vjeç, dhe deri në moshën 45 vjeç një person mund të ndryshojë shumë:

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Mendoni se specialisti kryesor i misioneve të pamundura nuk ka ndryshuar shumë me moshën? Mendoj se edhe pak njerëz do të kombinonin fotot e sipërme dhe të poshtme, djali ka ndryshuar kaq shumë me kalimin e viteve.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Rrjetet nervore hasin ndryshime në pamje shumë më shpesh. Për shembull, ndonjëherë gratë mund të ndryshojnë shumë imazhin e tyre me ndihmën e kozmetikës:

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Tani le ta komplikojmë detyrën edhe më shumë: supozoni se pjesë të ndryshme të fytyrës janë të mbuluara në fotografi të ndryshme. Në raste të tilla, algoritmi nuk mund të krahasojë mostra të tëra. Sidoqoftë, Visioni i trajton mirë situata të tilla.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Nga rruga, mund të ketë shumë fytyra në një fotografi; për shembull, më shumë se 100 njerëz mund të përshtaten në një fotografi të përgjithshme të një salle. Kjo është një situatë e vështirë për rrjetet nervore, pasi shumë fytyra mund të ndriçohen ndryshe, disa jashtë fokusit. Megjithatë, nëse fotografia është marrë me rezolucion dhe cilësi të mjaftueshme (të paktën 75 piksele për katror që mbulon fytyrën), Vision do të jetë në gjendje ta zbulojë dhe njohë atë.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

E veçanta e fotografive dhe imazheve të reportazhit nga kamerat e vëzhgimit është se njerëzit shpesh mjegullohen sepse ishin jashtë fokusit ose lëviznin në atë moment:

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Gjithashtu, intensiteti i ndriçimit mund të ndryshojë shumë nga imazhi në imazh. Kjo, gjithashtu, shpesh bëhet një pengesë; shumë algoritme kanë vështirësi të mëdha për të përpunuar saktë imazhet që janë shumë të errëta dhe shumë të lehta, për të mos përmendur përputhjen e saktë të tyre. Më lejoni t'ju kujtoj se për të arritur këtë rezultat, duhet të konfiguroni pragjet në një mënyrë të caktuar; kjo veçori nuk është ende e disponueshme për publikun. Ne përdorim të njëjtin rrjet nervor për të gjithë klientët; ai ka pragje që janë të përshtatshëm për shumicën e detyrave praktike.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Së fundmi kemi nxjerrë një version të ri të modelit që njeh fytyrat aziatike me saktësi të lartë. Ky dikur ishte një problem i madh, i cili madje quhej racizëm "mësimi i makinës" (ose "rrjeti nervor"). Rrjetet nervore evropiane dhe amerikane njohën mirë fytyrat Kaukaziane, por me fytyrat Mongoloid dhe Negroid situata ishte shumë më e keqe. Ndoshta, në Kinë situata ishte pikërisht e kundërta. Gjithçka ka të bëjë me grupet e të dhënave të trajnimit që pasqyrojnë llojet dominuese të njerëzve në një vend të caktuar. Megjithatë, situata po ndryshon; sot ky problem nuk është aq i mprehtë. Vizioni nuk ka asnjë problem me njerëz të racave të ndryshme.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Njohja e fytyrës është vetëm një nga aplikimet e shumta të teknologjisë sonë; Vizioni mund të trajnohet për të njohur çdo gjë. Për shembull, targat, duke përfshirë në kushte të vështira për algoritme: në kënde të mprehta, targa të pista dhe të vështira për t'u lexuar.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

2. Rastet e përdorimit praktik

2.1. Kontrolli fizik i aksesit: kur dy persona përdorin të njëjtën leje

Me ndihmën e Vision, ju mund të implementoni sisteme për regjistrimin e mbërritjes dhe largimit të punonjësve. Sistemi tradicional i bazuar në kalimet elektronike ka disavantazhe të dukshme, për shembull, ju mund të kaloni dy persona duke përdorur një distinktiv. Nëse sistemi i kontrollit të aksesit (ACS) plotësohet me Vision, ai do të regjistrojë me ndershmëri se kush erdhi/u largua dhe kur.

2.2. Ndjekja e kohës

Ky rast përdorimi i Visionit është i lidhur ngushtë me atë të mëparshëm. Nëse e plotësoni sistemin e aksesit me shërbimin tonë të njohjes së fytyrës, ai do të jetë në gjendje jo vetëm të zbulojë shkeljet e kontrollit të aksesit, por edhe të regjistrojë praninë aktuale të punonjësve në ndërtesë ose objekt. Me fjalë të tjera, Vizioni do t'ju ndihmojë të merrni parasysh me ndershmëri se kush erdhi në punë dhe u largua në çfarë ore, dhe kush e la fare punën, edhe nëse kolegët e tij ia mbuluan para eprorëve.

2.3. Video Analytics: Ndjekja e njerëzve dhe Siguria

Duke gjurmuar njerëzit duke përdorur Vision, mund të vlerësoni me saktësi trafikun real të zonave tregtare, stacioneve të trenave, kalimeve, rrugëve dhe shumë vendeve të tjera publike. Gjurmimi ynë mund të jetë gjithashtu një ndihmë e madhe në kontrollin e aksesit, për shembull, në një magazinë ose në ambiente të tjera të rëndësishme zyre. Dhe sigurisht, gjurmimi i njerëzve dhe fytyrave ndihmon në zgjidhjen e problemeve të sigurisë. E kapët dikë duke vjedhur nga dyqani juaj? Shtoni personin e tij ID, i cili u kthye nga Vision, në listën e zezë të softuerit tuaj të analitikës së videos dhe herën tjetër sistemi do të njoftojë menjëherë sigurinë nëse ky lloj shfaqet përsëri.

2.4. në tregti

Bizneset me pakicë dhe shërbime të ndryshme janë të interesuara për njohjen e radhëve. Me ndihmën e Vizionit, mund të dalloni se kjo nuk është një turmë e rastësishme njerëzish, por një radhë dhe të përcaktoni gjatësinë e saj. Dhe më pas sistemi informon përgjegjësit për një radhë në mënyrë që ata të kuptojnë situatën: ose ka një fluks vizitorësh dhe duhet të thirren punëtorë shtesë, ose dikush po vonon në detyrat e punës.

Një detyrë tjetër interesante është ndarja e punonjësve të kompanisë në sallë nga vizitorët. Në mënyrë tipike, sistemi është i trajnuar për të ndarë objektet që veshin rroba të caktuara (kodi i veshjes) ose me ndonjë veçori dalluese (shami me markë, distinktiv në gjoks etj.). Kjo ndihmon për të vlerësuar më saktë pjesëmarrjen (në mënyrë që punonjësit të mos "fryjnë" statistikat e njerëzve në sallë me praninë e tyre të thjeshtë).

Duke përdorur njohjen e fytyrës, ju gjithashtu mund të vlerësoni audiencën tuaj: cila është besnikëria e vizitorëve, domethënë sa njerëz kthehen në objektin tuaj dhe me çfarë frekuence. Llogaritni sa vizitorë unikë vijnë tek ju në muaj. Për të optimizuar kostot e tërheqjes dhe mbajtjes, mund të zbuloni gjithashtu ndryshimin në trafik në varësi të ditës së javës dhe madje edhe orës së ditës.

Françesorët dhe kompanitë e zinxhirit mund të porosisin një vlerësim fotografik të cilësisë së markës së pikave të ndryshme të shitjes me pakicë: prania e logove, shenjave, posterave, banderolave, etj.

2.5. Me transport

Një shembull tjetër i garantimit të sigurisë duke përdorur analitikën video është identifikimi i sendeve të braktisura në sallat e aeroporteve ose stacioneve të trenave. Vizioni mund të trajnohet për të njohur objekte të qindra klasave: mobilje, çanta, valixhe, çadra, lloje të ndryshme veshjesh, shishe etj. Nëse sistemi juaj i analitikës video zbulon një objekt pa pronar dhe e njeh atë duke përdorur Vision, ai i dërgon një sinjal shërbimit të sigurisë. Një detyrë e ngjashme shoqërohet me zbulimin automatik të situatave të pazakonta në vende publike: dikush ndihet i sëmurë, ose dikush pi duhan në vendin e gabuar, ose një person bie në shina, e kështu me radhë - të gjitha këto modele mund të njihen nga sistemet e analitikës video përmes Vision API.

2.6. Rrjedha e dokumentit

Një tjetër aplikim interesant në të ardhmen i Vision që ne jemi duke zhvilluar aktualisht është njohja e dokumenteve dhe analizimi i tyre automatik në bazat e të dhënave. Në vend që të futni manualisht (ose më keq, të futni) seri, numra, data të lëshimit, numrat e llogarisë, detajet bankare, datat dhe vendet e lindjes dhe shumë të dhëna të tjera të zyrtarizuara, mund të skanoni dokumente dhe t'i dërgoni ato automatikisht në një kanal të sigurt nëpërmjet API në cloud, ku sistemi do t'i njohë këto dokumente në fluturim, do t'i analizojë ato dhe do të kthejë një përgjigje me të dhëna në formatin e kërkuar për hyrjen automatike në bazën e të dhënave. Sot Vision tashmë di se si të klasifikojë dokumentet (përfshirë PDF) - bën dallimin midis pasaportave, SNILS, TIN, certifikatave të lindjes, certifikatave të martesës dhe të tjera.

Sigurisht, rrjeti nervor nuk është në gjendje t'i trajtojë të gjitha këto situata jashtë kutisë. Në secilin rast, ndërtohet një model i ri për një klient specifik, merren parasysh shumë faktorë, nuanca dhe kërkesa, zgjidhen grupet e të dhënave dhe kryhen përsëritje të trajnimit, testimit dhe konfigurimit.

3. Skema e funksionimit të API

"Porta e hyrjes" e Vision për përdoruesit është API REST. Mund të marrë fotografi, skedarë video dhe transmetime nga kamerat e rrjetit (transmetimet RTSP) si hyrje.

Për të përdorur Vision, ju duhet regjistrohem në shërbimin Mail.ru Cloud Solutions dhe merrni argumentet e aksesit (client_id + client_secret). Autentifikimi i përdoruesit kryhet duke përdorur protokollin OAuth. Të dhënat burimore në trupat e kërkesave POST dërgohen në API. Dhe si përgjigje, klienti merr nga API një rezultat njohjeje në formatin JSON, dhe përgjigja është e strukturuar: përmban informacione për objektet e gjetura dhe koordinatat e tyre.

Me mjekër, syze të errëta dhe në profil: situata të vështira për shikimin kompjuterik

Shembull i përgjigjes

{
   "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
}

Përgjigja përmban një parametër interesant mahnitës - kjo është "ftohtësia" e kushtëzuar e një fytyre në një foto, me ndihmën e saj ne zgjedhim fotografinë më të mirë të një fytyre nga sekuenca. Ne trajnuam një rrjet nervor për të parashikuar mundësinë që një foto të pëlqehet në rrjetet sociale. Sa më e mirë të jetë cilësia e fotografisë dhe sa më e qeshur të jetë fytyra, aq më e madhe është mahnitja.

API Vision përdor një koncept të quajtur hapësirë. Ky është një mjet për krijimin e grupeve të ndryshme të fytyrave. Shembuj të hapësirave janë listat bardh e zi, listat e vizitorëve, punonjësve, klientëve, etj. Për çdo token në Vision, mund të krijoni deri në 10 hapësira, çdo hapësirë ​​mund të ketë deri në 50 mijë Persona ID, domethënë deri në 500 mijë për shenjë . Për më tepër, numri i argumenteve për llogari nuk është i kufizuar.

Sot API mbështet metodat e mëposhtme të zbulimit dhe njohjes:

  • Recognize/Set - zbulimi dhe njohja e fytyrave. I cakton automatikisht një person ID çdo personi unik, kthen personin ID dhe koordinatat e personave të gjetur.
  • Fshij - fshirja e një personi specifik ID nga baza e të dhënave të personit.
  • Truncate - pastron të gjithë hapësirën nga PersonID, e dobishme nëse është përdorur si hapësirë ​​testimi dhe duhet të rivendosni bazën e të dhënave për prodhim.
  • Detekt - zbulimi i objekteve, skenave, targave, pikave referuese, rradhëve, etj. Kthen klasën e objekteve të gjetura dhe koordinatat e tyre
  • Zbuloni për dokumente - zbulon lloje specifike të dokumenteve të Federatës Ruse (dallon pasaportën, SNILS, numrin e identifikimit tatimor, etj.).

Gjithashtu së shpejti do të përfundojmë punën për metodat për OCR, përcaktimin e gjinisë, moshës dhe emocioneve, si dhe zgjidhjen e problemeve të tregtimit, domethënë për kontrollin automatik të shfaqjes së mallrave në dyqane. Dokumentacionin e plotë të API-së mund ta gjeni këtu: https://mcs.mail.ru/help/vision-api

4. përfundim

Tani, përmes API-së publike, ju mund të përdorni njohjen e fytyrës në foto dhe video; mbështetet identifikimi i objekteve të ndryshme, targave, pikë referimi, dokumente dhe skena të tëra. Skenarët e aplikimit - deti. Ejani, provoni shërbimin tonë, vendosni detyrat më të ndërlikuara. 5000 transaksionet e para janë falas. Ndoshta do të jetë "përbërësi që mungon" për projektet tuaja.

Ju mund të hyni menjëherë në API pas regjistrimit dhe lidhjes. vizion. Të gjithë përdoruesit e Habra marrin një kod promocional për transaksione shtesë. Ju lutem më shkruani adresën e emailit që keni përdorur për të regjistruar llogarinë tuaj!

Burimi: www.habr.com

Shto një koment