Để tăng hiệu suất của hệ thống nhận diện lane làm cho nó phù hợp với môi trường Việt Nam, việc phát triển các giải thuật học chuyển đổi (transfer learning) là điều cần thiết. Các giải thuật này sẽ giúp cho các hệ thống học sâu thích nghi tốt hơn khi được áp dụng ở môi trường mới, và cải thiện hiệu suất nhận diện. Sau khi cải tiến việc nhận diện lane, chúng ta có thể phát triển hệ thống này lên thành cảnh báo cho tài xế khi lệch lane,
73 có thể ứng dụng cho hệ thống lane keeping trên xe tự lái. Bên cạnh đó, chúng ta còn có thể phát triển thêm cho AI biết cách nhận biết vật thể (Object detection) để từ đó xe của chúng ta có thể nhận diện vật cản, các vật trong vùng nguy hiểm để cảnh báo cho tài xế hoặc tác động trực tiếp vào xe để giúp xe chủ động tránh các trường hợp nguy hiểm, nó còn có thể được áp dụng cho hệ thống cảnh báo điểm mù, hệ thống Adaptive Cruise Control,… và với việc ứng dụng AI, sau khi được train nhiều lần thì việc sử dụng cho tình trạng giao thông phức tạp như ở Việt Nam chúng ta chắc chắn sẽ không còn là một vấn đề nan giải.
74
DANH MỤC TÀI LIỆU THAM KHẢO
[1] https://github.com/amusi/awesome-lane-detection [2] https://github.com/georgesung/advanced_lane_detection [3] https://github.com/MaybeShewill-CV/lanenet-lane-detection [4] https://github.com/XingangPan/SCNN [5] https://github.com/davidawad/Lane-Detection [6] https://github.com/yang1688899/CarND-Advanced-Lane-Lines [7] https://github.com/SeokjuLee/VPGNet
[8] https://github.com/mvirgo/MLND-Capstone:Lane Detection with Deep Learning
[9] https://machinelearningcoban.com/2016/12/28/linearregression/
[10] https://github.com/galenballew/SDC-Lane-and-Vehicle-Detection-Tracking
[11] https://github.com/shawshany/Advance_LaneFinding
[12] https://opencv-python-tutroals.readthedocs.io
[13] PGS.TS Nguyễn Quang Hoan, Giáo trình xử lý ảnh, Học viện bưu chính viễn thông
[14] https://vnexpress.net/so-hoa/nhung-ung-dung-cua-ai-trong-cuoc-song-3772257.html [15] https://tech.vccloud.vn/ubuntu-la-gi-co-nen-su-dung-ubuntu-khong- 20180908094633985.htm [16] https://o7planning.org/vi/11385/gioi-thieu-ve-python [17] https://nttuan8.com/huong-dan-cai-dat-anaconda/ [18] https://vi.wikipedia.org/wiki/CUDA [19] https://developer.nvidia.com/cudnn [20] https://drive.google.com/open?id=1N8cMYqmhlxAGES2g_H3vbRnSUNPRy_76
75
PHỤ LỤC
Cài đặt hệ điều hành Ubuntu 16.04
Chuẩn bị:
- SB dùng để boot tốt nhất là trên 4gb
- Phần mềm tạo usb boot ( SB installer, netbootin,…). Ở đây nhóm chúng em sẽ hướng dẫn sử dụng phần mềm USB installer
- File ISO Ubuntu 16.04: http://releases.Ubuntu.com/16.04/
Yêu cầu cấu hình tối thiểu:
- 2 GHz dual core processor - 2 GiB RAM
- 25 GB không gian ổ đĩa cứng
- VGA có khả năng phân giải màn hình 1024×768 - Cổng USB, máy tính hỗ trợ boot từ USB
Tiến hành cài đặt:
77
Bước 2: Khởi động máy tính từ USB boot
Hầu hết các máy tính sẽ tự khởi động từ USB. Chỉ cần kết nối USB và bật nguồn máy tính hoặc khởi động lại. Bạn sẽ thấy cùng một cửa sổ chào mừng, nhắc bạn chọn ngôn ngữ của bạn và cài đặt hoặc dùng thử Ubuntu Desktop.
Nếu máy tính của bạn không tự động khởi động từ USB, hãy thử giữ F12 hoặc phím ESC, F2, F10 khi máy tính của bạn khởi động lần đầu tiên. Với hầu hết các máy, điều này sẽ cho phép bạn chọn thiết bị USB từ menu khởi động hệ thống. Nếu không bạn có thể tham khảo phím tắt Boot option của một số dòng máy tại đây: https://blogtinhoc.vn/tong-hop-phim-tat-vao-boot-option-va-bios-cua-may-tinh.html
Bước 3: Sau khi chọn khởi động máy tình bằng SB boot, chương trình sẽ hiển
thị bảng menu các option sử dụng, ta sẽ chọn “Install buntu” để tiến hành cài đặt hoặc chọn “Try buntu without installing” để trải nghiệm buntu trước khi quyết định cài đặt hay không.
78
Bước 4: Tới phần “Select a language” Bạn chọn ngôn ngữ mà bạn muốn
Bước 5: Sau khi chọn ngôn ngữ, bạn sẽ được hỏi về các bản cập nhật và phần
79 Chúng tôi khuyên bạn nên bật cả Download updates và Install third-party software.
Luôn kết nối với internet để bạn có thể nhận được các bản cập nhật mới nhất trong khi cài đặt Ubuntu.
Nếu bạn không kết nối với internet, bạn sẽ được yêu cầu chọn một mạng không dây, nếu có. Chúng tôi khuyên bạn nên kết nối trong khi cài đặt để chúng tôi có thể đảm bảo máy của bạn được cập nhật.
Bước 6: Sử dụng các hộp kiểm để chọn xem bạn có muốn xóa hệ điều hành hiện
tại và thay thế bằng Ubuntu hoặc cài đặt Ubuntu cùng với hệ điều hành khác hoặc nếu bạn là người dùng nâng cao hãy chọn tùy chọn “Something else”.
Ở đây, chúng tôi chọn xóa hệ điều hành hiện tại và thay thế bằng Ubuntu
Sau khi định cấu hình bộ nhớ, hãy nhấp vào nút “Cài đặt ngay”. Một khung nhỏ sẽ xuất hiện với tổng quan về các tùy chọn lưu trữ bạn đã chọn, với cơ hội quay lại nếu chi tiết không chính xác.
80
81
Bước 8: Chọn kiểu bàn phím
Bước 9: Thiết lập thông tin đăng nhập
Nhập tên của bạn và trình cài đặt sẽ tự động đề xuất tên máy tính và tên người dùng. Nó có thể dễ dàng được thay đổi nếu bạn thích. Tên máy tính là cách máy tính của bạn sẽ xuất hiện trên mạng, trong khi tên người dùng của bạn sẽ là tên đăng nhập và tài khoản của bạn.
Tiếp theo, nhập mật khẩu mạnh. Trình cài đặt sẽ cho bạn biết nếu nó quá yếu. Bạn cũng có thể chọn bật tự động đăng nhập và mã hóa thư mục gốc. Nếu bạn có nhiều dữ liệu quan trọng, bạn nên tắt tính năng đăng nhập tự động và bật mã hóa. Điều này sẽ ngăn mọi người truy cập các tệp cá nhân của bạn nếu máy bị mất hoặc bị đánh cắp.
Chú ý: Nếu bạn bật mã hóa thư mục chính và bạn quên mật khẩu, bạn sẽ không thể truy xuất bất kỳ dữ liệu cá nhân nào được lưu trữ trong thư mục chính của mình.
82
Bước 10: Tiến hành cài đặt
Trình cài đặt sẽ hoàn thành ở chế độ nền trong khi cửa sổ cài đặt hướng dẫn bạn một chút về mức độ tuyệt vời của Ubuntu. Tùy thuộc vào tốc độ của máy và kết nối mạng của bạn, quá trình cài đặt sẽ chỉ mất vài phút.
83
Bước 11: Hoàn thành quá trình cài đặt
Sau khi mọi thứ đã được cài đặt và cấu hình, một cửa sổ nhỏ sẽ xuất hiện yêu cầu bạn khởi động lại máy tính của bạn. Nhấp vào “Khởi động lại” và rút SB khỏi máy tính khi được nhắc.
84
Bước 12: Đặng nhập và sử dụng
Cài đặt Anaconda
Bước 1: Truy xuất phiên bản mới nhất của Anaconda
Từ trình duyệt web, hãy chuyển đến trang tải xuống Anaconda thông qua đường dẫn sau: https://www.anaconda.com/distribution/
Tìm phiên bản Linux mới nhất và sao chép tập lệnh bash của trình cài đặt.
Bước 2: Tải xuống tập lệnh Anaconda Bash
Đăng nhập vào máy chủ buntu 16.04 của bạn với tư cách người dùng không phải root, chuyển vào /tmp thư mục và sử dụng curl để tải xuống liên kết bạn đã sao chép từ trang web Anaconda:
cd /tmp
Sử dụng curl để tải xuống liên kết mà bạn đã sao chép từ trang web Anaconda:
85
Bước 3: Xác minh tính toàn vẹn dữ liệu của trình cài đặt
Đảm bảo tính toàn vẹn của trình cài đặt với xác minh băm mật mã thông qua tổng kiểm tra SHA-256:
sha256sum Anaconda3-5.2.0-Linux-x86_64.sh Output:
09f53738b0cd3bb96f5b1bac488e5528df9906be2480fe61df40e0e0d19e3d48 Anaconda3-5.2.0-Linux-x86_64.sh
Bước 4: Chạy tập lệnh Anaconda
bash Anaconda3-5.2.0-Linux-x86_64.sh
Bạn sẽ nhận được kết quả sau để xem lại thỏa thuận cấp phép bằng cách nhấn ENTER cho đến khi bạn đạt đến kết thúc.
Output:
Welcome to Anaconda3 5.2.0
In order to continue the installation process, please review the license agreement.
Please, press ENTER to continue
>>> ...
Do you approve the license terms? [yes|no]
Khi bạn đến cuối giấy phép, hãy nhập yes miễn là bạn đồng ý với giấy phép để hoàn tất cài đặt.
Bước 5: Hoàn tất quá trình cài đặt
Khi bạn đồng ý với giấy phép, bạn sẽ được nhắc chọn vị trí cài đặt. Bạn có thể nhấn ENTER để chấp nhận vị trí mặc định hoặc chỉ định một vị trí khác.
86 Output:
Anaconda3 will now be installed into this location: /home/sammy/anaconda3 - Press ENTER to confirm the location
- Press CTRL-C to abort the installation - Or specify a different location below [/home/sammy/anaconda3] >>>
Tại thời điểm này, tiến trình cài đặt sẽ tiến hành. Lưu ý rằng quá trình cài đặt mất một thời gian.
Bước 6: Chọn tùy chọn
Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả sau:
Output:
Installation finished.
Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/sammy/.bashrc ? [yes|no]
[no] >>>
Bạn nên nhập yes sử dụng conda chỉ huy.
Tiếp theo, bạn sẽ được nhắc tải xuống Visual Studio Code, bạn có thể tìm hiểu thêm về từ trang web chính thức của VSCode.
Kiểu yes để cài đặt và no để từ chối.
Bước 7: Kích hoạt cài đặt
Bây giờ bạn có thể kích hoạt cài đặt bằng lệnh sau:
source ~/.bashrc
Bước 8: Thử nghiệm cài đặt:
87
conda list
Bạn sẽ nhận được đầu ra của tất cả các gói bạn có sẵn thông qua cài đặt Anaconda:
Bây giờ Anaconda được cài đặt, chúng ta có thể tiếp tục thiết lập môi trường Anaconda.
Bước 9: Thiết lập môi trường Anaconda
Bạn có thể tạo các môi trường Anaconda với conda create chỉ huy. Ví dụ, một môi trường Python 3 có tên my_env có thể được tạo bằng lệnh sau:
conda create --name my_env python=3
Kích hoạt môi trường mới như sau:
source activate my_env
Tiền tố nhắc lệnh của bạn sẽ thay đổi để phản ánh rằng bạn đang ở trong một môi trường Anaconda hoạt động, và bây giờ bạn đã sẵn sàng để bắt đầu làm việc trên một dự án.
Tạo môi trường với conda
Bước 1: Tạo thư mục dự án, ví dụ ~/projects/python_env_example trên máy tính
của bạn, sau đó chuyển vào thư mục vừa tạo:
$ mkdir ~/projects/python_env_example $ cd ~/projects/python_env_example
88
Bước 2: Tạo môi trường Conda với tên my_env và cài sử dụng python 3.5 với
lệnh:
$ conda create --name my_env python=3.5
Bước 3: Sử dụng môi trường my_env để làm việc bằng lệnh:
$ source activate my_env
Khi đó, tiền tố (base) sẽ được chuyển thành tên môi trường hiện tại của bạn ví dụ: (my_env)
Bạn có thể kiểm tra các môi trường đang có bằng lệnh:
$ conda info --envs
Kiểm tra các gói và thư viện hiện có trong môi trường bằng lệnh: $ conda list
Bước 4: Thoát khỏi môi trường
Nếu bạn không muốn làm việc trong môi trường đó nữa, bạn có thể dùng lệnh:
$ conda deactivate để thoát khỏi môi trường hiện tại
Cài đặt Cuda 9.0 và CuDNN 7.0
Bước 1: Cài đặt driver card đồ họa NVIDIA với apt-get
Cuda 9.0 yêu cầu driver NVIDIA phiên bản 384 trở lên, để cài đặt driver, ta sử dụng lệnh apt-get thay cho file cài đặt:
sudo apt-get install nvidia-384 nvidia-modprobe
Tiếp theo, bạn vào BIOS để disable Secure Boot. Thông thường, bạn có thể vào BIOS bằng cách khởi động lại máy tính và ấn F12
Sau đó, bạn kiểm tra cài đặt bằng lệnh nvidia-smi, hệ thống sẽ thông báo thông tin về card đồ họa bạn đang dùng và phiên bản driver bạn vừa cài.
89
Bước 2: Cài đặt Cuda 9.0 bằng file cài đặt
Bạn có thể tải bộ cài đặt Cuda 9.0 tại địa chỉ: https://developer.nvidia.com/cuda- 90-download-archive Hoặc sử dụng lệnh wget trong trường hợp không tìm thấy phiên bản phù hợp
90
$ wget
https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_3 84.81_linux-run
Giải nén nén file vừa cài đặt với lệnh --extract
$ chmod +x cuda_9.0.176_384.81_linux-run
$ ./cuda_9.0.176_384.81_linux-run --extract=$HOME
Sau khi giải nén, bạn sẽ nhận được 3 file: NVIDIA-Linux-x86_64-384.81.run (Driver NVIDIA), cuda-linux.9.0.176-22781540.run (file cài đặt cuda), cuda-
samples.9.0.176-22781540-linux.run (cuda 9.0 samples)
Tiến hành cài đặt CUDA Toolkit 9.0
$ sudo ./cuda-linux.9.0.176-22781540.run
Bạn sẽ phải đọc qua các quy định về pháp lý (ấn “d” trên bàn phím để đi đến cuối thông tin pháp lý nếu bạn đã đọc rõ các quy định) và ấn enter để đồng ý (accept) các quy định về pháp lý
Để xác minh cài đặt C DA, hãy cài đặt bài kiểm tra mẫu bằng lệnh:
$ sudo ./cuda-samples.9.0.176-22781540-linux.run
Sau khi việc cài đặt kết thúc, đặt lại đường dẫn thư viện
$ sudo bash -c "echo /usr/local/cuda/lib64/ > /etc/ld.so.conf.d/cuda.conf" $ sudo ldconfig
Bạn nên thêm chuỗi /usr/local/cuda/bin vào file hệ thống /etc/environment để nvcc sẽ được bao gồm trong $PATH. Điều này sẽ có hiệu lực sau khi khởi động lại máy. Để làm được điều này, bạn chỉ cần dùng lệnh:
$ sudo vim /etc/environment
Và thêm :/usr/local/cuda/bin (bao gồm dấu “:”) ở cuối đường dẫn PATH="/blah:/blah/blah" (bên trong dấu ngoặc kép)
91
$ cd /usr/local/cuda-9.0/samples $ sudo make
Tiến trình chạy sẽ tốn khá nhiều thời gian và xuất hiện nhiều cảnh báo không quan trọng. Sau khi hoàn thành, chạy deviceQuery và p2pBandwidthLatencyTest bằng lệnh:
$ cd /usr/local/cuda/samples/bin/x86_64/linux/release $ ./deviceQuery
93
Bước 3: Cài đặt cuDNN 7.0
Vào trang web download cuDNN: https://developer.nvidia.com/rdp/cudnn- download (cần phải đăng ký tài khoản) và chọn phiên bản cuDNN 9.0 mới nhất cho CUDA 9.0.
Tải 3 file có đuôi .deb: the runtime library, the developer library, và the code samples library for Ubuntu 16.04
Sau khi tải xong, trong thư mục download của mình, cài đặt 3 file vừa tải bằng lệnh:
$ sudo dpkg -i libcudnn7_7.0.5.15–1+cuda9.0_amd64.deb (the runtime library).
$ sudo dpkg -i libcudnn7-dev_7.0.5.15–1+cuda9.0_amd64.deb (the developer library)
$ sudo dpkg -i libcudnn7-doc_7.0.5.15–1+cuda9.0_amd64.deb (the code samples). Bây giờ, bạn có thể kiểm tra cuDNN có được cài đặt hay chưa bằng cách: -Sao chép code mẫu bằng lệnh cp -r /usr/src/cudnn_samples_v7/ ~.
-Di chuyển code đến ví dụ MNIST: cd ~/cudnn_samples_v7/mnistCUDNN. -Biên dịch ví dụ MNIST: make clean && make.
-Chạy ví dụ MNIST:./mnistCUDNN. Nếu cuDNN đã được cài đặt thành công, bạn sẽ thấy
Test passed! ở cuối phần kết quả trả về.
Cài đặt Tensorflow 1.10.0
Sau khi cài Cuda 9.0 và cuDNN 7.0, ta dễ dàng cài đặt Tensorflow 1.10.0 bằng lệnh:
$ pip install tensorflow==1.10.0
Để kiểm tra xem Tensorflow đã được cài đặt thành công hay chưa. Ta mở terminal và gõ thử các lệnh python sau. Nếu báo lỗi tức là cài đặt không thành công
$ python ...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session()
94 Hello, TensorFlow! >>> a = tf.constant(10) >>> b = tf.constant(32) >>> print(sess.run(a + b)) 42 Cài đặt easydict 1.6 Ta cài đặt easydict 1.6 bằng lệnh:
$ pip install easydict==1.6
Để kiểm tra easydict đã được cài thành công hay chưa. Ta chạy đoạn code sau với python, nếu không có lỗi thì easydict đã được cài đặt thành công.
$ python ...
>>> from easydict import EasyDict as edict >>> d = edict({‘foo’:3, ‘bar’:{‘x’:1, ‘y’:2}}) >>> d.foo 3 >>> d.bar.x 1 >>> d = edict(foo=3) >>>d.foo 3
Cài đặt các gói và thư viện còn lại
Opencv_python 3.4.1.15: pip install opencv-python==3.4.1.15
Glog 0.3.1: pip install glog==0.3.1
Tensorflow-gpu 1.10.0: pip install tensorflow-gpu==1.10.0
Numpy 1.13.1: pip install numpy==1.13.1
95