Tải bản đầy đủ

Nhận diện chuyển động và phát hiện tốc độ của phương tiện

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
----------

BÁO CÁO THỊ GIÁC MÁY TÍNH
Đề tài: Nhận diện chuyển động và phát hiện
tốc độ của phương tiện

GVHD :

TS. Huỳnh Hữu Hưng

LỚP

15TCLC1

:

Đà Nẵng, 04/2019



Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

LỜI CẢM ƠN
Có thể nói Công nghệ thông tin ở nước ta cũng như trên thế giới đang phát triển với
tốc độ rất nhanh. Công nghệ thông tin đã và đang giúp đỡ con người giải quyết vấn đề
một cách hiệu quả, giúp cải thiện đời sống của con người. Ở trong nước, Công nghệ
thông tin đóng vai trò quan trọng thúc đẩy sự phát triển chung của đất nước.
Đề tài Nhận diện chuyển động và phát hiện tốc độ của môn học Thị giác máy tính
hướng tới nhận diện tốc độ phương tiện tại các tuyến đường, với dữ liệu đầu vào là các
camera giao thông. Đây là một đề tài thiết thực, hỗ trợ cho việc điều phối giao thông,
đồng thời cũng giúp sinh viên áp dụng những kiến thức đã học được vào thực hành thực
tế. Qua môn học, chúng em đã tìm hiểu thêm được nhiều kiến thức bổ ích về Học máy một lĩnh vực đang phát triển mạnh và có nhiều ứng dụng trong cuộc sống, đồng thời có
cơ hội ứng dụng những kiến thức đó để tạo ra sản phẩm thực tế.
Chúng em xin được bày tỏ lòng biết ơn chân thành tới TS. Huỳnh Hữu Hưng đã
hướng dẫn và giúp đỡ chúng em trong quá trình thực hiện đề tài.
Trong quá trình thực hiện đề tài, chúng em không thể tránh khỏi những sơ suất, kính
mong thầy thông cảm cho chúng em.
Chúng em xin chân thành cảm ơn.


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

MỤC LỤC
PHẦN I: CÁC NGHIÊN CỨU LIÊN QUAN....................................................................4
I. Đặt vấn đề................................................................................................................4
II. Những nghiên cứu trước đây..................................................................................5
1. Nghiên cứu số 1:...................................................................................................5
2. Nghiên cứu số 2:...................................................................................................6
3. Nghiên cứu số 3:...................................................................................................8
4. Nghiên cứu số 4:...................................................................................................9
5. Nghiên cứu số 5:.................................................................................................10
III. KẾT LUẬN:........................................................................................................11
PHẦN II: GIẢI PHÁP ĐỀ XUẤT...................................................................................12
I. Trình bày giải pháp................................................................................................12
II.Các công đoạn cần làm..........................................................................................13
1.Các công cụ và môi trường triển khai:...................................................................13
2. Tạo Region of Interest........................................................................................14
3. Thuật toán YOLO...............................................................................................16
4. Tính toán tốc độ dựa trên khung hình trên giây..................................................16
III.

Flow chart........................................................................................................16

PHẦN III: THỰC NGHIỆM VÀ KẾT QUẢ...................................................................16
TỔNG KẾT...................................................................................................................... 17
1. Kết luận................................................................................................................. 17
2. Hướng phát triển....................................................................................................17
TÀI LIỆU THAM KHẢO................................................................................................17

P a g e 1 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Trong quá trình tìm hiểu và triển khai đề tài, thì chúng em đã hỗ trợ giúp đỡ nhau, tuy
nhiên để hiệu quả, một số công việc chính được phân chia như sau:

Tên

Công việc
- Cài đặt mô hình training dữ liệu
- Tổng hợp class các vật thể

Phan Hoàng Việt

- Train mô hình thuật toán nhận diện vật thể
- Viết báo cáo, làm slide
- Cài đặt thuật toán Kalman theo dõi tốc độ
phương tiện

Trần Thanh Huy

- Tính toán thời gian của xe
- Tính toán tốc độ
- Viết báo cáo, làm slide
- Thu thập dữ liệu phương tiện
- Phân vùng ROI

Trương Huỳnh Mai Nhi

- Vẽ đường ranh giới làm mốc tính tốc độ
- Viết báo cáo, làm slide
Bảng phân công công việc

