Tải bản đầy đủ (.docx) (19 trang)

Đề tài opencv xử lý ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1020.34 KB, 19 trang )

TRƯỜNG ĐẠI HỌC

BÁO CÁO TỔNG KẾT
ĐỀ TÀI

NGHIÊN CỨU VỀ XỬ LÝ ẢNH TRÊN HỆ ĐIỀU
HÀNH MÃ NGUỒN MỞ SỬ DỤNG OPENCV

HÀ NỘI, 04/2018


TRƯỜNG ĐẠI HỌC

BÁO CÁO TỔNG KẾT
ĐỀ TÀI SINH VIÊN
NGHIÊN CỨU VỀ XỬ LÝ ẢNH TRÊN HỆ ĐIỀU
HÀNH MÃ NGUỒN MỞ SỬ DỤNG OPENCV

Trưởng nhóm nghiên cứu:
Các thành viên tham gia
thực hiện:
Người hướng dẫn:

HÀ NỘI, 04/2018


Lời nói đầu
Các hệ thống camera giám sát an ninh đang ngày càng trở nên phổ biến trong các
hộ gia đình. Nhưng ứng dụng thường chỉ giới hạn ở chức năng giám sát qua màn hình
và lưu trữ dữ liệu video trong ổ đĩa. Để khai thác hiệu quả dữ liệu camera giám sát,
nhóm nghiên cứu đã thực hiện xây dựng chương trình phát hiện xâm nhập và đưa ra


báo động khi phát hiện xâm nhập. Phần mềm phát hiện xâm nhập sử dụng thư viện thị
giác máy tính OpenCV trên hệ điều hành mã nguồn mở Linux Ubuntu cho phép chụp
ảnh tại thời điểm xâm nhập, rung chuông báo động có xâm nhập. Đó là lý do nhóm
chúng em chọn đề tài “Nghiên cứu về Xử lý ảnh trên Hệ điều hành mã nguồn mở sử
dụng OpenCV”.
Nhóm chúng em xin gửi lời cảm ơn tới thầy Phạm Đình Tân đã giúp đỡ chúng em
trong suốt quá trình thực hiện đề tài. Nhưng với kiến thức và kinh nghiệm của chúng
em còn hạn chế, báo cáo đề tài của chúng em chắc chắn còn nhiều thiếu sót. Chúng em
rất mong được nhận sự góp ý của các thầy cô để đề tài của chúng em được hoàn thiện
hơn.
Chúng em xin chân thành cảm ơn!

MỤC LỤC



DANH MỤC HÌNH


CHƯƠNG 1 - TỔNG QUAN VỀ ĐỀ TÀI
1.1 Tổng quan về thư viện thị giác máy tính OpenCV
OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở về thị
giác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về xử lý ảnh,
và các vấn đề liên quan tới thị giác máy. OpenCV được có thể chạy trên nhiền nền
tảng khác nhau, bao gồm cả hệ điều hành Window, Linux, Mac, iOS, Android…
Xử lý ảnh và thị giác máy là lĩnh vực mà ngày nay được phát triển và ứng dụng
rất rộng rãi trong nhiều lĩnh vực khác nhau nhờ vào sự phát triển ngày càng mạnh
mẽ của các hệ thống máy tính, các thuật toán và công trình nghiên cứu khác nhau
của nhiều nhà khoa học trên thế giới.


Hình số 1 : Ứng dụng thị giác máy tính cho robot Asimo và robot Cheetah

6


Ở Việt Nam, các ứng dụng về xử ảnh đã bước đầu được triển khai trên một số
lĩnh vực như lắp đặt hệ thống nhận dạng biển số xe ở các bãi đổ xe, hệ thống nhận
dạng vân tay chấm công ở các công sở … môn học xử lý ảnh ở các trường đại học
được xem là môn học bắt buộc ở một số ngành như công nghệ thông tin, điện tử
viễn thông …Tuy nhiên nhìn một cách khách quan thì số lượng các ứng dụng được
triển khai trên thực tế là quá ít ỏi, lĩnh vực này sẽ còn phát triển mạnh mẽ trong
tương lai nếu như được quan tâm một cách nghiêm túc.
Phiên bản Ubuntu 16.04 LTS (hỗ trợ dài hạn cho đến tháng 04/2021) có tích hợp
sẵn ngôn ngữ lập trình Python2 (2.7.12) và cả phiên bản Python3 (3.5.2). Python2 là
ngôn ngữ lập trình mặc định. Để thực thi Python2/Python3, sử dụng các lệnh tương
ứng là python/python3.
1.2 Lý do chọn đề tài
Xử lý ảnh và thị giác máy là lĩnh vực phát triển nhanh do sự bùng nổ dữ liệu
Internet. Theo thống kê năm 2018, Youtube hiện có 1,3 tỷ người dùng trên toàn thế
giới. Mỗi phút có 300 giờ video được upload lên Youtube. Mỗi ngày người dùng xem
5 tỷ video trên Youtube. Để thực hiện phân tích, tìm kiếm video tự động trên những cơ
sở dữ liệu lớn cần sử dụng những công cụ xử lý ảnh và thị giác máy tính.
Nguồn dữ liệu khổng lồ trên thu thập được do sự phát triển rộng rãi của các loại
camera, đặc biệt là camera gắn trên các điện thoại thông minh.

