1 TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI KHOA CNTT - - - - - - ĐỀ TÀI PHÁT HIỆN VÀ THEO DÕI CHUYỂN ĐỘNG - Giáo viên hướng dẫn : thầy Hà Mạnh Toàn Năm học 2020 - 2021 I GIỚI THIỆU 1.1 Các ứng dụng phát chuyển động Phát chuyển động phát minh quan trọng Được áp dụng nhiều thực tế, ví dụ nâng cao khả lấy nét máy ảnh kỹ thuật số, tăng độ an toàn cho phương phương tiện vận tải sử dụng trí tuệ nhân tạo Hình 1.1 1.2 Xác định đối tượng chuyển động Trong nhiện vụ mà ta yêu cầu máy tính thực hiện, phân tích nhận biết tất các đối tượng thách thức máy tính ngày xuất sắc việc tái tạo hình dạng 3D từ hình ảnh chụp lại, khơng xác việc nhận diện đối tượng Hình 1.2 1.3 Hình dạng đối tượng, vật thể Thế giới hình thành từ nhiều vật thể khác nhau, xuất với nhiều tư Do việc so sánh với sở liệu mẫu không đơn giản Hình 1.3 1.4 Phân loại nhận dạng Thách thức việc nhận dạng nhận dạng loại, phân biệt trường hợp, lớp đa dạng người, động vật , phương tiện Hình 1.4a, 1.4b II PHƯƠNG PHÁP NHẬN BIẾT CHUYỂN ĐỘNG ĐƠN GIẢN - Ý tưởng Motion Detection sáng tạo máy ảnh, hình ảnh thực chất dãy số, video hình thành từ khung hình di chuyển liên tục - Khi áp dụng Motion Detection cho video ta lấy khung hình liền kề (pair) trừ cho để tìm điểm khác biệt Nói chất video xem chồng ảnh, video việc trình chiếu khung ảnh theo thời gian Do đó, việc áp dụng xử lý ảnh video việc ta áp dụng xử lý ảnh khung hình (frame) cách lặp hết tất khung hình có video Hình 2.1 III PHẦN MỀM NHẬN DIỆN CHUYỂN ĐỘNG ĐƠN GIẢN VỚI PYTHON VÀ OpenCV Cài đặt - Đầu tiên cần cài đặt Python 3.8 OpenCV : Sau cài đặt Python 3.8 OpenCV ta copy file cv2.cp38win_amd64.pyd từ thư mục OpenCV\build\python\cv2\python-3.8 Copy vào thư mục \Python 38\Lib\site-packages Cài đặt numpy Vào thư mục \Python37\Scripts chạy lệnh : pip install numpy pip install pillow Viết mã nguồn Phần mềm thực theo bước Bước : Tìm chuyển động, so sáng khu hình Bước : Tạo đường viền bao quanh đối tượng chuyển động Bước : Hiển thị kết Bước 1: Để đọc video ta sử dụng cap = cv2.VideoCapture('FunniestSecurityCameraFails.mp4') Đọc hai khung hình từ video capture ret, frame1 = cap.read() ret, frame2 = cap.read() Tìm điểm khác biệt khung hình thứ khung hình thứ diff = cv2.absdiff(frame1, frame2) Chuyển sang thang độ xám để dễ dàng nhận diện đường viền gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY) Và để làm mờ thang độ xám blur = cv2.GaussianBlur(gray, (5,5), 0) Tìm khách biệt hai khung hình hiển thị cv2.imshow("feed", frame1) frame1 = frame2 ret, frame2 = cap.read() - Chạy thử chương trình *Những đường viền vây quanh đối tượng chuyển động Bước : Tìm đường viền vuông dựa đường viền vừa kiểm tra *contour in contours - Lặp lại danh sách đường viền tìm thấy bên vịng lặp for lưu tọa độ đường viền tìm thấy - ( x, y, w, h ) tọa độ for contour in contours: (x, y, w, h) = cv2.boundingRect(contour) if cv2.contourArea(contour) < 900: continue cv2.rectangle(frame1, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.putText(frame1, "***: {}".format('Motion Tracking'), (10, 20), cv2 FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 3) - Đối tượng có diện tích nhỏ 900 tiếp tục lớn bỏ qua if cv2.contourArea(contour) < 900: continue Bước : Render 10 Hết ! Cảm ơn thầy bạn quan tâm theo dõi 10 ... vào thư mục Python 38Libsite-packages Cài đặt numpy Vào thư mục Python37Scripts chạy lệnh : pip install numpy pip install pillow Viết mã nguồn Phần mềm thực theo bước Bước : Tìm chuyển động, ... tiện vận tải sử dụng trí tuệ nhân tạo Hình 1.1 1.2 Xác định đối tượng chuyển động Trong nhiện vụ mà ta yêu cầu máy tính thực hiện, phân tích nhận biết tất các đối tượng thách thức máy tính ngày...2 Phát chuyển động phát minh quan trọng Được áp dụng nhiều thực tế, ví dụ nâng cao khả lấy nét máy ảnh kỹ