Luận Văn Xây dựng ứng dụng nhận dạng biển báo giao thông trên thiết bị di động

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Mai Kul, 14/12/13.

  1. Mai Kul

    Mai Kul New Member

    Bài viết:
    1,299
    Được thích:
    0
    Điểm thành tích:
    0
    Xu:
    0Xu
    Khóa luận tốt nghiệp năm 2012
    Đề tài: XÂY DỰNG ỨNG DỤNG NHẬN DẠNG BIỂN BÁO GIAO THÔNG TRÊN THIẾT BỊ DI ĐỘNG


    MỤC LỤC
    MỞ ĐẦU 2
    LỜI CẢM ƠN . 4
    NHẬN XÉT 5
    NHẬN XÉT 6
    MỤC LỤC 7
    DANH MỤC BẢNG BIỂU 9
    DANH MỤC HÌNH VẼ 10
    CHƯƠNG 1 : GIỚI THIỆU . 1
    1.1 Giới Thiệu Đề Tài 1
    1.2 Mục Tiêu Của Đề Tài 3
    CHƯƠNG 2 : NỀN TẢNG VÀ CÔNG NGHỆ 4
    2.1 Lý Thuyết Xử Lý Ảnh . 4
    2.1.1 Tổng quan về xử lý ảnh . 4
    2.1.2 Một số phương pháp biểu diễn ảnh . 6
    2.1.3 Phương pháp phát hiện biên ảnh . 8
    2.1.4 Phân vùng ảnh . 12
    2.1.5 Nhận dạng ảnh 17
    2.2 Lý Thuyết Mạng Nơron 18
    2.2.1 Tổng quan về mạng nơron 18
    2.2.2 Các thành phần cơ bản của mạng nơron nhân tạo 18
    2.2.3 Mạng truyền thẳng và thuật toán lan truyền ngược 26
    2.3 Nền Tảng Android . 31
    2.3.1 Sự phát triển của Android . 31
    2.3.2 Những đặc điểm khác biệt của Android 33
    2.3.3 Máy ảo Dalvik . 34
    2.3.4 Kiến trúc của Android . 34
    2.3.5 Các thành phần trong một dự án ứng dụng Android 37
    2.4 Thư Viện Xử Lý Ảnh OpenCv . 40
    2.4.1 Vài nét về Computer Vision . 40
    2.4.2 Một số thư viện xử lý ảnh tiêu biểu 41
    2.4.3 Thư viện OpenCV . 43
    CHƯƠNG 3 : ỨNG DỤNG NHẬN DẠNG BIỂN BÁO GIAO THÔNG . 47
    3.1 Mô Tả Bài Toán . 47
    GVHD: ThS. Phan Nguyệt Minh SVTH: Nguyễn Bá Chung
    Đỗ Trường Giang
    3.1.1 Đặt vấn đề . 47
    3.1.2 Đối tượng của bài toán 48
    3.2 Mô Hình Giải Quyết Bài Toán . 52
    3.2.1 Mô hình tổng quát . 52
    3.2.2 Thu nhận hình ảnh (Capture Image) . 53
    3.2.3 Phát hiện biển báo và trích xuất vùng đặc trưng . 54
    3.2.4 Xử lý trước khi nhận dạng (Pre-recognized) 62
    3.2.5 Quá trình nhận dạng (Recognized) . 63
    3.3 Thiết Kế Chương Trình 66
    3.3.1 Yêu cầu phần mềm 66
    3.3.2 Thiết kế Use-Case . 69
    3.3.3 Thiết kế sơ đồ lớp (mức phân tích) . 74
    3.3.4 Thiết kế dữ liệu . 81
    3.3.5 Thiết kế giao diện 82
    3.4 Thực Nghiệm . 87
    CHƯƠNG 4 : ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 88
    4.1 Đánh Giá Luận Văn 88
    4.2 Đánh Giá Chương Trình 88
    4.2.1 Kết quả đạt được . 88
    4.2.2 Các hạn chế . 88
    4.3 Hướng Phát Triển . 89
    4.4 Kết Luận . 89
    TÀI LIỆU THAM KHẢO . 90
    GVHD: ThS. Phan Nguyệt Minh SVTH: Nguyễn Bá Chung
    Đỗ Trường Giang
    DANH MỤC BẢNG BIỂU
    Bảng 3.1 – Danh sách yêu cầu chức năng . 66
    Bảng 3.2 – Danh sách yêu cầu hiệu quả 67
    Bảng 3.3 – Danh sách yêu cầu tiện dụng 68
    Bảng 3.4 – Danh sách yêu cầu tiến hóa . 68
    Bảng 3.5 – Danh sách các Actor . 69
    Bảng 3.6 – Danh sách các Use-Case . 70
    Bảng 3.7 – Danh sách các lớp đối tượng quan hệ . 75
    Bảng 3.8 – Danh sách thuộc tính lớp Input . 75
    Bảng 3.9 – Danh sách thuộc tính lớp Hidden 76
    Bảng 3.10 – Danh sách thuộc tính lớp Output 76
    Bảng 3.11 – Danh sách phương thức lớp IbackPropagation<T> 77
    Bảng 3.12 – Danh sách thuộc tính lớp MLP<T> 78
    Bảng 3.13 – Danh sách phương thức lớp MLP<T> 78
    Bảng 3.14 – Danh sách thuộc tính lớp CaptureObjectLayer . 78
    Bảng 3.15 – Danh sách phương thức lớp CaptureObjectLayer 79
    Bảng 3.16 – Danh sách thuộc tính lớp DetectObjectLayer . 79
    Bảng 3.17 – Danh sách phương thức lớp DetectObjectLayer . 80
    Bảng 3.18 – Danh sách thuộc tính lớp NeuralNetwork<T> 80
    Bảng 3.19 – Danh sách phương thức lớp NeuralNetwork<T> . 80
    Bảng 3.20 – Danh sách màn hình 82
    Bảng 3.21 – Chi tiết màn hình chính . 83
    Bảng 3.22 – Chi tiết màn hình phát hiện biển báo bằng tay . 84
    Bảng 3.23 – Chi tiết màn hình phát hiện biển báo tự động . 85
    Bảng 3.24 – Chi tiết màn hình kết quả detect . 86
    Bảng 3.25 – Chi tiết màn hình kết quả nhận dạng 86
    Bảng 3.26 – Bảng kết quả thực nghiệm 87
    GVHD: ThS. Phan Nguyệt Minh SVTH: Nguyễn Bá Chung
    Đỗ Trường Giang
    DANH MỤC HÌNH VẼ
    Hình 1.1 – Một số thiết bị hay được sử dụng trong nhận dạng . 1
    Hình 1.2 – Smartphone đang là xu hướng phát triển mới trong giai đoạn này . 2
    Hình 1.3 – Những nền tảng sẽ sử dụng trong khóa luận . 3
    Hình 2.1 – Các bước cơ bản trong xử lý ảnh . 4
    Hình 2.2 – Hướng các điểm biên và mã tương ứng . 7
    Hình 2.3 – Minh họa xác định điểm biên 12
    Hình 2.4 – Lược đồ rắn lượn và cách chọn ngưỡng 13
    Hình 2.5 – Minh họa khái niệm liên thông 15
    Hình 2.6 – Đơn vị xử lý (Processing Unit) . 18
    Hình 2.7 – Hàm đồng nhất (Identity function) 20
    Hình 2.8 – Hàm bước nhị phân (Binary step function) . 21
    Hình 2.9 – Hàm Sigmoid . 21
    Hình 2.10 – Hàm sigmoid lưỡng cực . 22
    Hình 2.11 – Mạng nơron truyền thẳng nhiều lớp (Feed-forward neural network) 23
    Hình 2.12 – Mạng nơron hồi quy (Recurrent neural network) 24
    Hình 2.13 – Mô hình Học có thầy (Supervised learning model) . 25
    Hình 2.14 – Mạng nơron truyền thẳng nhiều lớp 26
    Hình 2.15 – Lịch sử phát triển Android . 32
    Hình 2.16 – Một số giao diện của Android . 33
    Hình 2.17 – Bàn phím của Android 33
    Hình 2.18 – Kiến trúc của Android . 34
    Hình 2.19 – Kiến trúc file XML 37
    Hình 2.20 – Activity Stack 39
    Hình 2.21 – Vòng đời của một Activity 40
    Hình 2.22 – Ví dụ về Computer Vision . 41
    Hình 2.23 – Tốc độ xử lý của OpenCV so với LTI và VXL . 43
    Hình 2.24 – Lịch sử phát triển của OpenCV . 44
    Hình 2.25 – Cấu trúc thư viện OpenCV 45
    Hình 3.1 – Bài toán nhận dạng biển báo giao thông 48
    GVHD: ThS. Phan Nguyệt Minh SVTH: Nguyễn Bá Chung
    Đỗ Trường Giang
    Hình 3.2 – Một số mẫu biển báo cấm 49
    Hình 3.3 – Một số mẫu biển báo hiệu lệnh 50
    Hình 3.4 – Một số mẫu biển báo nguy hiểm 51
    Hình 3.5 – Mô hình giải quyết bài toán . 52
    Hình 3.6 – Mẫu biển báo cấm 54
    Hình 3.7 – Mẫu biển nguy hiểm 54
    Hình 3.8 – Mẫu biển hiệu lệnh 54
    Hình 3.9 – Mẫu một số biển báo quá cá biệt . 55
    Hình 3.10 – Ảnh ban đầu thu từ camera 56
    Hình 3.11 – Ảnh sau khi đã chuyển sang ảnh mức xám 56
    Hình 3.12 – Ảnh sau khi dùng Canny để tìm biên . 57
    Hình 3.13 – Không gian màu HSV 58
    Hình 3.14 – Khoảng giá trị ứng với dải màu đỏ 58
    Hình 3.15 – Khoảng giá trị ứng với dải màu xanh 58
    Hình 3.16 – Ảnh sau khi đã lọc qua mặt nạ màu . 59
    Hình 3.17 – Ảnh sau khi dùng Canny phát hiện biên 60
    Hình 3.18 – Kết quả của ROI Extraction . 61
    Hình 3.19 – Cấu trúc mạng noron để nhận dạng biển báo 64
    Hình 3.20 – Tập dữ liệu mẩu để huấn luyện mạng 65
    Hình 3.21 – Tập biển báo chuẩn 65
    Hình 3.20 – Sơ đồ Use-case tổng quát . 69
    Hình 3.21 – Sơ đồ lớp mức phân tích 74
    Hình 3.22 – Cấu trúc file dữ liệu XML . 81
    Hình 3.23 – Màn hình chính 82
    Hình 3.24 – Màn hình phát hiện biển báo bằng tay . 84
    Hình 3.25 – Màn hình phát hiện biển báo tự động 85
    Hình 3.26 – Màn hình kết quả detect . 85
    Hình 3.27 – Màn hình kết quả nhận dạng 86


    MỞ ĐẦU
    Ngày nay với các tiến bộ của khoa học kỹ thuật thì mọi công việc hầu như đều
    có thể tiến hành trên máy tính một cách tự động hóa hoàn toàn hoặc một phần. Một
    trong những sự thay đổi lớn đó là cách thức chúng ta thu nhận và xử lý dữ liệu. Các
    công cụ nhập liệu như bàn phím hay máy scan dần bị thay thế bằng các thiết bị tiện lợi
    hơn như màn hình cảm ứng, camera
    Hơn thế nữa, các máy tính để bàn không còn là công cụ duy nhất có thể hỗ trợ
    cho con người. Chúng ta bước sang thế kỷ 21 với sự phát triển mạnh mẽ của các thiết
    bị di động, giải trí cầm tay hay smartphone. Với kích thước ngày càng nhỏ gọn và
    hiệu suất làm việc thì không ngừng được cải tiến, các công cụ mini này hứa hẹn sẽ là
    một phần không thể thiếu trong xã hội hiện đại. Và do đó, phát triển các ứng dụng trên
    các thiết bị này cũng là một xu thế tất yếu.
    Công nghệ nhận dạng là một trong các công nghệ đang được áp dụng cho các
    thiết bị di động hiện nay. Nhận dạng có thể bao gồm nhận dạng âm thanh, hình ảnh.
    Các đối tượng nhận dạng có nhiều kiểu như tiếng nói, chữ viết, khuôn mặt, mã vạch
    và biển báo giao thông cùng là một trong số đó. Chương trình nhận dạng biển báo
    giao thông thường phức tạp và được cài đặt trên những hệ thống có bộ xử lý lớn,
    camera chất lượng cao. Mục tiêu của khóa luận là cải tiến công nghệ nhận dạng này và
    mang nó cài đặt trên các thiết bị di động, giúp chúng ta phát hiện biển báo và nhận
    dạng nó một cách nhanh nhất.
    Khóa luận “Xây dựng ứng dụng nhận dạng biển báo giao thông trên thiết
    bị di động” bao gồm tất cả 4 chương.
    Chương I - Giới thiệu: Giới thiệu khái quát về khóa luận và mục đích của
    khóa luận.
    Chương II - Nền tảng và công nghệ: Giới thiệu đầy đủ về các kiến thức nền
    tảng cũng như công nghệ và phần mềm được sử dụng trong khóa luận bao gồm kiến
    thức về xử lý ảnh, lý thuyết mạng noron, môi trường hệ điều hành dành cho di động
    Android, thư viện xử lý ảnh OpenCV.
    Chương III - Xây dựng ứng dụng nhận dạng biển báo giao thông: Trình
    bày mô hình giải quyết bài toán nhận dạng trên thiết bị di động, các sơ đồ chức năng
    và thiết kế giao diện của chương trình.
    Chương IV - Đánh giá kết quả và kết luận: Tổng kết quá trình thực hiện
    khóa luận và rút ra hướng phát triển sau này.



    CHƯƠNG 1 : GIỚI THIỆU
    Chương này trình bày các vấn đề sau:
    1.1 Giới thiệu đề tài
    1.2 Mục tiêu của đề tài
    1.1 Giới Thiệu Đề Tài
    Ngày nay, những tiến bộ mới trong khoa học kỹ thuật công nghệ đã giúp ích rất
    nhiều cho cuộc sống của con người. Mọi thứ hầu như đều được tự động và hiệu suất
    công việc được nâng cao hơn với sự trợ giúp của máy móc, thiết bị. Một trong những
    công nghệ tiên tiến đang được áp dụng rộng rãi trong đời sống chính là công nghệ
    nhận dạng.
    Nhận dạng dữ liệu bao gồm có nhận dạng âm thanh và nhận dạng hình ảnh.
    Các đối tượng của bài toán nhận dạng thì rất phong phú, ví dụ như nhận dạng khuôn
    mặt, tiếng nói, nhận dạng chữ viết tay, nhận dạng mã vạch Biển báo giao thông
    cũng là một trong số đó. Đây là kiểu đối tượng có tính chất hình học đặc trưng,
    thường bắt gặp trong đời sống hằng ngày với công dụng là đưa ra những cảnh báo
    thông tin cho người tham gia giao thông. Tuy nhiên các biển báo giao thông thì không
    Hình 1.1 – Một số thiết bị hay được sử dụng trong nhận dạng
    2 | T r a n g
    GVHD: ThS. Phan Nguyệt Minh SVTH: Nguyễn Bá Chung
    Đỗ Trường Giang
    có quy luật mà chỉ là hệ thống các ký hiệu với ý nghĩa qui ước kèm theo. Việc ghi nhớ
    hình dạng và ý nghĩa của tất cả các loại biển báo đối với chúng ta sẽ là một khó khăn
    lớn, do đó chúng ta thường hay có nhu cầu tra cứu tìm hiểu trực quan.
    Bài toán nhận dạng nói chung và nhận dạng biển báo giao thông nói riêng hiện
    vẫn còn là một trong những chủ đề được các nhà khoa học nghiên cứu. Hiện tại đã có
    một số hệ thống tiên tiến của nước ngoài có khả năng nhận dạng biển báo giao thông
    nhưng hầu hết các hệ thống này đều đòi hỏi một khả năng xử lý mạnh mẽ, đi kèm với
    nó là camera có chất lượng cao.
    Quay trở lại vấn đề, ngày nay máy tính không còn là công cụ trợ giúp độc tôn
    dành cho con người. Hầu hết chúng ta ai cũng biết đến sự phát triển mạnh mẽ của các
    loại thiết bị giải trí cầm tay nhỏ gọn. Đó chính là smartphone. Với ưu điểm là kích
    thước bé, đi kèm với nó là các chíp xử lý thông minh tốc độ cao, smartphone có khả
    năng đảm đương rất nhiều tác vụ giống y như đang thao tác trên máy tính. Phát triển
    phần mềm cho smartphone hiện cũng là xu thế tất yếu.
    Ứng dụng công nghệ nhận dạng trên smartphone chính là ý tưởng mà nhóm
    hướng tới khi thực hiện khóa luận này. Bài toán nhóm sẽ giải quyết là làm thế nào xây
    dựng một hệ thống thông minh cho phép phát hiện và nhận dạng biển báo giao thông
    trên thiết bị di động.
    Hình 1.2 – Smartphone đang là xu hướng phát triển mới trong giai đoạn này
    1.2 Mục Tiêu Của Đề Tài
    Mục tiêu của đề tài là nghiên cứu bài toán nhận dạng nói chung và nhận dạng
    biển báo giao thông nói riêng, từ đó cải tiến áp dụng cho việc xây dựng hệ thống trên
    các thiết bị di động. Mặc dù smartphone có những cải tiến vượt trội nhưng tất nhiên
    những khác biệt về phần cứng như chip xử lý hay camera sẽ không thể so sánh với
    máy tính được. Do đó chương trình nhóm xây dựng sẽ tìm cách tối ưu hóa làm sao
    cho có thể tận dụng được những khả năng vốn có của smartphone.
    Ngoài ra hệ thống biển báo giao thông của nước ta khá lớn, do đó nhóm sẽ xây
    dựng chương trình hoàn chỉnh nhưng sẽ thu nhỏ tập dữ liệu lại, coi đây như là một tập
    dữ liệu demo áp dụng cho khóa luận này.
    Chương trình sẽ được xây dựng trên nền tảng Android, một trong những nền
    tảng di động phát triển mạnh nhất hiện nay. Ngoài ra nhóm sử dụng thư viện OpenCv
    hỗ trợ cho việc xử lý ảnh.


    TÀI LIỆU THAM KHẢO
    [Tiếng Việt]
    1. Giáo trình xử lý ảnh , TS Phạm Việt Bình – TS Đỗ Năng Toàn, Đại Học Thái
    Nguyên, 2007.
    2. Giáo trình xử lý ảnh, tập thể tác giả, Học Viện Công Nghệ Bưu Chính Viễn Thông,
    lưu hành nội bộ, 2006.
    3. Lý thuyết mạng noron, Nguyễn Thanh Cẩm.
    [Tiếng Anh]
    1. A Guided Tour of Computer Vision, Vishvjit S. Nalwa.
    2. An introduction to neural networks: Pattern learning with the back-propagation
    algorithm - http://www.ibm.com/developerworks/library/l-neural/
    3. Android technical resources
    http://developer.android.com/resources/browser.html?tag=tutorial
    4. Color-Based Road Sign Detection and Tracking, Luis David Lopez and Olac
    Fuentes, Computer Science Department University of Texas
    5. Learning OpenCV: Computer Vision with the OpenCV Library, Gary Bradski-Adrian Kaehler.
    6. OpenCV Tutorials - http://opencv.itseez.com/trunk/doc/tutorials/tutorials.html
    7. Principles of Artificial Neural Networks, Daniel Graupe.
    8. Traffic Sign Recognition Using Neural network on OpenCV: Toward Intelligent
    Vehicle/Driver Assistance System, Auranuch Lorsakul - Jackrit Suthakorn
     

    Các file đính kèm:

Đang tải...