Hình số 2 : Camera trên smart phone iPhone X và Google Glass

Kèm theo đó là sự phát triển mạnh mẽ của ngành công nghiệp Game, cùng với các
card xử lý đồ họa tốc độ cao GPU. Đây cũng chính là các thiết bị chuyên dụng được sử
dụng để đào các loại tiền ảo như BitCoin. Các card đồ họa GPU cho phép thực hiện

các bài toán phân tích xử lý ảnh video từ những nguồn dữ liệu lớn, kết hợp trong các
kỹ thuật học sâu (deep learning).
7


Hình số 3 : Ứng dụng thị giác máy tính trong tương tác người - máy

Các kỹ thuật xử lý ảnh và thị giác máy tính có ứng dụng rộng rãi trong các lĩnh
vực như tương tác người-máy, giám sát an ninh, chăm sóc sức khỏe, thực tại ảo.
Các hệ thống camera giám sát đang ngày càng trở nên phổ biến trong các hộ gia
đình. Nhưng ứng dụng thường chỉ giới hạn ở phạm vi giám sát qua màn hình và lưu
trữ dữ liệu video trong ổ đĩa.

Hình số 4 : Camera an ninh truyền thống với chức năng giám sát và ghi hình

Để khai thác hiệu quả dữ liệu camera giám sát, nhóm nghiên cứu đã thực hiện xây
dựng chương trình phát hiện xâm nhập và đưa ra báo động. Phần mềm phát hiện xâm
nhập sử dụng thư viện thị giác máy tính OpenCV trên hệ điều hành mã nguồn mở
Linux Ubuntu cho phép xuất ảnh chụp tại thời điểm xâm nhập, rung chuông báo động.

8


Hình số 5 : Camera an ninh đề xuất với chức năng báo động khi có xâm nhập

1.3 Mục tiêu của đề tài
Xây dựng phần mềm phát hiện xâm nhập dựa trên dữ liệu từ camera giám sát sử
dụng thư viện thị giác máy tính OpenCV trên Hệ điều hành mã nguồn mở. Cụ thể bao
gồm các nội dung sau.
-


Cài đặt, cấu hình OpenCV trên Hệ điều hành Linux Ubuntu

-

Xây dựng phần mềm phát hiện xâm nhập dựa trên dữ liệu từ camera giám sát

-

Đánh giá tính ứng dụng thực tiễn của đề tài

-

Đề xuất các hướng nghiên cứu mở rộng cho đề tài

1.4 Phương pháp nghiên cứu
-

Nghiên cứu lý thuyết về xử lý ảnh và thị giác máy tính

-

Tiến hành cài đặt, cấu hình OpenCV trên Hệ điều hành Linux Ubuntu 16.04
LTS

-

Xác định các yêu cầu đặt ra cho hệ thống nhằm thiết kế hệ thống cho phù hợp
với mục đích đặt ra.


-

Lập trình xây dựng phần mềm phát hiện xâm nhập dựa trên dữ liệu từ camera
giám sát sử dụng ngôn ngữ lập trình Python

-

Xây dựng chương trình theo những yêu cầu đã đặt ra.

-

Triển khai chương trình và đánh giá kết quả đạt được.

1.5 Phạm vi nghiên cứu
Xây dựng phần mềm phát hiện xâm nhập sử dụng dữ liệu từ camera giám sát.1.6
Đối tượng sử dụng hệ thống
9


-

Các hộ gia đình có lắp đặt camera giám sát.

CHƯƠNG 2 – HƯỚNG DẪN CÀI ĐẶT OPENCV
2.1 Cài đặt các gói phụ thuộc cho OpenCV
Cập nhật Ubuntu
$ sudo apt-get update

Cài đặt chương trình quản lý gói cmake
$ sudo apt-get install build-essential cmake pkg-config


OpenCV là thư viện xử lý ảnh và thị giác máy tính, có khả năng mở file ảnh theo các
định dạng khác nhau như JPEG, PNG, TIFF, v.v. Để thực hiện được việc này, OpenCV
gọi các thư viện nhập/xuất ảnh như sau:
$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev
libpng12-dev

Cài đặt thư viện nhập xuất video:
$ sudo apt-get install libavcodec-dev libavformat-dev
libswscale-dev libv4l-dev

$ sudo apt-get install libxvidcore-dev libx264-dev

10


OpenCV sử dụng giao diện đồ họa người dùng highgui. Mô-đun highgui sử dụng thư
viện GTK:
$ sudo apt-get install libgtk-3-dev

