
Mundarija:
- 1 -qadam: video
- 2 -qadam: Uskuna
- 3 -qadam: Kod qismi
- 4 -qadam: rasmlarni olish
- 5 -qadam: ishlatiladigan asboblar va til
- 6 -qadam: Ma'lumotlar to'plamini mashg'ulotlarga tayyorlash
- 7 -qadam: neyron tarmoq
- 8 -qadam: Neyron tarmoqlarini o'qitish
- 9 -qadam: Neyron tarmoqlarini sinab ko'rish
- 10 -qadam: Natija va keyingi qism …
- 11 -qadam: Ob'ektlarni aniqlash
- 12 -qadam: video
- 13 -qadam: etiketkalash
- 14 -qadam: GUIni etiketlash
- 15 -qadam: kutubxonalar kerak
- 16 -qadam: Qolgan hujayralar
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14



Bir necha kun oldin men sport zalida o'ng qo'limni shikastladim. Keyinchalik, men har safar kompyuter sichqonchasini ishlatganimda, bu bilak burchagi tufayli og'riqni keltirib chiqardi.
O'shanda bu menga "har qanday sirtni sensorli panelga aylantira olsak yaxshi bo'lardi" degan gap menga tegdi va men bilmayman, lekin negadir men u haqida o'yladim, HER filmi, buni sizga tushunishga ruxsat beraman. tashqariga Bu hayajonli fikr edi, lekin buni uddalay olmasligimni bilmasdim, sinab ko'rishga qaror qildim.
Bu maqola undan nima chiqqanini yozib beradi.
Boshlashdan oldin menda rad javobi bor.
Maqolaning oxirida, men hech qanday sirtni sensorli panelga aylantira olmadim, lekin men ko'p narsani o'rgandim va arsenalimga katta asboblarni qo'shdim. Umid qilamanki, sizda ham shunday bo'ladi '
Qani boshladik.
1 -qadam: video


Bu erda barcha qadamlarni o'z ichiga olgan 5 daqiqalik kichik video. Qarab qo'ymoq.
2 -qadam: Uskuna

Men taxminan 45 sm balandlikdagi malina pi kamerasi va malina pi ni o'rnataman. Bu bizga kamera ostida taxminan 25x25 sm o'lchash maydonini beradi.
Raspberry pi va malina pi kameralarini osongina olish mumkin, faqat google -da va siz mahalliy do'konni topishingiz kerak.
Boshsiz boshingizni ishga tushirish uchun ushbu havolani yoki mening Raspberry pi pleylistimdan birini ko'ring.
Ushbu sozlashdan so'ng, bizga kamera kuzatayotgan sohada qo'l bormi yoki yo'qligini aniqlaydigan kod kerak.
3 -qadam: Kod qismi


Qiziqish sohasida qo'l bor yoki yo'qligini aniqlashga imkon beradigan kod bo'lagi neyron tarmoq deb nomlangan narsani ishlatadi. Ular dasturlash toifasiga kiradi, bu erda biz qaror qabul qilish qoidalarini aniqlamaymiz, lekin biz neyron tarmoqqa o'z -o'zidan qoidalarni aniqlaydigan etarli ma'lumotlarni ko'rsatamiz.
Bizning holatlarimizda, qanday ko'rinishga ega ekanligini kodlash o'rniga, biz malinali pi -dan olingan va qo'lda bo'lmagan neyron tarmoq tasvirlarini ko'rsatamiz. Bu bosqich neyron tarmoqni o'rgatish deb ataladi va ishlatilgan tasvirlar o'quv ma'lumotlar to'plami deb ataladi.
4 -qadam: rasmlarni olish

Men malina pi-ga uzoqdan kirdim va quyidagi buyruq yordamida rasmlar to'plamini oldim.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o ramka%04d.jpg
Men qo'l bilan 80 ta tasvirni va qo'lda bo'lmagan 80 ta tasvirni oldim. Neyron tarmoqni to'g'ri o'rgatish uchun 160 ta tasvir etarli emas, lekin kontseptsiyani isbotlash uchun etarli bo'lishi kerak.
160 ta tasvirdan tashqari, men tarmoqni o'rgatgandan so'ng sinab ko'rish uchun yana 20 ta tasvirni oldim.
Ma'lumotlar bazasi tayyor bo'lgach, men neyron tarmoq uchun kod yozishni boshladim.
5 -qadam: ishlatiladigan asboblar va til