PHẦN I: CÁC NGHIÊN CỨU LIÊN QUAN
P a g e 2 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

I. Đặt vấn đề
- Xã hội càng ngày phát triển, dân số ngày càng đông, các vấn đề giao thông như tai nạn
giao thông và ùn tắc giao thông, đặc biệt là giao thông đường bộ, số vụ giao thông không
ngừng tăng cả về quy mô và số lượng luôn là một vấn đề đáng quan tâm hàng đầu hiện
nay. Do đó, trong kỷ nguyên công nghiệp 4.0, sự cần thiết của việc giám sát giao thông là
lớn hơn bao giờ hết.
- Đề tài Nhận diện chuyển động và phát hiện tốc độ xe là một phần quan trọng trong việc
điều phối giao thông. Qua đấy nhanh chóng phát hiện các xe đi quá tốc độ quy định và
cảnh báo về vấn đề ùn tắc giao thông. Để từ đấy kịp thời có những biện pháp xử lý đối
với các trường hợp cụ thể.

II. Những nghiên cứu trước đây
Hiện nay đã có một số nghiên cứu về đề tài giao thông, đặc biệt là giám sát và nhận diện
giao thông.
P a g e 3 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

1. Nghiên cứu số 1:
Đây là nghiên cứu của ông Andrews Sobral về nhận diện phương tiện qua phương pháp
Haar Cascades. 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.
Hình ảnh được lấy ra từ CSDL Brad Phillip và Paul Updike.

Thông tin chi tiết xem tại:
 Huấn luyện trình phân loại OpenCV Haar của riêng bạn
http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html
https://github.com/mrnugget/opencv-haar-classifier-training
 Tài liệu liên quan:
Oliveira, M.; Santos, V. Automatic Detection of Cars in Real Roads using Haar-like
Features (PDF)
 1 số nguồn khác:
http://lars.mec.ua.pt/public/Media/ResearchDevelopmentProjects/HaarFeatures_Road
Films/HaarFeaturesTests/CarsRear/
http://lars.mec.ua.pt/public/Media/ResearchDevelopmentProjects/HaarFeatures_Road
Films/HaarFeaturesTests/
P a g e 4 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

2. Nghiên cứu số 2:
Đo tốc độ sử dụng OpenCV và Kalman Filter – Ronit Sinha:
Nghiên cứu 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.
Dưới đây là một ảnh chụp màn hình của chương trình đang hoạt động:

Một khi xe đi được một quãng đường nhất định, tốc độ của nó sẽ đươc tính toán và đo
đạc với giới hạn tốc độ. Nếu xe vượt quá tốc độ cho phép, chương trình sẽ chụp hình và
cho thấy tốc độ của xe cũng như hình ảnh của xe.
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.
P a g e 5 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Thông tin chi tiết xem tại:
https://github.com/ronitsinha/speed-detector?
fbclid=IwAR3F3BCnbA0PbCj1_Q0I8LFdZIKbt48g6l7HkRhexPmoqb5e4DERIwC1zqY
và Thuật toán theo dõi nhiều vật thể của Srini Ananthakrishnan:
https://github.com/srianant/kalman_filter_multi_object_tracking
3. Nghiên cứu số 3:
Nhận diện vật thể bằng thuật toán YOLO:
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.
Phiên bản thu gọn của mạng, Fast YOLO, xử lý lên đến 155 khung hình trên giây trong
khi vẫn đạt được độ chính xác cao.

Đầu vào là một loạt các hình ảnh có hình dạng (m, 608, 608, 3).
Đầu ra là một danh sách các hộp giới hạn cùng với các lớp được công nhận. Mỗi hộp giới
hạn được thể hiện bằng 6 số (p_c, b_x, b_y, b_h, b_w, c)như đã giải thích ở trên. Nếu bạn
mở rộng cthành một vectơ 80 chiều, thì mỗi hộp giới hạn sẽ được biểu thị bằng 85 số.
P a g e 6 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Kiến trúc YOLO nếu 5 hộp neo được sử dụng là: IMAGE (m, 608, 608, 3) -> DEEP
CNN -> ENCODING (m, 19, 19, 5, 85) Mỗi ô cung cấp cho bạn 5 hộp.
Tổng cộng, mô hình dự đoán: 19x19x5 = 1805 hộp chỉ bằng cách nhìn một lần vào hình
ảnh (một lần chuyển tiếp qua mạng)! Đó là cách quá nhiều hộp. Lọc đầu ra của thuật toán
xuống số lượng đối tượng được phát hiện nhỏ hơn nhiều.
Thông tin chi tiết xem tại: https://github.com/tejaslodaya/car-detection-yolo

