Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
Hərəkətli obyekt aşkarlama kompüterin görmə və görüntü işlənməsində istifadə olunan bir texnikadır. Videodan bir neçə ardıcıl kadr, hər hansı bir hərəkətli obyektin aşkarlanıb aşkarlanmadığını müəyyən etmək üçün müxtəlif üsullarla müqayisə olunur.
Hərəkətli cisimlərin aşkarlanması video nəzarət, fəaliyyətin tanınması, yol vəziyyətinin monitorinqi, hava limanının təhlükəsizliyi, dəniz sərhədində mühafizənin monitorinqi və s.
Hərəkətli obyekt aşkarlanması, müəyyən bir yerdə və ya bölgədə bir cismin fiziki hərəkətini tanımaqdır. [2] Hərəkətli cisimlər və hərəkətsiz bir sahə və ya bölgə arasında seqmentləşdirmə edərək hərəkət edən cisimlərin hərəkəti izlənilə bilər və beləliklə daha sonra təhlil edilə bilər. Buna nail olmaq üçün, bir videonun tək çərçivələr üzərində qurulmuş bir quruluş olduğunu düşünün, hərəkətli obyekt aşkarlanması, hər video çərçivədə və ya yalnız hərəkətli hədəf videoda ilk görünüşünü göstərdikdə, ön planda hərəkət edən hədəfləri tapmaqdır.
Rəngə görə obyektləri aşkar etmək və izləmək üçün Opnecv və Python kombinasiyasından istifadə edəcəyəm
Addım 1: Tanınmış Obyekt üzərində Dikdörtgen çəkin
Kompüterinizdə python və ya opencv yoxdursa, zəhmət olmasa aşağıdakıları izləyin
python kodu budur:
nv kimi cv2import numpy idxal edin
cap = cv2. VideoCapture (0)
Doğru halda:
_, frame = cap.read () hsv = cv2.cvtColor (çərçivə, cv2. COLOR_BGR2HSV)
alt_sarı = np.array ([20, 110, 110])
üst_sarı = np.array ([40, 255, 255])
yellow_mask = cv2.inRange (hsv, alt_sarı, üst_sarı)
(_, konturlar, _) = cv2.findContours (sarı_maska, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)
kontur kontur üçün:
sahə = cv2.contourArea (kontur)
əgər (sahə> 800):
x, y, w, h = cv2.boundingRect (kontur) çərçivə = cv2. dikdörtgen (çərçivə, (x, y), (x+w, y+h), (0, 0, 255), 10)
cv2.imshow ("izləmə", çərçivə)
k = cv2.waitKey (5) & 0XFF
əgər k == 27: break
cv2.destroyAllWindows ()
cap.release ()
Addım 2: Obyektin hərəkət etdiyi yolu izləyin
yolu izləmək üçün:
i üçün aralıqda (1, len (center_points)): b = təsadüfi.randint (230, 255) g = təsadüfi.randint (100, 255) r = təsadüfi.randint (100, 255) əgər math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2.line (çərçivə, mərkəz nöqtələri [i - 1], mərkəz nöqtələri , (b, g, r), 4)
Addım 3: Hər iki Kodun İnteqrasiyası
hər iki kodu birləşdirəcəyəm
cv2import numpy kimi np təsadüfi yığımlardan idxal deque
cap = cv2. VideoCapture (1)
# Obyektin ziyarət edildiyi bütün nöqtələri izləmək üçün center_points = deque ()
Doğru halda:
# Çərçivəni oxuyun və çevirin _, frame = cap.read () frame = cv2.flip (frame, 1)
# Çərçivəni bir az bulandır
blur_frame = cv2. GaussBlur (çərçivə, (7, 7), 0)
# BGR -dən HSV rəng formatına çevirin
hsv = cv2.cvtColor (blur_frame, cv2. COLOR_BGR2HSV)
# Aşkar etmək üçün hsv rənginin aşağı və yuxarı aralığını təyin edin. Mavi burada
alt_mavi = np.array ([100, 50, 50]) yuxarı_mavi = np.array ([140, 255, 255]) maska = cv2.in Aralığı (hsv, alt_mavi, üst_mavi)
# Eliptik ləpə düzəldin
kernel = cv2.getStructuringElement (cv2. MORPH_ELLIPSE, (15, 15))
# Açılış morfu (eroziya və genişlənmə)
maska = cv2.morphologyEx (maska, cv2. MORPH_OPEN, kernel)
# Bütün konturları tap
konturlar, hiyerarşi = cv2.findContours (maska.copy (), cv2. RETR_LIST, cv2. CHAIN_APPROX_SIMPLE) [-2:]
əgər len (konturlar)> 0:
# Ən böyük konturu tap ən böyük_kontur = maksimum (konturlar, açar = cv2.contourArea)
# Konturun mərkəzini tapın və dolu bir dairə çəkin
momentler = cv2.moments (ən böyük_contour) centre_of_contour = (int (anlar ['m10'] / anlar ['m00'])), int (anlar ['m01'] / anlar ['m00'])) cv2.dairə (çərçivə), centre_of_contour, 5, (0, 0, 255), -1)
# Konturu dairə ilə bağlayın
ellips = cv2.fitElips (ən böyük_contour) cv2.ellipse (çərçivə, ellips, (0, 255, 255), 2)
# Konturun mərkəzini qeyd edin ki, onu izləyərək xətt çəkək
center_points.appendleft (centre_of_contour)
# Konturun mərkəz nöqtələrindən xətt çəkin
i üçündür (1, len (center_points)): b = təsadüfi.randint (230, 255) g = təsadüfi.randint (100, 255) r = təsadüfi.randint (100, 255) əgər math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2.line (çərçivə, mərkəz nöqtələri [i - 1], mərkəz nöqtələri , (b, g, r), 4)
cv2.imshow ('orijinal', çərçivə)
cv2.imshow ('maska', maska)
k = cv2.waitKey (5) & 0xFF
əgər k == 27: break
cv2.destroyAllWindows ()
cap.release ()
Tövsiyə:
Mikro: bit MU Vision Sensor - Obyekt İzləmə: 7 Addım
Micro: bit MU Vision Sensor - Object Tracking: Beləliklə, bu təlimatda, bu təlimatda qurduğumuz və bu MU -da bir MU görmə sensoru quraşdırdığımız Smart Car -ı proqramlaşdırmağa başlayacağıq. bir az sadə obyekt izləmə ilə, buna görə də
Rəng Algılamaya əsaslanan Obyekt İzləmə: 10 addım
Rəng Algılamaya əsaslanan Obyekt İzləmə: Hekayə Raspberry PI və açıq CV istifadə edərək görüntü işlənməsini öyrənmək üçün bu layihəni etdim. Bu layihəni daha maraqlı etmək üçün iki SG90 Servo mühərriki və üzərinə kamera quraşdırdım. Yatay olaraq hərəkət edən bir motor, şaquli olaraq hərəkət etmək üçün ikinci motor
Raspberry Pi - OpenCV Obyekt İzləmə ilə Avtonom Mars Rover: 7 Addım (Şəkillərlə)
Raspberry Pi - OpenCV Obyekt İzləmə ilə Avtonom Mars Rover: Raspberry Pi 3, Açıq CV obyekt tanıma, Ultrasonik sensorlar və dişli DC mühərrikləri ilə təchiz edilmişdir. Bu rover təlim aldığı hər hansı bir obyekti izləyə və istənilən ərazidə hərəkət edə bilər
Fırlanma Eksenli Obyekt İzləmə Kamerası Sürgüsü. RoboClaw DC Motor Controller və Arduino üzərində 3D Çap və Quraşdırma: 5 Addım (Şəkillərlə birlikdə)
Fırlanma Eksenli Obyekt İzləmə Kamerası Sürgüsü. RoboClaw DC Motor Controller və Arduino üzərində 3D Çap və Quraşdırma: Video çəkmə marağımı DIY ilə birləşdirməli olduğumdan bəri bu layihə ən çox sevdiyim layihələrdən biridir. Həmişə baxdım və izləmək üçün ekranı sürüşdürərkən bir kameranın ekranda hərəkət etdiyi filmlərdə o kinematik kadrları təqlid etmək istədim
Obyekt İzləmə - Kamera Montajına Nəzarət: 4 Addım
Obyekt İzləmə - Kamera Montajına Nəzarət: Hamıya salam, Bu Təlimat kitabında sizə Obyekt İzləmə Layihəmdə əldə etdiyiniz irəliləyişləri göstərəcəyəm. Burada əvvəlki Təlimatçını tapa bilərsiniz: https://www.instructables.com/id/Object-Tracking/ və burada hər şeyi ehtiva edən bir youtube çalğı siyahıları tapa bilərsiniz