0

Engineering document template

43 3 0
  • Engineering document template

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 14/05/2022, 20:44

NHẬN DẠNG VÀ ĐẾM SỐ LƯỢNG XE ĐANG LƯU THÔNG DÙNG OPENCV , CÓ CODE MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC TỪ VIẾT TẮT CNN Convolutional Neural Network YOLO You Only Look One GUI Graphical User Interface IDE Integrated Development Environment VS Code Visual Studio Code GPU Graphics Processing Unit ROI Region Of Interest Trang 5/39 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu Ngày nay, camera dành cho giao thông công cộng tất nước giới sử dụng phổ biến nhờ vào giá trị hiệu chúng Nhờ có camera giao thơng, phủ nước tinh giản nhiều biên chế, từ tận dụng tối đa suất lao động nguồn nhân lực có Các lợi ích từ việc tận dụng công nghệ camera tự động đa dạng, kể đến sau: - Nâng cao ý thức chấp hành giao thông người tham gia giao thơng Lưu giữ xác chi tiết liệu tham gia giao thông Giám sát, phân luồng giao thông từ xa Phát nhanh tai nạn, cố đưa hướng xử lý kịp thời Hỗ trợ vấn đề an ninh trật tự khu vực Có thể xem lại vấn đề xảy khứ để xử lý Ghi hình, trích xuất liệu trường hợp vi phạm quy định Hình 1.0 Hệ thống giám sát camera giao thông TP.HCM Không dừng lại lợi ích trên, cơng nghệ phát triển mạnh mẽ, đặc biệt công nghệ xử lý ảnh Từ đưa hướng cho camera giao thông, hướng tới việc xử lý tự động hố phần cho việc phân luồng giao thơng Các thuật tốn cơng nghệ xử lý ảnh trích xuất liệu biển số, mật độ lưu thông,… nhằm đưa phương án phân luồng tự động, giảm thiểu nguy gây ùn tắc nguyên nhân khác gây tai nạn giao thông Trang 6/39 Đặc biệt hơn, với phát triển cơng nghệ lái xe tự động dịng xe tơ đại ngày nay, có hợp tác quan chuyên ngành cơng ty sản xuất, cơng nghệ tự động lái sử dụng liệu từ camera, từ đưa hướng ùn tắc tiện lợi cho người sử dụng Thuật toán dùng đề tài YOLO phiên thứ (YOLOv4) để hỗ trợ tốt cho trình nhận dạng số lượng xe Thuật tốn giới thiệu chi tiết phần 1.2 Mục đích nghiên cứu Đề tài đưa với mục tiêu nâng cao hiểu biết dựa kiến thức học, áp dụng ngơn ngữ lập trình python vào ứng dụng đề tài Tìm hiểu ngơn ngữ python, cách hoạt động xử lý ảnh, tìm hiểu ứng dụng công nghệ máy học (AI) Đồng thời, sử dụng kiến thức logic để phân tích dự án, nghiên cứu sử dụng phương thức hợp lý, đẩy mạnh phương pháp nghiên cứu tham khảo từ cộng đồng Tuy đề tài thực nhiều chuyên gia xử lý ảnh dựa vào đặc tính cấp thiết nó, nhiên tảng để sinh viên tìm hiểu thêm cách hoạt động trình xử lý ành, hiểu rõ định hướng ngành công nghiệp Đề tài chủ yếu sử dụng cho mục đích học tập nghiên cứu, ứng dụng công nghệ vào việc nhận dạng vật thể Từ làm tảng cho đề tài khác, sâu xa dự án lớn sau - 1.3 Đối tượng nghiên cứu Phần mềm Visual Studio Code - Python - Thuật toán xử lý ảnh - CNN - YoloV4 - Tkinter 1.4 Phạm vi nghiên cứu Đề tài giới hạn dạng mô camera giao thông đếm số lượng xe vùng xác định Đề tài thực chủ yếu dựa thuật toán Trang 7/39 python thư viện OpenCV Ứng dụng AI YoloV4 có liệu trước để nhận dạng vật thể video 1.5 Dự kiến kết Kết dự kiến xây dựng thành công thông qua việc mô ngôn ngữ python Hệ thống mô phần nhận dạng, khoanh vùng xe đếm xe Giao diện bảng thông tin hiển thị đầy đủ thông tin sinh viên thực số lượng xe đếm Trang 8/39 CHƯƠNG CƠ SỞ LÝ THUYẾT 1.6 Phần mềm Visual Studio Code Visual Studio Code trình biên dịch (IDE) miễn phí phát triển Microsoft Phần mềm xem bảng rút gọn Visual Studio, tối ưu tốt tính hiệu Tuy rút gọn, Visual Studio Code đáp ứng hồn tồn tốt yêu cầu lập trình, kiểm tra xử lý lỗi trình code lập trình viên, đặc biệt phần mềm hỗ trợ lập trình nhiều ngơn ngữ, có Python Visual Studio Code sở hữu riêng kho tiện ích mở rộng (extensions) đóng góp cộng đồng lập trình viên tồn giới Nhờ mà chức năng, giao diện, thư viện cài đặt tự để phù hợp với dự án, ngôn ngữ lập trình mà người dùng sử dụng Hình 2-0: Giao diện lập trình Visual Studio Code Giao diện điều mà VS Code thiết kế tốt, nút thiết kế đơn giản phù hợp với người mới, bố cục hình hỗ trợ tối đa tập trung cho lập trình viên Ngồi ra, lập trình viên sử dụng Visual Studio Code cho dự án đồng nhờ vào việc ứng dụng hỗ trợ đa tảng cho Windows, Linux MacOS Trang 9/39 1.7 Python Python ngơn ngữ lập trình bậc cao phát triển dự án mã nguồn mở tạo để phục vụ cho đa mục đích Ngơn ngữ thiết kế với cấu trúc rõ ràng, từ khoá tiếng anh giúp cho việc dễ đọc, dễ hiểu, điều hỗ trợ tốt cho tất lập trình viên dễ dàng tìm hiểu nó, đặc biệt người tiếp xúc với ngơn ngữ lập trình Hiện nay, Python sử dụng phổ biến giảng dạy, thử nghiệm thuật toán phát triển trí tuệ nhân tạo Tính ứng dụng python khơng có giới hạn lập trình thứ theo ý muốn lập trình viên, nhiên ngơn ngữ lập trình bậc cao nên Python sở hữu hạn chế định lập trình với phần cứng, ví dụ lập trình với máy móc cơng nghiệp Hình 2.1 Biểu tượng nhận diện ngơn ngữ lập trình Python Khác với loại ngơn ngữ khác, Python dễ dàng mở rộng module bên ngồi, phù hợp với loại dự án cụ thể khác Tầm nhìn người sáng lập Python – Van Rossum, thực ngôn ngữ có phần lõi nhỏ có thư viện chuẩn rộng lớn Python hướng đến lệnh cú pháp đơn giản, tinh gọn cho phép lập trình viên lựa chọn phương pháp viết mã riêng họ Python sử dụng phương thức thụt lề để phân biệt khối lệnh Với lệnh hàm, lề thụt vào sâu bậc, để kết thúc khối lệnh, lệ thụt Trang 10/39 trở bậc Cách thức giúp cho Python có cấu trúc trực quan, hỗ trợ tốt cho nhà lập trình biết dễ khối lệnh phân tách chương trình Kích cỡ thụt lề Python quy định lần dấu cách 1.8 CNN 1.1.1 Giới thiệu Convolutional Neural Network (mạng neuron tích chập) mơ hình Deep Learning dùng để xử lý nhận dạng phân loại hình ảnh Mạng CNN thiết kế với mục đích xử lý liệu thông qua nhiều lớp mảng nhằm tạo nên hệ thống có độ thơng minh phản ứng với tính xác cao Về mặt kỹ thuật, CNN hoạt động dựa vào liệu đầu vào lớp lọc Khi đưa hình ảnh đầu vào chuyển qua lớp tích chập có lọc để lọc pixels chứa vật thể, sau lớp tổng hợp lại (fully connected) đưa qua hàm Softmax – hàm tính tốn xác xuất xảy kiện, để đưa kết phán đoán vật thể Hình 2.2 Tổng quan cách hoạt động mạng CNN 1.1.2 Các lớp layer 1.1.1.1 Lớp Convolution Layer Khi có liệu đầu vào hình, thuật tốn tiến hành phân tích giá trị pixel thành ma trận riêng biệt, sau nhân tích chập ma trận có với ma trận lọc lại với Ví dụ đưa ma trận ảnh có kích thước 5x5 ma trận lọc có kích thước 3x3 Ma trận ảnh 5x5 chia thành nhiều ma trận 3x3 nhỏ để nhân với ma trận lọc Trang 29/39 import import import import time math cv2 numpy as np Thiết kế kích thước khung đặt tên cho GUI root = Tk() root.geometry("1280x720") root.title("GUI đếm số lượng xe") Khai báo biến cần sử dụng tạo vùng trùng với kích thước ROI để vẽ viền Sử dụng phần mềm Paint để xác định vị trí toạ độ điểm ảnh Hình 3.1 Xác định kích thước vùng ROI count = center_points_prev_frame = [] tracking_objects = {} track_id = starting_time=time.time() object_id = frame_id = frame_idx = od=ObjectDetection() #Tao area area_1a=[(410,410),(1060,410),(1060,690),(410,690)] Cấu hình hàm visualizer, hàm sử dụng để hiển thị frame video lên giao diện Tkinter def visualizer(): global cap, frame_id, track_id, count, tracking_objects, object_id,frame_idx start_time = time.time() Trang 30/39 if cap != None: ret, frame = cap.read() cv2.polylines(frame,[np.array(area_1a,np.int32)],True,(0,0,255),2) roi = frame[410:690,410:1060] frame_id += count += center_points_cur_frame = [] frame_idx += Khi bắt đầu, tiến hành nhận diện khung hình đầu tiên, theo dõi (tracking) điểm tâm vật có Sau đó, 20 khung hình tiến hành nhận diện lần Mục đích giảm số lần nhận diện để tăng hiệu suất hệ thống # Nhận diện vật thể khung hình (class_ids, scores, boxes) = od.detect(roi) if frame_idx != 20: for box in boxes: (x, y, w, h) = box cx = int((x + x + w) / 2) cy = int((y + y + h) / 2) center_points_cur_frame.append((cx, cy)) cv2.rectangle(roi, (x, y), (x + w, y + h), (0, 255, 0), 2) So sánh khung hình trước với khung hình tại, khoảng cách tâm 20 tracking vật thể, đồng thời đếm lên đơn vị vật thể Khoảng cách tâm trước sau tính dựa vào toạ độ điểm (x1,y1) (x2,y2) lệnh hypot Lệnh hypot tiến hành tính theo cơng thức sau: Hình 3.2 Cơng thức tính khoảng cách # Khi bắt đầu, so sánh khung trước với khung tại, chạy lần bắt đầu if count
- Xem thêm -

Xem thêm: Engineering document template ,