
Სარჩევი:
- ნაბიჯი 1: ვიდეო
- ნაბიჯი 2: აპარატურა
- ნაბიჯი 3: კოდის ნაჭერი
- ნაბიჯი 4: სურათების მიღება
- ნაბიჯი 5: გამოყენებული ინსტრუმენტები და ენა
- ნაბიჯი 6: მონაცემთა ნაკრების მომზადება ტრენინგისთვის
- ნაბიჯი 7: ნერვული ქსელი
- ნაბიჯი 8: ნერვული ქსელის სწავლება
- ნაბიჯი 9: ნერვული ქსელის ტესტირება
- ნაბიჯი 10: შედეგი და შემდეგი ნაწილი…
- ნაბიჯი 11: ობიექტის გამოვლენა
- ნაბიჯი 12: ვიდეო
- ნაბიჯი 13: მარკირება
- ნაბიჯი 14: მარკირება GUI
- ნაბიჯი 15: საჭიროა ბიბლიოთეკები
- ნაბიჯი 16: დარჩენილი უჯრედები
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50



რამდენიმე დღის წინ, სავარჯიშო დარბაზში მარჯვენა ხელი მაჯის დაზიანებით მივიღე. ამის შემდეგ, ყოველ ჯერზე, როდესაც ვიყენებდი კომპიუტერის მაუსს, ამან გამოიწვია ბევრი ტკივილი მაჯის მკვეთრი კუთხის გამო.
სწორედ მაშინ მოხვდა ჩემში "კარგი არ იქნება თუ ჩვენ შევძლებთ ნებისმიერი ზედაპირის ტრაკპედზე გადაყვანას" და არ ვიცი რატომ მაგრამ რატომღაც ვიფიქრე მასზე, ფილმი HER, მე მოგცემთ ბიჭებს გაერკვნენ გარეთ ეს იყო ამაღელვებელი აზრი, მაგრამ არ ვიცოდი თუ შევძლებდი ამას, გადავწყვიტე.
ეს სტატია ასახავს იმას, რაც გამოვიდა.
სანამ დავიწყებ, მე მაქვს პასუხისმგებლობის შეზღუდვა-
ამ სტატიის ბოლოს, მე ვერ შევძელი ზედაპირის გადაკეთება ტრეკპად, მაგრამ ბევრი არ ვისწავლე და დიდი იარაღები დავამატე ჩემს არსენალს. იმედი მაქვს, რომ შენც ასე მოხდება '
Დავიწყოთ.
ნაბიჯი 1: ვიდეო


აქ არის პატარა 5 წუთიანი ვიდეო, რომელიც მოიცავს ყველა ნაბიჯს. Შეხედე.
ნაბიჯი 2: აპარატურა

მე დავაყენე ჟოლოს პი ერთად ჟოლოს პი კამერა სიმაღლეზე დაახლოებით 45 სმ. ეს გვაძლევს მონიტორინგის არეს დაახლოებით 25x25 სმ კამერის ქვეშ.
ჟოლოს პი და ჟოლოს პი კამერა ადვილად ხელმისაწვდომია, უბრალოდ google- ში და უნდა შეძლოთ ადგილობრივი მაღაზიის პოვნა.
გადახედე ამ ბმულს ან ჩემს ერთ ჟოლოს პი სიას, რომ გააქტიურო შენი თავი.
ამ დაყენების შემდეგ, ჩვენ გვჭირდება კოდის ნაწილი, რომელიც გადაწყვეტს არის თუ არა ხელი იმ მხარეში, რომელსაც კამერა აკონტროლებს და თუ არის სად არის.
ნაბიჯი 3: კოდის ნაჭერი


