![Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) Part 1/2: 16 Addım (Şəkillərlə) Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) Part 1/2: 16 Addım (Şəkillərlə)](https://i.howwhatproduce.com/images/002/image-3672-109-j.webp)
Mündəricat:
- Addım 1: Video
- Addım 2: Avadanlıq
- Addım 3: Kod parçası
- Addım 4: Şəkillər əldə edin
- Addım 5: İstifadə olunan alətlər və dil
- Addım 6: Təlim üçün Veri Küməsinin Hazırlanması
- Addım 7: Sinir Şəbəkəsi
- Addım 8: Sinir Şəbəkəsinin Təlimi
- Addım 9: Sinir Şəbəkəsinin Testi
- Addım 10: Nəticə və Növbəti Bölmə …
- Addım 11: Obyekt Algılama
- Addım 12: Video
- Addım 13: Etiketləmə
- Addım 14: GUI etiketlənməsi
- Addım 15: Kitabxanalara ehtiyac var
- Addım 16: Qalan hüceyrələr
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:56
![Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə](https://i.howwhatproduce.com/images/002/image-3672-110-j.webp)
![Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə](https://i.howwhatproduce.com/images/002/image-3672-111-j.webp)
![Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə Bu Əl mi? (Raspberry Pi Kamera + Sinir Şəbəkəsi) 1/2 hissə](https://i.howwhatproduce.com/images/002/image-3672-112-j.webp)
Bir neçə gün əvvəl idman zalında sağ əlimdən zədə aldım. Daha sonra hər dəfə kompüter siçanını istifadə etdiyim zaman, bilək bucağının dik olması səbəbindən çox ağrılara səbəb oldu.
O zaman mənə "hər hansı bir səthi trackpad -ə çevirə bilsək əla olmazdı" dedi və bunun səbəbini bilmirəm, amma nədənsə onu, HER filmini düşündüm, bunu başa düşməyinizə icazə verəcəyəm. çıxmaq Heyecan verici bir fikir idi, amma edə biləcəyimi bilmirdim, sınamaq qərarına gəldim.
Bu məqalə ondan nə çıxdığını əks etdirir.
Başlamazdan əvvəl bir imtinam var-
Bu yazının sonunda heç bir səthi trackpad -ə çevirə bilmədim, amma çox şey öyrənmədim və arsenalına böyük alətlər əlavə etdim. Ümid edirəm bu sizin də başınıza gələcək '
Gəlin başlayaq.
Addım 1: Video
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-114-j.webp)
![](https://i.ytimg.com/vi/sHpu-sWhGns/hqdefault.jpg)
Burada bütün addımları əhatə edən 5 dəqiqəlik kiçik bir video var. Bax.
Addım 2: Avadanlıq
![Avadanlıq Avadanlıq](https://i.howwhatproduce.com/images/002/image-3672-115-j.webp)
Təxminən 45 sm yüksəklikdə moruq pi kamerası ilə birlikdə moruq pi qururam. Bu, kameranın altında təxminən 25x25 sm monitorinq sahəsi verir.
Raspberry pi və moruq pi kamerası asanlıqla əldə edilə bilər, sadəcə google -a daxil olun və yerli bir mağaza tapmalısınız.
Başsız başınızı işə salmaq üçün bu linkə və ya mənim Raspberry pi pleylistimdən birinə baxın.
Bu quruluşu izlədikdən sonra kameranın izlədiyi sahədə əlin olub olmadığını və harada olduğunu müəyyən edən bir kod parçasına ehtiyacımız var.
Addım 3: Kod parçası
![Kod parçası Kod parçası](https://i.howwhatproduce.com/images/002/image-3672-116-j.webp)
![Kod parçası Kod parçası](https://i.howwhatproduce.com/images/002/image-3672-117-j.webp)
Neyron Şəbəkəsi adlanan bir şeyin maraq dairəsində bir əl olub olmadığına qərar verməyimizə imkan verən bir kod parçası. Qərar vermə qaydalarını təyin etmədiyimiz proqramlaşdırma kateqoriyasına aiddirlər, ancaq neyron şəbəkəsinə qaydaları özünün həll edə biləcəyi qədər məlumat göstəririk.
Bizim vəziyyətimizdə, əlin necə göründüyünü kodlaşdırmaq əvəzinə, əlini ehtiva edən və əlini olmayan moruq pi -dən çəkilmiş neyron şəbəkə şəkillərini göstəririk. Bu mərhələyə sinir şəbəkəsinin təhsili deyilir və istifadə olunan görüntülərə təlim məlumatları deyilir.
Addım 4: Şəkillər əldə edin
![Şəkillər əldə etmək Şəkillər əldə etmək](https://i.howwhatproduce.com/images/002/image-3672-118-j.webp)
Aşağıdakı əmri istifadə edərək moruq pi-yə uzaqdan daxil oldum və bir çox şəkil çəkdim.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame%04d.jpg
Əlimlə 80 şəkil və əlimizdə olmayan 80 şəkil çəkdim. Sinir şəbəkəsini düzgün tərbiyə etmək üçün 160 şəkil kifayət deyil, lakin konsepsiyanı sübut etmək üçün kifayət etməlidir.
160 şəkildən əlavə, təlim keçdikdən sonra şəbəkəmizi sınamaq üçün daha 20 şəkil çəkdim.
Veri dəsti hazır olduqdan sonra neyron şəbəkəsi üçün kod yazmağa başladım.
Addım 5: İstifadə olunan alətlər və dil
![İstifadə olunan alətlər və dil İstifadə olunan alətlər və dil](https://i.howwhatproduce.com/images/002/image-3672-119-j.webp)
![İstifadə olunan alətlər və dil İstifadə olunan alətlər və dil](https://i.howwhatproduce.com/images/002/image-3672-120-j.webp)
Sinir şəbəkəmi Keras adlı python dərin öyrənmə kitabxanasına yazdım və kod anaconda naviqatorundan jupyter notebooka yazıldı.
Addım 6: Təlim üçün Veri Küməsinin Hazırlanması
![Məlumat toplusunu təlimə hazırlamaq Məlumat toplusunu təlimə hazırlamaq](https://i.howwhatproduce.com/images/002/image-3672-121-j.webp)
![Məlumat toplusunu təlimə hazırlamaq Məlumat toplusunu təlimə hazırlamaq](https://i.howwhatproduce.com/images/002/image-3672-122-j.webp)
![Məlumat toplusunu təlimə hazırlamaq Məlumat toplusunu təlimə hazırlamaq](https://i.howwhatproduce.com/images/002/image-3672-123-j.webp)
![Məlumat toplusunu təlimə hazırlamaq Məlumat toplusunu təlimə hazırlamaq](https://i.howwhatproduce.com/images/002/image-3672-124-j.webp)
Birincisi (Şəkil #1) PIL, matplotlib, numpy, os və Keras daxil olmaqla bu layihə üçün lazım olan bütün kitabxanaları daxil etdim. Python dəftərinin ikinci hüceyrəsində (Şəkil #2) Veri toplama yollarını təyin edirəm və nümunə sayını çap edirəm. İndi bütün şəkilləri bir qarışıq diziyə yükləməliyik, buna görə də üçüncü hücrədə (Şəkil #2) 82 (əl nümunəsi sayı) +75 (əl olmayan nümunə sayı) yəni 157x100x100x3 olan bir qarışıq sıra yaratdım. 157, sahib olduğum şəkillərin ümumi sayıdır, 100x100 bizim ölçüsünü dəyişmiş görüntü ölçülərimizdir və 3 şəkildəki qırmızı, yaşıl və mavi rəngli təbəqələr üçündür.
Dördüncü və beşinci hücrədə əlləri olan şəkilləri yükləyirik, ardınca numpy massivində əlləri olmayan şəkilləri yükləyirik. Altıncı hücrədə, hər bir dəyəri 255 -ə bölürük, buna görə də dəyər aralığını 0 ilə 1 arasında məhdudlaşdırırıq (Şəkil #3)
Əlavə edilmiş şəkillər kifayət qədər yaxşı olmadıqda üzr istəyirəm. Koda baxmağınız üçün GITHUB anbarına keçid var. Dizin yolu adlarını yolunuzla əvəz etməyi unutmayın:).
Birlikdə hərəkət edir.
Sonra hər bir görüntünü etiketləməliyik, buna görə uzunluğu 157 olan bir ölçülü numpy sıra yaradırıq. İlk 82 giriş 1 -ə, qalan 75 giriş isə ilk 82 şəkil bir sinifdən, qalan sinif digərindən olan 0 ötürücü sinir şəbəkəsinə qurulub. (Şəkil #4)
İndi neyron şəbəkə yaradaq.
Addım 7: Sinir Şəbəkəsi
![Sinir Şəbəkəsi Sinir Şəbəkəsi](https://i.howwhatproduce.com/images/002/image-3672-125-j.webp)
![Sinir Şəbəkəsi Sinir Şəbəkəsi](https://i.howwhatproduce.com/images/002/image-3672-126-j.webp)
Doqquzuncu hüceyrədə neyron şəbəkəmizi təyin edirik. Üç təkrarlama qatının ardıcıl olaraq 8, 12 və 16 bükülmə filtrləri olan maxpool qatlarını ehtiva edir. Bunun ardınca iki sıx sinir şəbəkəsinə sahibik. Bu addım üçün iki şəkil əlavə edin. Birincisi, sinir şəbəkəsi yaradan bir kod parçası, ikincisi, çıxış ölçüsü və əməliyyatları ilə birlikdə sinir şəbəkəsinin şəkil təsviridir.
Addım 8: Sinir Şəbəkəsinin Təlimi
![Təlim Neyron Şəbəkəsi Təlim Neyron Şəbəkəsi](https://i.howwhatproduce.com/images/002/image-3672-127-j.webp)
Onuncu hüceyrədə sinir şəbəkəsi optimallaşdırıcısını 'adam' və zərər funksiyasını 'binary_crossentropy' olaraq konfiqurasiya edirik. Şəbəkə çəkilərinin necə yenilənməsində böyük rol oynayırlar. Nəhayət, on birinci hüceyrəni işlədikdə, sinir şəbəkəsi məşq etməyə başlayır. Şəbəkə məşq edərkən zərər funksiyasına baxın və azaldığından əmin olun.
Addım 9: Sinir Şəbəkəsinin Testi
![Sinir Şəbəkəsinin Testi Sinir Şəbəkəsinin Testi](https://i.howwhatproduce.com/images/002/image-3672-128-j.webp)
Sinir şəbəkəsi öyrədildikdən sonra test məlumat dəstini hazırlamalıyıq. Test dəsti yaratmaq üçün test məlumatları üzrə 3 -cü, 4 -cü, 5 -ci və 6 -cı hüceyrələrdə təlim dəsti hazırlamaq üçün edilən proseduru təkrar edirik. Test dəsti üçün etiket də hazırlayırıq, ancaq bu dəfə proqnozlar almaq və məşq etməmək üçün bu məlumat dəsti üzərində model işə salırıq.
Addım 10: Nəticə və Növbəti Bölmə …
![Nəticə və Növbəti Bölmə … Nəticə və Növbəti Bölmə …](https://i.howwhatproduce.com/images/002/image-3672-129-j.webp)
Test dəqiqliyi 88% -ə çatdı, amma bu modeli öyrətmək və sınamaq üçün istifadə olunan məlumat dəsti çox kiçik olduğundan və bu modeli düzgün şəkildə öyrətmək üçün qeyri -adekvat olduğu üçün bunu bir çimdik duzla götürün.
Hər halda, ümid edirəm bu məqalədən zövq aldınız. Bu məşqin arxasındakı niyyətim hələ tam deyil və ikinci hissəyə diqqət yetirin. Bacardığım qədər yükləyəcəyəm.
Növbəti hissədə, əlimizin yerini əllə aşkarlanan bir görüntü ilə izah edəcək başqa bir sinir şəbəkəsi hazırlayacağıq.
Bütün sorğular qəbul olunur.
Kiçik məlumatlarımdan istifadə etmək istəyən varsa şərhlərdə mənə bildirin. Mən bunu əlçatan edəcəyəm.
Oxuduğunuz üçün təşəkkürlər. Tezliklə ikinci hissə ilə görüşəcəyəm, o vaxta qədər niyə neyron şəbəkəsi yaratmırsan və öyrətmirsən.
Düzenle:- Növbəti addımlar ikinci hissəyə aiddir.
Addım 11: Obyekt Algılama
![Obyekt Algılama Obyekt Algılama](https://i.howwhatproduce.com/images/002/image-3672-130-j.webp)
Əvvəlki addımlarda, test görüntüsünün əlində olub olmadığını bizə bildirən bir NN yaratdıq. Yaxşı, sonra nə? NN, şəkli əl kimi təsnif edərsə, əlin yerini bilmək istərdik. Buna kompüter görmə ədəbiyyatında obyekt aşkarlama deyilir. Gəlin NN -ni eyni şəkildə işlədən məşq edək.
Addım 12: Video
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-132-j.webp)
![](https://i.ytimg.com/vi/i4iCdwSUSU4/hqdefault.jpg)
Qalan bütün addımları izah edən 3 dəqiqəlik video. Bax.
Addım 13: Etiketləmə
![Etiketləmə Etiketləmə](https://i.howwhatproduce.com/images/002/image-3672-133-j.webp)
![Etiketləmə Etiketləmə](https://i.howwhatproduce.com/images/002/image-3672-134-j.webp)
![Etiketləmə Etiketləmə](https://i.howwhatproduce.com/images/002/image-3672-135-j.webp)
Bir sinir şəbəkəsinin əlin yerini çıxarmasını istəyirsinizsə, hər bir görüntünün əllə və ya əlsiz olaraq etiketləndiyi əvvəlki sinir şəbəkəsindən fərqli olaraq, bu şəkildə öyrətməliyik. Bu dəfə əl ilə olan bütün şəkillər, həmin görüntüdə ətrafdakı sərhəd qutusunun diaqonal koordinatlarına uyğun dörd etiketə sahib olacaq.
CSV faylının əlavə edilmiş şəkli hər bir şəkil üçün etiketdən ibarətdir. Unutmayın ki, koordinatlar görüntü ölçüsü ilə normallaşdırılır, yəni yuxarı X koordinatı 640 piksel enində 320 -ci pikseldirsə, onu 0,5 olaraq etiketləyəcəyik.
Addım 14: GUI etiketlənməsi
![GUI etiketlənməsi GUI etiketlənməsi](https://i.howwhatproduce.com/images/002/image-3672-136-j.webp)
![GUI etiketlənməsi GUI etiketlənməsi](https://i.howwhatproduce.com/images/002/image-3672-137-j.webp)
![GUI etiketlənməsi GUI etiketlənməsi](https://i.howwhatproduce.com/images/002/image-3672-138-j.webp)
![GUI etiketlənməsi GUI etiketlənməsi](https://i.howwhatproduce.com/images/002/image-3672-139-j.webp)
82 görüntünün hamısını necə etiketləyə bildiyimi düşünürsünüz, bu işdə mənə kömək edən pythonda bir GUI yazdım. Şəkil GUI -yə yükləndikdən sonra. Əlimizdəki ehtimal olunan məhdudlaşdırma qutusunun yuxarı koordinatında sol klik və aşağı koordinatında sağ vurun. Bu koordinatlar sonrakı faylı yükləmək üçün növbəti düyməni basdığım bir fayla yazılır. Bütün 82 qatar və 4 test şəkli üçün bu proseduru təkrarladım. Etiketlər hazır olduqdan sonra məşq zamanı idi.
Addım 15: Kitabxanalara ehtiyac var
![Kitabxanalara Ehtiyac Var Kitabxanalara Ehtiyac Var](https://i.howwhatproduce.com/images/002/image-3672-140-j.webp)
![Kitabxanalara Ehtiyac Var Kitabxanalara Ehtiyac Var](https://i.howwhatproduce.com/images/002/image-3672-141-j.webp)
![Kitabxanalara Ehtiyac Var Kitabxanalara Ehtiyac Var](https://i.howwhatproduce.com/images/002/image-3672-142-j.webp)
Əvvəlcə bütün lazımi kitabxanaları yükləməliyik. Hansı daxildir
- Şəkil manipulyasiyası üçün PIL,
- plan qurmaq üçün matplotlib,
- matris əməliyyat üçün numpy,
- Əməliyyat sistemindən asılı funksiyalar üçün os və
- sinir şəbəkəsi üçün keras.
Addım 16: Qalan hüceyrələr
![Qalan Hüceyrələr Qalan Hüceyrələr](https://i.howwhatproduce.com/images/002/image-3672-143-j.webp)
![Qalan Hüceyrələr Qalan Hüceyrələr](https://i.howwhatproduce.com/images/002/image-3672-144-j.webp)
![Qalan Hüceyrələr Qalan Hüceyrələr](https://i.howwhatproduce.com/images/002/image-3672-145-j.webp)
![Qalan Hüceyrələr Qalan Hüceyrələr](https://i.howwhatproduce.com/images/002/image-3672-146-j.webp)
2 -ci, 3 -cü, 4 -cü və 5 -ci hüceyrələrdə şəkilləri numpy massivinə yükləyirik və etiket kimi çıxış etmək üçün csv faylından dörd ölçülü bir sıra yaradırıq. 6 nömrəli hüceyrədə neyron şəbəkəmizi yaradırıq. Arxitekturası 1 deyil, 4 olan çıxış qat ölçüsü istisna olmaqla, təsnifat üçün istifadə olunan sinir şəbəkəsi ilə eynidir. 8 nömrəli hüceyrədə, sinir şəbəkəmizin təliminə başlayırıq, bir dəfə təlim keçdikdən sonra bu modeli test dəsti üzərində işlədim, məhdudlaşdırıcı qutunun üst -üstə qoyulan koordinatları ilə bağlı proqnozlar almaq üçün olduqca dəqiq görünürdülər.
Oxuduğunuz üçün təşəkkürlər.
Tövsiyə:
Python, Electron və Keras istifadə edərək Sinir Şəbəkəsi ilə Güclü Planetarium: 8 Addım
![Python, Electron və Keras istifadə edərək Sinir Şəbəkəsi ilə Güclü Planetarium: 8 Addım Python, Electron və Keras istifadə edərək Sinir Şəbəkəsi ilə Güclü Planetarium: 8 Addım](https://i.howwhatproduce.com/images/007/image-18238-j.webp)
Python, Electron və Keras istifadə edərək Sinir Şəbəkəsi ilə Güclü Planetarium: Bu təlimatda, Python və Electrondan istifadə edərək avtomatik olaraq 3D planetariyum generatorunu necə yazdığımı göstərəcəyəm. Yuxarıdakı video proqramın təsadüfi planetarilərdən birini göstərir. ** Qeyd: Bu proqram heç bir şəkildə mükəmməl deyil və bir yerdə
Arduino: Sinir bozucu Multiplayer Art Car: 13 addım
![Arduino: Sinir bozucu Multiplayer Art Car: 13 addım Arduino: Sinir bozucu Multiplayer Art Car: 13 addım](https://i.howwhatproduce.com/images/002/image-3531-70-j.webp)
Arduino: Sinir bozucu Çox Oyunçu İncəsənət Maşını: bluetooth-u ağıllı telefonlarla təmin etmək üçün ən yaxşı avtomobillərdən biridir. Optioneel, hər şeydən əvvəl, ən yaxşı xidmətdir
Beyin Qutu: Zamanla Sinir Həcminin İzlənməsi: 20 addım
![Beyin Qutu: Zamanla Sinir Həcminin İzlənməsi: 20 addım Beyin Qutu: Zamanla Sinir Həcminin İzlənməsi: 20 addım](https://i.howwhatproduce.com/images/002/image-4750-90-j.webp)
Beyin Kutusu: Zamanla Sinir Həcminin İzlənməsi: Uzun insan ömrünün sərhədinə doğru irəliləmək, mədəniyyətlər tərəfindən bizimkilərdən əvvəl görülməyən xəstəliklərin artmasına səbəb oldu. Bunlardan Alzheimer, 2017 -ci ildə təxminən 5.3 milyon yaşayan yaşlı Amerikalıdan və ya təxminən hər 10 -dan 1 -dən təsirləndi
Arduino: (sinir bozucu) mini oyunlar dəsti: 4 addım
![Arduino: (sinir bozucu) mini oyunlar dəsti: 4 addım Arduino: (sinir bozucu) mini oyunlar dəsti: 4 addım](https://i.howwhatproduce.com/images/003/image-7576-23-j.webp)
Arduino: (Sinir bozucu) Mini Oyunlar Kiti: (Bu Arduino üçün möhtəşəm korpus ^) Başlamazdan əvvəl: səylərimə baxmayaraq, uh … vaxt və bədbəxtlik üzündən cihazı tamamilə bitirə bilmədim. Arduino hissələrim somda işləməyi dayandırmağın yaxşı bir fikir olduğunu düşündükdə daha da yaxşı oldu
Arduino Sinir Şəbəkəsi Robotu: 21 Adım (Şəkillərlə birlikdə)
![Arduino Sinir Şəbəkəsi Robotu: 21 Adım (Şəkillərlə birlikdə) Arduino Sinir Şəbəkəsi Robotu: 21 Adım (Şəkillərlə birlikdə)](https://i.howwhatproduce.com/images/001/image-1878-92-j.webp)
Arduino Sinir Şəbəkəsi Robotu: Bu təlimat, öz YouTube Arduino neyron şəbəkə robotunuzun prototipini, dizaynını, montajını və proqramını tam olaraq göstərən YouTube Kanalı üçün hazırladığım 3 hissədən ibarət bir seriyaya əsaslanır. Tam seriyanı izlədikdən sonra bette olmalısınız