4. Nghiên cứu số 4:
Nghiên cứu nhận diện phương tiện và hướng đi của ông Junsheng Fu. Thư viện và môi
trường bao gồm OpenCV3, Python3.5, tensorflow, CUDA8 OS: Ubuntu 16.04.
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.

P a g e 7 | 22


Thị giác máy tính

-

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

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ả

P a g e 8 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Thông tin chi tiết xem tại:
https://github.com/JunshengFu/vehicle-detection?
fbclid=IwAR0ePleRt_yeJ3JnSZFG5hZUCN0Rg8CFTTYOkt60QJQNkQgiGkO1m2Lhh
qk
5. Nghiên cứu số 5:
Nghiên cứu đo tốc độ xe của Greg Barbu.
Yêu cầu:
Đâ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:
Raspberry Pi Model 2, Camera Pi
Phần mềm cần thiết cũng khá dễ dàng:
Raspian, OpenCV, Python
Các bước:
Cài đặt Raspian trên Raspberry Pi. Tại thời điểm này, Raspian Jessie là phiên bản hiện tại
và nên dùng nó cho dự án này.
Cài đặt OpenCV 3 và Python 3 trên Pi.
Cách cài đặt xem chi tiết tại: http://www.pyimagesearch.com/2015/10/26/how-to-installopencv-3-on-raspbian-jessie/
Hệ thống đang sử dụng Python 3.4.1 và Opencv 3.1.0 trên Mô hình Raspberry Pi 2 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 được tìm thấy trên trang web pyimagesearch.com với các sửa
đổi để 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
P a g e 9 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

thời gian cho chiếc xe đang di chuyển khi nó đi ngang qua góc nhìn của camera, và nó
cần biết chiếc xe đã đi được bao xa.
Đây là cách chương trình thực hiện:
- Phát hiện chuyển động bằng cách sử dụng logic được trình bày tại trang web
pyimagesearch.com
- 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 dán nhãn cùng với tốc độ được tính toán

Thông tin chi tiết xem tại: https://gregtinkers.wordpress.com/2016/03/25/car-speeddetector/?fbclid=IwAR2yraw1KJHlFT7m1h6drYMzGD6DFCSkfKUERYdS76pYtnPYtkd9lG-4Tc

III. KẾT LUẬN:
Qua những nghiên cứu trên, ta nhận thấy điểm chung giữa các nghiên cứu đó là:
Nhận diện vật thể qua phương pháp MOG hoặc thư viện mã nguồn mở YOLO. Đo đạc
tốc độ dựa trên 1 điểm mốc có sẵn trong khung hình và thời gian phương tiện có thể đạt
đến điểm mốc đó. Từ đó, đề tài của chúng em quyết định sẽ thực hiện tương tự như
những nghiên cứu trước và nâng cấp những tính chất có thể.

PHẦN II: GIẢI PHÁP ĐỀ XUẤT
I.

Trình bày giải pháp

• Bài toán nhận dạng xe: Ở bài toán này mục tiêu của chúng ta là từ một video cụ thể thì
phải nhận diện ra được phương tiện. Đây là một bài toán khó vì phương tiện giao thông
thì có nhiều chủng loại, khi lưu thông trong thực tế thì còn có nhiều trường hợp xảy ra
P a g e 10 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

