Thị giác máy tính với OpenCV-Python Bài 7 Phần 1: Phát hiện người đi bộ trong hình ảnh

Thị giác máy tính với OpenCV-Python Bài 7 Phần 1: Phát hiện người đi bộ trong hình ảnh

Thị giác máy tính với OpenCV-Python Bài 7 Phần 1: Phát hiện người đi bộ trong hình ảnh

15:02 - 09/02/2022

Trong phần này chúng ta sẽ cùng tìm hiểu cách phát hiện người đi bộ trong hình ảnh sử dụng một kỹ thuật gọi là “Biểu đồ phân định hướng” (HOG).

Thị giác máy tính với OpenCV-Python Bài 7 Phần 3: Nhận diện khuôn mặt
Thị giác máy tính với OpenCV-Python Bài 7 Phần 2: Phát hiện người đi bộ trong video
Thị giác máy tính với OpenCV-Python Bài 6 Phần 2: Phép trừ nền
Thị giác máy tính với OpenCV-Python Bài 6 Phần 1: Bắt bám đối tượng với Meanshift và Camshift
Thị giác máy tính với OpenCV-Python Bài 5 Phần 3: Tìm đối tượng thông qua so khớp và phép chiếu hình học

Biểu đồ phân định hướng (HOG) là một bộ mô tả tính năng được sử dụng trong xử lý hình ảnh và thị giác máy tính nhằm mục đích phát hiện đối tượng. Kỹ thuật đếm số lần xuất hiện của hướng gradient trong các phần của hình ảnh. Phương pháp này tương tự như phương pháp biểu đồ hướng cạnh nhưng khác ở chỗ nó được tính toán trên một lưới dày đặc gồm các ô có khoảng cách đều nhau và sử dụng chuẩn hóa tương phản cục bộ chồng chéo để cải thiện độ chính xác.

Xem đoạn code minh họa dưới đây:

  1. import cv2
  2.  
  3. filename = 'pedestrians.jpg'
  4.  
  5. def main():
  6.     # Create a HOGDescriptor object
  7.     hog = cv2.HOGDescriptor()
  8.  
  9.     # Initialize the people detector
  10.     hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
  11.  
  12.     # Load an image
  13.     image = cv2.imread(filename)
  14.  
  15.     # Detect people
  16.     (bounding_boxes, weights) = hog.detectMultiScale(image,
  17.                                                      winStride=(4,4),
  18.                                                      padding=(8,8),
  19.                                                      scale=1.05)
  20.  
  21.     # Draw bouding boxes on the image
  22.     for(x,y,w,h) in bounding_boxes:
  23.         cv2.rectangle(image, (x,y), (x+w, y+h), (0,255,0), 4)
  24.  
  25.     # Display the image
  26.     cv2.imshow('Image', image)
  27.     cv2.waitKey(0)
  28.     cv2.destroyAllWindows()
  29.  
  30. main()

Lưu đoạn code trên và hình ảnh chứa người đi bộ “pedestrians.jpg” trong cùng 1 thư mục. Kết quả nhận được sau khi chạy đoạn code:

 

 Ở phần tiếp theo chúng ta sẽ cùng tìm hiểu cách phát hiện người qua lại trong video.

 

 

(Sưu tầm)
VIỆN IMC
Tòa nhà IMC Tower, Số 176 Trường Chinh, Phường Khương
Thượng, Quận Đống Đa, Thành phố Hà Nội, Việt Nam
Tel/Fax : (+84) 24 3566 6232 / 24 3566 6234
Email: contact@imc.org.vn   Website: https://imc.org.vn