Абнадзейвае ўсведамленне таго, што нам удалося надаць робатам нашы прыроджаныя здольнасці вучыцца на ўласным прыкладзе і ўспрымаць наваколле. Фундаментальная праблема заключаецца ў тым, каб навучыць кампутары «бачыць», як людзі, спатрэбіцца значна больш часу і намаганняў.
Аднак калі мы ўлічым практычную каштоўнасць, якую гэты навык у цяперашні час дае арганізацыям і прадпрыемствам, намаганні вартыя таго. У гэтым артыкуле вы даведаецеся пра класіфікацыю малюнкаў, як яна працуе і практычную рэалізацыю. Давайце пачнем.
Што такое класіфікацыя малюнкаў?
Праца падачы выявы ў a нейронных сеткі і тое, што ён выводзіць некаторую форму этыкеткі для гэтага малюнка, вядома як распазнаванне малюнкаў. Метка выхаду сеткі будзе адпавядаць загадзя вызначанаму класу.
Малюнку можа быць прысвоена мноства класаў або проста адзін. Калі ёсць толькі адзін клас, часта выкарыстоўваецца тэрмін «распазнаванне», тады як калі ёсць некалькі класаў, часта выкарыстоўваецца тэрмін «класіфікацыя».
Выяўленне аб'ектаў гэта падмноства класіфікацыі малюнкаў, у якой пэўныя асобнікі аб'ектаў вызначаюцца як належачыя да дадзенага класа, напрыклад, жывёлы, транспартныя сродкі або людзі.
Як працуе класіфікацыя малюнкаў?
Малюнак у выглядзе пікселяў аналізуецца кампутарам. Ён дасягае гэтага, разглядаючы малюнак як набор матрыц, памер якіх вызначаецца дазволам выявы. Прасцей кажучы, класіфікацыя малюнкаў - гэта вывучэнне статыстычных даных з выкарыстаннем алгарытмаў з пункту гледжання кампутара.
Класіфікацыя відарысаў ажыццяўляецца пры лічбавай апрацоўцы відарысаў шляхам групоўкі пікселяў у загадзя вызначаныя групы або «класы». Алгарытмы разбіваюць малюнак на паслядоўнасць вартых увагі характарыстык, што зніжае нагрузку на канчатковы класіфікатар.
Гэтыя якасці інфармуюць класіфікатара аб значэнні выявы і патэнцыйнай класіфікацыі. Паколькі астатнія працэсы класіфікацыі выявы залежаць ад гэтага, метад вылучэння характарыстык з'яўляецца найбольш важным этапам.
,en прадастаўленыя дадзеныя алгарытм таксама мае вырашальнае значэнне ў класіфікацыі малюнкаў, асабліва класіфікацыі пад наглядам. У параўнанні з жахлівым наборам даных з дысбалансам даных, заснаваным на класе і нізкай якасцю малюнкаў і анатацый, добра аптымізаваны набор даных класіфікацыі працуе цудоўна.
Класіфікацыя відарысаў з дапамогай Tensorflow & Keras у python
Мы будзем выкарыстоўваць ЦІФАР-10 набор даных (які ўключае самалёты, самалёты, птушак і іншыя 7 рэчаў).
1. Патрабаванні да ўстаноўкі
Прыведзены ніжэй код усталюе ўсе неабходныя ўмовы.
2. Імпарт залежнасцяў
Стварыце файл train.py на Python. Прыведзены ніжэй код імпартуе залежнасці Tensorflow і Keras.
3. Ініцыялізацыя параметраў
CIFAR-10 уключае ўсяго 10 катэгорый малюнкаў, таму num classes проста адносяцца да колькасці катэгорый для класіфікацыі.
4. Загрузка набору дадзеных
Функцыя выкарыстоўвае модуль Tensorflow Datasets для загрузкі набору даных, і мы ўсталёўваем для info значэнне True, каб атрымаць інфармацыю пра яго. Вы можаце раздрукаваць яго, каб убачыць, што такое палі і іх значэнні, і мы будзем выкарыстоўваць гэтую інфармацыю, каб атрымаць колькасць узораў у навучальных і тэставых наборах.
5. Стварэнне мадэлі
Цяпер мы пабудуем тры ўзроўні, кожны з якіх будзе складацца з дзвюх ConvNet з функцыяй максімальнага аб'яднання і актывацыі ReLU, за якімі пойдзе цалкам падключаная сістэма з 1024 адзінак. У параўнанні з ResNet50 або Xception, якія з'яўляюцца самымі сучаснымі мадэлямі, гэта можа быць параўнальна маленькая мадэль.
6. Навучанне мадэлі
Я выкарыстаў Tensorboard, каб вымераць дакладнасць і страты ў кожную эпоху і забяспечыць нам цудоўны дысплей пасля імпарту даных і стварэння мадэлі. Запусціце наступны код; у залежнасці ад вашага CPU/GPU навучанне зойме некалькі хвілін.
Каб выкарыстоўваць tensorboard, проста ўвядзіце наступную каманду ў тэрмінале або камандным радку ў бягучым каталогу:
Вы ўбачыце, што страты праверкі памяншаюцца, а дакладнасць падымаецца прыкладна да 81%. Гэта фантастыка!
Тэставанне мадэлі
Калі трэніроўка скончана, канчатковая мадэль і вага захоўваюцца ў тэчцы вынікаў, што дазваляе нам трэніравацца адзін раз і рабіць прагнозы ў любы час. Выканайце код у новым файле Python пад назвай test.py.
7. Імпарт утыліт для тэставання
8. Стварэнне каталога Python
Стварыце слоўнік Python, які перакладае кожнае цэлае значэнне ў адпаведную метку набору дадзеных:
9. Загрузка тэставых дадзеных і мадэлі
Наступны код загрузіць тэставыя дадзеныя і мадэль.
10. Ацэнка і прагноз
Наступны код будзе ацэньваць і рабіць прагнозы на малюнках жаб.
11. вынікі
Мадэль прадказала жабу з дакладнасцю 80.62%.
заключэнне
Добра, мы скончылі з гэтым урокам. Нягледзячы на тое, што 80.62% не вельмі добра для маленькага CNN, я настойліва раю вам змяніць мадэль або паглядзець на ResNet50, Xception або іншыя перадавыя мадэлі для дасягнення лепшых вынікаў.
Цяпер, калі вы стварылі сваю першую сетку распазнавання малюнкаў у Keras, вам варта паэксперыментаваць з мадэллю, каб даведацца, як розныя параметры ўплываюць на яе прадукцыйнасць.
Пакінуць каментар