Mae'n galonogol gwybod ein bod wedi llwyddo i drwytho robotiaid gyda'n galluoedd cynhenid i ddysgu trwy esiampl a chanfod eu hamgylchedd. Yr her sylfaenol yw y byddai angen llawer mwy o amser ac ymdrech i ddysgu cyfrifiaduron i “weld” fel bodau dynol.
Fodd bynnag, pan fyddwn yn ystyried y gwerth ymarferol y mae'r sgil hwn yn ei roi i sefydliadau a mentrau ar hyn o bryd, mae'r ymdrech yn werth chweil. Yn yr erthygl hon, byddwch yn dysgu am ddosbarthu delweddau, sut mae'n gweithio, a'i weithrediad ymarferol. Gadewch i ni ddechrau.
Beth yw dosbarthiad delwedd?
Y swydd o fwydo delwedd i mewn i a rhwydwaith nefol ac mae ei gael yn allbwn rhyw fath o label ar gyfer y llun hwnnw yn cael ei adnabod fel adnabod delwedd. Bydd label allbwn y rhwydwaith yn cyfateb i ddosbarth a ddiffiniwyd ymlaen llaw.
Efallai y bydd nifer o ddosbarthiadau wedi'u neilltuo i'r llun, neu un yn unig. Pan nad oes ond un dosbarth, mae’r term “cydnabyddiaeth” yn cael ei ddefnyddio’n aml, ond pan fo dosbarthiadau lluosog, defnyddir y term “dosbarthiad” yn aml.
Canfod gwrthrychau yn is-set o ddosbarthiad lluniau lle canfyddir bod achosion penodol o wrthrychau yn perthyn i ddosbarth penodol megis anifeiliaid, cerbydau, neu bobl.
Sut mae dosbarthiad delwedd yn gweithio?
Mae delwedd ar ffurf picsel yn cael ei ddadansoddi gan gyfrifiadur. Mae'n cyflawni hyn trwy drin y llun fel casgliad o fatricsau, y mae eu maint yn cael ei bennu gan gydraniad y ddelwedd. A siarad yn syml, dosbarthiad llun yw'r astudiaeth o ddata ystadegol gan ddefnyddio algorithmau o safbwynt cyfrifiadur.
Cyflawnir dosbarthiad delwedd wrth brosesu delweddau digidol trwy grwpio picsel yn grwpiau a bennwyd ymlaen llaw, neu "ddosbarthiadau." Mae'r algorithmau'n rhannu'r ddelwedd yn gyfres o nodweddion nodedig, sy'n lleihau'r baich ar y dosbarthwr terfynol.
Mae'r rhinweddau hyn yn hysbysu'r dosbarthwr am ystyr y ddelwedd a'i dosbarthiad posibl. Oherwydd bod gweddill y prosesau o ddosbarthu llun yn dibynnu arno, y dull echdynnu nodweddiadol yw'r cyfnod mwyaf hanfodol.
Mae adroddiadau data a ddarparwyd i'r algorithm hefyd yn hanfodol wrth ddosbarthu delweddau, yn enwedig dosbarthu dan oruchwyliaeth. O'i gymharu â set ddata ofnadwy gydag anghydbwysedd data yn seiliedig ar ddosbarth ac ansawdd llun ac anodi isel, mae set ddata ddosbarthu wedi'i optimeiddio'n dda yn perfformio'n rhagorol.
Dosbarthiad delwedd gan ddefnyddio Tensorflow & Keras mewn python
Byddwn yn defnyddio'r CIFAR-10 set ddata (sy'n cynnwys awyrennau, awyrennau, adar, a 7 peth arall).
1. Gofynion Gosod
Bydd y cod isod yn gosod yr holl ragofynion.
2. Mewnforio dibyniaethau
Gwnewch ffeil train.py yn Python. Bydd y cod isod yn mewnforio dibyniaethau Tensorflow a Keras.
3. Cychwyn paramedrau
Mae CIFAR-10 yn cynnwys 10 categori llun yn unig, felly mae dosbarthiadau rhif yn cyfeirio'n syml at nifer y categorïau i'w dosbarthu.
4. Llwytho'r set ddata
Mae'r swyddogaeth yn defnyddio'r modiwl Tensorflow Datasets i lwytho'r set ddata, ac rydym yn gosod gwybodaeth i True i gael rhywfaint o wybodaeth amdano. Gallwch ei argraffu i weld pa feysydd a'u gwerthoedd yw, a byddwn yn defnyddio'r wybodaeth i adalw nifer y samplau yn y setiau hyfforddi a phrofi.
5. Creu'r model
Nawr byddwn yn adeiladu tair haen, pob un yn cynnwys dwy ConvNets gyda swyddogaeth cronni uchaf a swyddogaeth actifadu ReLU, ac yna system 1024-uned gwbl gysylltiedig. O'i gymharu â ResNet50 neu Xception, sy'n fodelau o'r radd flaenaf, gallai hwn fod yn fodel cymharol fach.
6. Hyfforddi'r model
Defnyddiais Tensorboard i fesur cywirdeb a cholled ym mhob cyfnod a darparu arddangosfa hyfryd i ni ar ôl mewnforio'r data a chynhyrchu'r model. Rhedeg y cod canlynol; yn dibynnu ar eich CPU/GPU, bydd hyfforddiant yn cymryd sawl munud.
I ddefnyddio tensorboard, teipiwch y gorchymyn canlynol yn y derfynell neu'r anogwr gorchymyn yn y cyfeiriadur cyfredol:
Fe welwch fod colled dilysu yn lleihau a chywirdeb yn codi i tua 81%. Mae hynny'n ffantastig!
Profi'r model
Pan fydd yr hyfforddiant wedi'i orffen, caiff y model a'r pwysau terfynol eu cadw yn y ffolder canlyniadau, gan ganiatáu inni hyfforddi unwaith a gwneud rhagfynegiadau pryd bynnag y byddwn yn dewis. Dilynwch y cod mewn ffeil python newydd o'r enw test.py.
7. Mewnforio'r cyfleustodau i'w profi
8. Gwneud cyfeiriadur python
Gwnewch eiriadur Python sy'n trosi pob gwerth cyfanrif i label priodol y set ddata:
9. llwytho data prawf & model
Bydd y cod canlynol yn llwytho'r data prawf a'r model.
10. Gwerthuso a Rhagfynegi
Bydd y cod canlynol yn gwerthuso ac yn gwneud rhagfynegiadau ar y delweddau broga.
11. Canlyniadau
Roedd y model yn rhagweld y broga gyda chywirdeb o 80.62%.
Casgliad
Iawn, rydyn ni wedi gorffen gyda'r wers hon. Er nad yw 80.62% yn dda ar gyfer ychydig o CNN, rwy'n eich cynghori'n gryf i newid y model neu edrych ar ResNet50, Xception, neu fodelau blaengar eraill i gael canlyniadau gwell.
Nawr eich bod wedi adeiladu eich rhwydwaith adnabod delweddau cyntaf yn Keras, dylech arbrofi gyda'r model i ddarganfod sut mae paramedrau gwahanol yn effeithio ar ei berfformiad.
Gadael ymateb