CHƯƠNG 1. NGHIÊN CỨU TỔNG QUAN
1.2. KHÁI NIỆM VỀ XỬ LÝ ẢNH, HỌC MÁY VÀ BÀI TOÁN NHẬN DẠNG Ô
1.3.2. Các kết quả nghiên cứu ngoài nước
➢ Nghiên cứu của ông Andrews Sobral:
Ông Andrews Sobralvà cộng sự đã nghiên cứu nhận diện phương tiện qua phương pháp Haar Cascades using OpenCV [3]. Nghiên cứu sử dụng thư viện thị giác máy tính mã nguồn mở JavaScript và OpenCV để nhận diện hình ảnh được truy cập vào webcam. Có rất nhiều phân loại đối tượng được nhận diện trên internet nhưng hầu hết trong số chúng là để nhận diện khuôn mặt, mắt, tai và miệng. Nhưng đối với OpenCV thì có thể nhận ra một đối tượng mà chúng ta lựa chọn. Một trình phân loại
theo tầng về cơ bản cho OpenCV biết những gì cần tìm trong ảnh. Điều khác biệt của OpenCV là nhận ra thứ gì đó mà chúng ta chọn, thứ gì đó không phải là khuôn mặt, mà là một đối tượng khác như xe ôtô, xe máy,….
[Hình1.3] Hình ảnh được lấy ra từ CSDL Brad Phillip và Paul Updike.
Thuật toán này được huấn luyện bởi 526 hình ảnh xe hơi nhìn từ phía sau. Sự phụ thuộc ánh sáng và nền cũng tạo nên các kết quả khác nhau. Khi có hình ảnh, chúng cần được cắt xén để chỉ có thể nhìn thấy đối tượng mong muốn của chúng ta.
➢ Nghiên cứu nhận diện và theo dõi xe sử dụng OpenCV và Kalman Filter
Ông Ronit Sinha và cộng sự sử dụng OpenCV và Kalman Filter để nhận diện và theo dõi xe từ luồng trực tuyến của Camera giao thông [4]. Bộ lọc OpenCV và Kalman sẽ phát hiện và theo dõi xe ô tô từ video được phát trực tiếp từ camera. Khi một chiếc xe vượt qua một khoảng cách nhất định, tốc độ của nó được tính toán và kiểm tra theo giới hạn tốc độ. Nếu tốc độ vượt quá giới hạn, một hình ảnh sẽ được lưu, hiển thị cả xe đang chạy và tốc độ của nó. Ngoài ra, hệ thống còn có thể đếm số lượng xe qua một đoạn đường trong khoảng thời gian nhất định.
Dưới đây là một ảnh chụp màn hình của chương trình đang hoạt động:
[Hình 1.4] Nhận diện phương tiện qua phương pháp OpenCV và Kalman.
Tuy nhiên, có một số vấn đề cần được xử lý, cụ thể là:
- Các đối tượng bắt đầu ở giữa khung hình sẽ có tốc độ không chính xác.
- Một số tiếng ồn vẫn có thể làm rối loạn quá trình theo dõi và tính toán tốc độ.
- Đối với những xe ôtô đi từ 2 bên đường thì được nhận diện và đo tốc độ không chính xác.
➢ Nghiên cứu về nhận diện vật thể bằng thuật toán YOLO:
Yolo được Redmon và Farhadi phát triển vào năm 2015, trong thời gian học tiến sĩ [5]. Khái niệm này là để thay đổi kích thước hình ảnh để có được một lưới các ô vuông. Trong v3 (cuối cùng), YOLO đưa ra dự đoán trên 3 tỷ lệ khác nhau, giảm hình ảnh lần lượt là 32, 16 và 8 lần, để duy trì độ chính xác ngay cả ở quy mô nhỏ hơn (các phiên bản trước có vấn đề với hình ảnh nhỏ). Đối với mỗi 3 thang đo, mỗi ô chịu trách nhiệm dự đoán 3 hộp giới hạn, sử dụng 3 hộp neo (hộp neo không là gì ngoài hình chữ nhật có tỷ lệ được xác định trước. Chúng được sử dụng để có sự tương ứng lớn hơn giữa giới hạn dự đoán và dự kiến.YOLO (‘You only look once”) là một thuật toán nhận diện phổ biến nhờ độ chính xác cao trong thời gian thực, đạt đến 45 khung hình trên giây.
[Hình 1.5] Nhận diện phương tiện bằng thuật toán YOLO.
Thuật toán này "chỉ nhìn một lần" vào hình ảnh theo nghĩa là nó chỉ yêu cầu một lần truyền chuyển tiếp qua mạng để đưa ra dự đoán. Sau khi triệt tiêu những khung hình không phù hợp, nó sẽ xuất ra các đối tượng được nhận dạng cùng với các hộp giới hạn.
➢ Nghiên cứu nhận diện phương tiện và hướng đi (Vehicle Detection for Autonomous Driving)
Ông Junsheng Fu và cộng sự đã sử dụng các công cụ, bao gồmOpenCV3, Python3.5, tensorflow, CUDA8 OS: Ubuntu 16.04 [6]. Có 2 hướng đi: SVM tuyến tính và mạng Neural
- SVM tuyến tính:
• Thực hiện phương pháp HOG để trích xuất trên 1 tập hình ảnh và huấn luyện để tạo thành hàm phân loại SVM tuyến tính.
• Dùng phép biến đổi màu cũng như histogram của màu đó để thực hiện phương pháp HOG cho vecto đặc trưng của hình ảnh.
• Bình thường hóa các tính năng và chọn ngẫu nhiên một hình ảnh để đào tạo và thử nghiệm.
• Thực hiện kỹ thuật cửa sổ trượt và sử dụng hàm phân loại SVM để tìm kiếm phương tiện trong hình ảnh.
• Chạy luồng video và tạo bản đồ nhiệt để thực hiện nhận diện liên tục theo từng khung hình để loại bỏ các ngoại lệ và theo dõi các phương tiện được phát hiện.
• Vẽ khung giới hạn cho các phương tiện được phát hiện
[Hình 1.6] Nhận dạng xe qua công cụ OpenCV3, Python3.5, tensorflow,...
➢ Mạng Neural:
Trái ngược với công việc trước đây về phát hiện đối tượng với các trình phân loại để phát hiện vật thể, mạng neural là 1 phương pháp sử dụng hồi quy để tách biệt các khung giới hạn và xác suất nhận diện lớp vật thể. Một mạng neural duy nhất dự đoán các khung giới hạn và xác suất nhận diện lớp vật thể chỉ qua 1 lần đánh giá.
- Các bước thực hiện:
• Giảm kích thước hình ảnh còn 448x448.
• Chạy mạng neural lên hình ảnh duy nhất .
• Đặt giới hạn xác suất nhận diện kết quả.
➢ Nghiên cứu đo tốc độ xe của Greg Barbu [7].
Đây chủ yếu là một phần mềm triển khai nên phần cứng yêu cầu rất đơn giản:
Chỉ cần có Raspberry Pi Model 2, Camera Pi. Phần mềm cần thiết để nghiên cứu:
Raspian, OpenCV, Python.
- Các bước tiến hành:
• Cài đặt Raspian trên Raspberry Pi với phiên bản Raspian Jessie để thử nghiệm dự án này.
• Cài đặt OpenCV 3 và Python 3 trên Pi.
• Hệ thống đang sử dụng Python 3.4.1 và Opencv 3.1.0 trên Mô hình Raspberry Pi2 B.
• Sao chép chương trình Carspeed.py vào thư mục / home / pi. Chương trình dựa trên thuật toán phát hiện chuyển động (xem tại trang web pyimagesearch.com) và điều
chỉnh nó để phát hiện tốc độ. Chương trình không chỉ phát hiện chuyển động, nó còn tính toán thời gian chiếc xe đang di chuyển khi nó đi ngang qua góc nhìn của camera, qua đó biết được chiếc xe đã đi được khoảng cách bao nhiêu.
- Các bước thực hiện:
• Phát hiện chuyển động bằng cách sử dụng phương pháp logic.
• Bắt đầu hẹn giờ.
• Theo dõi đối tượng chuyển động cho đến khi nó đến phía đối diện của khung.
• Tính tốc độ.
• Lưu hình ảnh của phương tiện được đánh nhãn cùng với tốc độ được tính toán.
Thử nghiệm chương trình cho thấy độ chính xác trong khoảng +/- 1 cho tốc độ lên tới 40 dặm / giờ. Ô tô đi nhanh hơn mà vẫn được ghi lại nhưng tốc độ kém chính xác hơn vì xe đi qua khung rất nhanh.
[Hình 1.7] Hình ảnh lưu lại phương tiện và tốc độ được tính toán.