Як пабудаваць вар'яцка добры класіфікатар выявы менш чым за 10 хвілін

У апошні час у класіфікацыі малюнкаў было адно з самых вялікіх прыкладанняў машыннага навучання - магчымасць кампутару інтэлектуальна распазнаваць аб'ект. Такая праца вядзецца ў найбуйнейшых тэхналагічных кампаніях, і з тых часоў яны спарадзілі гэтае неабгрунтаванае паняцце эксклюзіўнасці. Мы стварылі апавяданне, што для таго, каб вы забрудзілі рукі машынным навучаннем і штучным інтэлектам, вы павінны быць нейкім сертыфікаваным геніем альбо, па меншай меры, выпускніком інжынера, каб проста ўварвацца. Я думаю, што гэта глупства, таму я ' Я пакажу вам, як менш чым за 10 хвілін вы зможаце пабудаваць цалкам функцыянальны класіфікатар малюнкаў, які можа распазнаць любы (так, любы) аб'ект з вар'яцка высокай верагоднасцю. І я не збіраюся выкарыстоўваць ніводнае моднае слова.

Калі вы зацікаўлены ў поглядзе на класіфікацыю малюнкаў на высокім узроўні, я заклікаю вас зірнуць на маё відэа вышэй. Я асвятляю асновы выбару функцый, навучальных набораў, налад навакольнага асяроддзя і агульнага агляду. Гэты падручнік будзе крыху больш механічным - я хачу падвесці вас і запусціць як мага хутчэй.

Для пачатку спачатку вам спатрэбіцца Python. Гэта просты, эфектыўны і проста прыгожы мова праграмавання, які выкарыстоўваецца амаль у кожнай галіне. Я таксама думаю, што навучанне гэтак жа важна, як і пісьменнасць Microsoft Word.

Старонка ўстаноўкі знаходзіцца тут. Захопіце Python 2.7 і націсніце спам ваш шлях праз наладу. Далей ідзе TensorFlow, бібліятэка з адкрытым зыходным кодам для праграмавання патокаў дадзеных. Калі вы знаходзіцеся на Mac, вы можаце адкрыць тэрмінал і проста запусціць:

pip ўсталяваць tensorflow

Калі гэта не спрацавала, звярніцеся да старонкі ўстаноўкі. Абярыце аперацыйную сістэму і ўсталюйце ў адпаведнасці з кіруючымі інструкцыямі Pip. Іх прасцей за ўсё прытрымлівацца і ажыццяўляць.

Цудоўна! Цяпер у нас ёсць усе неабходныя залежнасці. Пачнем з клонавання сховішча TensorFlow. Мы выкарыстоўваем спецыяльны варыянт, прадастаўлены Google, які пастаўляецца з некалькімі дзіўнымі сцэнарыямі. Адкрыйце тэрмінал і запусціце:

клон git https://github.com/googlecodelabs/tensorflow-for-poets-2 cd tensorflow-for-poets-2

Цяпер вы можаце выбраць свае малюнкі! Выбар цалкам за вамі - проста пераканайцеся, што яны падзелены папкамі па катэгорыях, якія вы хочаце класіфікаваць (малюнкі ніжэй). Напрыклад, калі мы хочам выкарыстоўваць выявы кветак, прыведзеныя ў прыкладзе, мы можам запусціць (пераканайцеся, што вы знаходзіцеся ў патрэбным каталогу, выкарыстоўваючы радкі вышэй):

згортвацца http://download.tensorflow.org/example_images/flower_photos.tgz | tar xz -C tf_files

Гэта загружае выявы пяці розных відаў кветак у наша сховішча.

ls tf_files / flower_photos

Ён павінен раздрукаваць усе дадатковыя тэчкі ў каталогу flower_photos.

рамонак / дзьмухавец / ружы / сланечнікі / цюльпан / LICENSE.txt