như xe chạy nhiều chiều khác nhau, xe này che khuất xe kia, hoặc có xe thì chở hai, có xe
thì chở rất nhiều hàng hóa khác. Làm sao để nhận ra xe cộ một cách tối ưu là một trong
những bước quyết định đến độ chính xác của bài toán lớn hơn
• Bài toán tính tốc độ: sau khi đã nhận diện được các đối tượng xe, chúng ta tiến hành
tính toán tốc độ. Yêu cầu đặt ra cho bài toán đó là tính chính xác, sai số không đáng kể
Hiện nay công nghệ thông tin phát triển, nhiều thuật toán hay và có tính ứng dụng cao
được tạo ra, nên việc giải bài toán nhận diện xe cũng trở nên khả thi và chính xác hơn.
Một trong những giải pháp đó là ứng dụng học máy để nhận diện xe.
Thuật toán YOLO là 1 hệ thống nhận diện vật thể dựa trên CSDL của Pascal VOC 2012.
Nó có thể nhận diện đươc 80 class vật thể gồm chim, chó, người, xe cộ,… Các hệ thống
trước sử dụng lại các hàm phân loại và định vị có sẵn trong thư viện để thực hiện nhận
diện. Họ phân vùng trên toàn bộ hình ảnh, những vùng sáng lên được nhận diện là vật
thể.

Thuật toán YOLO sử dụng cách tiếp cận khác, ta sử dụng một mạng neural trên toàn bộ
hình ảnh. Mạng này chia hình ảnh thành nhiều vùng và dự đoán xác suất trên từng vùng
đó, từ đó đưa ra trọng số dự đoán vật thể tại từng vùng.

P a g e 11 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Giải thuật Kalman, hay còn gọi Kalman filter, là phương pháp để theo dấu vật thể dựa
trên một chuỗi phân tích vị trí của vật theo thời gian. Đầu tiên hệ thống nhận được một
phép đo từ vị trí của phương tiện so với hình nền. Hệ thống khởi tạo vị trí cho phương tiện
dựa trên phép đo đầu tiên. Sau một khoảng thời gian gọi là Δ t xe sẽ nhận được một đo
lường cảm biến, giả sử rằng vận tốc là không đổi, từ đó tính toán vị trí tiếp theo bằng vận
tốc * t. Bước này được gọi là Dự đoán.
Để đào tạo cho mô hình nói trên, cần một số lượng lớn hình ảnh các loại phương tiện. Để
giải quyết vấn đề này, nhóm em sử dụng nguồn hình ảnh ghi được từ một số camera giao
thông của thành phố Đà Nẵng.

II.

Các công đoạn cần làm

1.

Các công cụ và môi trường triển khai:
1.1 Công cụ xử lý hình ảnh OpenCV

OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử lý về
thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc viết bằng C/C++, vì vậy có
tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực.
OpenCV có các interface cho C/C++, Python, Java vì vậy hỗ trợ được cho Window,
Linux, MacOS lẫn Android, iOS. OpenCV có cộng đồng hơn 47 nghìn người dùng và số
lượng download vượt 6 triệu lần.
OpenCV có rất nhiều ứng dụng:


Nhận dạng ảnh



Xử lý hình ảnh



Phục hồi hình ảnh/video



Thực tế ảo



Các ứng dụng khác
P a g e 12 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Trong đề tài này, OpenCV được sử dụng chủ yếu trong việc đọc file ảnh, file video, cắt
ảnh và hiển thị video cho người dùng xem.
1.2

Thư viện học máy YOLO

YOLO là 1 mã nguồn mở về nhận diện vật thể. Thư viện đã được xây dựng sẵn 80 class
và được tối ưu hoá để có thể chạy trên các máy tính có cài đặt Python, OpenCV,
Tensorflow và đặc biệt nó hỗ trợ mạnh cho các máy tính có bộ xử lý đồ hoạ GPU.
1.3

Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao, mã nguồn mở, dùng cho nhiều mục đích, trong
đó có dùng trong nghiên cứu dữ liệu, học máy.
Trong đề tài này, Python là ngôn ngữ dùng để viết chương trình nhận dạng và tính toán
tốc độ.

2.

Tạo Region of Interest

Vùng quan tâm (Region Of Interest, viết tắt ROI hoặc RoI) là vùng ảnh ta sẽ áp dụng các
xử lý / biến đổi trên đó và bỏ qua các vùng còn lại.
Đôi khi không phải lúc nào ta cũng có thể xử lý trên toàn ảnh. Do đó, để tiết kiệm chi phí
tính toán, ta thu hẹp vùng quan tâm từ toàn ảnh về 1 vùng diện tích nhỏ hơn chỉ là 1 phần
của ảnh gốc.
Tạo mảng chứa toạ độ các điểm nằm ngoài vùng cần xử lý
Sau đó bôi đen vùng chứa các điểm đó, phần còn lại chính là vùng cần quan tâm.