Men neyron tarmog'imni Keras deb nomlangan python chuqur o'rganish kutubxonasiga yozdim va kod anaconda navigatoridan jupyter daftarchasiga yozilgan.
6 -qadam: Ma'lumotlar to'plamini mashg'ulotlarga tayyorlash




Birinchidan (Rasm #1) Men ushbu loyiha uchun zarur bo'lgan barcha kutubxonalarni o'z ichiga oldim, ular PIL, matplotlib, numpy, os va Kerasni o'z ichiga oladi. Python daftarining ikkinchi katakchasida (2 -rasm) men ma'lumotlar to'plamiga yo'llarni belgilayman va namunalar sonini chop etaman. Endi biz barcha tasvirlarni noaniq qatorga yuklashimiz kerak, shuning uchun uchinchi katakchada (2 -rasm) Men 82 (qo'lda namuna soni) +75 (qo'lda bo'lmagan namunalar soni), ya'ni 157x100x100x3 raqamli massiv yaratdim. 157 - bu menda mavjud bo'lgan rasmlarning umumiy soni, 100x100 - bu bizning o'lchamimiz, 3 - rasmdagi qizil, yashil va ko'k rangli qatlamlar uchun.
To'rtinchi va beshinchi katakchalarga biz qo'lda tasvirlarni yuklaymiz, shundan keyingina numpy massivida qo'l yo'q. Oltinchi katakda biz har bir qiymatni 255 ga ajratamiz, shuning uchun qiymat oralig'ini 0 dan 1 gacha cheklaymiz (Rasm #3)
Kechirasiz, agar biriktirilgan rasmlar etarlicha yaxshi bo'lmasa. Bu erda kodni ko'rish uchun GITHUB omboriga havola. Katalog yo'llari nomlarini o'z yo'lingiz bilan almashtirishni unutmang:).
Yurish.
Keyin biz har bir tasvirni belgilashimiz kerak, shuning uchun biz uzunligi 157 bo'lgan bir o'lchovli numpy massivini yaratamiz. Dastlabki 82 ta yozuv 1 ga, qolgan 75 ta yozuv esa 0 ta neyron tarmoqqa o'rnatiladi, bu birinchi 82 ta rasm bir sinfdan, qolganlari esa boshqa sinfdan. (Rasm #4)
Endi neyron tarmoq yarataylik.
7 -qadam: neyron tarmoq


To'qqizinchi hujayrada biz neyron tarmog'imizni aniqlaymiz. U uchta konvulsion qatlamni o'z ichiga oladi, so'ngra mos ravishda 8, 12 va 16 konvulsiyali filtrli maxpool qatlamlari. Shundan so'ng bizda ikkita zich neyron to'r bor. Ushbu qadam uchun ikkita rasm biriktirilgan. Birinchisi, neyron tarmog'ini yaratadigan kod, ikkinchisi - neyron tarmoqning chiqish o'lchami va operatsiyalari izohlangan tasviriy tasvir.
8 -qadam: Neyron tarmoqlarini o'qitish

O'ninchi hujayrada biz neyron tarmoq optimizatorini "odam" ga, yo'qotish funktsiyasini "binary_crossentropy" ga sozlaymiz. Ular tarmoq og'irliklarini yangilashda katta rol o'ynaydi. Nihoyat, biz o'n birinchi hujayrani ishga tushirganimizda, neyron tarmoq o'rgata boshlaydi. Tarmoq mashg'ulot paytida, yo'qotish funktsiyasini ko'rib chiqing va uning kamayayotganiga ishonch hosil qiling.
9 -qadam: Neyron tarmoqlarini sinab ko'rish

Neyron tarmoqni o'rgatgandan so'ng, biz test ma'lumotlari to'plamini tayyorlashimiz kerak. Test to'plamini yaratish uchun test ma'lumotlari bo'yicha 3 -chi, 4 -chi, 5 -chi va 6 -chi hujayralardagi o'quv majmuasini tayyorlash uchun qilingan protsedurani takrorlaymiz. Shuningdek, biz test to'plami uchun yorliq tayyorlaymiz, lekin bu safar biz bu ma'lumotlar to'plamida bashorat qilish uchun va mashq qilmaslik uchun modelni ishga tushiramiz.
10 -qadam: Natija va keyingi qism …

Menda testning aniqligi 88% ni tashkil etdi, lekin uni bir chimdik tuz bilan oling, chunki bu modelni o'rgatish va sinash uchun ishlatiladigan ma'lumotlar to'plami juda kichik va bu modelni to'g'ri o'rgatish uchun etarli emas.
Qanday bo'lmasin, sizga ushbu maqola yoqdi deb umid qilaman. Bu mashg'ulotning maqsadi hali tugallanmagan va ikkinchi qismga e'tibor bering. Iloji boricha yuklayman.
Keyingi qismda biz qo'l bilan aniqlangan rasmda qo'lning joylashishini ko'rsatadigan boshqa neyron tarmoqni o'rgatamiz.
Barcha so'rovlar qabul qilinadi.
Agar kimdir mening kichik ma'lumotlar to'plamimdan foydalanmoqchi bo'lsa, izohlarda menga xabar bering. Men uni taqdim etaman.
O'qiganingiz uchun tashakkur. Men sizni tez orada ikkinchi qism bilan ko'raman, shu paytgacha nega neyron tarmoq yaratmaysiz va o'rgatmaysiz.
Tartibga solish:- Keyingi qadamlar ikkinchi qism uchun.
11 -qadam: Ob'ektlarni aniqlash

Oldingi bosqichlarda biz NN yaratdik, u bizga test tasviri qo'lda yoki yo'qligini bildiradi. Xo'sh, keyin nima? Agar NN tasvirni qo'lli deb tasniflasa, biz qo'lning joylashishini bilishni xohlaymiz. Bu kompyuter ko'rish adabiyotida ob'ektni aniqlash deb ataladi. Keling, NNni o'rgataylik, bu xuddi shunday.
12 -qadam: video


Qolgan barcha qadamlarni tushuntirib beradigan 3 minutlik video. Qarab qo'ymoq.
13 -qadam: etiketkalash



Agar siz neyron tarmog'ining qo'lda joylashishini xohlasangiz, biz uni shunday o'rgatishimiz kerak, ya'ni oldingi neyron tarmoqdan farqli o'laroq, har bir tasvir qo'lda va qo'lsiz deb belgilangan. Bu safar qo'lda bo'lgan barcha tasvirlar, bu rasmda chegara qutisining diagonal koordinatalariga mos keladigan to'rtta yorliqqa ega bo'ladi.
CSV faylining biriktirilgan tasvirida har bir tasvir uchun yorliq bor. E'tibor bering, koordinatalar tasvir o'lchami bilan normallashadi, agar yuqori X koordinatasi 640 pikselli tasvirning 320 -pikselida bo'lsa, biz uni 0,5 deb belgilaymiz.
14 -qadam: GUIni etiketlash




Siz 82 ta tasvirni qanday belgilashga muvaffaq bo'ldingiz, deb o'ylaysiz, men pythonda GUI yozdim, bu menga bu vazifani bajarishga yordam berdi. Rasm GUI -ga yuklanganidan keyin. Men yuqori koordinatada sichqonchaning chap tugmachasini bosaman va qo'lning atrofidagi mumkin bo'lgan chegara qutisining pastki koordinatasida o'ng tugmasini bosaman. Bu koordinatalar keyinchalik faylga yoziladi va men keyingi rasmni yuklash uchun keyingi tugmani bosaman. Men ushbu protsedurani 82 ta poezd va 4 ta test tasvirlari uchun takrorladim. Yorliqlar tayyor bo'lgach, mashg'ulot vaqti keldi.
15 -qadam: kutubxonalar kerak



Avval biz barcha kerakli kutubxonalarni yuklashimiz kerak. Bu o'z ichiga oladi
- Rasm bilan ishlash uchun PIL,
- chizish uchun matplotlib,
- matritsaning ishlashi uchun numpy,
- os operatsion tizimga bog'liq funksiyalar uchun va
- neyron tarmoq uchun keras.
16 -qadam: Qolgan hujayralar




2 -chi, 3 -chi, 4 -chi va 5 -chi kataklarda rasmlarni numpy qatoriga yuklaymiz va yorliq vazifasini bajarish uchun csv faylidan to'rt o'lchovli massiv yaratamiz. 6 -hujayrada biz neyron tarmog'imizni yaratamiz. Uning arxitekturasi tasniflash uchun ishlatiladigan neyron tarmoq bilan bir xil. Chiqish qatlamining o'lchami 4 emas, balki 1 ga teng. Yana bir farq - yo'qolish funktsiyasidan kelib chiqadi, bu o'rtacha kvadrat xato. 8 -hujayrada biz neyron tarmog'imizni o'qitishni boshlaymiz, men o'rgatganimdan so'ng, men ushbu modelni sinovlar to'plamida ishlatib, chegara qutisi koordinatalarini joylashtirish bo'yicha bashoratlarni oldim.
O'qiganingiz uchun tashakkur.
Tavsiya:
Python, Electron va Keras yordamida neyron tarmoq bilan ishlaydigan planetariy: 8 qadam

Python, Electron va Keras yordamida neyron tarmoq bilan ishlaydigan planetariy: Bu ko'rsatmada men sizga Python va Electron yordamida avtomatik 3D planetariy generatorini qanday yozganimni ko'rsataman. Yuqoridagi videoda tasodifiy sayyora sayyoralaridan biri tasvirlangan. ** Eslatma: Bu dastur hech qanday tarzda mukammal emas va ba'zi joylarda
Miya qutisi: Vaqt o'tishi bilan neyron hajmini kuzatish: 20 qadam

Miya qutisi: Vaqt o'tishi bilan neyronlar hajmini kuzatish: uzoq umr ko'rish chegarasiga o'tish bizdan oldin tsivilizatsiyalar ko'rmagan kasalliklarning paydo bo'lishiga olib keldi. Ular orasida Altsgeymer kasalligi 2017 yilda taxminan 5,3 million keksa amerikaliklarga ta'sir qilgan, yoki taxminan har 10da 1
Arduino neyron tarmog'i roboti: 21 qadam (rasmlar bilan)

Arduino neyron tarmog'i roboti: Bu ko'rsatma men YouTube kanalini yaratish uchun ishlab chiqarilgan 3 qismli serialga asoslangan bo'lib, sizga Arduino neyron tarmoq robotini qanday prototiplash, loyihalash, yig'ish va dasturlashni aniq ko'rsatib beradi. To'liq serialni ko'rgandan so'ng, sizda bett bo'lishi kerak
LEDlarni AC bilan ishlatish (4 -qism) - Yangi texnologiyalar: 6 qadam (rasmlar bilan)

LEDlarni AC bilan ishlatish (4 -qism) - Yangi texnologiyalar: Uyda LEDni qabul qilishda to'siqlarning bir qismi, har bir lumenga nisbatan yuqori narx va quvvatni aylantirishning murakkab va noqulay tizimlari edi. So'nggi oylarda, bir qator yangi o'zgarishlar bizni bir qadam yaqinlashtirishga va'da beradi
12V DC yoki 85-265V AC lyuminestsent chiroqni LEDga aylantiring - 1 -qism (Ichki qism): 7 qadam

12V DC yoki 85-265V AC lyuminestsent chiroqni LEDga aylantiring - 1 -qism (Ichki qism): RV -dagi 12V lyuminestsent yorug'lik balastlarimdan biri yonib ketdi. Men uni 6 ta arzon LED, ikkita LED drayveri va https://www.instructables.com/id/Replace-Low-Voltage-Bi-Pin-Halogens-with-LEDs/ yordamida LEDlar bilan almashtirishga qaror qildim. . Ota