Hydroizolace

Co znamená byt po babičce?

Hledání a výběr bytu v moderním světě – co může být jednodušší? Vezmete svůj smartphone, stáhnete aplikaci a najdete vhodnou možnost. Stejně snadné je vložit inzerát na prodej nebo pronájem nemovitosti. Uživatelé při hledání vhodného prohlížejí desítky bytů – kvalita oprav je pro ně velmi důležitá. Bylo by skvělé, kdyby existoval filtr, který by dokázal pravdivě posoudit novost renovace a seřadit ji. Jmenuji se Irina Govorova a nyní vám řeknu, jak náš tým během mé stáže v Cian vyvinul „ Babiččina renovace“ filtr, který dokáže rozpoznat a klasifikovat prostory fotografií.

Od pohovoru na stáži až po skutečný projekt

Rád bych udělal krátkou lyrickou odbočku a řekl vám, jak jsem se k Cian vůbec dostal. Doufám, že můj příběh pomůže studentům a začínajícím profesionálům. Vše začalo tím, že v květnu 2021 na jednom ze zdrojů ODS (Open Data Science) Viděl jsem inzerát na stážisty v Cyan a poslal jsem přihlášku. A pak obvyklý příběh: od Google Forms a testování až po pohovor, kde nechyběl ani testovací úkol. Obecně se jedná o standardní testy, obsahově podobné testům pro stážisty v jiných firmách. Padly otázky na základní pojmy: co je to náhodný les, jak funguje backpropagation atd. Odpovědět na ně umí každý, kdo cíleně studuje data science. V té době jsem byl studentem prvního ročníku magisterského programu Data Science na Vysoké škole ekonomické. Právě tam, na jednom z kurzů, jsem se poprvé ponořil do hlubokého učení a tato oblast se mi zalíbila. Dříve jsem absolvoval různé online kurzy klasického ML a zúčastnil jsem se hackathonu na trati Data Science. Asi týden po pohovoru mi přišla odpověď, že jsem byl přijat na pozici praktikanta. Hurá! Do práce jsem nastoupil už v červnu. Zpočátku to bylo těžké. Když jsem se připojil k projektu, měl jsem málo zkušeností s hlubokým učením. Během práce jsem se během krátké doby dozvěděl spoustu nových informací, zejména technických detailů. Ale to hlavní, co jsem měl a mám dodnes, je zapojení do projektu, takže všechny potíže jen dělaly práci zajímavější. Moji kolegové a já jsme velmi hrdí na naše duchovní dítě a nyní o něm dokonce píšu článek.

Co bychom měli rozvíjet? Popis úkolu

Chodím do práce – teď jsem ve vývojovém týmu Cyan. Naším úkolem je vycvičit neuronovou síť, která bude filtrovat reklamy publikované uživateli. Je to jednodušší vysvětlit na příkladu. Řekněme, že klient zadá inzerát s fotografiemi bytu. Náš filtr analyzuje připojené obrázky v reálném čase, aby identifikoval babiččiny renovace. Nejvýraznějším znakem babiččiny renovace je starý koberec na stěně ložnice (o dalších kritériích vám povím později). Pokud má reklama platné štítky, obdrží štítek „ne babiččina renovace“. Když to zobecníme, opravy po babičce vypadají v našem chápání asi takto: Přesně takovým opravám by měl filtr říkat babička. Díky našemu filtru pro vás bude snazší najít byt s novou a dobrou rekonstrukcí, nebo naopak – nepřeplatit cizí rekonstrukci při koupi bydlení. Pojďme si ukázat, jak tento filtr funguje z pohledu uživatele, a pokusíme se vysvětlit, jak funguje zevnitř.

Babiččina renovace v praxi: jak funguje filtr v aplikaci na iOS a Android