Ta có kết quả như sau:

Hình ảnh video khi chưa chọn vùng RoI
P a g e 13 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Hình ảnh từ video sau khi đã chọn vùng RoI:

3.

Thuật toán YOLO
P a g e 14 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Dựa vào bộ dữ liệu đã được train từ trước của YOLO (Pre-train YOLO model) bao gồm
80 classes trong đó có các class như xe máy, con người,…
Có một số hướng tiếp cận để giải quyết vấn đề, đồng thời mỗi lần chạy tốn rất nhiều thời
gian.
- Chia ảnh thành nhiều box, mỗi box sẽ detect object trong box đó. Vị trí của object chính
là toạ độ của box đó.
- Thay vì chia thành từng box, chúng ta sẽ sử dụng một thuật toán để lựa chọn những
region ứng viên (ví dụ như là thuật toán Selective Search), các vùng ứng viên này có thể
tưởng như là những vùng liên thông với nhau trên kênh màu RGB, sau đó với mỗi vùng
ứng viên này, chúng ta dùng model để phân loại object.
- Chúng ta có một số mô hình xây dựng theo kiểu này như RCNN, Fast RCNN rất rõ
ràng, nhược điểm của các phương pháp trên là tốn rất nhiều tài nguyên để tính toán cho
mội vùng trên một bức ảnh,và do đó không thể chạy realtime trên các thiết bị yếu.

4.

Tính toán tốc độ dựa trên khung hình trên giây

Các bước thực hiện:
-

Vẽ một đường ranh giới để làm mốc đo đạc tốc độ của phương tiện
# Draw line used for speed detection
cv2.line(frame,(0, Y_THRESH),(640, Y_THRESH),(255,0,0),2)

-

Khi phương tiện xuất hiện trong khung hình, hệ thống sẽ lưu lại thời điểm phương
tiện ấy đi qua.

-

Cho đến khi phương tiện vượt qua được mốc ranh giới, hệ thống sẽ tính toán số
lượng khung hình giữa hai thời điểm để đưa ra ước lượng thời gian vật thể xuất
hiện.
# Check if tracked object has reached the speed detection line
if trace_y <= Y_THRESH + 5 and trace_y >= Y_THRESH - 5 and
not vehicle.passed:
vehicle.passed = True

P a g e 15 | 22


Thị giác máy tính

-

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

Dựa vào đo đạc trên thực tế, hệ thống có sẵn khoảng cách giữa điểm bắt đầu
khung hình và cột mốc đo đạc tốc độ. Từ đó ta có được vật tốc của chiếc xe theo
công thức: V=S/T

P a g e 16 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

III. Triển khai công việc
1. Phân Chia Công Việc
Trong quá trình tìm hiểu và triển khai đề tài, thì chúng em đã hỗ trợ giúp đỡ nhau, tuy
nhiên để hiệu quả, một số công việc chính được phân chia như sau:

Tên

Công việc
- Cài đặt mô hình training dữ liệu
- Tổng hợp class các vật thể

Phan Hoàng Việt

- Train mô hình thuật toán nhận diện vật thể
- Viết báo cáo, làm slide
- Cài đặt thuật toán Kalman theo dõi tốc độ
phương tiện

Trần Thanh Huy

- Tính toán thời gian của xe
- Tính toán tốc độ
- Viết báo cáo, làm slide
- Thu thập dữ liệu phương tiện
- Phân vùng ROI

Trương Huỳnh Mai Nhi

- Vẽ đường ranh giới làm mốc tính tốc độ
- Viết báo cáo, làm slide
Bảng phân công công việc

P a g e 17 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

2. Các bước thực hiện
Để đào tạo mô hình học máy nhận dạng được phương tiện và tính tốc độ xe, thì chúng ta
cần thực hiện nhiều bước theo thứ tự như sau:
Thu thập dữ liệu -> Xử lý dữ liệu -> Đào tạo mô hình -> Nhận dạng-> Tính tốc độ xe.

Các bước giải quyết bài toán

P a g e 18 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

PHẦN III: THỰC NGHIỆM VÀ KẾT QUẢ
I.

Kết quả thực nghiệm

