Mundarija[Yashirish][Show]
- Tasvir tasnifi nima?
- Rasmlarni tasniflash qanday ishlaydi?
Pythonda Tensorflow va Keras yordamida tasvir tasnifi+-
- 1. O'rnatish talablari
- 2. Tobeliklarni import qilish
- 3. Parametrlarni ishga tushirish
- 4. Ma'lumotlar to'plamini yuklash
- 5. Modelni yaratish
- 6. Modelni o'rgatish
- Modeli sinash
- 7. Sinov uchun utilitlarni import qilish
- 8. Python katalogini yaratish
- 9. Test ma’lumotlari va modeli yuklanmoqda
- 10. Baholash va bashorat qilish
- 11. Natijalar
- Xulosa
Biz robotlarga o‘zimizning tug‘ma qobiliyatlarimizni namuna bo‘lib o‘rganish va ularning atrofini idrok etish qobiliyati bilan singdirishga muvaffaq bo‘lganimizni bilish taskin beradi. Asosiy muammo shundaki, kompyuterlarni "ko'rish" ga o'rgatuvchilar odamlarga ko'proq vaqt va kuch talab qiladi.
Biroq, bu ko'nikmaning bugungi kunda tashkilot va korxonalarga taqdim etayotgan amaliy ahamiyatini hisobga oladigan bo'lsak, sa'y-harakatlarga arziydi. Ushbu maqolada siz tasvirlarni tasniflash, uning qanday ishlashi va amaliy qo'llanilishi haqida bilib olasiz. Keling, boshlaymiz.
Tasvir tasnifi nima?
Tasvirni a ga kiritish vazifasi neyron tarmoq va uning ushbu rasm uchun qandaydir yorliq shaklini chiqarishi tasvirni aniqlash deb nomlanadi. Tarmoqning chiqish yorlig'i oldindan belgilangan sinfga mos keladi.
Rasmga ko'plab sinflar yoki bittasi tayinlangan bo'lishi mumkin. Agar bitta sinf mavjud bo'lsa, "tan olish" atamasi tez-tez ishlatiladi, bir nechta sinflar mavjud bo'lsa, "tasniflash" atamasi tez-tez ishlatiladi.
Ob'ektni aniqlash Bu rasmlar tasnifining kichik toʻplami boʻlib, unda obʼyektlarning alohida namunalari hayvonlar, transport vositalari yoki odamlar kabi maʼlum bir sinfga tegishli ekani aniqlanadi.
Rasmlarni tasniflash qanday ishlaydi?
Piksel ko'rinishidagi tasvir kompyuter tomonidan tahlil qilinadi. Buni rasmni o'lchami tasvir o'lchamlari bilan belgilanadigan matritsalar to'plami sifatida ko'rib chiqish orqali amalga oshiradi. Oddiy qilib aytganda, rasm tasnifi - bu kompyuter nuqtai nazaridan algoritmlardan foydalangan holda statistik ma'lumotlarni o'rganish.
Rasmlarni tasniflash raqamli tasvirni qayta ishlashda piksellarni oldindan belgilangan guruhlarga yoki "sinflarga" guruhlash orqali amalga oshiriladi. Algoritmlar tasvirni diqqatga sazovor xususiyatlar ketma-ketligiga ajratadi, bu esa yakuniy tasniflagich uchun yukni kamaytiradi.
Bu fazilatlar klassifikatorga tasvirning ma'nosi va potentsial tasnifi haqida ma'lumot beradi. Rasmni tasniflashda qolgan jarayonlar unga bog'liq bo'lganligi sababli, xarakterli ekstraktsiya usuli eng muhim bosqichdir.
The berilgan ma’lumotlar Algoritm tasvirni tasniflashda, ayniqsa nazorat ostida tasniflashda ham hal qiluvchi ahamiyatga ega. Sinf va past tasvir va izoh sifatiga asoslangan ma'lumotlar nomutanosibligi bilan dahshatli ma'lumotlar to'plami bilan solishtirganda, yaxshi optimallashtirilgan tasniflash ma'lumotlar to'plami ajoyib ishlaydi.
Pythonda Tensorflow va Keras yordamida tasvir tasnifi
dan foydalanamiz CIFAR-10 ma'lumotlar to'plami (bu samolyotlar, samolyotlar, qushlar va boshqa 7 narsani o'z ichiga oladi).
1. O'rnatish talablari
Quyidagi kod barcha shartlarni o'rnatadi.
2. Tobeliklarni import qilish
Pythonda train.py faylini yarating. Quyidagi kod Tensorflow va Keras bog'liqliklarini import qiladi.
3. Parametrlarni ishga tushirish
CIFAR-10 atigi 10 ta rasm toifasini o'z ichiga oladi, shuning uchun ko'plab sinflar tasniflash uchun toifalar soniga ishora qiladi.
4. Ma'lumotlar to'plamini yuklash
Funktsiya ma'lumotlar to'plamini yuklash uchun Tensorflow Datasets modulidan foydalanadi va biz u haqida ba'zi ma'lumotlarni olish uchun "True" ga ma'lumotni o'rnatamiz. Maydonlar va ularning qiymatlari qanday ekanligini ko‘rish uchun uni chop etishingiz mumkin, biz esa ma’lumotlardan o‘quv va sinov to‘plamlaridagi namunalar sonini olish uchun foydalanamiz.
5. Modelni yaratish
Endi biz uchta qatlamni quramiz, ularning har biri max-pooling va ReLU faollashtirish funksiyasiga ega ikkita ConvNet-dan, so‘ngra to‘liq ulangan 1024 birlikli tizimdan iborat. Eng zamonaviy modellar bo'lgan ResNet50 yoki Xception bilan solishtirganda, bu nisbatan kichik model bo'lishi mumkin.
6. Modelni o'rgatish
Men Tensorboard-dan har bir davrdagi aniqlik va yo'qotishlarni o'lchash va ma'lumotlarni import qilish va modelni yaratishdan so'ng bizga yoqimli displey taqdim etish uchun foydalandim. Quyidagi kodni ishga tushiring; protsessor/GPU-ga qarab, trening bir necha daqiqa davom etadi.
Tensorboarddan foydalanish uchun terminalda yoki joriy katalogdagi buyruq satrida quyidagi buyruqni kiriting:
Siz tasdiqlashni yo'qotish kamayib borayotganini va aniqlik taxminan 81% gacha ko'tarilayotganini ko'rasiz. Bu ajoyib!
Modeli sinash
Trening tugagach, yakuniy model va vaznlar natijalar papkasida saqlanadi, bu bizga bir marta mashq qilish va istalgan vaqtda bashorat qilish imkonini beradi. Test.py nomli yangi python faylidagi kodga amal qiling.
7. Sinov uchun utilitlarni import qilish
8. Python katalogini yaratish
Har bir butun son qiymatini maʼlumotlar toʻplamining tegishli yorligʻiga oʻgiradigan Python lugʻatini yarating:
9. Test ma’lumotlari va modeli yuklanmoqda
Quyidagi kod test ma'lumotlari va modelini yuklaydi.
10. Baholash va bashorat qilish
Quyidagi kod qurbaqa tasvirlarini baholaydi va bashorat qiladi.
11. Natijalar
Model qurbaqani 80.62% aniqlik bilan bashorat qilgan.
Xulosa
OK, bu darsni tugatdik. 80.62% kichik CNN uchun yaxshi bo'lmasa-da, men sizga modelni o'zgartirishni yoki yaxshi natijalarga erishish uchun ResNet50, Xception yoki boshqa ilg'or modellarni ko'rib chiqishni qat'iy tavsiya qilaman.
Endi siz Kerasda birinchi tasvirni aniqlash tarmog'ingizni yaratganingizdan so'ng, turli parametrlar uning ishlashiga qanday ta'sir qilishini aniqlash uchun modelni sinab ko'rishingiz kerak.
Leave a Reply