Ứng dụng xử lý ảnh trong phát hiện đồng xu Ứng dụng xử lý ảnh trong phát hiện đồng xu Ứng dụng xử lý ảnh trong phát hiện đồng xu Ứng dụng xử lý ảnh trong phát hiện đồng xu Ứng dụng xử lý ảnh trong phát hiện đồng xu
Trang 1MỤC LỤC
DANH SÁCH HÌNH VẼ 2
DANH SÁCH BẢNG 3
CHƯƠNG 1 GIỚI THIỆU CHUNG 4
1.1 Giới thiệu về chủ đề 4
1.2 Một số nghiên cứu liên quan 4
1.3 Mục tiêu của đề tài 5
1.4 Phân chia nhiệm vụ trong nhóm 6
CHƯƠNG 2 CƠ SỞ DỮ LIỆU 7
2.1 Dữ liệu thử nghiệm 7
2.2 Phương pháp và độ đo đánh giá 7
CHƯƠNG 3 PHƯƠNG PHÁP THỰC HIỆN 9
3.1 Phương pháp triển khai 9
3.2 Cài đặt thử nghiệm 10
3.2.1 Làm mịn ảnh 10
3.2.2 Phát hiện biên 10
3.2.3 Toán tử hình thái 11
3.2.4 Hough trasform 11
3.3 Thực nghiệm 11
3.3.1 Triển khai phương pháp 11
3.3.2 Đánh giá định lượng 11
3.3.3 Phân tích định tính 12
CHƯƠNG 4 KẾT LUẬN 13
4.1 Kết luận 13
4.2 Hướng phát triển 13
TÀI LIỆU THAM KHẢO 14
Trang 2DANH SÁCH HÌNH V
Hình 1-1 Mô tả đầu vào, đầu ra của bài toán 6
Hình 1-2 Phương pháp đề xuất 7
Hình 2-1 Minh họa dữ liệu sử dụng 9
Hình 2-2 Độ đo đánh giá 10
Hình 3-1 Phương pháp triển khai 11
Hình 3-2 Chuyển đổi điểm, đường tròn từ không gian ảnh sang không gian Hough 13
Hình 3-3 Kết quả định tính một hình ảnh sau khi xử lý 14
Hình 3-4 Kết quả định tính cho kết quả tệ nhất 14
Trang 3DANH SÁCH BẢNG
Bảng 1-1 Bảng phân công công việc 8
Trang 4CHƯƠNG 1 GIỚI THIỆU CHUNG
1.1 Giới thiệu về chủ đề
Bài toán mà nhóm em thực hiện trong bài tập lớn này là phát hiện ra và đếm số đồng xu trong ảnh
Bài toán được minh họa như hình dưới đây:
Hình 1-1 Mô tả đầu vào, đầu ra của bài toán
Chúng em xác định đầu vào và đầu ra của bài toán như sau:
Đ ầu vào u vào Ảnh chứa các đồng xunh ch a các đ ng xuứa các đồng xu ồng xu
Đ ầu vào u ra Vẽ đ ư ng bao các đ ng xu, s l ồng xu ố lượng đồng xu trong ảnh và tâm, bán kính của mỗi ượng đồng xu trong ảnh và tâm, bán kính của mỗi ng đ ng xu trong nh và tâm, bán kính c a m i ồng xu ảnh và tâm, bán kính của mỗi ủa mỗi ỗi
đ ng xu ồng xu Phát hiện tiền xu là một bài toán khó ở do sự đa dạng cua các đồng xu, có sự thay đổi, khác nhau ở bán kính và hình dạng hoa văn trên các đồng xu Bài toán này, chúng em đưa thêm đầu ra của bài toán là vị trí tâm và bán kính của mỗi đồng xu Do
đó, cần lựa chọn phương pháp phù hợp để có thể thực hiện được yêu cầu này
Nhận dạng đồng xu là một yêu cầu quan trọng để hỗ trợ cho hoạt động cua máy bán hàng tự động, hệ thống trả tiền tự động và đếm đồng xu
1.2 Một số nghiên cứu liên quan
Hiện tại, có một số bài báo nghiên cứu về đề tài này [1], bài báo này đề xuất phương pháp xử lý bằng neural networks Trên Internet, cũng có một số hướng dẫn về việc phát hiện đồng xu bằng phương pháp xử lý ảnh truyền thống như sử dụng bộ lọc canny để phát hiện biên Cách xử lý này thì chỉ phát hiện được biên của đồng xu mà không đếm được số lượng và không tìm được biên và bán kính của mỗi đồng xu
Trang 51.3 Mục tiêu của đề tài
Chúng em mong muốn xây dựng được mã nguồn thực thi thực hiện việc phát hiện và đếm được số lượng đồng xu trong bức ảnh xử dụng các kiến thức xử lý ảnh thông thường Qua đó, chúng em hiểu được sâu hơn kiến thức môn xử lý ảnh và ứng dụng các kiến thức đã học trong thực tế
Nhóm chúng em sử dụng các kiến thức về bộ lọc để làm mờ ảnh, phát hiện biên, chuyển ảnh màu ảnh xám, toán tử hình thái và biến đổi Hough transform để phát hiện đường tròn, qua đó chúng em phát hiện được đường tròn với các số liệu về biên
và bán kính
Phương pháp chúng em đề xuất sẽ sử dụng các kiến thức sau của môn xử lý ảnh
và được thực hiện như sau:
Hình 1-2 Phương pháp đề xuất
Trang 61.4 Phân chia nhiệm vụ trong nhóm
Dưới đây là bảng phân công công việc của nhóm em
Bảng 1-1 Bảng phân công công việc
transform Trần Tuấn Điệp Tìm hiểu bộ lọc sobel, toán tử
hình thái Nguyễn Công Phúc Tìm kiếm data, đánh giá
Trang 7CHƯƠNG 2 CƠ SỞ DỮ LIỆU
2.1 Dữ liệu thử nghiệm
Tập dữ liệu chúng em sử dụng trong bài tập lớn này sẽ gồm các ảnh chứa các đồng xu
Chúng em mong muốn tập dữ liệu sẽ gồm 2 phần bao gồm tập dữ liệu 1 được
sử dụng khi hiệu chỉnh các thông số của xử lý ảnh và tập thứ 2 để đánh giá tính ứng dụng của phương pháp
Trong đề tài này cũng có một số tập dữ liệu có ảnh của đồng xu [4], nhưng các ảnh này chứa đơn lẻ các đồng xu mà không chứa nhiều đồng xu trên một ảnh
Trên website Circle coin sets of the World [5] có rất nhiều các tập ảnh về các đồng xu, mỗi ảnh đều chứa nhiều đồng xu nên chúng em tự sưu tầm ảnh của các đồng
xu dựa vào nguồn dữ liệu [5] bằng cách crop các ảnh trên website đó
Hình 2-3 Minh họa dữ liệu sử dụng
Với ảnh có nhiều đồng xu trong một ảnh như trên sẽ giúp bài toán trở lên có tính ứng dụng cao hơn so với việc phát hiện một đồng xu trên một bức ảnh
Dữ liệu trên có đặc điểm ảnh chất lượng cao, độ tương phản giữa biên và nền cao nên thuận lợi hơn cho chúng em trong quá trình phát hiện ra đường tròn Mỗi ảnh của tập dữ liệu đều chứa các đồng xu với các kích thước bán kính khác nhau
2.2 Phương pháp và độ đo đánh giá
Tập dữ liệu của chúng em gồm 2 phần:
Tập dữ liệu để hiệu chỉnh các tham số khi sử dụng các bộ lọc khi xử lý ảnh
Tập dữ liệu để đánh giá độ chính xác khi sử dụng các tham số đó
Tập dữ liệu để hiệu chỉnh tham số và tập dữ liệu để đánh giá độ chính xác đều được xây dựng từ [5]
Trang 8Mỗi tập đều chứa khoảng 15 ảnh để hiệu chỉnh hoặc thử nghiệm
Trong bài tập lớn này, chúng em sử dụng các độ đo đánh giá là: Precision, Recall
và F1-score với cách tính như sau:
Hình 2-4 Độ đo đánh giá
Precision=TP/(TP+FP)
Recall= TP/(TP+FN)
Precision được định nghĩa là tỷ lệ số điểm True positive trong những điểm được phân loại là positive (TP+FP)
Recall được định nghĩa là tỷ số positive trong những điểm thực sự là positive (TP+FN)
Precision cao thể hiện độ chính xác của các đường tròn tìm được là cao, Recall cao thể hiện tỉ lệ bỏ sót các đường tròn được phát hiện là thấp
F1-score được tính theo công thức:
F1-score= 2*Precision*Recall/(Precision+Recall)
Trang 9CHƯƠNG 3 PHƯƠNG PHÁP THỰC
HIỆN
3.1 Phương pháp triển khai
Nhóm em sử dụng các phương pháp sau:
Sơ đồ thuật toán mà nhóm em sử dụng trong bài tập lớn này là:
Hình 3-5 Phương pháp triển khai
Trang 103.2 Cài đặt thử nghiệm
3.2.1 Làm mịn ảnh
Sau khi đọc ảnh vào, chúng em cần làm mịn ảnh để loại bỏ nhiễu và làm mịn ảnh Để làm mịn ảnh chúng em sử dụng bộ lọc Gassusian blur filter
Chúng em thử nghiệm với các bộ lọc khác nhau để chọn được kích thước bộ lọc phù hợp
3.2.2 Phát hiện biên
Chúng em tìm hiểu các bộ lọc phát hiện cạnh gồm Sobel và Canny:
3.2.2.1 Kỹ thuật phát hiện cạnh Sobel
Toán tử Sobel có được bằng cách thực hiện một số thao tác với các đạo hàm x và y, mà chúng ta đã xem xét trong bài trước
Để thu được đạo hàm Sobel dọc theo hướng x, chúng ta thực hiện phép tích ngoài giữa bộ lọc Gaussian 1D và đạo hàm x Bộ lọc Sobel y thu được bằng cách thực hiện tích ngoài giữa đạo hàm y và
bộ lọc Gaussian 1D
Các bước thực hiện thuật toán Sobel:
Bước 1: Chuyển hình ảnh thành ảnh xám
Bước 2: Thực hiện với Bộ lọc Sobel-x
Bước 3: Thực hiện với bộ lọc Sobel-y
Bước 4: Tính toán độ lớn và hướng của Gradient
3.2.2.2 Kỹ thuật Canny
Các bước thực hiện thuật toán Canny:
Bước 1: Làm mịn ảnh theo thang độ xám
Bước 2: Tìm độ lớn và hướng của Gradient
Bước 3: Làm mỏng cạnh bằng phương pháp triệt tiêu không cực đại
Độ lớn gradient của pixel hiện tại được so sánh với độ lớn của các pixel lân cận có cùng hướng
Bước 4: Ngưỡng kép: Sử dụng ngưỡng để loại bỏ pixel mạnh, yếu và không cạnh:
Các pixel có cường độ gradient nhỏ hơn ngưỡng thấp sẽ bị loại bỏ
Các pixel có cường độ nằm giữa hai ngưỡng được coi là một cạnh yếu và được đánh
Trang 113.2.3 Toán tử hình thái
Chúng em tìm hiểu toán tử hình thái để giãn các pixel trên đường tròn
3.2.4 Hough trasform
Hough Transform là thuật toán phát hiện đường tròn khá hiệu quả trong xử lý ảnh Ý tưởng chung của việc phát hiện đường thẳng trong thuật toán này là tạo mapping từ không gian ảnh (A) sang một không gian mới (B) mà mỗi đường thẳng trong không gian (A) sẽ ứng với một điểm trong không gian (B)
Hình 3-6 Chuyển đổi điểm, đường tròn từ không gian ảnh sang không gian Hough
Điểm trong không gian ảnh, khi biến đổi sang không gian Hough sẽ được chuyển thành đường tròn và ngược lại
Từ đó, dựa vào giao điểm của các đường tròn bên không gian Hough để xác định được đường tròn trong không gian Hough
3.3 Thực nghiệm
3.3.1 Triển khai phương pháp
Quá trình triển khai được thực hiện như sau:
3.3.2 Đánh giá định lượng
Sau khi triển khai với phương pháp trên chúng em triển khai với 2 tập dữ liệu tập dữ liệu, với độ đo đánh gia thể hiện ở phần 2
Tập dữ liệu số 1: Gồm 15 ảnh đề điều chỉnh các tham số và được kết quả như sau:
Trang 1203 8 1 1
3.3.3 Phân tích định tính
Hình 3-7 Kết quả định tính một hình ảnh sau khi xử lý
Kết quả ảnh trên cho kết quả hoàn toàn chính xác với số lượng và phát hiện các đồng xu
Bên cạnh đó có một số ảnh chưa tốt (ảnh tệ nhất) như hình
Trang 13Hình 3-8 Kết quả định tính cho kết quả tệ nhất
CHƯƠNG 4 KẾT LUẬN
4.1 Kết luận
Như vậy, sau khi thực hiện bài tập lớn này, chúng em đã hiểu hơn về nội dung môn học Xử lý ảnh Chúng em đã áp dụng kiến thức đã học vào việc thực hiện một bài toán thực tế là phát hiện đồng xu và thực hiện hoàn chỉnh một quy trình xử lý ảnh, từ việc thu thập dữ liệu, phân tích dữ liệu, tìm giải pháp, thực hiện giải pháp và đánh giá
Tuy kết quả trên tập đánh giá chưa được tốt, nhưng chúng em cũng đã tìm được
lý do mà kết quả chưa tốt
4.2 Hướng phát triển
Không dừng ở việc bài tập lớn, hay kết thúc môn học mà chúng em tiếp tục tìm hiểu các kiến thức về xử lý ảnh và thị giác máy tính để có thể ứng dụng và tích lũy cho công việc sau này
Chúng em xin cảm ơn Cô vì Cô đã giảng dạy nhiệt tình và hỗ trợ chúng em trong quá trình học tập và thực hiện bài tập lớn này
Trang 14TÀI LIỆU THAM KHẢO
[1] https://sci-hub.se/10.1109/ICCPCT.2015.7159434 Coin Detection and
recognition using neural networks
[2]https://dev.to/tinazhouhui/coin-detection-discovering-opencv-with-python-1ka1 Coin detection:
[3] https://www.kaggle.com/wanderdust/coin-images, World coin
[4] http://worldcoingallery.com/countries/circ_sets/index.htm Circle coin sets of the world