První, co uživatel uvidí, když vstoupí do vyhledávání Cyan, je velká mapa, v jejímž pravém rohu je ikona nastavení zobrazení. Zde můžete zadat parametry, které vás zajímají, a vybrat filtr. Hledejme například byty v hodnotě 3–7 milionů rublů v Petrohradě a jeho okolí. Nezapomeňte vybrat filtr „renovace babičky“. Nebude možné zobrazit výsledky celé pásky, ale část z nich, která se vejde do monitoru, vypadá takto: Tady to je, práce filtru! Na fotografiích vidíme neuvěřitelnou výzdobu, opotřebovaný nábytek a melancholii – kompletní soubor kritérií pro starý byt. Nyní je hlavní, že v kategorii „dobrá oprava“ nejsou žádné fotografie se starými koberci a rozpadlým nábytkem. Podívejme se: Velký! Mezi inzeráty, které vyhledávač vrátil, nejsou žádné fotografie babiččiny rekonstrukce. Empiricky jsme tedy zjistili, že filtr funguje správně.

Přečtěte si více
Co můžete dát na koženou pohovku?

Architektura a framework filtrů

Pod vedením mentora a vedoucího týmu jsem se zabýval sestavováním datové sady a trénováním neuronové sítě. Mám ráda kreativní úkoly a o jejich realizaci vám určitě povím. Nejprve si ale řekněme něco o použitých technologiích. Na samém začátku práce na projektu jsme se museli rozhodnout, jakou architekturu použijeme. Rozhodli jsme se zaměřit na dvě rodiny architektur: EfficientNet a ResNet. Na trhu jsou oblíbené, docela „lehké“ a dobře se osvědčily. Vybrali jsme konvoluční sítě EfficientNet, protože v našich testovacích datech fungovaly lépe než ResNet. Z hlediska úspory zdrojů a rychlosti odvození pro nás byla vhodná EfficientNet verze B4. Tam se zastavili. Použili jsme PyTorch jako framework, protože můj tým ho používá pro jiné projekty a já to věděl. Ukázalo se také, že je to velmi výhodné při převodu modelu na Open Neural Network eXchange (ONNX)onnxruntime přes pochodeň.onnx.export. Konverze byla potřebná, protože jsme potřebovali rychlé odvození CPU a postavili jsme školení na PyTorch na GPU. Nyní bychom mohli použít OpenVINO, které maximalizovalo výkon mesh na procesorech Intel v našich strojích. Model PyTorch nemůžete přímo převést na OpenVINO, ale můžete převést z PyTorch na ONNX a odtud na OpenVINO. Mimochodem, samotný převod modelu na OpenVINO je extrémně jednoduchý proces (ale šetří tolik zdrojů!). Ve fázi konverze a vyvozování modelu OpenVINO se objevily potíže, které se pro mě ukázaly jako zcela nové. Spolu s prvními pokusy o uvolnění modelu do výroby jsme zjistili, že použitá inferenční metoda .infer() funguje pouze s jedním vláknem a pouze s dávkou o pevné velikosti. Každý požadavek (a to je buď samostatný obrázek v dávce obrázků, nebo samostatné vlákno ve vícevláknovém vláknu) musel být zpracován v jeho vlastní instanci požadavku. Aby model adekvátně pracoval s dávkami různých velikostí (nebo obecně s multivláknem), bylo nutné nakonfigurovat asynchronní inferenci. Asynchronní inference