კოდის ნაწილი, რომელიც გვაძლევს გადაწყვეტილებას, არის თუ არა ხელი ინტერესის სფეროში, იყენებს რაღაცას, რომელსაც ეწოდება ნერვული ქსელი. ისინი მიეკუთვნებიან პროგრამირების კატეგორიას, სადაც ჩვენ არ განვსაზღვრავთ გადაწყვეტილების მიღების წესებს, მაგრამ ჩვენ ვაჩვენებთ ნერვულ ქსელს საკმარის მონაცემებს, რომ ის თავად ადგენს წესებს.
ჩვენს შემთხვევაში, იმისდა მიხედვით, თუ როგორ გამოიყურება ხელი, ჩვენ ვაჩვენებთ ჟოლოს პიდან აღებული ნერვული ქსელის სურათებს, რომელიც შეიცავს ხელს და რომელიც არ შეიცავს ხელს. ამ ფაზას ეწოდება ნერვული ქსელის სწავლება, ხოლო გამოყენებულ სურათებს - სასწავლო მონაცემთა ნაკრები.
ნაბიჯი 4: სურათების მიღება

მე დისტანციურად შევედი ჩემს ჟოლოს პიში და გადავიღე რამოდენიმე სურათი შემდეგი ბრძანების გამოყენებით.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame%04d.jpg
გადავიღე 80 სურათი ხელით და 80 სურათი, რომელიც არ შეიცავს ხელს. 160 სურათი არ არის საკმარისი ნერვული ქსელის სათანადოდ მომზადებისთვის, მაგრამ საკმარისი უნდა იყოს კონცეფციის დასამტკიცებლად.
160 სურათის გარდა, მე კიდევ 20 სურათი გადავიღე, რომ ჩვენი ქსელი გაწვრთნილიყო.
მას შემდეგ, რაც მონაცემთა ნაკრები მზად იყო, დავიწყე ნერვული ქსელის კოდის წერა.
ნაბიჯი 5: გამოყენებული ინსტრუმენტები და ენა


მე დავწერე ჩემი ნერვული ქსელი პითონის ღრმა სწავლების ბიბლიოთეკაში, სახელწოდებით კერასი და კოდი დაწერილია ანაკონდას ნავიგატორის იუპიტერის ბლოკნოტზე.
ნაბიჯი 6: მონაცემთა ნაკრების მომზადება ტრენინგისთვის