Вы можаце выкарыстоўваць любыя малюнкі, якія вы хочаце. Чым больш, тым лепш (мэта на некалькі тысяч). Падзеліце іх па катэгорыях, як зроблена вышэй, і пераканайцеся, што яны знаходзяцца ў тэчцы пад назвай tf_files. Я знайшоў выдатны убудова, які дазваляе загружаць пакетныя выявы ў Google Chrome - гэта зробіць пошук дадзеных пра навучанне лёгкім ветрыкам. Звязана тут.

Я прытрымліваўся той жа структуры тэчак вышэй і стварыў класіфікатар смецця (пра гэта крыху пазней). Вось як выглядала мая налада для візуальнай даведкі:

Звярніце ўвагу толькі на garbage_photos. Астатнія тэчкі - для стадый трэніроўкі.Унутры garbage_photos. Усе вашыя выявы павінны быць падзеленыя на катэгорыю.Каталог шкла ў якасці прыкладу.

Цяпер мы гатовыя навучыць нашу мадэль! Адзіны спосаб, калі мы можам прымусіць кампутар распазнаваць аб'екты, гэта калі мы навучымся з усіх загружаных намі малюнкаў. На шчасце, гэта займае ўсяго некалькі радкоў Python. Калі вы хочаце больш падрабязна патлумачыць навуку і тэорыю, праверце маё відэа вышэй .

IMAGE_SIZE = 224 ARCHITECTURE = "mobilenet_0.50 _ $ {IMAGE_SIZE}" python -m scriptpts.retrain \ --bottleneck_dir = tf_files / вузкае месца \ --model_dir = tf_files / models / "$ {ARCHITECTURE}" \ =summaries_fi training_summaries / "$ {ARCHITECTURE}" \ --output_graph = tf_files / retrained_graph.pb \ --output_labels = tf_files / retrained_labels.txt \ --architecture = "$ {ARCHITECTURE}" \ --image_dir = tf_files / YOUR_IMAGE_DIR

Запоўніце YOUR_IMAGE_DIRECTORY_HERE з тэчкай загружаных вамі малюнкаў. Навучальны этап зойме ад 30 хвілін да гадзіны. Не хвалюйцеся, калі гэта зойме некаторы час - гэта вельмі залежыць ад спецыфікацый вашага кампутара. Аднак, як толькі вы скончыце, у вас ёсць гатовы класіфікатар выявы!

Запампуйце выяву з Інтэрнэту альбо зрабіце сабе тэлефон, выканайце наступную каманду:

python -m scriptpts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = YOUR_PATH_TO_IMAGE_HERE

Зноў заменіце YOUR_PATH_TO_IMAGE_HERE на шлях файла, які вы толькі што загрузілі. Запусціўшы радок, вы павінны ўбачыць верагодныя вынікі пра тое, што змяшчае малюнак!

Я стварыў класіфікатар смецця, які б распазнаваў шэсць розных відаў смецця: кардон, шкло, папера, метал, смецце і пластык. Вось некалькі маіх прыкладаў:

python -m scriptpts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = / Карыстальнікі / Nikhil / Desktop / beerbottle.jpg
Шкло з верагоднасцю 0,996. Усё выглядае добра!
python -m scriptpts.label_image \ --graph = tf_files / retrained_graph.pb \ --image = / Карыстальнікі / Nikhil / Desktop / package.jpg
Хлам з верагоднасцю 0,984.

Віншуем! Вы паспяхова стварылі класіфікатар выявы, і ўсё, што вам спатрэбілася, былі агульныя веды і ўстаноўка некалькіх пакетаў. Вы ўбачыце, што цуды інфарматыкі лёгка даступныя - усё, што вам трэба зрабіць, гэта шукаць іх. Існуе вельмі шмат інструментаў і бібліятэк з адкрытым зыходным кодам, створаных для майстроў і распрацоўшчыкаў, каб праявіць творчасць. Пабудуйце што-небудзь для свайго начальніка, альбо падключыце гэта да Raspberry Pi і зрабіце ўласную сістэму бяспекі дома. Незалежна ад таго, проста ведайце, што любы чалавек здольны рабіць вялікія рэчы ў машынным навучанні.