from openvino.inference_engine import IECore, StatusCode ie = IECore() net = self.ie.read_network(model='model.xml', weights='model.bin’) net.batch_size = 1 exec_net = self.ie.load_network(network=net, device_name='CPU', num_requests=20) input_name = next(iter(exec_net.input_info)) output_name = next(iter(exec_net.outputs)) requests_dict = <> for i in range(len(transformed_images)): request_id = self.exec_net.get_idle_request_id() exec_net.requests[request_id].async_infer() requests_dict[i] = request_id done_requests = set() while True: for i in range(len(input_images)): infer_status = self.exec_net.requests[requests_dict[i]].wait(0) if infer_status != StatusCode.OK or i in done_requests: continue prediction_openvino=exec_net.requests[requests_dict[i]].output_blobs[output_name].buffer done_requsts.add(i) if len(done_requests) == len(input_images): break

Dešifrování. Při načítání modelu ze souborů pomocí load_network určují parametry num_requests, což ukazuje, kolik obrázků může model zpracovat současně. Poté se pro každý obrázek z dávky určí jeho vlastní číslo vlákna, ve kterém bude zpracován pomocí get_idle_request_id(). Samostatně se asynchronní odvození obrázků spouští ve vláknech pomocí async_infer(). Jakmile jsou výstupy toku připraveny, načtou se do konečného seznamu s výstupními daty pro celou dávku. Vezmeme-li v úvahu fakt, že jsem poprvé použil framework OpenVINO, v samotném Cyan ho před námi nikdo nepoužil a nedošlo k žádnému vývoji – podle mého názoru to dopadlo docela dobře.

Přečtěte si více
Jak excentr funguje?

Vzorkování, Yandex.Toloka a augmentace. Tvorba datové sady

Architektura a frameworky jsou dobré. Ale bez kompetentně označených dat, augmentací, předzpracování obrazu, vyváženého vzorkování a správného tréninku neuronové sítě – obecně bez kvalitní přípravné práce – budou výsledky odpovídající. Byl jsem zaneprázdněn sestavováním datové sady a trénováním neuronu, takže vám mohu říci něco o úskalích v datovém toku. Začněme!

1. Kde získat obrázky pro datovou sadu

Každý konkrétní úkol je v určitém smyslu jedinečný a ten náš není výjimkou. Zdálo by se, že na některých můžete najít hotový a označený datový soubor Kaggle nebo Vyhledávání datové sady a používat to pro své zdraví, ale ne. Neexistoval jediný agregátor, který by dokázal najít datovou sadu jako CelebA s kompletně připravenými obrázky babiččiných bytů a označení. Všechno jsem musel dělat ručně. První myšlenkou sběru obrázků bylo analyzovat obrázky pro klíčové dotazy: „renovace babičky“, „dobrá renovace“, „renovace evropské kvality“ – obecně všechny možné typy oprav. Bohužel tato metoda nedávala adekvátní výsledky, protože skutečně relevantní výsledky byly v okruhu prvních tří desítek obrázků a pak už to byl úplný odpad. Ale každý mrak má stříbro. Našli jsme je pomocí klíčových dotazů ve vyhledávačích a nezávisle vybraných příkladů a na jejich základě jsme se vydali hledat podobné fotografie do databáze Cian. Opravdu, kde jinde můžete hledat fotografie různých interiérů, když ne zde? A nakonec na nás pršely mnohem relevantnější výsledky.
Stále však nebylo zaručeno, že i z malého vzorku (řekněme kolem stovky fotografií) budou všechny snímky vhodné. Fotografie se stále musely kontrolovat ručně.

2. Tolokisté a označování dat

Nejprve jsme se museli rozhodnout pro sadu kritérií, podle kterých bychom mohli snímky klasifikovat jako „renovace po babičce“ nebo „renovace po babičce“. Plus další bod: uživatel při vkládání inzerátu zjevně zveřejňuje nejen fotografie obývacího pokoje nebo ložnice. Prodejní či půjčovné publikace zpravidla obsahují řadu fotografií: od předsíně přes šatnu až po spíž. Ale například stejná spíž často nemá žádnou designovou výzdobu. Navíc takový pokoj není k dispozici v každém bytě. Pokud zpracujete všechny fotografie bytu za sebou, mění se tím pravděpodobnost babiččiny rekonstrukce. Jinými slovy, použití neinformativních fotografií může v budoucnu zhoršit výsledky učení a výkon filtru. Rozhodli jsme se zvýraznit čtyři typy pokojů: obývací pokoj, koupelnu, kuchyň a ložnici. To byl začátek naší standardizace. Ne každá fotografie může být s jistotou připsána babiččině či nebabiččině rekonstrukci. Různí lidé zařadí stejnou fotografii do různých tříd. Proto jsme se rozhodli vytvořit konkrétní seznam kritérií pro babiččinu renovaci: koberec na stěně, sovětská dekorace, stará kuchyňská souprava, staré obklady na stěnách atd. Například úplně ne „babiččina“ ložnice (p = 0,0629) : A zde je fotografie pokoje, který ve všech ohledech splňuje kritéria „renovace babičky“ (p = 0,9401): Tato kuchyně prošla moderní rekonstrukcí (p = 0,1046): A tady je kuchyně s „babiččinou renovací“ (p = 0,9809): Je jasné, že vytvoření a označení datové sady není rychlý úkol a neměli jsme čas. Rozhodli jsme se tedy použít “Yandex.Tolokoy“, kde uživatelé analyzují a označují data za malý poplatek. Celkem jsme na Toloce označili 1000 fotografií pořízených z naší databáze. Tolokisté dostávají peněžní odměny za splněné úkoly, ale mohou také dělat chyby. Problém je v tom, že samotné vnímání babiččiny renovace je subjektivní záležitost. Není možné formalizovat úkol na 100%: všechny možnosti opravy jednoduše nelze vzít v úvahu. Zkontrolovali jsme však výsledky označení a opravili nejzjevnější chyby. V kontroverzních okamžicích věřili tolokistům. Na základě agregovaných odpovědí jsme shromáždili soubor dat obsahující dvě třídy: „renovace po babičce“ a „renovace po babičce“. Ale to ještě nebylo řešení našeho problému.

Přečtěte si více
Jak udělat díru do betonu?

3. Rovnováha musí vládnout.

Vzorek se ukázal jako nevyvážený, babiččiných oprav bylo příliš málo a velikost souboru dat byla nedostatečná pro vysoce kvalitní školení. Ostatně zpočátku jsme náhodně vybrali 1000 obrázků a teprve potom je označili. Pomocí takového vzorku je problematické trénovat neuronovou síť požadovaným způsobem. Jak jsme se dostali ven? Vycvičili jsme neuron! Teď to vysvětlím. Rozhodli jsme se to trénovat pomocí dostupných dat. Výsledná neuronová síť zjevně neposkytovala potřebné výsledky pro použití jako hotové řešení, ale dobře se hodila pro sběr dalších snímků za účelem zvýšení a vyvážení datové sady. Vybrali jsme přibližně 1000 náhodných obrázků, které mají pravděpodobnost p ⩾ 0,3 a mohly by potenciálně patřit do třídy „babiččina renovace“, ale mezi nimi byla malá část renovací jiných než babiček. Pak jsme je označili na Toloce. Získali jsme dataset (více než 2000 obrázků), na kterém jsme začali trénovat neuronovou síť – první verzi filtru. Nakonec jsme stejným způsobem nasbírali asi 3,5 tisíce dalších snímků – další sadu snímků, kde byl podíl babiččiných oprav větší než u nebabiček. Výsledkem byl zcela vyrovnaný vzorek, přibližně 50 až 50. Výsledný trénovací datový soubor se rozrostl na 5,5 tisíce snímků do trénovací sady a 4400 do testovací sady.

Předzpracování obrazu

Obrazy samozřejmě nelze do neuronu přivádět jen tak: musí projít fází předběžného zpracování. Při testování první verze filtru byly získány dobré výsledky a přesnost byla ≈0,78. S takovou přesností jsme se ale nespokojili. Pamatujete si, jak je pro učení důležitý dobře zpracovaný soubor dat? Museli jsme tedy pracovat na obrázcích pro filtr, protože problém není vždy v modelu: stává se, že data jsou příliš heterogenní. Pro transformaci obrazu jsme použili klasickou sadu: rotace malého úhlu, horizontální překlopení a úpravy jasu a kontrastu. Malá augmentace je skvělý způsob, jak uměle zvětšit velikost vzorku a učinit síť odolnější vůči malým změnám na fotografiích. To vše pomohlo dosáhnout přesnosti ≈0,86 a zapamatování – ≈0,82. Samostatně je třeba říci o změně velikosti. Model OpenVINO přijímá jako vstup obrázky pevné velikosti. V příkladech odvození, které jsem použil, byla použita změna velikosti z OpenCV, která pracuje s obrázky ve formě polí NumPy. A model OpenVINO přijímá jako vstup pole NumPy. Změnu velikosti OpenCV jsme nahradili změnou velikosti modulu Pillow (obě jsou výchozí). V jádru tyto dvě změny velikosti (Pillow a OpenCV) používají různé algoritmy od sebe: výstupní komprimované obrázky jsou neuronovou sítí vnímány odlišně, ačkoli pro lidské oko v tom není žádný rozdíl. Použití změny velikosti na obrázky, které bylo zpočátku použito během školení, nám poskytlo adekvátní vyvození a úplnou shodu mezi výsledky modelu OpenVINO a původního modelu na PyTorch. Odpovědně prohlašuji: na maličkostech záleží!

Přečtěte si více
Proč potřebujete projekt designu kuchyně?

Co jsme dostali

Po dlouhém procesu sestavování datové sady (vyhledávání obrázků, jejich označování a předzpracování) a trénování mřížky na působivém konečném vzorku jsme dosáhli přesnosti ≈0,98 a vyvolání ≈0,5 s prahem klasifikace 0,95. Není to špatné, že? Dovolte mi vysvětlit, proč je zapamatovatelnost tak malá. Rozhodli jsme se, že v první verzi filtru nenastavíme nízkou hranici pro rekonstrukci po babičce, aby uživatelé viděli více možností reklamy. Vybíráme proto jen ty nejtypičtější, nejtvrdší babičkovské renovace. Filtr se ukázal být více než funkční. Svědčí o tom nejen metriky, ale i první hodnocení od uživatelů aplikace na iOS. Jedná se o oblíbený filtr pro nájemní byty a je velmi vyhledávaný těmi, kteří hledají byty pro babičky ke koupi. Již nyní může každý, kdo má smartphone na iOS nebo Android, nezávisle otestovat filtr „babiččina renovace“ a zanechat na něj zpětnou vazbu (například v komentářích k příspěvku).

Slova na rozloučenou pro ty s iniciativou

Každá služba by měla pokud možno rychle vyvinout technologie, které klientům pomohou ušetřit čas a peníze. Cílem našeho projektu bylo vylepšit Cian tak, aby každý ještě snadněji našel byt svých snů. Pevně ​​doufám, že náš filtr bude užitečný pro běžné uživatele a možná vás povzbudí k vytváření nových řešení. Doporučujeme vám zkoušet, objevovat a testovat. Zpětná vazba je pro nás velmi důležitá, tak buďte odvážní! Ti, kteří se více zajímají o technickou realizaci, kteří mají dotazy nebo zajímavé názory, jsou zváni k vyjádření!

  • ml
  • openvino
  • stáž
  • klasifikace obrázků
  • zpracování obrazu
  • strojové učení

Nejste připraveni utratit spoustu peněz za renovace, ale nesouhlasíte s „babiččinou verzí“? Zeptali jsme se Pro odborníků, jak levně proměnit byt v útulný koutek.

Aktualizujte svůj kuchyňský set

V případě, že starý nábytek nemůže nic nahradit, přišli s lepicí fólií. Dodává se v různých barvách a napodobuje jakoukoli texturu – staré parkety, dub, mahagon. Omyjte fasády a buďte kreativní. Pokud na lepicí plochu nanesete mýdlový roztok, lze polohu fólie upravit.

Je to rychlé, ale ne ideální řešení, říká mistr Damir Yanbekov. Fólie stojí téměř stejně jako běžná barva, ale může vypadat méně esteticky. Vyzbrojte se proto plechovkou barvy nebo štětcem, základním nátěrem a akrylovým emailem. Nezapomeňte povrch omýt a obrousit, abyste zajistili trvanlivost vrstvy. Chcete-li dokončit transformaci, vyměňte staré rukojeti.

Staré dlaždice? Malovat nebo schovat

Tmavé a nevzhledné dlaždice mohou zkazit potěšení z koupele.

Existují dva způsoby, jak obnovit dlaždice na stěnách:

  • omyjte plak, odstraňte starou špinavou spárovací hmotu a přejděte přes všechny švy čerstvou spárovací hmotou;
  • natřete celou dlaždici.

Malování vyžaduje odvahu – nejprve bude potřeba vyčistit dlaždice, odstranit stopy plísní a cákance a obrousit lesk. Poté přetřete emailem, epoxidovou, akrylovou nebo olejovou barvou v 1-3 vrstvách a výsledek zafixujte lakem na vodní bázi – vydrží 3-5 let. Na podlaze se takový povlak rychleji opotřebuje, takže je snazší skrýt opotřebované dlaždice pod koberec.

Posledním dotekem je svěží závěs.

Oblíbené služby na Profi.ru

Osvěžte své instalatérské práce

Výměna záchodu a umyvadla není tak drahá, ale co koupelna samotná? Nejprve důkladně omyjte. Ale nespěchejte s uchopením brusiva.

Přečtěte si více
Jaké jsou rozměry profilových trubek?

Způsob čištění vany závisí na materiálu:

  • smaltované koupele lze bělit roztokem sody a octa nebo citronu;
  • akrylátové vany jsou rozmarnější, měli byste začít s gely z obchodu bez chlóru a kyseliny chlorovodíkové.

Nejlepším řešením pro pronajatý byt je napustit vanu tekutým akrylátem nebo si objednejte akrylátovou vložku odlitou do tvaru vany. Je to rentabilní, rychlé a není třeba připravovat koupel na příchod mistra,“ vysvětluje mistr Bogdan Svachy. Voda se navíc bude nalévat tišeji a déle si udrží teplotu. Výsledek: teplá a sněhově bílá koupel.

Přidejte rostliny

Podívejte se na výběr designových interiérů: kompetentní terénní úpravy v nich hrají důležitou roli. Chcete-li přidat styl, vyberte květináče ve stejné neutrální barvě – terakotové, bílé nebo černé. Není nutné dávat polovinu svého životního prostoru rostlinám – použijte závěsné květináče a víceúrovňové stojany.

Krásné a nenáročné rostliny:

  • echeveria
  • kroton
  • ficus benjamina
  • zamioculcas
  • bruska dracaena
  • Monstera
  • pilea
  • kalateia

Pokud je balkon prázdný a zasklený, zřiďte si tam letní pracoviště – stolek na notebook a židli nebo relaxační zónu s měkkými pufy. Chcete-li skrýt nevzhledný povrch, přidejte do rohů zeleň s plazivými rostlinami a vaše osobní zimní zahrada je připravena. Do koupelny lze umístit několik rostlin, které vyžadují vysokou vlhkost.

Pro jakýkoli úkol
existuje profík

2,6 milionu specialistů

900 druhů služeb

Profesionálům již svěřilo své záležitosti 13 milionů klientů

Zvažte zónování

Nejčastěji se „špatným uspořádáním“ rozumí dvě protichůdné situace: úzký pokojový kočár nebo grandiózní sál, který je ozvěnou a osamělý.

Problém úzké místnosti je radikálně vyřešen: odstraňte veškerý objemný nábytek, zbavte se nepotřebných věcí a nechte v místnosti co nejvíce „vzduchu“.. Vyměňte těžké skříně za kolejnice – vypadá to stylově a všechny věci jsou na dohled. Odložte své sny o královské posteli a zvolte rozkládací pohovku. Zavěste velké zrcadlo, opticky zdvojnásobí plochu.

S velkým pokojem nebo studiem je vše jednodušší: zónujte to. Příčky, koberečky, průchozí police, zástěny – všechny prostředky jsou dobré na cestě k pohodlí. Vyberte si pracovní kout, jídelní kout a relaxační prostor. U každého zajistěte místní osvětlení – od pracovního bílého světla po relaxační žluté světlo.

Vyberte dekor

Existují věci, které nelze opravit bez zásadní opravy? Buďte chytřejší a odpoutejte pozornost od nedostatků bytu pomocí dekoru.

Taťána Kuchina odborník na interiérový design

„Začněte s textilem, hned to zachrání situaci. Jutové koberce nepouštějící vlákna zakryjí staré podlahy a dodají útulnost, aniž by se na nich sbíral prach. Pomohou i povlaky na polštáře na dekorační polštáře a přikrývky.“

Přidejte neobvyklé příslušenství s příběhem:

  • dramatické svícny pro večeře při svíčkách;
  • starožitné hudební nástroje – zlatý roh na stěně obývacího pokoje se stane středem pozornosti;
  • Vintage hodinky;
  • starožitné zrcadlo v kovaném rámu;
  • sada roztomilých dóz na koření;
  • elegantní mosazné dveřní kliky;
  • sušené květiny, herbáře;
  • mini sochy.

Vydejte se na bleší trhy, abyste je našli, ale nespěchejte s nákupem všeho – stačí pár barevných předmětů.

Dále přichází do hry světlo. Vyhněte se přímému osvětlení, kde jsou nedokonalosti bytu zvláště viditelné. Místo toho použijte malé světelné zdroje se stmívači – stojací lampu, noční světlo. Dodejte si večer náladu pomocí girlandy a neonových lamp.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button