Cài đặt các thư viện tối ưu chức năng như các phép toán ma trận:
$ sudo apt-get install libatlas-base-dev gfortran

Cài đặt các thư viện và header cho cả Python 2.7 và Python 3.5
$ sudo apt-get install python2.7-dev python3.5-dev

2.2 Cài đặt OpenCV
Download bộ mã nguồn OpenCV mới nhất là phiên bản OpenCV 3.4.1 (90MB)
Di chuyển vào thư mục người dùng
$ cd ~


Download mã nguồn OpenCV 3.4.1
$ wget -O opencv.zip
/>
Giải nén opencv
$ unzip opencv.zip

Download thư viện hỗ trợ opencv_contrib

$ wget -O opencv_contrib.zip
/>
Giải nén opencv_contrib
$ unzip opencv_contrib.zip

11


2.3 Cấu hình Python
Cài đặt chương trình quản lý gói pip của Python:
$ cd ~
$ wget />$ sudo python get-pip.py

Cài đặt môi trường ảo trên Python:
$ sudo pip install virtualenv virtualenvwrapper

Xoá bộ nhớ đệm:

Mở file .bashrc, thêm đoạn text sau:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh


Sau khi sửa file .bashrc, cần tải lại:
$ source ~/.bashrc

Thiết lập môi trường ảo cho Python 2.7
$ mkvirtualenv cv -p python2

Kích hoạt môi trường OpenCV bằng lệnh: workon cv
Cài đặt numpy
$ pip install numpy

2.4 Cấu hình và biên dịch OpenCV
Tạo thư mục build, thực thi cmake:
$ cd ~/opencv-3.4.1/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \

12


-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib3.4.1/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..

Chạy lệnh $ make (tốn nhiều thời gian nhất, có thể là 20 phút hoặc nhiều hơn, tùy cấu
hình máy tính)


Hình số 6 : Thực thi cmake

Chạy lệnh make install và sudo ldconfig
$ sudo make install
$ sudo ldconfig

13


2.5 Hoàn tất cài đặt OpenCV

File cấu hình OpenCV cho Python nằm ở thư mục /usr/local/lib/python2.7/sitepackages/.
Bước tiếp theo là gán cv2.so vào môi trường ảo cv cho Python 2.7
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

Cài đặt MobaXterm để remote vào Ubuntu Desktop qua giao thức SSH
/>Xem địa chỉ IP của Ubuntu Desktop bằng lệnh ifconfig

Hình số 7 : Giao diện dòng lệnh của Ubuntu Desktop 16.04 LTS

Trên MobaXterm, nhập địa chỉ IP, chọn cổng 22 để kết nối vào Ubuntu Desktop qua
giao thức SSH
14


Hình số 8 : Môi trường OpenCV

15



CHƯƠNG 3 – XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP
3.1 Phân tích hệ thống
Lập trình xây dựng phần mềm phát hiện xâm nhập dựa trên dữ liệu từ camera giám sát
sử dụng ngôn ngữ lập trình Python
Dữ liệu đầu vào: hình ảnh tử camera giám sát
Dữ liệu đầu ra: rung chuông báo động xâm nhập, chụp ảnh đối tượng xâm nhập.

Hình số 9 : Chức năng hệ thống

3.2 Thiết kế hệ thống
Lưu đồ thuật toán

16


Hình số 10 : Lưu đồ thuật toán

17


3.3 Mã nguồn Python chương trình chính

18


CHƯƠNG 4 - KẾT LUẬN
Các hệ thống camera giám sát đang ngày càng trở nên phổ biến trong các hộ gia
đình. Nhưng ứng dụng thường chỉ giới hạn ở phạm vi giám sát qua màn hình và lưu

trữ dữ liệu video trong ổ đĩa. Để khai thác hiệu quả dữ liệu camera giám sát, nhóm
nghiên cứu đã thực hiện xây dựng chương trình phát hiện xâm nhập và đưa ra báo
động. Phần mềm phát hiện xâm nhập sử dụng thư viện thị giác máy tính OpenCV trên
hệ điều hành mã nguồn mở Linux Ubuntu cho phép xuất ảnh tại thời điểm xâm nhập,
rung chuông báo động có xâm nhập. Các hướng nghiên cứu mở rộng của đề tài là:
• Nhắn tin/ gọi điện đến số điện thoại chủ nhà khi phát hiện xâm nhập
• Gửi ảnh đối tượng xâm nhập đến e-mail chủ nhà
• Khoanh vùng chọn khu vực muốn giám sát chứ không phải toàn bộ khung
hình camera
TÀI LIỆU THAM KHẢO
Tài liệu từ Internet

[1] />[2] />[3] />py_tutorials.html
[4] />[5] Nguyễn Văn Long, “Ứng dụng xử lý ảnh trong thực thế với thư viện
OpenCV C/C++”, 2013

19



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

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