1.
Nhận diện chuyển động xe:
Sau quá trình huấn luyện ta thu được một mô hình có thể nhận dạng xe. Để đánh giá khả
năng nhận dạng xe của mô hình, chúng em đã thử cho mô hình nhận dạng 60 giây đầu
tiên của video trích xuất từ camera giám sát có chứa xe ở nhiều góc, kích thước lớn nhỏ
khác nhau
2.
Tính toán tốc độ xe:
Sau quá trình huấn luyện ta thu được một mô hình có thể tính được vận tốc xe.

II.

Đánh giá kết quả

1.

Nhận diện chuyển động xe:

Kết quả nhận dạng xe của mô hình là khá cao khi mà các xe lưu thông ở đường phố thì có
rất nhiều sự khác biệt nhau về màu sắc, kích thước, số lượng người ngồi trên xe hay loại
hàng hóa chở trên xe, và còn bị ảnh hưởng bởi nhiều yếu tố khác như bị che khuất, bóng
cây…
Qua thực nghiệm thì nhận thấy rằng mô hình cho kết quả nhận dạng cao nhất khi mà các
xe không bị che khuất, và có kích thước vừa phải.
Đối với một số trường hợp xe không nhận dạng được thì chủ yếu là do bị che khuất một
phần, kích thước hình ảnh xe quá nhỏ.
2.

Tính toán tốc độ xe:

Độ chính xác của hệ thống tính tốc độ khá là cao, tuy nhiên chưa đủ tin cậy để ứng dụng
vào những bài toán yêu cầu độ chính xác cao. Mặc dù vậy, kết quả triển khai bài toán này
như ta thấy ở trên vẫn có nhiều khả quan khi ứng dụng vào bài toán yêu cầu độ chính xác
không lớn, có thể đưa ra con số chấp nhận được. Từ hệ thống đơn giản này, ta có thể cải
tiến để nâng cao khả năng nhận dạng xe cũng như độ chính xác của bài toán.
Kết quả của bài toán phụ thuộc rất nhiều vào tình hình giao thông, thời tiết, địa điểm thực
hiện và nhiều yếu tố khác. Mật độ lưu thông của các phương tiện giao thông càng lớn thì
độ chính xác cũng giảm dần. Cũng tương tự nếu thời tiết diễn biến xấu hay địa điểm đếm
xe có nhiều vật cản che khuất hay có nhiều bóng cây. Bên cạnh đó thuật toán chưa ổn
định cũng là một yếu tố ảnh hưởng đến kết quả.

P a g e 19 | 22


Thị giác máy tính

Nhận diện chuyển động và tính tốc độ xe

15TCLC1

TỔNG KẾT
1. Kết luận
Sau quá trình triển khai đề tài, về cơ bản hệ thống đã có thể nhận dạng và tính được tốc
độ xe, tuy nhiên độ chính xác chưa cao. Sự thiếu chính xác này xuất phát từ nhiều nguyên
nhân khác nhau như do thiếu dữ liệu đào tạo nên mô hình nhận dạng có hiệu suất không
cao, thuật toán tính vận tốc xe vẫn chưa tối ưu, hay do các nguyên nhân khách quan khác
như vật cản che khuất, thời tiết,...
Hệ thống này sẽ đạt hiệu suất cao nhất khi nhận diện xe trên đường một chiều, làn đường
rộng và xe mật độ xe không quá cao.

2. Hướng phát triển
Để cải thiện độ chính xác, ta sẽ tiến hành thu thập thêm nhiều dữ liệu hơn, đa dạng hơn.
Từ đó sẽ giúp mô hình nhận dạng xe chính xác hơn. Ngoài ra để nhận diện và tính toán
vận tốc xe hiệu quả, ta cũng cần cải thiện thuật toán nhận dạng và tính toán.
Sau khi có một hệ thống nhận diện xe có hiệu suất ổn định, ta sẽ ứng dụng nó vào những
bài toán khác lớn hơn trong thực tế để giải quyết các vấn đề về giao thông.

TÀI LIỆU THAM KHẢO
https://github.com/mrnugget/opencv-haar-classifier-training
https://github.com/srianant/kalman_filter_multi_object_tracking
https://github.com/tejaslodaya/car-detection-yolo
https://github.com/JunshengFu/
https://gregtinkers.wordpress.com

P a g e 20 | 22



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×

×