![Raspberry Pi obyektlərinin sayılması: 5 addım Raspberry Pi obyektlərinin sayılması: 5 addım](https://i.howwhatproduce.com/images/004/image-10876-28-j.webp)
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
![Raspberry Pi Obyekt Sayılması Raspberry Pi Obyekt Sayılması](https://i.howwhatproduce.com/images/004/image-10876-29-j.webp)
Kompüter görmə qabiliyyəti, şübhəsiz ki, fantastik bir şeydir! Bunu istifadə edərək, bir kompüter, ətrafdakıları daha yaxşı görmək və hiss etmək qabiliyyətini qazanır, bu da kompleks, faydalı və sərin tətbiqlərin inkişafına imkan verir. Kompüter görmə inkişafları sayəsində üz tanıma və tanıma, obyekt izləmə və obyekt aşkarlama kimi tətbiqlər gündəlik fəaliyyətlərimizdə getdikcə daha çox mövcuddur.
Kompüter görmə çərçivələri və vasitələrinin nə qədər inkişaf etmiş və əlçatan olduğunu nəzərə alsaq, bu yazıda təsvir olunan tətbiq yaxşı uyğun gəlir: hərəkətdə olan obyektləri saymaq üçün sadə bir Raspberry PI və OpenCV adlı pulsuz və açıq mənbəli bir kompüter görmə çərçivəsindən istifadə etməklə, daha doğrusu nə qədər obyektlər müəyyən bir nəzarət zonasına girir və çıxır.
Addım 1: Dərinləşmək: Bir görüntü axınında cisimlərin hərəkəti necə aşkar edilə bilər?
![Dərinləşmək: Bir görüntü axınında cisimlərin hərəkəti necə aşkar edilə bilər? Dərinləşmək: Bir görüntü axınında cisimlərin hərəkəti necə aşkar edilə bilər?](https://i.howwhatproduce.com/images/004/image-10876-30-j.webp)
İndi görüntü işləmə mövzusunda daha dərindən öyrənməyin vaxtı gəldi:
bəzi web kamerası axın şəkillərini necə əldə etmək və oraya bir şeyin köçdüyünü aşkar etmək
Beş addımdan ibarətdir:
Addım 1: Hərəkətdə olan obyekti vurğulamaq
Klassik fizikada müəyyən edildiyi kimi, bir şeyin hərəkət etdiyini və ya yerində dayandığını anlamaq üçün bir istinad lazımdır. Burada bir şeyin hərəkət etdiyini müəyyən etmək, demək olar ki, eynidir: hər bir veb kamerası axını çəkilən çərçivə bir istinad çərçivəsi ilə müqayisə ediləcəkdir. Fərqli bir şey varsa, bir şey köçürüldü. Göründüyü kimi sadədir.
Bu istinad çərçivəsi ən mükəmməl şəraitdə çəkilməlidir (məsələn, heç bir şey hərəkət etmir). Şəkil işləmə dünyasında, çəkilmiş bir çərçivə ilə istinad çərçivəsi arasındakı bu müqayisə, fon çıxma adlanan bir texnikadan ibarətdir. Arxa plana çıxma, çəkilmiş çərçivədən və istinad çərçivəsindən pikseldən-pikselə qədər rəngli məlumatları hərfi şəkildə çıxarmaqdan ibarətdir. Beləliklə, bu prosesdən əldə edilən görüntü, yalnız bu iki çərçivə arasındakı fərqi (və ya hərəkət edən / hərəkət edənləri) daha ətraflı şəkildə göstərəcək / göstərəcək və hər şey görüntüdə qara olacaq (bozdakı sıfır dəyərinin rəngi) -ölçülü piksel). Vacibdir: işıqlandırma kondisionerləri və çəkilən veb kamera görüntüsünün keyfiyyəti (çəkmə sensorlarının keyfiyyəti səbəbindən) çərçivədən çərçivəyə qədər cüzi dəyişə bilər. İstinad çərçivəsindən və digər çərçivələrdən "bərabər hissələrin" fon çıxarıldıqdan sonra tamamilə qara olmayacağını nəzərdə tutur. Bu davranışa baxmayaraq, bu layihədə sonrakı addımlarda görüntü işlənməsində heç bir ciddi nəticə yoxdur.
Şəkil işləmə müddətini minimuma endirmək üçün arxa plana çıxmadan əvvəl çəkilmiş çərçivə və istinad çərçivəsi boz rəngli görüntüyə çevrilir. Bəs niyə? Bu hesablama səmərəliliyi məsələsidir: birdən çox rəng təqdim edən bir görüntü (rəngli şəkil) piksel başına üç məlumat verir: Qırmızı, Mavi və Yaşıl rəng komponentləri (köhnə, lakin qızıl RGB standartı). Beləliklə, riyazi olaraq, hər piksel bir rəng komponentini təmsil edən üç dəyərli bir sıra olaraq təyin edilə bilər. Buna görə də, bütün görüntüyə qədər uzadaraq, son görüntü əslində üç görüntü komponentinin qarışığı olacaq: Qırmızı, Mavi və Yaşıl görüntü komponentləri.
Bunu emal etmək üçün çox iş görmək lazımdır! Ancaq boz ölçülü görüntülərdə hər pikselin yalnız bir rəng məlumatı var. Beləliklə, bir rəngli görüntünün işlənməsi boz ölçülü görüntü qutusundan üç qat daha yavaşdır (hansı texnikanın tətbiq olunduğundan asılı olaraq ən azı üç dəfə). Və daha çox şey var: bəzi məqsədlər üçün (bu layihə kimi), bütün rəngləri işlətmək heç də vacib və ya vacib deyil. Buna görə də belə bir nəticəyə gəldik: boz rəngli şəkillərdən istifadə, şəkil işləmə məqsədi ilə çox tövsiyə olunur. Arxa fonda çıxarıldıqdan sonra, Gaussian Blur filtrini tətbiq etmək lazımdır.
Arxa plana çıxarılan şəkil üzərində tətbiq olunan Gauss Bulanıklığı filtri, hərəkətli aşkar olunan obyektin bütün konturlarını hamarlaşdırır. Əlbəttə ki, görüntü işlənməsinin növbəti addımlarında köməkçi olacaq.
Addım 2: Binarizasiya
![Binarizasiya Binarizasiya](https://i.howwhatproduce.com/images/004/image-10876-31-j.webp)
Bir çox görüntü işləmə halında, bir görüntüdə obyektləri / xarakteristikaları vurğuladıqdan sonra binarizasiya demək olar ki, məcburi bir addımdır. Səbəb: ikili görüntüdə hər piksel rəngi yalnız iki dəyər qəbul edə bilər: 0x00 (qara) və ya 0xFF (ağ). Növbəti addımlarda görüntü işləmə texnikasını tətbiq etmək üçün daha az "hesablama gücü" tələb etmək üçün görüntü işlənməsinə çox kömək edir. Binarizasiya, boz ölçülü görüntünün hər bir piksel rəngini müəyyən bir eşiklə müqayisə edərək edilə bilər. Piksel rənginin dəyəri eşikdən böyük olarsa, bu piksel rəngi ağ dəyər (0xFF), piksel rənginin dəyəri isə eşikdən aşağı olarsa, bu piksel rəngi qara dəyər (0x00) qəbul edər. Təəssüf ki, eşik dəyərinin seçimini etmək o qədər də asan deyil. İşıqlandırma şərtləri kimi ətraf mühit faktorlarından asılıdır. Səhv bir eşik dəyərinin seçilməsi bütün addımları daha da poza bilər. Buna görə hər hansı bir hərəkət etməzdən əvvəl işiniz üçün bir layihə həddini əl ilə tənzimləməyinizi şiddətlə tövsiyə edirəm. Bu eşik dəyəri, hərəkət edən obyektin ikili görüntüdə görünməsini təmin etməlidir. Mənim vəziyyətimdə, bir eşikin adekvat seçimindən sonra, şəkil 5 -də gördüklərinizlə nəticələnir.
Şəkil 5 - ikili görüntü
Addım 3: Dilate edin
İndiyə qədər, hərəkət edən obyektləri aşkar etmək, onları vurgulamaq və binarizasiya tətbiq etmək mümkün idi ki, bu da hərəkətli bir obyektin olduqca aydın bir görüntüsü ilə nəticələnir (= görüntü işləmə məqsədləri üçün obyektin olduqca aydın görüntüsü). Əşyaların sayılmasına hazırlıq HƏMMƏN tamamlandı. Buradakı "ƏLDƏN", hərəkət etməzdən əvvəl bəzi gözəl tənzimləmələrin olması deməkdir. Bu nöqtədə, obyektlərdə "çuxurların" olması ehtimalı var (ağ rəngli obyektə qara piksel kütləsi). Bu çuxurlar, xüsusi işıqlandırma şəraitindən obyektin formasının bir hissəsinə qədər hər şey ola bilər. Deliklər həqiqi cisimlərin içərisində saxta cisimlər "istehsal edə" bildikdən sonra (nə qədər böyük və harada yerləşməsindən asılı olaraq), görüntüdə deşiklərin olması obyektlərin sayılması üçün fəlakətli ola bilər. Bu delikləri aradan qaldırmağın bir yolu Dilate adlı bir görüntü işləmə texnikasından istifadə etməkdir. Bunu istifadə edin və deliklər yox olur.
Addım 4: Konturların axtarışı (və onun mərkəz mərkəzləri)
![Konturların axtarışı (və onun mərkəz mərkəzləri) Konturların axtarışı (və onun mərkəz mərkəzləri)](https://i.howwhatproduce.com/images/004/image-10876-32-j.webp)
Bu nöqtədə, vurgulanmış obyektlər var, içərisində heç bir çuxur yoxdur və sonrakı işlərə hazırdır: konturların axtarışı (və onun mərkəz mərkəzləri). Avtomatik konturları aşkar etmək üçün OpenCV -də mənbələr var, lakin aşkarlanan saylar ağıllı şəkildə seçilməlidir (yalnız real obyekti və ya obyektləri seçmək üçün). Beləliklə, konturları aşkar etmək meyarları obyektin piksel² ilə ölçülən sahəsidir. Bir kontur bir hədddən daha yüksək bir sahəyə malikdirsə (proqram təminatında konfiqurasiya olunmuşdur), buna görə də sayılmalı olan real obyekt kimi qəbul edilməlidir. Bu sahə limitinin/meyarlarının seçimi çox vacibdir və burada pis seçim yanlış saymalar deməkdir. Bəzi sahə dəyərləri məhdudiyyət dəyərlərini sınamalı və istifadənizə daha uyğun olanı yoxlamalısınız. Narahat olmayın, bu həddi tapmaq / tənzimləmək sahardır. Şəkildəki bütün cisimlər seçildikdən sonra, növbəti addım onun üzərinə bir büzüşmə çəkməkdir (bu qarışıqlıq içərisində aşkar edilmiş bütün bir obyekti ehtiva etməlidir). Və bu düzbucağın mərkəzi… obyekt mərkəzi! Bəlkə "bu mərkəzlə nə işin var?" Deyə düşünürsən, elə deyilmi? Cavabınız budur: cismin nə qədər böyük və ya formalı olmasının əhəmiyyəti yoxdur, onun hərəkəti santroidlə eynidir. Başqa sözlə: centroid adlanan bu sadə nöqtə, obyektin bütün hərəkətini təmsil edir. İndi saymağı çox asanlaşdırır, elə deyilmi? Aşağıdakı şəklə baxın (şəkil 6), burada cismin mərkəz hissəsi qara nöqtə kimi təmsil olunur.
Addım 5: Centorid -in Hərəkəti və Obyektlərin Sayılması
Böyük final: obyektin mərkəz koordinatlarını giriş və çıxış xətlərinin koordinatları ilə müqayisə edin və əvvəllər təsvir edilən sayma alqoritmini tətbiq edin. Və hərəkət edən obyektlərin sayılması olacaq!
Yekun nəticə Bu yazının əvvəlində göstərildiyi kimi, işdə olan layihə budur:
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
![Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım](https://i.howwhatproduce.com/images/001/image-458-22-j.webp)
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
![Addım -addım PC qurulması: 9 addım Addım -addım PC qurulması: 9 addım](https://i.howwhatproduce.com/images/001/image-52-15-j.webp)
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım
![Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım](https://i.howwhatproduce.com/images/001/image-227-26-j.webp)
Üç Hoparlör Devresi || Addım-addım Təlimat: Dinamik Dövrə, ətraf mühitdən alınan səs siqnallarını MIC-ə gücləndirir və gücləndirilmiş səsin çıxarıldığı yerdən Dinamikə göndərir.Burada bu Hoparlör Devrini düzəltməyin üç fərqli yolunu göstərəcəyəm:
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
![Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım](https://i.howwhatproduce.com/images/007/image-19534-j.webp)
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Obyekt yönümlü proqramlaşdırma: öyrənmə obyektlərinin yaradılması/tədris metodu/qayçıdan istifadə texnikası: 5 addım
![Obyekt yönümlü proqramlaşdırma: öyrənmə obyektlərinin yaradılması/tədris metodu/qayçıdan istifadə texnikası: 5 addım Obyekt yönümlü proqramlaşdırma: öyrənmə obyektlərinin yaradılması/tədris metodu/qayçıdan istifadə texnikası: 5 addım](https://i.howwhatproduce.com/images/001/image-2761-16-j.webp)
Obyekt yönümlü proqramlaşdırma: Obyektlərin yaradılması Öyrənmə/Tədris metodu/Qayçıdan istifadə texnikası: Obyekt yönümlü proqramlaşdırmaya yeni başlayan tələbələr üçün öyrənmə/tədris metodu. Bu, siniflərdən obyektlərin yaradılması prosesini görselleştirmelerini və görmələrini təmin etmək üçün bir yoldur. Parçalar: 1. Qayçı (hər cür edəcək). 2. Kağız və ya karton parçası. 3. İşarəçi