Efnisyfirlit[Fela][Sýna]
Það er hughreystandi að vita að okkur hefur tekist að fylla vélmenni meðfæddum hæfileikum okkar til að læra með fordæmi og skynja umhverfi sitt. Grundvallaráskorunin er að kenna tölvum að „sjá“ eins og menn þyrftu miklu meiri tíma og fyrirhöfn.
Hins vegar, þegar við íhugum hagnýtt gildi sem þessi færni veitir stofnunum og fyrirtækjum nú, þá er átakið þess virði. Í þessari grein muntu læra um flokkun mynda, hvernig hún virkar og hagnýt útfærslu hennar. Byrjum.
Hvað er myndflokkun?
Starfið að fæða mynd inn í a tauga net og að láta það gefa út einhvers konar merki fyrir þá mynd er þekkt sem myndgreining. Úttaksmerki netsins mun samsvara fyrirfram skilgreindum flokki.
Það gætu verið fjölmargir flokkar úthlutaðir á myndina, eða einfaldlega einn. Þegar það er aðeins einn flokkur er hugtakið „viðurkenning“ oft notað, en þegar það eru margir flokkar er hugtakið „flokkun“ oft notað.
Hlutagreining er undirmengi myndflokkunar þar sem tiltekin tilvik hlutar eru greind sem tilheyra tilteknum flokki eins og dýr, farartæki eða menn.
Hvernig virkar myndflokkun?
Mynd í formi pixla er greind með tölvu. Það gerir þetta með því að meðhöndla myndina sem safn fylkja, stærð þeirra ræðst af myndupplausninni. Einfaldlega talað, myndaflokkun er rannsókn á tölfræðilegum gögnum með því að nota reiknirit frá sjónarhóli tölvu.
Myndflokkun er framkvæmd í stafrænni myndvinnslu með því að flokka pixla í fyrirfram ákveðna hópa, eða „flokka“. Reikniritin skipta myndinni í röð athyglisverðra eiginleika, sem dregur úr álagi fyrir endanlega flokkunaraðila.
Þessir eiginleikar upplýsa flokkarann um merkingu myndarinnar og hugsanlega flokkun. Vegna þess að restin af ferlunum við að flokka mynd eru háð henni, er einkennandi útdráttaraðferðin mikilvægasti áfanginn.
The gögn veitt reikniritið skiptir einnig sköpum í myndflokkun, sérstaklega flokkun undir eftirliti. Í samanburði við hræðilegt gagnasafn með ójafnvægi í gögnum byggt á flokki og lágum mynd- og skýringargæðum, skilar vel fínstillt flokkunargagnasett sig með prýði.
Myndflokkun með Tensorflow og Keras í python
Við munum nota CIFAR-10 gagnasafn (sem inniheldur flugvélar, flugvélar, fugla og annað 7 atriði).
1. Uppsetningarkröfur
Kóðinn hér að neðan mun setja upp allar forsendur.
2. Að flytja inn ósjálfstæði
Búðu til train.py skrá í Python. Kóðinn hér að neðan mun flytja inn Tensorflow og Keras ósjálfstæði.
3. Frumstillingar breytur
CIFAR-10 inniheldur aðeins 10 myndaflokka, þess vegna vísa fjöldi flokka einfaldlega til fjölda flokka sem á að flokka.
4. Hleðsla gagnasafnsins
Aðgerðin notar Tensorflow Datasets eininguna til að hlaða gagnasafninu og við stillum með upplýsingum á True til að fá einhverjar upplýsingar um það. Þú getur prentað það út til að sjá hvaða reitir og gildi þeirra eru og við munum nota upplýsingarnar til að sækja fjölda sýna í þjálfunar- og prófunarsettunum.
5. Að búa til líkanið
Nú munum við byggja þrjú lög, sem hvert um sig samanstendur af tveimur ConvNets með max-pooling og ReLU virkjunaraðgerð, á eftir fulltengdu 1024-eininga kerfi. Í samanburði við ResNet50 eða Xception, sem eru nýjustu gerðir, gæti þetta verið tiltölulega lítið líkan.
6. Þjálfa líkanið
Ég notaði Tensorboard til að mæla nákvæmni og tap á hverju tímabili og útvega okkur fallegan skjá eftir að hafa flutt inn gögnin og búið til líkanið. Keyra eftirfarandi kóða; eftir CPU/GPU þinni mun þjálfun taka nokkrar mínútur.
Til að nota tensorboard skaltu bara slá inn eftirfarandi skipun í flugstöðinni eða skipanalínunni í núverandi möppu:
Þú munt sjá að staðfestingartap fer minnkandi og nákvæmni fer upp í um 81%. Það er frábært!
Að prófa líkanið
Þegar þjálfuninni er lokið eru lokalíkanið og lóðin vistuð í niðurstöðumöppunni, sem gerir okkur kleift að æfa einu sinni og spá fyrir okkur hvenær sem við kjósum. Fylgdu kóðanum í nýrri python skrá sem heitir test.py.
7. Innflutningur á tólum til prófunar
8. Gerð python möppu
Búðu til Python orðabók sem þýðir hvert heiltölugildi yfir á viðeigandi merki gagnasafnsins:
9. Hleður prófunargögnum og líkani
Eftirfarandi kóða mun hlaða prófunargögnunum og líkaninu.
10. Mat og spá
Eftirfarandi kóða mun meta og gera spár um froskamyndirnar.
11. Niðurstöður
Líkanið spáði fyrir um froskinn með 80.62% nákvæmni.
Niðurstaða
Allt í lagi, við erum búin með þessa lexíu. Þó að 80.62% sé ekki gott fyrir smá CNN, þá ráðlegg ég þér eindregið að breyta líkaninu eða skoða ResNet50, Xception eða önnur háþróuð gerðir til að fá betri árangur.
Nú þegar þú hefur byggt upp fyrsta myndgreiningarnetið þitt í Keras, ættir þú að gera tilraunir með líkanið til að uppgötva hvernig mismunandi breytur hafa áhrif á frammistöðu þess.
Skildu eftir skilaboð