პირველი (სურათი #1) მე შევიტანე ამ პროექტისათვის საჭირო ყველა ბიბლიოთეკა, რომელიც მოიცავს PIL, matplotlib, numpy, os და Keras. პითონის რვეულის მეორე უჯრედში (სურათი #2) მე ვადგენ მონაცემთა ნაკრების გზებს და ვბეჭდავ ნიმუშის რაოდენობას. ახლა ჩვენ უნდა ჩავტვირთოთ ყველა სურათი დაბუჟებულ მასივში, შესაბამისად მესამე უჯრედში (სურათი #2) მე შევქმენი numpy მასივი 82 (ხელის ნიმუშის რაოდენობა) +75 (არა ხელის ნიმუშის რაოდენობა) ანუ 157x100x100x3. 157 არის სურათების მთლიანი რაოდენობა, რაც მე მაქვს, 100x100 არის ჩვენი ზომის გამოსახულების განზომილება და 3 გამოსახულია წითელი, მწვანე და ლურჯი ფერის ფენებისთვის.
მეოთხე და მეხუთე უჯრედში ჩვენ ვტვირთავთ სურათებს, რომლებიც შეიცავს ხელებს, რასაც მოყვება სურათები, რომლებიც არ შეიცავს ხელს მობუზულ მასივში. მეექვსე უჯრედში, ჩვენ ვყოფთ თითოეულ მნიშვნელობას 255 -ზე, რაც ზღუდავს მნიშვნელობის დიაპაზონს 0 -დან 1 -მდე (სურათი #3)
ბოდიშს ვიხდი თუ თანდართული სურათები არ არის საკმარისად კარგი. აქ არის ბმული GITHUB საცავში, რომ ნახოთ კოდი. არ დაგავიწყდეთ დირექტორია ბილიკების სახელების შეცვლა თქვენი ბილიკით:).
მოძრაობს თან.
შემდეგი ჩვენ უნდა დავნიშნოთ თითოეული სურათი, ასე რომ, ჩვენ ვქმნით ერთ განზომილებიან numpy მასივს 157 სიგრძით. პირველი 82 ჩანაწერი დაყენებულია 1 -ზე და დანარჩენი 75 ჩანაწერი არის 0 -ზე გადაცემის ნერვული ქსელი, რომლითაც პირველი 82 სურათი არის ერთი კლასიდან და დანარჩენი არის მეორედან. (სურათი #4)
ახლა მოდით შევქმნათ ნერვული ქსელი.
ნაბიჯი 7: ნერვული ქსელი


მეცხრე უჯრედში ჩვენ განვსაზღვრავთ ჩვენს ნერვულ ქსელს. იგი შეიცავს კონვოლუციის ფენის სამ გამეორებას, რასაც მოჰყვება მაქსპულის ფენები, შესაბამისად 8, 12 და 16 კონვოლუციის ფილტრით. ამის შემდეგ ჩვენ გვაქვს ორი მკვრივი ნერვული ბადე. მიამაგრეთ ორი სურათი ამ ნაბიჯისათვის. პირველი არის კოდის ამობეჭდვა, რომელიც ქმნის ნერვულ ქსელს და მეორე არის ნერვული ქსელის ხატოვანი წარმოდგენა გამომავალი განზომილებით და ანოტირებული ოპერაციებით.
ნაბიჯი 8: ნერვული ქსელის სწავლება

მეათე უჯრედში ჩვენ ვაკონფიგურირებთ ნერვული ქსელის ოპტიმიზატორს "ადამის" და დაკარგვის ფუნქციას "ორობითი_კროსენტროპიის". ისინი დიდ როლს თამაშობენ ქსელის წონის განახლების პროცესში. ბოლოს, როდესაც ჩვენ მეთერთმეტე უჯრედს ვუშვებთ, ნერვული ქსელი იწყებს ვარჯიშს. სანამ ქსელი ვარჯიშობს, შეხედეთ დაკარგვის ფუნქციას და დარწმუნდით, რომ ის მცირდება.
ნაბიჯი 9: ნერვული ქსელის ტესტირება

მას შემდეგ რაც ნერვული ქსელი გაწვრთნილი იქნება, ჩვენ უნდა მოვამზადოთ ტესტის მონაცემთა ნაკრები. ჩვენ ვიმეორებთ მე –3, მე –4, მე –5 და მე –6 უჯრედებში ტრენინგის კომპლექტის მომზადების პროცედურას ტესტის მონაცემებზე ტესტის ნაკრების შესაქმნელად. ჩვენ ასევე ვამზადებთ ლეიბლს ტესტის ნაკრებისთვის, მაგრამ ამჯერად ჩვენ ვაყენებთ მოდელს ამ მონაცემთა ნაკრებზე პროგნოზების მისაღებად და არა ვარჯიშისთვის.
ნაბიჯი 10: შედეგი და შემდეგი ნაწილი…

მე მივიღე ტესტის სიზუსტე 88% მაგრამ მივიღე ეს მარილის მარილით, რადგან მონაცემთა ნაკრები, რომელიც გამოიყენება ამ მოდელის მოსამზადებლად და შესამოწმებლად, ძალიან ძალიან მცირეა და არაადეკვატურია ამ მოდელის სათანადოდ მომზადებისთვის.
ყოველ შემთხვევაში, იმედი მაქვს, რომ მოგეწონათ ეს სტატია. ამ ვარჯიშის უკან ჩემი განზრახვა ჯერ არ დასრულებულა და ფრთხილად იყავით მე -2 ნაწილზე. როგორც კი შევძლებ ავტვირთავ.
შემდეგ ნაწილში ჩვენ მოვამზადებთ სხვა ნერვულ ქსელს, რომელიც გვეტყვის ხელის ადგილმდებარეობას ხელით გამოვლენილ სურათში.
ყველა შეკითხვა მისასალმებელია.
თუ ვინმე დაინტერესებულია ჩემი პატარა მონაცემთა ნაკრების გამოყენებით, შემატყობინეთ კომენტარებში. გავცემ მას ხელმისაწვდომს.
Მადლობა წაკითხვისთვის. მალე გნახავ მეორე ნაწილით მანამდე რატომ არ ქმნი და არ ავარჯიშებ ნერვულ ქსელს.
შესწორება:- შემდეგი ნაბიჯები არის მეორე ნაწილისთვის.
ნაბიჯი 11: ობიექტის გამოვლენა

წინა ნაბიჯებში ჩვენ შევქმენით NN, რომელიც გვეუბნება, შეიცავს თუ არა ტესტის სურათი ხელს. კარგი რა შემდეგ? თუ NN გამოსახულებას კლასიფიცირებს როგორც ხელის შემცველს, ჩვენ გვსურს ვიცოდეთ ხელის მდებარეობა. ამას ეწოდება ობიექტის გამოვლენა კომპიუტერული ხედვის ლიტერატურაში. მოდით მოვამზადოთ NN, რომელიც ზუსტად იგივეს აკეთებს.
ნაბიჯი 12: ვიდეო


3 წუთიანი ვიდეო, რომელიც ხსნის ყველა დანარჩენ ნაბიჯს. Შეხედე.
ნაბიჯი 13: მარკირება



თუ გსურთ, რომ ნერვულმა ქსელმა გამოავლინოს ხელის მდებარეობა, ჩვენ უნდა გავავარჯიშოთ ის ისეთი ფორმით, როგორიც არის წინა ნერვული ქსელისგან განსხვავებით, სადაც თითოეული სურათი ეტიკეტირებული იყო როგორც ხელით, ისე ხელით. ამჯერად ყველა სურათს ხელით ექნება ოთხი ეტიკეტი, რომელიც შეესაბამება ამ სურათზე ხელის შემოსაზღვრული ყუთის დიაგონალურ კოორდინატებს.
Csv ფაილის თანდართული სურათი შეიცავს ეტიკეტს თითოეული სურათისთვის. გთხოვთ გაითვალისწინოთ, რომ კოორდინატები ნორმალიზდება გამოსახულების განზომილებით, ანუ თუ ზედა X კოორდინატი არის სურათზე 320 -ე პიქსელზე, რომლის სიგანე 640 პიქსელია, ჩვენ მას 0.5 -ს შევაფასებთ.
ნაბიჯი 14: მარკირება GUI




თქვენ ალბათ გაინტერესებთ როგორ მოვახერხე ყველა 82 სურათის ეტიკეტირება, მე დავწერე GUI პითონში, რომელიც დამეხმარა ამ ამოცანის შესრულებაში. მას შემდეგ, რაც სურათი დატვირთულია GUI– ში. მარცხენა დაწკაპუნება ზედა კოორდინატზე და მარჯვენა ღილაკი ქვედა კოორდინატზე სავარაუდო შემოსაზღვრული ყუთის გარშემო. ეს კოორდინატები შემდეგ იწერება ფაილში, რის შემდეგაც მე დააჭირეთ შემდეგ ღილაკს შემდეგი სურათის ჩასატვირთად. ეს პროცედურა გავიმეორე 82 მატარებლისა და 4 საცდელი სურათისთვის. როდესაც ლეიბლები მზად იყო, ვარჯიშის დრო იყო.
ნაბიჯი 15: საჭიროა ბიბლიოთეკები



პირველ რიგში, ჩვენ უნდა ჩავტვირთოთ ყველა საჭირო ბიბლიოთეკა. Რომელიც შეიცავს
- PIL გამოსახულების მანიპულირებისთვის,
- matplotlib შეთქმულებისათვის,
- numpy for matrix ოპერაცია,
- OS ოპერაციული სისტემაზე დამოკიდებული ფუნქციონირებისთვის და
- კერა ნერვული ქსელისთვის.
ნაბიჯი 16: დარჩენილი უჯრედები




მე -2, მე -3, მე -4 და მე -5 უჯრედში ჩვენ ჩავტვირთავთ სურათებს numpy მასივში და ვქმნით ოთხგანზომილებიან მასივს csv ფაილიდან, რომ ვიმოქმედოთ როგორც ლეიბლები. მე –6 უჯრედში ჩვენ ვქმნით ჩვენს ნერვულ ქსელს. მისი არქიტექტურა კლასიფიკაციისათვის გამოყენებული ნერვული ქსელის იდენტურია, გარდა გამომავალი ფენის განზომილებისა, რომელიც არის 4 და არა 1. სხვაობა მოდის დაკარგვის ფუნქციასთან, რაც ნიშნავს საშუალო კვადრატულ შეცდომას. მე –8 უჯრედში ჩვენ ვიწყებთ ტრენინგს ჩვენი ნერვული ქსელის შემდეგ, როცა გავწვრთნე, მე ეს მოდელი გამოვიყენე საცდელ ჯგუფში, რათა მივიღო პროგნოზები, რომ შემოსაზღვრული ყუთი შემოსაზღვრული ყუთის კოორდინატებზე საკმაოდ ზუსტი ჩანდა.
Მადლობა წაკითხვისთვის.
გირჩევთ:
ნერვული ქსელი პლანეტარიუმის გამოყენებით პითონის, ელექტრონისა და კერასის გამოყენებით: 8 ნაბიჯი

ნერვული ქსელის პლანეტარიუმი პითონის, ელექტრონისა და კერასის გამოყენებით: ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ როგორ დავწერე ავტომატური 3D პლანეტარიუმის გენერატორი პითონისა და ელექტრონის გამოყენებით. ზემოთ მოყვანილი ვიდეო აჩვენებს პროგრამის გენერირებულ ერთ – ერთ შემთხვევით პლანეტარიუმს. ** შენიშვნა: ეს პროგრამა არავითარ შემთხვევაში არ არის სრულყოფილი და ზოგიერთ ადგილას
ატრიალე შენი ხელი OWI რობოტული მკლავის გასაკონტროლებლად სიმები არ არის მიმაგრებული: 10 ნაბიჯი (სურათებით)

გაანათეთ ხელი OWI რობოტული მკლავის გასაკონტროლებლად … სიმები არ არის მიმაგრებული: IDEA: Instructables.com– ზე არის მინიმუმ 4 სხვა პროექტი (2015 წლის 13 მაისის მდგომარეობით) OWI Robotic Arm– ის შეცვლის ან კონტროლის გარშემო. გასაკვირი არ არის, ვინაიდან ეს ისეთი დიდი და იაფი რობოტული ნაკრებია, რომ ითამაშოთ. ეს პროექტი მსგავსია
აკონტროლეთ რობოტიზირებული ხელი Zio მოდულებით ნაწილი 1: 8 ნაბიჯი

აკონტროლეთ რობოტული მკლავი Zio მოდულებით ნაწილი 1: ეს ბლოგი არის Zio Robotics სერიის ნაწილი. შესავალი ამ გაკვეთილში ჩვენ ავაშენებთ პროექტს, სადაც ჩვენ გამოვიყენებთ Zio მოდულებს რობოტული მკლავის გასაკონტროლებლად. ეს პროექტი გასწავლით თუ როგორ გახადოთ თქვენი Robotic Arm claw გახსნა და დახურვა. ეს ნ
Arduino ნერვული ქსელის რობოტი: 21 ნაბიჯი (სურათებით)

Arduino ნერვული ქსელის რობოტი: ეს ინსტრუქცია დაფუძნებულია მე –3 ნაწილის სერიაზე, რომელიც მე გავაკეთე Make YouTube Channel– ისთვის, რომელიც გიჩვენებთ ზუსტად როგორ უნდა შექმნათ პროტოტიპი, შეიმუშაოთ და დააპროგრამოთ თქვენი საკუთარი Arduino ნერვული ქსელის რობოტი. სრული სერიის ყურების შემდეგ, თქვენ უნდა გქონდეთ უკეთესი
მესამე ხელი ++: მრავალმხრივი დახმარების ხელი ელექტრონიკისა და სხვა დელიკატური სამუშაოსთვის .: 14 ნაბიჯი (სურათებით)

მესამე ხელი ++: მრავალმხრივი დამხმარე ხელი ელექტრონიკისა და სხვა დელიკატური სამუშაოსთვის: წარსულში მე გამოვიყენე მესამე ხელები/დამხმარე ხელები, რომლებიც ხელმისაწვდომია ელექტრონული ტექნიკის მაღაზიებში და იმედგაცრუებული ვარ მათი გამოყენებადობით. მე ვერასოდეს ვიღებ კლიპებს ზუსტად იქ, სადაც მინდოდა ან დასჭირდა იმაზე მეტი დრო, ვიდრე რეალურად უნდა დაყენებულიყო