Trang phụ bìa ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN THỊ THANH XUÂN ỨNG DỤNG XỬ LÝ ẢNH
ĐẾM CÁC ĐỐI TƯỢNG CÓ ẢNH CHẠM NHAU
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên năm 2020
i
LỜI CAM ĐOAN
Tên tôi là: Nguyễn Thị Thanh Xuân
Sinh ngày: 10/10/1977
Học viên lớp cao học CHK17A - Trường Đại học Công nghệ Thông tin và
Truyền thông - Đại học Thái Nguyên.
Hiện đang công tác tại: Trường THPT Đồng Hỷ - tỉnh Thái Nguyên.
Xin cam đoan: Đề tài “Ứng dụng xử lý ảnh đếm các đối tượng có ảnh chạm
nhau” do TS. Phạm Đức Long hướng dẫn là công trình nghiên cứu của riêng tôi.
Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng.
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội
dung trong đề cương và yêu cầu của thầy giáo hướng dẫn. Nếu sai tôi hoàn toàn
chịu trách nhiệm trước hội đồng khoa học và trước pháp luật.
Thái Nguyên, ngày 01 tháng 10 năm 2020
Tác giả luận văn
Nguyễn Thị Thanh Xuân
ii
LỜI CẢM ƠN
Sau một thời gian nghiên cứu và làm việc nghiêm túc, được sự động viên,
giúp đỡ và hướng dẫn tận tình của Thầy giáo hướng dẫn TS. Phạm Đức Long, luận
văn với Đề tài “Ứng dụng xử lý ảnh đếm các đối tượng có ảnh chạm nhau”.
Tôi xin bày tỏ lòng biết ơn sâu sắc đến:
Thầy giáo hướng dẫn TS. Phạm Đức Long đã tận tình chỉ dẫn, giúp đỡ tôi
hoàn thành luận văn này.
Phòng đào tạo Sau đại học Trường Đại học Công nghệ Thông tin và Truyền
thông đã giúp đỡ tôi trong quá trình học tập cũng như thực hiện luận văn.
Trường THPT Đồng Hỷ - tỉnh Thái Nguyên nơi tôi công tác đã tạo điều kiện
tối đa cho tôi thực hiện khóa học này.
Tôi xin chân thành cảm ơn bạn bè, đồng nghiệp và gia đình đã động viên,
khích lệ, tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập, thực hiện và hoàn
thành luận văn này.
Thái Nguyên, ngày 01 tháng 10 năm 2020
Tác giả luận văn
Nguyễn Thị Thanh Xuân
iii
MỤC LỤC
LỜI CAM ĐOAN ..................................................................................................... i
LỜI CẢM ƠN .......................................................................................................... ii
MỤC LỤC ............................................................................................................... iii
DANH MỤC CÁC BẢNG ...................................................................................... iv
DANH MỤC CÁC HÌNH VẼ................................................................................... v
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .......................................... vi
ĐẶT VẤN ĐỀ ............................................................ Error! Bookmark not defined.
CHƯƠNG 1. TỔNG QUAN ĐẾM ĐỐI TƯỢNG VÀ NHU CẦU ĐẾM BẰNG
XỬ LÝ ẢNH ............................................................................................................ 2
1.1. Đếm đối tượng trong thực tế .............................................................................. 2
1.1.1 Đếm thủ công bằng mắt ................................................................................... 2
1.1.2 Đếm qua thiết bị sensor .................................................................................... 3
1.1.3 Đếm qua ảnh .................................................................................................... 4
1.2 Đặc điểm đếm đối tượng qua ảnh ....................................................................... 5
1.2.1 Ảnh số .............................................................................................................. 5
1.2.2. Những thuận lợi khi áp dụng đếm bằng xử lý ảnh .......................................... 8
1.2.3 Khó khăn khi đếm đối tượng qua ảnh .............................................................. 8
KẾT LUẬN CHƯƠNG 1 ...................................................................................... 10
CHƯƠNG 2. CÁC PHƯƠNG PHÁP ĐẾM BẰNG XỬ LÝ ẢNH ................... 11
2.1 Đếm các đối tượng tách rời ............................................................................... 11
2.1.1 Thuật toán kinh điểm đếm các đối tượng tách rời nhau................................. 11
2.1.2 Đếm sai khi có các đối tượng chạm nhau ...................................................... 12
2.2 Đếm đối tượng có ảnh dính nhau dùng hình thái học kinh điển ....................... 14
2.2.1 Hình thái học kinh điển .................................................................................. 14
2.2.2 Hạn chế khi đếm các đối tượng dính nhau ..................................................... 16
2.3 Phối hợp Biến đổi Watershed và biến đổi khoảng cách.................................... 17
2.3.1 Biến đổi khoảng cách (DT - Distance Transform) ......................................... 17
iv
2.3.2 Phân vùng Watershed (WS-Watershed Segmentation) ................................. 19
2.3.3 Phối hợp biến đổi Watershed và biến đổi khoảng cách ................................. 27
2.4 Sử dụng mạng nơ ron ........................................................................................ 31
2.5 Đếm đối tượng có ảnh dính nhau dùng hình thái học định hướng.................... 35
2.5.1 Khảo sát Hình thái học gradients kinh điển ................................................... 35
2.5.2 Hình thái học có định hướng ......................................................................... 37
2.6 Xây dựng thuật toán đếm đối tượng có ảnh dính nhau dùng hình thái học định
hướng ....................................................................................................................... 41
KẾT LUẬN CHƯƠNG 2 ...................................................................................... 42
CHƯƠNG 3. ỨNG DỤNG XỬ LÝ ẢNH ĐẾM CÂY THÉP QUA ẢNH ĐẦU
BÓ ........................................................................................................................... 43
3.1 Cơ sở chọn thuật toán và nhu cầu thực tế ......................................................... 43
3.2 Đếm cây thép qua ảnh đầu bó ........................................................................... 51
3.3 Kết quả thực nghiệm ......................................................................................... 52
3.4 Nhận xét và đánh giá, so sánh ........................................................................... 55
KẾT LUẬN CHƯƠNG 3 ........................................................................................ 56
KẾT LUẬN ............................................................................................................. 56
HƯỚNG PHÁT TRIỂN .......................................................................................... 57
TÀI LIỆU THAM KHẢO ....................................................................................... 58
PHỤ LỤC .................................................................................................................. I
iv v
DANH MỤC CÁC BẢNG
Bảng 2.1 Một số ví dụ biến đổi khoảng cách .......................................................... 18
Bảng 3.1 Quy cách thép cây cường lực (thép cây có vằn) ...................................... 45
Bảng 3.2 Quy cách thép tròn trơn ........................................................................... 46
Bảng 3.3 Độ chính xác kết quả đếm qua ảnh đầu bó thép (%) ............................... 55
v vi
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Đếm sơ khai và trừu tượng với con số ....................................................... 2
Hình 1.2 Đếm thủ công đầu bó thép dùng sơn và mắt thường ................................. 2
Hình 1.3 Đếm bằng sensor ........................................................................................ 3
Hình 1.4 Đếm quả để ước tính sản lượng ................................................................. 4
Hình 1.5 Đếm hồng cầu qua kính hiển vi ................................................................. 4
Hình 1.6 Đếm ô tô trên đường cao tốc ...................................................................... 4
Hình 1.7 Nguyên lý máy ảnh số ................................................................................ 5
Hình 1.8 Nguyên lý sensor CCD. Trong hình là 3 vi điểm ảnh ................................ 6
Hình 1.9 Sensor CCD và sensor CMOS ................................................................... 6
Hình 1.10 Sensor CMOS hiện tại .............................................................................. 7
Hình 1.11 Ảnh thiếu sáng chất lượng kém, bị mất không tin ................................... 9
Hình 1.12 Ảnh hồng cầu bị chạm, chồng lên nhau .................................................. 9
Hình 1.13 Ảnh nhiễu và không nhiễu ....................................................................... 9
Hình 2.1 Tạo các điểm ảnh biên cho ảnh I .............................................................. 11
Hình 2.2 Minh họa phương pháp đếm kinh điển .................................................... 12
Hình 2.3 a) ảnh nguyên bản b) ảnh nhị phân ....................................................... 13
Hình 2.4 Thực hiện phép co và phép dãn nở ảnh nhị phân ..................................... 13
Hình 2.5 a) Ảnh nguyên bản b) Sau khi dùng phép co c) Sau khi dùng phép dãn nở.
............................................................................................................... 14
Hình 2.6 Ảnh nhị phân nguyên bản và sau khi thực hiện các phép hình thái học 15
Hình 2.7 Hình thái học trên ảnh xám ...................................................................... 16
Hình 2.8 Thực hiện hình thái học trên ảnh xám. ..................................................... 16
Hình 2.9 Dùng phép co để tách các đối tượng ........................................................ 17
Hình 2.10 Do phép co chưa đủ số lần thực hiện ..................................................... 17
Hình 2.11 Tác dụng của ba kiểu biến đổi khoảng cách ......................................... 19
Hình 2.12 Nguyên lý biến đổi lưu vực sông (watershed transform) nơi các giá trị
cường độ xác định đồi và lưu vực. Đối với mục đích phân vùng, các lưu
vực có thể bị ngập để kết hợp các vùng tương ứng. .............................. 19
vii
Hình 2.13 Địa hình khi chưa bị ngập nước ............................................................ 20
Hình 2.14 Bắt đầu cho ngập các thung lũng ........................................................... 20
Hình 2.15 Vị trí của Watershed............................................................................... 20
Hình 2.16 Xây dựng bức tường ngăn cách tại vị trí Watershed.............................. 20
Hình 2.17 Toàn bộ địa hình bị nhấn chìm ............................................................... 21
Hình 2.18 Ví dụ phân vùng ảnh bằng Watershed ................................................... 21
Hình 2.19 Watershed transform trên lưới ô vuông, cho các kết nối khác nhau. ..... 26
Hình 2.20 Phân vùng quá mức do nhiễu khi áp dụng cho một lát cắt trục của hình
ảnh CT. Ảnh cuối: các lưu vực riêng lẻ (individual basins) được hợp nhất
để tạo thành các vùng lớn hơn liên tiếp. ................................................ 27
Hình 2.21 Thuật toán phối hợp biến đổi Watershed và biến đổi khoảng cách ....... 29
Hình 2.22 Phân vùng các đồng xu dính nhau ......................................................... 30
Hình 2.23 Tách các hạt cà phê dính nhau ............................................................... 31
Hình 2.24 Trước tiên, mạng CNN-DC thực hiện phát hiện các điểm tâm cây thép
bằng một mạng CNN (deep CNN), sau đó áp dụng thuật toán Phân
cụm khoảng cách để có được thông tin về số lượng thanh thép và các
vị trí tâm của các thanh thép. ............................................................... 32
Hình 2.25 Minh họa quá trình phân cụm khoảng cách: (1) Tính khoảng cách....... 33
Hình 2.26 Kiến trúc CNN ....................................................................................... 34
Hình 2.27 Quá trình sử dụng phương pháp dùng mạng nơ ron chập cuộn CNN cho
đêm và định tâm các cây thép ................................................................ 34
Hình 2.28 Ví dụ hình thái học gradient với ảnh một con đường ............................ 36
Hình 2.29 Hình thái học gradient với tín hiệu 1D có tác dụng cải thiện tín hiệu cả
hai vùng trong và ngoài. ........................................................................ 36
Hình 2.30 Ví dụ hình thái học gradient với ảnh một tấm bản mạch ....................... 37
Hình 2.31 Quy ước các hướng trong ảnh với thực hiện hình thái học có định hướng ...... 37
Hình 2.32 Hình thái học có hướng .......................................................................... 38
Hình 2.34 Góc thay đổi qua các trục thể hiện các điểm lõm (a) và lồi (b) của biên.…39
Hình 2.33 Các vị trí và hướng thực hiện Hình thái học định hướng....................... 39
viii
Hình 2.35 Điểm A đổi chiều gradient theo hướng Y-Y ......................................... 40
Hình 2.36 Tìm tọa độ các điểm thực hiện hình thái học định hướng .................... 40
Hình 2.37 Các mặt nạ hình thái học theo hướng a) X-X, b) Y-Y c) Y-X d) X-Y .. 40
Hình 3.1 Thép xây dựng a) dạng cây b) dạng cuộn ................................................ 44
Hình 3.2 Thép tròn trơn và thép vằn ....................................................................... 45
Hình 3.3 Phôi thép cán ............................................................................................ 48
Hình 3.4 Đầu thép thanh tròn và thép thanh cường lực .......................................... 48
Hình 3.5 Dây chuyền cán và cơ cấu đếm của DANIEL (Ytalia) tại nhà máy Thái
Trung – Thái Nguyên............................................................................. 49
Hình 3.6 Hệ thống đếm thép 2 Camera của của dây chuyền cán Thái Trung (Thái
Nguyên) sử dụng công nghệ DANIEL .................................................. 49
Hình 3.7 Dây chuyền cán NasteelVina sử dụng đếm thủ công ............................... 49
Hình 3.8 a) Hệ thống đếm từng cây thép trên băng tải của SINOM GROUP LTD
Sai số 0.7 % b) ảnh trên chương trình xử lý [11]. ............................... 50
Hình 3.9 Đưa số đếm vào chương trình mã vạch để quản lý .................................. 50
Hình 3.10 Tách đối tượng dùng mẫu ...................................................................... 52
Hình 3.11 Mẫu ảnh dùng trong thực nghiệm ......................................................... 53
Hình 3.12 Các bước thực hiện tách đối tượng trong ảnh a) ảnh nguyên bản b) ảnh
xám c) ảnh nhị phân d), e), f) các bước trung gian g) tìm biên để xác
định hưởng thực hiện hình thái học h) kết quả tách các đối tượng. ...... 54
Hình 3.13 Kết quả đếm số cây đầu bó .................................................................... 55
Hình 3.14 Trường hợp đầu cây thép bị thụt vào ..................................................... 55
vi
ix
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
AI- Artificial Intelligence Trí tuệ nhân tạo
CNN - Convolutional Neural Networks Mạng nơ ron chập cuộn
(phần mềm)
CNN- Cellular Neural Netwwork Mạng nơ ron tế bào
(phần cứng)
Toán tử đóng Closing Closing
Phép dãn nở Dilation
DT - Distance Transform Biến đổi khoảng cách
Học sâu Deep learning
Phép co Erosion
Toán tử hình thái học Morphological Operator
Hình thái học Gradient Morphological Gradient
Toán tử mở Opening Opening
OM - Oriented Morphology Hình thái học định hướng
Sensor CCD (Charge Coupled Device) Cảm biến CCD
Sensor Complementary Metal-Oxide-Semiconductor (CMOS)
Cảm biến bán dẫn ô xit kim loại
Watershed Segmentation Biến đổi Watershed
1
MỞ ĐẦU
Đếm các đối tượng trong ảnh là một bài toán được đặt ra nhiều trong thực tế
như đếm các tế bào, đếm hồng cầu trong máu qua ảnh từ kính hiển vi điện tử, đếm
các sản phẩm công nghiệp qua các camera công nghiệp… Khó khăn lớn nhất với
việc đếm bằng xử lý ảnh là ảnh của các đối tượng cần đếm thường dính với nhau
gây ra kết quả sai khác so với thực tế. Cho đến nay đã có nhiều phương pháp làm
tăng độ chính xác của kết quả đếm bằng xử lý ảnh. Tuy nhiên kết quả của các
phương pháp đó vẫn chưa cho độ chính xác 100%. Trong bài báo này chúng tôi đề
xuất một phương pháp mới áp dụng hình thái học có định hướng để tách các đối
tượng bị dính nhau trong ảnh để đưa độ chính xác kết quả của các quá trình đếm có
khả năng đạt đến độ chính xác tuyệt đối trong một số ứng dụng trong công nghiệp
hiện nay. Thực nghiệm được thực hiện trên ảnh của các bó thép cho số lượng cây
thép có trong bó có thể đạt độ chính xác tuyệt đối. Kết quả này có thể được ứng
dụng thay cho việc đếm bằng thủ công trong các nhà máy cán thép hiện nay.
Nhu cầu đếm các đối tượng có rất nhiều trong thực tiễn. Đếm thủ công bằng
mắt là một phương pháp tự nhiên, đã có lâu đời. Nhưng ngày nay việc đếm thủ công
đã không còn đáp ứng được nữa do tốc độ xuất hiện và tồn tại các đối tượng cần
đếm rất nhanh, do số lượng đối tượng cần đếm vô cùng lớn, do các đối tượng trong
nhóm dính hoặc chồng lấn lên nhau
Mục tiêu của luận văn là nghiên cứu Xây dựng thuật toán đếm đối tượng có
ảnh dính nhau dùng hình thái học định hướng. Chúng ta thấy morphological
gradient chỉ có tác dụng nổi biên ở các phía trong và ngoài biên cũng như nổi biên
so với nền ảnh trong một số trường hợp và không tác dụng tách rời các đối tượng
dính nhau. Với mục tiêu tách đối tượng tách rời các đối tượng dính nhau chúng tôi
đưa ra một loại hình thái học mới thực hiện hình thái học dựa trên đặc điểm của
biên ảnh tại những vị trí có biểu hiện đặc điểm của hai đối tượng “dính nhau”. Từ
đó tiến hành xây dựng mô hình thực nghiệm đếm ảnh sản phẩm trên phần mềm
Matlab. Do vậy em lựa chọn đề tài “Ứng dụng xử lý ảnh đếm các đối tượng có ảnh
chạm nhau” cho đề tài luận văn tốt nghiệp.
2
CHƯƠNG 1
TỔNG QUAN ĐẾM ĐỐI TƯỢNG VÀ NHU CẦU ĐẾM
BẰNG XỬ LÝ ẢNH
1.1. Đếm đối tượng trong thực tế
1.1.1 Đếm thủ công bằng mắt
Nhu cầu đếm là một nhu cầu tự nhiên của con người. Từ lúc đi săn bắn ở
rừng đã phải đếm xem bắt được/bắn được mấy con thú, hái được bao nhiêu quả
rừng. Khi chưa xuất hiện số đếm con người dùng các bộ phận thân thể để nhớ số
lượng, đánh dấu khi nhớ.
Hình 1.1 Đếm sơ khai và trừu tượng với con số
Số đếm ra đời cho phép con người đếm được nhiều hơn. Tuy nhiên với số
lượng lớn sự bao quát của mắt không thể đáp ứng được. Lúc đó phải có đánh dấu, ví
dụ đếm cây thép qua đầu bó thép mỗi cây thép đã đếm rồi thì phải bôi sơn vào để
không đếm nhầm lại nữa.
Hình 1.2 Đếm thủ công đầu bó thép dùng sơn và mắt thường
3
Tuy nhiên với các yêu cầu đếm nhanh, đếm tự động chính xác thì phải có
những phương pháp khác.
Đây mới chỉ đề cập đến đếm thuần túy và chưa kể đến đếm có kiểm tra ví dụ đếm
tiền bằng máy đếm.
1.1.2 Đếm qua thiết bị sensor
b) Đếm sản phẩm trên dây chuyền sản xuất b) Đếm người ra-vào qua cửa
Hình 1.3 Đếm bằng sensor
Đây là phương pháp hay được sử dụng trong công nghiệp và một số không
gian công cộng (như bảo tàng, siêu thị, nhà ga):
+ Với lối ra vào hẹp chỉ đủ cho một người: Một (hoặc một số) sensor tiệm cận,
sensor hồng ngoại được bố trí để khi không có vật (hoặc người) qua thì giá trị tín
hiệu ra của sensor là “0” khi có tín hiệu của sản phẩm hoặc của người qua thì tín
hiệu bằng “1” và số đếm = số đếm +1.
+ Với lối ra vào rộng: Để tránh trường hợp có 2 hay nhiều hơn số người cùng đi qua
mà vẫn chỉ có một tín hiệu “1” thì các sensor cần bố trí theo dãy ngang từ trên
xuống.
Một số nhược điểm của dùng sensor là khi cường độ nhiễu của môi trường
với biên độ lớn đến hơn 100V làm bộ điều khiển bị “treo” hoặc sensor báo tín hiệu
sai. Đây là trường hợp dùng sensor đếm thép cây trên dây chuyền trong quá trình
sản xuất tại nhà máy cán thép.
4
1.1.3 Đếm qua ảnh
Khái niệm “ảnh” ở đây được hiểu không chỉ là ảnh quang học thu qua các camera
mà cả ảnh thu qua các mảng sensor (ví dụ ảnh trên thiết bị kiểm tra vị trí xe ô tô).
Trong thực tiễn để có kết quả đếm rất nhiều trường hợp không thể sử dụng
đếm bằng sensor và đếm bằng mắt thì không đếm xuể ví dụ đếm hồng cầu, đếm quả
trong vườn, [1], [2], [3].
Hình 1.4 Đếm quả để ước tính sản lượng
Hình 1.5 Đếm hồng cầu qua kính hiển vi
Hình 1.6 Đếm ô tô trên đường cao tốc
5
1.2 Đặc điểm đếm đối tượng qua ảnh
1.2.1 Ảnh số
Hình 1.7 Nguyên lý máy ảnh số
Các máy ảnh số hiện nay không phải thu và lưu trữ các ảnh thực như máy
ảnh chụp phim mà dùng các sensor quang thu và lưu giữ các điểm ảnh thực đã được
rời rạc hóa và chuyển sang giá trị số. Các máy ảnh đặc biệt chụp ban đêm hoặc y
học có thể dùng các cảm biến quang ở vùng phổ tia X, tia gamma. Hai loại sensor
quang được dùng trong các máy ảnh số thông dụng là CCD (hoặc CMOS). Trong
hình 1.7 là nguyên lý của một máy ảnh số dùng sensor CCD. Cường độ sáng của
đối tượng qua hệ thống ống kính tác động lên mảng sensor sẽ cho ra ở đầu ra của
mảng sensor các điện áp khác nhau phụ thuộc độ sáng của mỗi điểm ảnh. Các gía trị
điện áp này sẽ được bộ xử lý và bộ ADC chuyển sang các mức điện áp tương ứng
với các giá trị số 0/1 (tức là mảng ảnh số). Để tích hợp ảnh màu cần có 3 mảng
sensor để chuyển đổi một mảng tín hiệu quang học thành 3 nhóm tín hiệu màu cơ
bản; chẳng hạn các nhóm RGB trong hệ màu Đỏ, Xanh lam, Xanh dương.
Cả hai loại sensor ảnh phổ biến CCD và CMOS đều được phát triển từ giai
đoạn cuối 1960-1970.
Sensor CCD (Charge Coupled Device)
CCD bao gồm một mạng lưới các điểm bắt sáng (điểm ảnh, pixel). Các điểm này
lại được phủ các lớp lọc màu (thường là 1 trong 3 màu cơ bản: đỏ, xanh lam và
xanh dương (Red, Green, Blue) để mỗi điểm chỉ bắt một màu nhất định. Do các
điểm ảnh được phủ các lớp lọc màu khác nhau và được đặt xen kẽ nhau nên màu
nguyên thủy tại một điểm của hình ảnh thật sẽ được tái hiện bằng màu từ một điểm
6
ảnh chính kết hợp với các màu bù được bổ sung từ các điểm xung quanh bằng
phương pháp nội suy.
Hình 1.8 Nguyên lý sensor CCD. Trong hình là 3 vi điểm ảnh
Khi chụp ảnh, cửa chập mở ra (cửa đóng/mở hệ thống thấu kính của máy ảnh),
ánh sáng qua ống kính sẽ được lưu lại lại bề mặt chip thông qua các điểm ảnh. Thông
tin về ánh sáng (độ sáng, màu) của mỗi điểm ảnh được chuyển đổi thành sự khác nhau
về điện áp và sẽ được chuyển lần lượt ra bộ phận đọc giá trị điện áp này. Sau đó các giá
trị này sẽ đi qua bộ khuyếch đại tín hiệu, rồi đến bộ chuyển đổi tín hiệu tương tự sang
tín hiệu số (A/D converter-bộ chuyển đổi tín hiệu tương tự analog thành tín hiệu số
digital), rồi tới bộ xử lý để tái hiện lại hình ảnh đã chụp được.
Việc phải đọc lần lượt thông tin là do tốc độ xử lý hoàn thiện một bức ảnh
khá chậm, ảnh ở một số vùng hoặc dễ bị thừa sáng hoặc thiếu sáng. Để xử lý vấn đề
này, một bộ đọc ảnh có kích cỡ bằng mạng lưới các hạt sáng được bổ sung xen kẽ
để làm tăng tốc độ xử lý ảnh mà không bị suy giảm chất lượng. Sự cải thiện này đòi
hỏi phải có thêm không gian nhớ trên chip. Để sản xuất chip CCD cần có những
thiết bị, phòng lab chuyên dụng, khiến cho giá thành CCD đã đắt lại càng thêm đắt.
Hình 1.9 Sensor CCD và sensor CMOS
7
Sensor CMOS (Complementary Metal-Oxide-Semiconductor)
Với sensor CMOS, cạnh mỗi một điểm bắt sáng trên cảm biến CMOS đều có
một mạch bổ trợ, do đó người ta có thể tích hợp các quy trình xử lý ảnh như bộ
chuyển đổi analog/digital, cân bằng trắng vào mạch bổ trợ này, giúp cho quá trình
xử lý bức ảnh được thực hiện rất nhanh nhờ được thực hiện ngay tại từng điểm ảnh
đơn lẻ. Các điểm ảnh đa chức năng này (vì thế ở CMOS thế hệ mới còn được gọi là
các điểm ảnh chủ động APS – active pixel sensor) đều có khả năng tự làm việc.
Cũng do khả năng này mà người ta có thể tương tác với một vùng pixel nhất định
của chip cảm biến (ví dụ như zoom số - phóng to/thu nhỏ chỉ một phần của ảnh),
điều không thể làm được đối với CCD vì CCD đã đọc là đọc hết toàn bộ bức ảnh.
Với khả năng tích hợp cao, bảng mạch chính sẽ không bị mất thêm không gian (vì
tất cả đã ở trên chip), không đòi hỏi thêm các chip bổ trợ. CMOS cũng tiêu thụ rất ít
điện năng, việc sản xuất dễ dàng vì quy trình giống như quy trình sản xuất chip máy
tính thông dụng ngày nay hay các chip trong các thiết bị điều khiển khác, không cần
phải đầu tư thêm phòng lab mới. Giá thành sản xuất theo đó sẽ được giảm đáng kể.
Tuy nhiên, do mỗi một điểm nhận ánh sáng trên CMOS lại có một mạch riêng
nên khó có thể đảm bảo tính đồng nhất của mỗi mạch khi khuyếch đại. Điều này làm
cho bức ảnh xuất ra luôn có một độ nhiễu nhất định (không mịn). Nếu như ở CCD, mỗi
một điểm ảnh là một mặt bắt sáng khiến cho độ nhạy sáng của CCD cao hơn, dải màu
thể hiện được nhiều hơn, độ phân giải cao hơn, thì mỗi một điểm ảnh của CMOS (bao
gồm hạt bắt sáng và mạch khuyếch đại) khi bắt sáng sẽ có những phần ánh sáng rơi vào
vị trí của mạch vì thế sẽ không được tái hiện. Điều này làm cho ảnh bị mất thông tin tại
những vùng này dẫn đến độ phân giải của CMOS không cao.
Hình 1.10 Sensor CMOS hiện tại
8
Với công nghệ chế tạo chip cảm biến CMOS mới hiện tại, các vấn đề nhược
điểm của sensor CMOS đã được khắc phục. Để giải quyết vấn đề các mạch khuyếch
đại luôn tạo ra một độ nhiễu nhất định trên ảnh, người ta khắc phục bằng cách đọc
ảnh trên cảm biến CMOS hai lần, mỗi lần chỉ trong vòng khoảng 10/1.000 giây. Lần
1 đọc toàn bộ các giá trị bắt sáng của cảm biến, lần 2 chỉ đọc các giá trị của các
mạch bổ trợ tại mỗi chip (giá trị gây nhiễu, hạt). Lấy giá trị lần 1 trừ đi giá trị lần 2
sẽ được bức ảnh chất lượng cao, loại bỏ gần như hoàn toàn độ nhiễu. Để không bị
mất phần thông tin ánh sáng rơi vào vị trí của mạch, người ta đã thêm vào bên trên
của mạch một lớp chắn sáng, một vi thấu kính sẽ được phủ lên toàn bộ bề mặt của
hạt bắt sáng và của mạch, lái ánh sáng tại mọi vị trí của điểm ảnh rơi vào vị trí của
hạt bắt sáng.
Nhờ vào các ưu điểm và việc khắc phục các nhược điểm như trên của cảm
biến CMOS mà giờ đây cảm biến CMOS đang là lựa chọn của rất nhiều nhà sản
xuất máy chụp hình/quay phim nổi tiếng trên thế giới. Nhờ những đột phá về công
nghệ mới đã khiến cho chất lượng của CMOS hiện tại trở nên ngang bằng hoặc
thậm chí là vượt qua cả tiêu chuẩn của CCD. Với nhiều tính năng được tích hợp sẵn
hơn là CCD, cảm biến CMOS hoạt động hiệu quả hơn, cần ít điện năng hơn và chụp
ảnh tốc độ cao tốt hơn CCD.
1.2.2. Những thuận lợi khi áp dụng đếm bằng xử lý ảnh
+ Dễ dàng tin học hóa, tự động hóa,
+ Dùng được trong những trường hợp không thể dùng các phương pháp thủ
công và cũng không dùng được các phương pháp đếm bằng cơ cấu cơ khí, đếm
bằng sensor điện tử (ví dụ các trường hợp đếm thép cây trong nhà máy qua ảnh đầu
bó thép, đếm hồng cầu qua ảnh thu được trên kính hiển vi điện tử).
1.2.3 Khó khăn khi đếm đối tượng qua ảnh
Những khó khăn khi đếm đối tượng qua ảnh là:
+ Chất lượng ảnh phụ thuộc nhiều vào chất lượng ánh sáng khi tích hợp ảnh: Nếu
cường độ sáng chiếu vào đối tượng mà nhỏ quá thì các các sensor không tác động
hoặc cường độ điện áp ra thấp có nghĩa là ảnh không thấy gì hoặc chất lượng kém
9
làm ảnh hưởng đến các khâu xử lý ảnh. Ngược lại khi ảnh được chiếu sáng quá mức
hoặc bị ngược sáng thì cũng cho ảnh chất lượng xấu.
Hình 1.11 Ảnh thiếu sáng chất lượng kém, bị mất không tin
+ Ảnh của đối tượng bị dính (chạm) nhau hoặc chồng lên nhau.
Hình 1.12 Ảnh hồng cầu bị chạm, chồng lên nhau
+ Tác động của nhiễu khi tích hợp ảnh cũng là vấn đề lớn; nhất là các ảnh y học
siêu âm khi tích hợp thường xuất hiện nhiễu đốm là một loại nhiễu khó loại bỏ.
Trong hình 1.13. Với nhiệm vụ phát hiện, đếm ô tô nếu ta không khử được nhiễu thì
không thể thực hiện các bước nhận dạng ô tô và đếm.
Hình 1.13 Ảnh nhiễu và không nhiễu
10
KẾT LUẬN CHƯƠNG 1
Trong cuộc sống thực tiễn các nhu cầu đếm đối tượng có trong nhiều lĩnh
vực. Để có thể tự động hóa việc đếm có thể sử dụng các bộ cảm biến (sensor) hoặc
đếm qua xử lý ảnh. Rất nhiều trường hợp không thể sử dụng sensor do nhiễu hoặc
không lắp đặt được sensor, khi đó phương pháp đếm bằng xử lý ảnh là giải pháp
duy nhất. Tuy nhiên đếm bằng xử lý ảnh cũng có những khó khăn do bản chất của
phương pháp là phụ thuộc ánh sáng và có thể có sai số khi các đối tượng bị
dính/chạm nhau nếu chúng ta không có phương pháp loại trừ thích hợp.
11
CHƯƠNG 2
CÁC PHƯƠNG PHÁP ĐẾM BẰNG XỬ LÝ ẢNH
2.1 Đếm các đối tượng tách rời
2.1.1 Thuật toán kinh điểm đếm các đối tượng tách rời nhau
Như chương 1 đã đề cập: rất nhiều loại hình công việc đếm trong thực tiễn
phải dùng phương pháp đếm bằng xử lý ảnh. Đếm số đối tượng trong ảnh là một
trong các công việc cơ bản của xử lý ảnh. Trong đó bài toán kinh điển đếm các đối
tượng tách rời nhau được mô tả qua thuật toán sau:
Thuật toán đếm kinh điển:
Input: Ảnh số nhị phân.
Output: Số đối tượng cần đếm trong ảnh
Thực hiện với ảnh gốc I có kích thước MxN
1. Tạo các điểm ảnh biên của ảnh I = 0;
// sau khi tạo có ảnh mới I1 có kích thước (M+2) x (N+2)
Số đối tượng = 0;
Hình 2.1 Tạo các điểm ảnh biên cho ảnh I
2. Tìm trong khoảng i = 1 M-2; j = 1 N-2
2.1 Bắt đầu từ điểm bất kỳ (chẳng hạn điểm top-left)
Xem điểm ảnh đó có phải điểm đen không?
+ Nếu điểm ảnh là điểm trắng không làm gì
+ Nếu điểm ảnh đó là điểm đen thì: gán nhãn cho điểm đó là "2" rồi
12
+ Kiểm tra xem 8 điểm ảnh xung quanh có là điểm đen không? Nếu điểm nào trong
số 8 điểm đó là đen thì gán chúng là "2". Nếu không thì chúng vẫn bằng "0". Cập
nhật vị trí các điểm "2". Cập nhật các vị trí đã kiểm tra (Đánh số từ "2" để không
lẫn với giá trị "1").
2.2 Loại trừ điểm đen đầu tiên (điểm "2" đầu tiên). làm tiếp với từng điểm
"2" lân cận với bước 2.1 để tìm các điểm "2" mới tức là tìm các điểm
ảnh mới liên kết với các điểm "2" cũ.
2.3 Khi không còn có điểm "2" mới nào thì:
+ Số đối tượng = Số đối tượng + 1;
+ Tìm trong số tất cả các điểm ảnh còn lại chưa kiểm tra có điểm
đen nào thì lại thực hiện 2.1, 2.2
3. Tìm đến điểm ảnh cuối cùng của ảnh thì sẽ tìm được số đối tượng trong ảnh.
Số điểm ảnh có cùng nhãn "2", "3", ... sẽ là diện tích (độ lớn) của mỗi đối tượng.
a) Các nhóm điểm đen được gán nhãn (hình b)
Hình 2.2 Minh họa phương pháp đếm kinh điển
Trên hình 2.2 các nhãn được đánh số từ 2 đến 7 và số đối tượng N là số thứ tự nhãn
lớn nhất -1 tức là N=7-1=6.
2.1.2 Đếm sai khi có các đối tượng chạm nhau
Theo cách thức của thuật toán đếm kinh điển chúng ta thấy dựa trên sự gán
nhãn các nhóm điểm ảnh liên thông nhau. Mỗi nhóm điểm ảnh là một đối tượng.
Như vậy khi có hai đối tượng chạm nhau trong thực tế thì ảnh của chúng cũng có
các điểm liên thông như là cùng trong một đối tượng. Áp dụng thuật toán đếm kinh
13
điển trong trường hợp này mà không có xử lý tách hai (hoặc nhiều đối tượng dính
nhau ra) sẽ cho kết quả đếm sai.
Hình 2.3 a) ảnh nguyên bản b) ảnh nhị phân
Trên hình 2.3 nguyên bản có 5 đồng xu trong đó có hai nhóm đồng xu bị chồng lên
nhau. Trên ảnh nhị phân khi đếm dùng thuật toán đếm kinh điển chúng ta chỉ đếm
được 3 nhóm đối tượng (mà lẽ ra phải là 5).
2.2 Đếm đối tượng có ảnh dính nhau dùng hình thái học kinh điển
2.2.1 Hình thái học kinh điển
Thuật ngữ thực hiện phép toán hình thái học bao gồm một lớp các thuật toán
xử lý ảnh biến đổi ảnh khi thực hiện biến đổi ảnh qua phần tử cấu trúc. Hình thái
học có thể được thực hiện với ảnh nhị phân và cả ảnh đa cấp xám. Nó được rất hữu
ích trong nhiều công việc xử lý ảnh như tìm xương ảnh, tìm biên, phục hồi và phân
tích kết cấu ảnh. Hai phép toán hình thái học cơ bản là dilation và erotion.
Với ảnh nhị phân: Phép biến đổi erosion & dilation ảnh nhị phân thường được
dùng để biến đổi ảnh như sau:
Hình 2.4 Thực hiện phép co và phép dãn nở ảnh nhị phân
Ta có một ảnh P như hình 2.4 Thực hiện phép erosion và dilation ảnh bằng
cách tuỳ theo việc thực hiện phép xử lý nào mà tạo ra các tập phần tử có cấu trúc
14
(mặt nạ) tương ứng, sau đó rê mặt nạ đi khắp ảnh và tính giá trị điểm ảnh bởi các
điểm lân cận với motip của mặt nạ. Các phép thực hiện có thể là hội, tuyển hoặc
liên hợp.
Dilation: Rê mặt nạ S đi khắp ảnh và tại mỗi điểm kiểm tra nếu bít có giá trị 1 thì
thực hiện phép tuyển với bit mặt nạ quanh điểm ảnh đó. Kết quả được D(P,S).
Erosion: Rê mặt nạ S đi khắp ảnh và tại mỗi điểm kiểm tra nếu bít có giá trị 1 thì
thực hiện phép hội với bit mặt nạ quanh điểm ảnh đó. Kết quả được E(P,S);
a) b) c)
Hình 2.5 a) Ảnh nguyên bản b) Sau khi co ảnh c) Sau khi dãn ảnh
Khi kết hợp phép dãn ảnh và phép co ta có thêm các phép hình thái học, toán tử
đóng (closing) và toán tử mở (opening)
Closing: Toán tử đóng của một ảnh A với một phần tử cấu trúc B được thực hiện
theo luật sau:
AB=(AB)ΘB (2.1)
trong đó và Θ ký hiệu của phép dilation và erosion.
Thuộc tính:
Tính chắc chắn (Imdepotence): (AB)B=AB
Tính tăng: Nếu A C thì AB CB
Tính mở rộng: A AB
Closing thay đổi bất biến.
Opening: toán tử mở của một ảnh A với một phần tử cấu trúc B được thực hiện
theo luật sau:
AB=(AΘB)B (2.2)
15
trong đó và Θ ký hiệu của phép dilation và erosion.
Thuộc tính:
Tính chắc chắn (Imdepotence): (AB)B=AB
Tính tăng: Nếu A C thì AB CB
Chống mở rộng: AB A
Toán tử mở thay đổi bất biến.
Toán tử mở và toán tử đóng đáp ứng tính nhị nguyên: AB=(AcBs)c.
Trong xử lý ảnh closing được dùng để loại bỏ các lỗ nhỏ và opening được dùng để
loại các đối tượng nhỏ của ảnh. Các kỹ thuật này cũng còn được dùng để tìm các
hình dạng đặc tả trong ảnh.
Hình 2.6 Ảnh nhị phân nguyên bản và sau khi thực hiện các phép hình thái học
Hình thái học với ảnh đa cấp xám:
Phép co với ảnh xám được thực hiện bởi bộ lọc cực tiểu còn phép dãn nở thì
được thực hiện bởi bộ lọc cực đại. Trong một bộ lọc cực tiểu 3 x 3 = pixel trung tâm
thì được thay thế bởi giá trị nhỏ nhất của các pixel trong cửa sổ. Trong một bộ lọc
cực đại pixel trung tâm thì được thay thế bởi giá trị lớn nhất của các pixel trong cửa
sổ. Sự thực hiện của các bộ lọc cực tiểu và bộ lọc cực đại giống như sự thực hiện
của bộ lọc median.
Phép hình thái học dãn nở của ảnh xám
16
Hình 2.7 Hình thái học trên ảnh xám
Hình 2.8 Thực hiện hình thái học trên ảnh xám.
2.2.2 Hạn chế khi đếm các đối tượng dính nhau
Khi thực hiện hình thái học để tách các đối tượng dính nhau ra thành đối tượng độc
lập để đếm có thể xảy ra các trường hợp [4]:
Tách được các đối tượng ra đúng đắn và đếm chính xác
17
Hình 2.9 Dùng phép co để tách các đối tượng
Tách đối tượng không hết vẫn còn có đối tượng dính nhau nên đếm sai
Hình 2.10 Do phép co chưa đủ số lần thực hiện
nên vẫn còn các nhóm đối tượng dính nhau
Thực hiện hình thái học với số lần lặp lớn quá mức dẫn đến đối tượng bị biến
mất. Khi đó cũng bị đếm sai.
2.3 Phối hợp biến đổi Watershed và biến đổi khoảng cách.
2.3.1 Biến đổi khoảng cách (DT - Distance Transform)
Biến đổi khoảng cách là một toán tử thường áp dụng cho hình ảnh nhị phân
(cũng có áp dụng cả với ảnh xám). Kết quả của phép biến đổi là một hình ảnh
18
Graylevel trông tương tự như hình ảnh đầu vào, ngoại trừ cường độ mức xám của
các điểm gần các vùng biên được thay đổi. Một số ví dụ trong bảng 2.1
Bảng 2.1 Một số ví dụ biến đổi khoảng cách
Ảnh sau biến đổi Ảnh nguyên bản khoảng cách
Công thức biến đổi khoảng cách
Công thức biến đổi khoảng cách: Một tập các điểm P, số đo khoảng cách DT(P)[x]
= min y ∈ P dist(x, y). Đối với mỗi vị trí x khoảng cách đến điểm y gần nhất trong P
19
- Có thể nghĩ về “hình nón” gốc ở mỗi y ∈ P – và cực tiểu (min) trên tất cả các hình
nón (đường bao thấp hơn
Ba loại biến đổi khoảng cách dựa trên ba kiểu khoảng cách được sử dụng
Khoảng cách Euclidean (L2 norm) sqrt(( x1-y1)2 + (x2-y2)2 + … )
Khoảng cách Mahattan (city block distance - L1 norm) |x1- y1| + |x2-y2| + …ƒ
Khoảng cách Chebyshev (L norm) max(|x1 - y1|, |x2 - y2|, …)
Hình 2.11 Tác dụng của ba kiểu biến đổi khoảng cách
a) ảnh gốc b) dùng khoảng cách Ơ clit
c) Dùng khoảng cách Mahatan d) dùng khoảng cách Chessboard
2.3.2 Phân vùng Watershed (WS-Watershed Segmentation)
Khái niệm)
Hình 2.12 Nguyên lý biến đổi lưu vực sông (watershed transform) nơi các giá trị
cường độ xác định đồi và lưu vực. Đối với mục đích phân vùng, các lưu vực có
thể bị ngập để kết hợp các vùng tương ứng.
Thuật toán Watershed [5], [6] cho phép người dùng đánh dấu những vùng hình
ảnh chứa đối tượng, nền và cả những vùng không chắc chắn. Sau khi thuật toán kết
thúc, những vùng không chắc chắn sẽ được gắn nhãn tiền cảnh hoặc nền, các đường
ranh giới giữa các vùng cũng sẽ được phát hiện.
20
Đầu tiên, thuật toán Watershed xem bức ảnh chứa “Gradient of the Intensity”
như là một tấm bản đồ địa hình, trong đó các vùng sáng là các ngọn núi, còn các
vùng tối là các thung lũng, hình 2.12.
Hình 2.13 Địa hình khi chưa bị ngập nước
Giả sử có một trận mưa cực lớn xuất hiện, ban đầu nước sẽ nhấn chìm toàn
bộ các thung lũng, sau đó mực nước tăng dần để nhấn chìm từng ngọn núi, lúc này
nước ở trong các thung lũng sẽ gặp nhau, vị trí mà chúng gặp nhau chính là biến đổi
watershed (hình 2.15) và đó cũng chính là ranh giới giữa các vùng mà chúng ta cần
phân tách. Nước lũ ở từng thung lũng được tô màu khác nhau để dễ hình dung.
Hình 2.14 Bắt đầu cho ngập các thung lũng
Hình 2.15 Vị trí của Watershed
Hình 2.16 Xây dựng bức tường ngăn cách tại vị trí Watershed
21
Nếu những vùng bị nhấn chìm cùng nhau đã được đánh dấu cùng là tiền cảnh hoặc
cùng là nền từ trước thì chúng sẽ được kết nối với nhau. Ngược lại thì tại vị
trí watershed, chúng ta cần xây dựng một bức tường để ngăn cản nước từ hai vùng
khác biệt (tiền cảnh và nền) hòa trộn với nhau, hình 2.17.
Hình 2.17 Toàn bộ địa hình bị nhấn chìm
Sau khi toàn bộ địa hình đã bị nhấn chìm, chúng ta sẽ nhận được các vùng ( tiền
cảnh) foreground, nền và đường ranh giới giữa chúng hình 2.18.
Hình 2.18 Ví dụ phân vùng ảnh bằng Watershed
Định nghĩa Watershed transform [5]
Dẫn nhập: Phần này nhắc lại một số kiến thức về đồ thị và ảnh kỹ thuật số.
Đồ thị
Một đồ thị G = (V, E) bao gồm một tập hợp V các đỉnh (hoặc nút) và một tập
hợp E ⊆ V × V của các cặp đỉnh. Trong đồ thị có hướng, tập hợp E bao gồm các
cặp theo thứ tự (v, w). Thay vì graph ‘đồ thị định hướng - directed graph’, chúng ta
sẽ viết là digraph. Một cặp không có thứ tự (v, w) được gọi là một biên, một cặp có
thứ tự (v, w) một cung. Nếu e = (v, w) là một cạnh (cung), e được gọi là sự cố
(incident) với (hoặc liền kề) các đỉnh v và w của nó; ngược lại, v và w được gọi là
sự cố với e. Chúng ta cũng gọi v và w là các hàng xóm . Tập hợp các đỉnh là hàng
xóm của v được ký hiệu là NG(v). Một đường dẫn π có độ dài ℓ trong graph G = (V,
22
E) từ đỉnh p đến đỉnh q là một chuỗi các đỉnh (p0, p1, ..., pℓ −1, pℓ) sao cho p0 = p, pℓ=
q và (pi, pi +1) ∈E i ∈ [0, ℓ ). Độ dài của một đường dẫn π được biểu thị bằng
length(π). Một đường dẫn được gọi là đơn giản (simple) nếu tất cả các đỉnh của nó
là khác biệt. Nếu tồn tại một đường dẫn từ một đỉnh p đến một đỉnh q, thì chúng ta
nói rằng q có thể truy cập (reachable) từ p, ký hiệu là p q.
Một đồ thị vô hướng được kết nối nếu mọi đỉnh có thể tiếp cận được từ mọi
đỉnh khác. Đồ thị G’ = (V’, E’) được gọi là sơ đồ con của G = (V, E) nếu V’⊆ V,
E’ ⊆ E và các phần tử của E’ chỉ xảy ra sự cố với các đỉnh từ V’. Một thành phần
được kết nối (connected component) của đồ thị là một sơ đồ con được kết nối tối đa
của G. Các thành phần được kết nối phân vùng các đỉnh của G.
Trong một digraph, một đường dẫn (p0, p1, ..., pℓ -1, pℓ) tạo thành một chu kỳ
nếu p0 = pℓ và đường dẫn chứa ít nhất một cạnh. Nếu tất cả các đỉnh của chu kỳ là
khác biệt, chúng ta nói về một chu kỳ đơn giản (simple cycle). Một vòng tự lặp là
một chu kỳ có độ dài 1. Trong đồ thị vô hướng, một đường dẫn (p0, p1, ..., pℓ -1, pℓ)
tạo thành một chu kỳ nếu p0 = pℓ và p1, ..., pℓ là khác biệt. Một đồ thị không có chu
kỳ được gọi là acyclic. Một khu rừng (forest) là một acyclic vô hướng, một cây
(tree) là một biểu đồ chu kỳ vô hướng được kết nối (a tree is a connected
undirected acyclic graph). Một đồ thị chu kỳ có hướng (directed acyclic graph)
được viết tắt là DAG.
Đồ thị có trọng số (weighted graph) là một bộ ba G = (V, E, w) trong đó w:
E → R là hàm trọng số được xác định trên các cạnh. Đồ thị có giá trị (valued graph)
là một bộ ba G = (V, E, f) trong đó f: V → R là hàm trọng số được xác định trên các
đỉnh. Thành phần cấp độ ở cấp h của đồ thị có giá trị là thành phần được kết nối của
tập hợp các nút v có cùng giá trị f (v) = h. Ranh giới của thành phần cấp P ở cấp h
bao gồm tất cả p ∈ P có các láng giềng có giá trị khác với h; ranh giới dưới của P là
tập hợp tất cả p ∈ P có các láng giềng có giá trị nhỏ hơn h; phần bên trong của P
bao gồm tất cả các điểm của P không nằm trên đường biên. Đường dẫn giảm dần là
đường dẫn mà giá trị không tăng. Bởi chúng ta biểu thị tập hợp tất cả các
đường dẫn giảm dần bắt đầu trong một nút p và kết thúc ở một số nút q với f (q) < f
23
(p). Cực tiểu khu vực (minimum, viết tắt) ở cấp h là thành phần cấp P trong đó
không có điểm nào có hàng xóm có giá trị thấp hơn h, tức là với tất cả p
∈ P. Một đồ thị có giá trị được gọi là thấp hơn hoàn thành khi mỗi nút không ở mức
tối thiểu có nút lân cận có giá trị thấp hơn.
Lưới kỹ thuật số:
Lưới kỹ thuật số (digital grid) là một loại đồ thị đặc biệt. Thông thường
người ta làm việc với lưới vuông D ⊆ Z2, trong đó các đỉnh là pixel. Khi D là hữu
hạn, kích thước của D là số điểm trong D. Tập hợp pixel D có thể được cung cấp
cho cấu trúc đồ thị G = (V, E) bằng cách lấy cho V miền D và cho E một tập hợp
con nhất định của Z2 × Z2 xác định kết nối. Các lựa chọn thông thường là 4 kết nối,
tức là, mỗi điểm có các cạnh với các hàng xóm ngang và dọc hoặc 8 kết nối trong
đó một điểm được kết nối với các hàng xóm ngang, dọc và chéo của nó. Các thành
phần được kết nối của một tập hợp pixel được xác định bằng cách áp dụng định
nghĩa cho biểu đồ (graphs).
Khoảng cách giữa các nút lân cận trong lưới kỹ thuật số được giới thiệu bằng
cách liên kết trọng số không âm d (p, q) với mỗi cạnh (p, q). Theo cách này, một đồ
thị có trọng số sẽ thu được. Khoảng cách d (p, q) giữa các pixel không lân cận p và
q được xác định là độ dài đường dẫn tối thiểu trong số tất cả các đường dẫn từ p đến
q (điều này phụ thuộc vào cấu trúc biểu đồ của lưới, tức là kết nối).
Ảnh số
Một ảnh xám kỹ thuật số là bộ ba G = (D, E, f), trong đó (D, E) là một biểu đồ
(thường là lưới kỹ thuật số) và f: D - → N là hàm gán giá trị nguyên cho mỗi pD.
Một ảnh nhị phân f chỉ có hai giá trị, các điểm ảnh là 1 ('tiền cảnh-foreground') và
nền là 0 ('nền- background '). Đối với p ∈ D, f (p) được gọi là giá trị xám hoặc độ
cao (coi f là một hình chạm nổi địa hình). Đối với phạm vi của ảnh xám, người ta
thường lấy tập hợp các số nguyên từ 0 đến 255. Một cao nguyên hoặc vùng phẳng
của giá trị xám h là thành phần cấp độ của hình ảnh, được coi là biểu đồ có giá trị,
tức là, một thành phần được kết nối của các pixel có giá trị xám không đổi h.
Ngưỡng của f ở cấp h là
24
Khoảng cách đo đạc
Đặt A ⊆ , với E = Rd hoặc = Zd và a, b hai điểm trong A. Khoảng cách
trắc địa dA(a, b) giữa a và b trong A là độ dài đường đi tối thiểu trong số tất cả các
đường trong A từ a đến b (trong trường hợp liên tục, đọc là 'infimum' thay cho 'tối
thiểu'). Nếu B là tập con của A, xác định dA(a, B) = MIN b∈B (dA(a, b)). Đặt B⊆A
được phân vùng trong k thành phần được kết nối Bi, i = 1, ..., k. Vùng ảnh hưởng
trắc địa của tập Bi trong A được định nghĩa là
Đặt B⊆A. Tập hợp IZA(B) là sự kết hợp của các vùng ảnh hưởng trắc địa của các
kết nối các thành phần của B, tức là:
(2.4)
Phần bù của tập hợp IZA(B) trong A được gọi là SKIZ (khung theo vùng ảnh
hưởng):
(2.5)
Vì vậy, SKIZ bao gồm tất cả các điểm tương đương nhau (theo nghĩa của khoảng
cách trắc địa) đến ít nhất hai thành phần được kết nối gần nhất (đối với lưới kỹ thuật
số, có thể không có điểm nào như vậy). Đối với hình ảnh nhị phân f với miền A,
SKIZ có thể được xác định bằng cách xác định B bằng tập hợp các pixel phía trước.
Định nghĩa biến đổi watershed
Trong phần này giới thiệu các định nghĩa về biến đổi watershed, có thể được
xem như là một khái quát hóa bộ xương theo vùng ảnh hưởng (SKIZ) thành hình
ảnh giá trị xám. Chúng ta bắt đầu với trường hợp liên tục, theo sau là hai định nghĩa
cho trường hợp kỹ thuật số, định nghĩa thuật toán của Vincent & Soille và định
nghĩa theo khoảng cách địa hình của Meyer.
25
Định nghĩa Watershed trong trường hợp liên tục
Một định nghĩa watershed cho trường hợp liên tục có thể dựa trên các hàm
khoảng cách. Tùy theo hàm khoảng cách được sử dụng (xem 2.3.1), người ta có thể
đi đến các định nghĩa khác nhau.
Giả sử rằng hình ảnh f là một phần tử của không gian C (D) của các hàm
thực hai lần liên tục khác nhau trên miền D được kết nối với chỉ các điểm quan
trọng riêng biệt. Sau đó, khoảng cách địa hình giữa các điểm p và q trong D được
xác định bởi
(2.6)
trong đó điểm cực đại nằm trên tất cả các đường dẫn (đường cong trơn tru) bên
trong D với γ(0) = p, γ(1) = q. Khoảng cách địa hình giữa một điểm p ∈ D và tập A
⊆ D được xác định là Tf(p, A) = MINa∈ATf (p, a). Đường đi có Tf – là khoảng cách
ngắn nhất giữa p còn q là đường có độ dốc lớn nhất. Điều này thúc đẩy định nghĩa
nghiêm ngặt sau đây về biến đổi đầu nguồn.
Definition 2.1. (Watershed transform)
Đặt f ∈ C (D) có cực tiểu {mk} k∈I, đối với một số bộ chỉ số I. Miền lưu vực CB
(mi) của một cực tiểu mi được định nghĩa là tập hợp các điểm x ∈ D có địa hình gần
với mi hơn đến bất kỳ cực tiểu mj khu vực khác.
watershed của f là tập hợp các điểm không thuộc bất kỳ vùng lưu vực nào:
(2.7)
Đặt W là một số nhãn, W I. watershed transform của f là ánh xạ : D → I{W},
sao cho λ (p) = i nếu pCB(m i) và λ (p) = W nếu p ∈ Wshed (f).
26
Vì vậy, watershed transform của f gán nhãn cho các điểm của D, sao cho (i) các
miền lưu vực khác nhau được gắn nhãn duy nhất và (ii) một nhãn đặc biệt W được
gán cho tất cả các điểm của watershed (lưu vực) f.
Định nghĩa 2.2: Watershed trường hợp rời rạc
Một vấn đề phát sinh đối với hình ảnh kỹ thuật số là sự xuất hiện của các cao
nguyên, tức là các vùng có giá trị xám không đổi, có thể mở rộng trên các vùng hình
ảnh lớn. Các cao nguyên như vậy tạo thành một khó khăn khi cố gắng mở rộng định
nghĩa lưu vực (watershed) liên tục dựa trên khoảng cách địa hình đến các hình ảnh
rời rạc. Hiệu ứng không nhắm mục tiêu này cũng là một trở ngại lớn cho việc thực
hiện song song các thuật toán đầu nguồn.
Một số thuật toán sẽ tự động tính toán mức watershed transform theo cấp độ,
trong đó mỗi cấp tạo thành một hình ảnh nhị phân mà SKIZ được tính toán.
Hình 2.19 Watershed transform trên lưới ô vuông, cho các kết nối khác nhau.
(a): hình ảnh gốc (cực tiểu được in đậm); (b - c): kết quả theo độ ngâm vào nước
(Định nghĩa 2.2); (d) - (e): kết quả theo khoảng cách địa hình (Định nghĩa 2.1).
Các phương pháp biến đổi Watershed [6]
Chủ yếu có ba phương pháp để thực hiện watershed:
+ Phương pháp chuyển đổi khoảng cách,
+ Phương pháp Gradient,
+ Phương pháp kiểm soát đánh dấu.
Cụ thể:
Phương pháp biến đổi khoảng cách (DT xem 2.3.1)
+ Phương pháp Gradient: Biên độ gradient được sử dụng để xử lý trước
một ảnh xám trước khi sử dụng biến đổi watershed để phân vùng. Biên độ gradient
27
có các giá trị pixel cao dọc theo các biên của đối tượng và các giá trị pixel thấp ở
những nơi khác. Biến đổi watershed sẽ cho kết quả các đường sườn watershed dọc
theo các cạnh biên của đối tượng. Có một vấn đề của phân vùng quá mức khi phân
vùng theo phương pháp watershed là có các đường viền không mong muốn do
nhiễu gây ra trong phương pháp này (xem hình 2.20 Phân vùng quá mức). Khi sử
dụng phương pháp Gradient quá trình phân vùng được thực hiện thành hai bước
riêng biệt: đầu tiên phát hiện các cạnh chính của hình ảnh được xử lý và sau đó tính
toán watershed của gradient đã được phát hiện.
Phương pháp kiểm soát đánh dấu:
Các watersheds được tách riêng với nhau. Biến đổi watershed phân tách hoàn
toàn một hình ảnh và do đó gán từng pixel cho một vùng hoặc một watershed. Với
dữ liệu hình ảnh y tế có nhiều nhiễu, một số lượng lớn các vùng nhỏ phát sinh. Điều
này được gọi là vấn đề về phân vùng quá mức - “over-segmentation” Phương pháp
kiểm soát đánh dấu sẽ khắc phục được hạn chế này
Hình 2.20 Phân vùng quá mức do nhiễu khi áp dụng cho một lát cắt trục của
hình ảnh CT. Ảnh cuối: các lưu vực riêng lẻ (individual basins) được hợp nhất
để tạo thành các vùng lớn hơn liên tiếp.
2.3.3 Phối hợp biến đổi Watershed và biến đổi khoảng cách
Sử dụng biến đổi Watershed chúng ta có thể thực hiện phân vùng ảnh khi kết
hợp biến đổi khoảng cách chúng ta sẽ thu được kết quả phân vùng và các đối tượng
được tách rời sử dụng cho mục đích đếm.
28
Thuật toán biến đổi Watershed và biến đổi khoảng cách
Trên hình 2.21 là thuật toán biến đổi Watershed và biến đổi khoảng cách có thể ứng
dụng cho nhiều trường hợp tách đối tượng dính nhau. Giải thích thuật toán:
BEGIN
1. Mở ảnh có sẵn hoặc thu ảnh từ cameta
Ảnh chứa các đối tượng cần đếm có thể là ảnh màu hoặc ảnh xám. Để
chuyến ảnh màu sang ảnh nhị phân trước hết chúng ta chuyển nó sang ảnh xám.
2. Chuyển sang ảnh binary
Nếu ảnh trong file là ảnh binarry thì không cần phải thực hiện bước này.
3. Dùng toán tử mở loại các điểm trắng nhỏ
Trong ảnh nhị phân có thể có những điểm trắng nhỏ. Để không bị sai
kết quả khi tính toán chúng ta loại những điểm ảnh trắng nhỏ này bằng toán tử
opening. Việc loại điểm trắng nhỏ cỡ bao nhiêu pixel do chúng ta tự quyết định,
thường là nhỏ hơn diện tích cơ bản của đối tượng đơn cần đếm một số nào đó.
4. Dùng toán tử đóng loại các lỗ nhỏ màu đen trong ảnh đối tượng (vùng màu
trắng)
Trong nhóm ảnh đối tượng (trắng trên nền đen) có thể có những lỗ đen
nhỏ. Dùng toán tử đóng để lấp đầy các lỗ đen này.
5. Thực hiện phép trừ nền để tách vùng quan tâm khỏi ảnh chung
6. Gắn nhãn nền và các cùng không phải nền
7. Thực hiện biến đổi watershed
END
Bắt đầu
Mở file ảnh hoặc thu ảnh
Chuyển sang ảnh nhị phân
Dùng toán tử mở loại các điểm trắng nhỏ
Dùng toán tử đóng loại các lỗ nhỏ màu đen
Thực hiện phép trừ nền
Gán nhãn nền và các vùng không phải nền
Thực hiện biến đổi watershed
Kết thúc
29
Hình 2.21 Thuật toán phối hợp Biến đổi Watershed và Biến đổi khoảng cách [2]
30
Ví dụ: tách các đồng xu dính nhau
Hình 2.22 mô tả việc thực hiện tách ảnh của các đồng xu bị dính nhau dùng phân
vùng Watershed kết hợp biến đổi khoảng cách (Distance Transform).
i)
g)
h)
Hình 2.22 Phân vùng các đồng xu dính nhau
31
Sau khi thực hiện bước f) nếu để thực hiện phân vùng Watershed chúng ta sẽ thực
hiện một số bước tiếp theo g) h) i). Tuy nhiên trong nhiệm vụ ở đây chúng ta chỉ
thực hiện đến f) là đủ và sau đó là bước đếm đối tượng.
a) Ảnh gốc b) Chuyển ảnh gốc sang ảnh nhị phân c) Dùng toán tử mở loại các
điểm trắng nhỏ (nhiễu) d) Dùng toán tử đóng loại các lỗ nhỏ màu đen. e) thực hiện
biến đổi khoảng cách f) Thực hiện phân ngưỡng để thu được các đối tượng tách rời
g) Tạo bản đồ màu JET (Bản đồ màu là một ma trận 3 hàng, 3 cột mỗi một hàng là
một véc tơ RGB có giá trị số thực trong khoảng [0,1].) h) Đánh dấu các vùng i) ảnh
kết quả.
Hình 2.23 Tách các hạt cà phê dính nhau
2.4 Sử dụng mạng nơ ron
Trong phần này một phương pháp sử dụng mạng nơ ron CNN [7] được áp
dụng trong trường hợp đếm cây thép qua ảnh đầu bó. Phương pháp này cũng có thể
được áp dụng với những trường hợp đếm các nhóm đối tượng trong ảnh có ảnh
chạm nhau.
Trong thời kỳ phát triển của trí tuệ nhân tạo (AI- Artificial intelligence) các
thuật toán học sâu (deep learning) được quan tâm nhiều. Trong đó mạng nơ ron tích
chập (CNN - Convolutional Neural Networks) rất được chú ý nghiên cứu phát triển.
Đây là kiến trúc mạng nơ ron phần mềm được ứng dụng rất hiệu quả khi phân loại
hình ảnh.
Cần chú ý rằng thuật ngữ mạng nơ ron tế bào CNN (Cellular Neural
Netwwork) đều viết tắt là CNN nhưng đây là một loại mạng nơ ron phần cứng xử lý
song song thực sự với hàng chục ngàn bộ xử lý thực hiện xử lý cùng lúc bằng một
lệnh duy nhất (kiến trúc phần cứng xử lý song song đã thực hiện bằng loại mạng
32
phần cứng này là 65.536 bộ xử lý) do L.O. Chua phát minh và sau này máy tính
song song kết hợp của L.O.Chua và Roska Tamas phát minh [10].
Kiến trúc phần mềm mạng nơ ron chập cuộn Convolutional Neural Networks
dùng cho ứng dụng đếm đối tượng như trong hình 2.24
Hình 2.24 Trước tiên, mạng CNN-DC thực hiện phát hiện các điểm tâm cây
thép bằng một mạng CNN (deep CNN), sau đó áp dụng thuật toán Phân cụm
khoảng cách để có được thông tin về số lượng thanh thép và các vị trí tâm của
các thanh thép.
Thuật toán Phân cụm khoảng cách
Đầu vào: Vị trí của các điểm ứng viên tâm cây thép và ngưỡng khoảng cách thd
Đầu ra: Một tập hợp các cụm, tâm của mỗi cụm và số lượng cụm
Bước 1: Khởi tạo
1) Với i = 1, ..., n, tập D(i) = dij, trong đó n là số điểm ứng viên tâm, di là khoảng
cách Euclide giữa điểm tâm ứng cử viên thứ i và điểm Điểm trung tâm ứng viên gần
nhất j, D là tập hợp của dij.
2) Tạo cấu trúc S rỗng để lưu các cụm ban đầu.
3) For i = 1,...,n, do
if D(i) < thd, S{i} = {i;j}; else S{i} = {i}
end for
Bước 2: Phân cụm
1) Tạo một cấu trúc Sc{1} = S{1} để ghi các cụm kết thúc (final clusters) và đặt số
lượng cụm là nSc = 1.
2) For i = 2,...,n,do
nSc = length(Sc)
condition = 0
33
For k = 1,...,n S c ,do
if (S{i} ∩ S c {k})! = ∅, do
Sc {k} = {S c {k}; S{i}}
condition = 1
break
end if
end for
if condition = 0, do
nSc = nSc + 1
Sc{nSc + 1} = S{i}}
end if
end for
Bước 3: Thu các tâm cây thép
1) Tạo một tập C trống để lưu các tâm cây thép
2) For i = 1,...,nSc ,do
xci = (max(xSc{i}) + min(xSc{i})) / 2
yci = (max(ySc{i}) + min(ySc{i})) / 2
C(i) = (xci, yci)
end for
Hình 2.25 Minh họa quá trình phân cụm khoảng cách: (1) Tính khoảng cách
của mỗi hai điểm ứng viên tâm. (2) Tạo một tập cho mỗi ứng viên
điểm trung tâm theo ngưỡng khoảng cách. (3) Hợp nhất các tập nếu chúng có chung
34
các yếu tố. (4) Tính điểm trung tâm của mỗi tập.
Hình 2.26 Kiến trúc CNN bao gồm bốn lớp chập, bốn lớp gộp và ba lớp được
kết nối đầy đủ. Tên lớp được theo sau bởi số lượng bản đồ tính năng. Dấu ngoặc
vuông xác định kích thước hạt nhân và bước. ’conv’, ’maxpool’ và ’fc’ là các ký
hiệu viết tắt cho lớp các chập, lớp gộp tối đa và lớp được kết nối đầy đủ, tương ứng.
Quá trình sử dụng phương pháp này cho đêm và định tâm các cây thép như
hình 2.27
Hình 2.27 Quá trình sử dụng phương pháp dùng mạng nơ ron chập cuộn CNN
cho đêm và định tâm các cây thép
Phương phá này độ chính xác cũng chưa đạt độ chính xác tuyệt đối (100%) và có
khối lượng tính toán lớn.
35
2.5 Đếm đối tượng có ảnh dính nhau dùng hình thái học định hướng
2.5.1 Khảo sát Hình thái học gradients kinh điển
Trong hình thái học và xử lý ảnh kỹ thuật số, một morphological gradient [8]
là hiệu số giữa phép dãn nở và phép co của một ảnh đã cho. Đó là một ảnh trong đó
mỗi giá trị pixel (thường không âm) biểu thị cường độ tương phản trong vùng lân
cận gần của pixel đó. Nó rất có ích cho các ứng dụng phát hiện biên và phân vùng
ảnh.
Định nghĩa toán học và ba kiểu toán tử hình thái học (morphological gradient)
Lấy là một hình ảnh thang độ xám, ánh xạ các điểm từ một
không gian Euclide hoặc lưới E rời rạc (như R2 hoặc Z2) vào đường thẳng thực. Đặt
b(x) là một phần tử cấu trúc thang độ xám. Thông thường, b là đối xứng và có hỗ
trợ ngắn, ví dụ:
+ Khi đó hình thái học gradient của f được cho bởi:
trong đó và lần lượt ký hiệu của phép dãn nở và phép co
+ Một internal gradient được cho bởi:
+ Một external gradient được cho bởi:
internal gradient và external gradient thì "mỏng hơn" so với gradient, nhưng các
đỉnh trong nằm ở các biên, trong khi bên trong và bên ngoài thì nằm ở mỗi bên của
các biên.
nếu b(x) 0 khi đó cả ba gradient có giá trị không âm ở Chú ý rằng
tất cả các pixel.
Các ví dụ:
36
Hình 2.28 Ví dụ hình thái học gradient với ảnh một con đường
Hình 2.29 Hình thái học gradient với tín hiệu 1D có tác dụng cải thiện tín hiệu
cả hai vùng trong và ngoài.
37
Hình a:là tăng điểm trắng theo chiều từ trái sang phải
Hình b: là tăng điểm đen theo chiều từ trên xuống dưới
Hình 2.30 Ví dụ Hình thái học gradient với ảnh một tấm bản mạch
2.5.2 Hình thái học có định hướng
Qua mục 2.5.1 chúng ta thấy hình thái học gradient chỉ có tác dụng nổi biên
ở các phía trong và ngoài biên cũng như nổi biên so với nền ảnh trong một số
trường hợp và không tác dụng tách rời các đối tượng dính nhau. Với mục tiêu tách
đối tượng tách rời các đối tượng dính nhau chúng tôi đưa ra một loại hình thái học
mới thực hiện hình thái học dựa trên đặc điểm của biên ảnh tại những vị trí có biểu
hiện đặc điểm của hai đối tượng “dính nhau”. Hình thái học có định hướng (OM -
oriented morphology) [9].
Chúng ta quy ước các hướng trong ảnh như hình 2.31:
38
Hình 2.31 Quy ước các hướng trong ảnh với thực hiện hình thái học có định hướng
Trong một ảnh có nhiều đối tượng chạm nhau, nếu chúng ta sử dụng các mặt
nạ mask (đối xứng hoặc cả không đối xứng) bình đẳng với mọi pixel trong ảnh khi
thực hiện hình thái học nhằm thu nhỏ đối tượng để tách các đối tượng chạm nhau ra
thì hiệu quả chắc chắn sẽ khó theo yêu cầu. Nhiều khi thực hiện lặp phép hình thái
học đến mức diện tích của đối tượng bằng không vẫn chưa tách được các đối tượng
chạm nhau ra. Tuy nhiên nếu chúng ta tìm được các vị trí có biểu hiện của hai hay
nhiều đối tượng chạm nhau và tại vị trí đó xác định được hướng cần thực hiện hình
thái học thì hiệu quả sẽ tăng lên rất nhiều. Khảo sát hình 2.32. Lấy 1 phần của ảnh
trong hình a) và phóng to lên như hình c) chúng ta thấy rằng: Với cụm hình ở góc
trên bên trái ta có thể chỉ thực hiện hình thái học theo các hướng theo chiều các mũi
tên. Khi đó các đối tượng chạm nhau sẽ được tách ra và kích thước nguyên thủy
không bị thay đổi.
a) b) c)
Hình 2.32 Hình thái học có hướng
a) các đối tượng dính, chạm nhau trong ảnh b) biên của chúng và c) các vị trí thực
hiện các vết “cắt” bằng hình thái học để tách các đối tượng. Ngoại lệ trong c): nếu
thực hiện hình thái học định hướng theo các hướng 1 và 2 thì có thể không tách
được các đối tượng mà còn làm hỏng ảnh; gây đếm sai.
Vị trí các đối tượng chạm nhau và hướng chạm nhau trong thực tế là bất kỳ.
Tuy nhiên chúng ta có thể quy về các hướng cơ bản X-X, Y-Y, Y-X, X-Y như trong
hình … Chiều thực hiện quy ước như sau: Theo phương X-X và Y-Y chiều dương
là chiều dương của các trục x và y trong tọa độ Đề các. Chiều dương của trục Y-X
39
là chiều từ góc phần tư thứ tư tới góc phần tư thứ hai trong vòng tròn lượng giác;
ngược lại là chiều âm. Chiều dương của trục X-Y là chiều từ góc phần tư thứ ba
sang góc phần tư thứ nhất trong vòng tròn lượng giác; ngược lại là chiều âm.
Tìm các điểm và hướng sẽ thực hiện hình thái học định hướng tại các điểm đó:
Hình 2.33 Các vị trí và hướng thực hiện hình thái học định hướng
Trên các đoạn biên liên tục:
+ Tính góc giữa tiếp tuyến của biên với các trục x-x, y-y, xy, yx:
Khi khảo sát các điểm thắt theo hướng Y-Y chúng ta tính với trục vuông góc với
Y-Y tức trục X-X. Khoảng khảo sát từ 00 đến 3600. Chúng ta chỉ cần tìm các điểm
lõm nên khi có giá trị thay đổi từ góc phần tư thứ nhất (khoảng 00 đến 900) sang
giá trị trong góc phần tư thứ 2 (khoảng 900 đến 1800) có nghĩa là có điểm thắt theo
hướng Y-Y và chiều là –Y trong tọa độ Đề các. Nếu khi có giá trị thay đổi từ góc
phần tư thứ ba (khoảng 1800 đến 2700) sang giá trị trong góc phần tư thứ 4 (khoảng
900 đến 1800) có nghĩa là có điểm thắt theo hướng Y-Y và chiều là +Y.
Tương tự với các hướng X-X, X-Y và Y-X.
Hình 2.34 Góc thay đổi qua các trục thể hiện các điểm lõm (a) và lồi (b) của biên
40
Hình 2.35 Điểm A đổi chiều gradient theo hướng Y-Y
+ (hoặc sử dụng mã xích)
+ Tìm tọa độ các điểm thắt mà tại đó góc đổi chiều để thực hiện hình thái học
C
E
G
A
B
D
F
H
định hướng tại đó
Hình 2.36 Tìm tọa độ các điểm thực hiện hình thái học định hướng
Ảnh là một ma trận I [i,j] với i=0..M-1; j=1..N-1. I[i,j]{0,1}; Gốc tọa độ của ảnh
là góc trên bên trái . Như vậy trên hình 2.37 tọa độ của các điểm A, B, D, E, F, G, H
tương ứng là: A(1,5); B(5,5); C(15,2); D(14,6); E(24,3); F(25,5); H(31,6); G(34,3).
Các mặt nạ tương ứng với các trường hợp lần lượt là:
a) b) c) d)
Hình 2.37 Các mặt nạ hình thái học theo hướng a) X-X, b) Y-Y c) Y-X d) X-Y
Số lần lặp thực hiện hình thái học định hướng được chọn = k*(bề dày của đối
tượng). k phụ thuộc hướng hình thái học định hướng. Chẳng hạn k= ½ đường kính
của hình tròn tương đương với đối tượng (với đối tượng là một thanh thép). Với các
trường hợp khác việc chọn tùy theo hình dáng cụ thể của đối tượng và khả năng
chạm giữa các đối tượng.
41
Qua khảo sát một số thực hiện hình thái học và Biến đổi chúng ta nhận thấy
để ứng dụng hình thái học trong các phép biến đổi phụ trợ nhằm tách các đối tượng
tách rời khi đếm chúng ta có thể sử dụng các phép dãn nở hoặc phép co riêng rẽ
hoặc phối hợp, có thể dùng Biến đổi Watershed hoặc hình thái học có định hướng.
Các toán tử hình thái học gradient chỉ có tác dụng làm nổi biên trong các trường
hợp độ sáng nền tối hơn hoặc sáng hơn đối tượng.
2.6 Xây dựng thuật toán đếm đối tượng có ảnh dính nhau dùng hình thái học
định hướng
Qua khảo sát thực tế và một số các phương pháp hình thái học kinh điển và
cải tiến, thuật toán đếm đối tượng có ảnh dính nhau dùng hình thái học có định
hướng OM-Oriented Morphology đã được đưa ra như sau:
Thuật toán hình thái học có định hướng:
Đầu vào: Ảnh các đối tượng chạm nhau
Đầu ra: Số đối tượng đếm được sau khi đã tách
1) Bắt đầu.
2) Thu ảnh, tăng cường chất lượng ảnh.
3) Chuyến sang ảnh nhị phân. Tính diện tích trung bình cơ bản của ảnh một đối
tượng cần đếm Scb trên ảnh nhị phân này.
4) Xóa các đối tượng có diện tích nhỏ S < Scb là diện tích cơ bản của một đối tượng
(ví dụ diện tích cơ bản của một hồng cầu trong ảnh cụ thể đang xét là 50 pixel).
5) Đếm N1 đối tượng có S Scb của 1 đối tượng.
6) Xóa N1 đối tượng có S Scb của 1 đối tượng
7) Lặp với từng nhóm đối tượng còn lại trong ảnh có S 2 Scb:
{
7.1. Tìm biên các nhóm có có S 2 Scb.
7.2. Xác định theo hướng Y-Y, Y-X, X-X, X-Y vị trí các điểm thắt so
với gốc tọa độ ảnh.
7.3. Thực hiện hình thái học có hướng tại các điểm đã đánh dấu.
7.4. Đếm N2 đối tượng có S Scb của 1 đối tượng.
42
7.5. Xóa N2 đối tượng có S Scb của 1 đối tượng (xóa các đối tượng đã vừa
đếm ở 7.4).
7.6. Xác định số đối tượng còn lại có S 2 Scb. Lấy diện tích của các đối
tượng còn lại này chia cho Scb của 1 đối tượng để có số đếm N3.
}
8. Trả về tổng số đối tượng N=N1+N2+N3. Trong đó:
N1 là số đối tượng có S Scb sau bước 5.
N2 là số đối tượng có S Scb sau bước 7.4.
N3 là số đối tượng trong nhóm có S 2 Scb sau bước 7.6
8. Kết thúc:
KẾT LUẬN CHƯƠNG 2
Trong chương 2 các vấn đề đếm đối tượng đã tách rời và một số phương
pháp tách đối tượng đã được khảo sát như dùng hình thái học kinh điển, dùng Biến
đổi khoảng cách kết hợp biến đổi watershed Phương pháp hình thái học có định
hướng đã được đưa ra để ứng dụng tách các đối tượng có ảnh dính nhau.
43
CHƯƠNG 3
ỨNG DỤNG XỬ LÝ ẢNH ĐẾM CÂY THÉP QUA ẢNH ĐẦU BÓ
3.1 Cơ sở chọn thuật toán và nhu cầu thực tế
Nhu cầu đếm các đối tượng có rất nhiều trong thực tiễn. Đếm thủ công bằng
mắt là một phương pháp tự nhiên, đã có lâu đời. Nhưng ngày nay việc đếm thủ công
đã không còn đáp ứng được nữa do tốc độ xuất hiện và tồn tại các đối tượng cần
đếm rất nhanh, do số lượng đối tượng cần đếm vô cùng lớn, do các đối tượng trong
nhóm dính hoặc chồng lấn lên nhau. Với các đối tượng xuất hiện có quy luật như
sản phẩm trên dây chuyền sản xuất người ta có thể dùng các bộ cảm biến kết hợp
máy tính hoặc các bộ vi xử lý để đếm. Có nhiều loại cảm biến có thể dùng cho nhu
cầu phát hiện đếm như cảm biến hồng ngoại, điện dung, ánh sáng, siêu âm, …Tuy
nhiên có nhiều bài toán đếm không thể áp dụng các mô hình đếm dùng sensor.
Khó khăn phải giải quyết khi đếm bằng xử lý ảnh là độ chính xác khi đếm
với các ảnh có đối tượng chạm hay chồng lấn với nhau. Độ chính xác hiện nay đa số
các trường hợp chưa đạt mức tuyệt đối,
Dùng hình thái học kinh điển (dùng erosion nếu ảnh là trắng và nền là đen
hoặc dilation nếu ngược lại).
Nhược điểm của phương pháp này là nếu không khống chế được số lần lặp
thì ảnh của đối tượng sẽ bị giảm kích thước dần và có thể đến bằng 0 (mất đối
tượng) dẫn đến kết quả đếm sai.
Gradient Morphology là kiểu hình thái học có định hướng Hai đặc điểm của
hình thái học gradient là hướng và độ lớn. Như vậy các toán tử morphological
gradient chỉ có tác dụng làm nổi biên trong các trường hợp độ sáng nền tối hơn hoặc
sáng hơn đối tượng. Với nhu cầu chia tách các đối tượng dính nhau trên ảnh thì
không có tác dụng.
Dùng biến đổi khoảng cách (DT – Distance Transform) kết hợp watershed
Trong luận văn trình bày một phương pháp dùng để thực hiện hình thái học
định hướng (Oriented Morphology – OM) căn cứ vào đặc điểm cụ thể của mỗi ảnh
để đưa ra hướng thực hiện hình thái học nhằm mục đích tách các đối tượng trong
ảnh bị chạm nhau ra để đếm cho chính xác.
Chúng ta quy ước các hướng trong ảnh như hình 2.31 trang 38
44
Kỹ thuật này có thể được áp dụng trong nhiều trường hợp đếm bằng xử lý ảnh
mà ảnh của chúng có sự tiếp xúc giữa các đối tượng như đếm hồng cầu, tế bào đã
nói ở trên. Học viên đã thử nghiệm phương pháp cho một ứng dụng trong thực tế là
đếm số lượng cây thép trong một bó thép từ ảnh của đầu bó thép. Đặc điểm cơ bản
của ảnh đầu các bó thép là các đầu cây thép không thể chồng lấn lên nhau được nên
ảnh của chúng chỉ có thể dính nhau mà không chờm lên nhau được.
Phương pháp trình bày trong luận văn bằng cách tìm ra các điểm thắt để sử
dụng hình thái học có định hướng nhằm tách các đối tượng dính nhau ra. Phương
pháp đã được thực nghiệm trên ảnh của đầu các bó thép và đã cho độ chính xác ứng
dụng được trong thực tế nếu các đầu bó bằng nhau. Với các đầu bó thép không bằng
nhau độ chính xác chưa đạt 100%. Để khắc phục có thể dùng biện pháp hỗ trợ cơ
khí vỗ cho bằng đầu các bó thép để có thể thu được các ảnh đầy đủ. Phương pháp
này cũng có thể áp dụng với các trường hợp cần đếm các đối tượng khác nói chung
không phải là cây thép khi ảnh của chúng cũng dính nhau.
Ảnh được chụp bằng loại máy ảnh kỹ thuật số SONY có độ phân giải thường
10 Mega pixel, ống kính tiêu cự 50 mm với ánh sáng thường, không đèn. Sau đó
ảnh được đem xử lý. Số ảnh xử lý với mỗi loại đường kính () khác nhau là 50 ảnh
khác nhau.
Các nhà máy cán thép hiện nay đang sản xuất một số ít các loại thép chế tạo
và một số thép tấm còn chủ yếu là thép xây dựng với hai loại chính là thép cây và
thép cuộn. Các cuộn thép cây đường kính dây thép từ 5.5 đến 16. Trọng lượng
từ khoảng 400kg đến 2000kg. Đường kính các cây thép từ 10 đến 51 Một cây
thép cây có chiều dài 11.7m (460 inch). [Quy cách sắt thép xây dựng 02/2020]
Hình 3.1 Thép xây dựng a) dạng cây b) dạng cuộn
45
Hình 3.2 Thép tròn trơn và thép vằn
Bảng 3.1 Quy cách thép cây cường lực (thép cây có vằn)
Số cây/bó Đường kính Chiều dài m/cây Khối lượng /mét (kg/m) Khối lượng /cây (kg/cây) Khối lượng /bó (tấn)
11,7 0,617 7,22 300 D 10 2,165
11,7 0,888 10,39 260 D 12 2,701
11,7 1,210 14,16 190 D 14 2,689
11,7 1,580 18,49 150 D 16 2,772
11,7 2,000 23,40 115 D 18 2,691
11,7 2,470 28,90 95 D 20 2,745
11,7 2,980 34,87 76 D 22 2,649
11,7 3,850 45,05 60 D 25 2,702
11,7 4,840 56,63 48 D 28 2,718
11,7 6,310 73,83 36 D 32 2,657
11,7 7,550 88,34 30 D 35 2,650
11,7 7,990 93,48 28 D 36 2,617
11,7 8,900 104,13 26 D 38 2,707
46
D 40 11,7 9,860 115,36 24 2,768
D 41 11,7 10,360 121,21 22 2,666
D 43 11,7 11,400 133,38 20 2,667
D 51 11,7 16,040 187,67 15 2,815
+ Từ đường kính D10, D12, D14, D16, D18, D20, D22, D25, D28, D32, D35, D36,
Mác thép SD295A: dùng cho các công trình xây dựng, dân dụng.
Mác thép SD390 (thép cường độ cao) dùng trong các công trình xây dựng như cao
D38, D4, D43, D51.
Mác thép 460.
Tiêu chuẩn của Nhật: JIS G3112-2004 / ASTM A615/A615M-96a.
Kích thước: chiều dài của các loại thép gân: 11.7 m/cây.
ốc, cầu đường, các công trình nhà máy thuỷ điện.
Bảng 3.2 Quy cách thép tròn trơn
khối khối khối lượng/bó Đường Chiều dài lượng/mét lượng/cây Số cây/bó (tấn) kính (kg/m) (kg/cây)
12 1,208 14,496 138 2,000 D 14
12 1,579 18,948 106 2,008 D 16
12 1,998 23,976 84 2,013 D 18
12 2,466 29,592 68 2,012 D 20
12 2,984 35,808 56 2,005 D 22
12 3,854 46,248 44 2,034 D 25
47
4,834 58,008 D 28 12 36 2,088
5,549 66,588 D 30 12 30 1,997
6,313 75,756 D 32 12 28 2,121
7,990 95,880 D 36 12 22 2,109
8,903 106,836 D 38 12 20 2,136
9,865 118,380 D 40 12 18 2,130
Tương đương thép Nhật
1 Mác thép Bản theo chuẩn JIS:
G3101 – SS400
Đường 14mm/ 16mm/ 18mm/ 2 kính 20mm/ 22mm/ 25mm
với đường Chiều dài 3 kính 16mm/ dài 8,6 m thanh 18mm
với đường dài 6,0 m
kính 20mm/
22mm/
25mm
4 Đóng bó Cột 4 mối, trọng lượng
khoảng 1,6 tấn
48
Hình 3.3 Phôi thép cán
Trong khi sản xuất trên dây chuyền cán nóng các phôi thép thường là dạng
vuông kích thước 100x100, 125x125, 150x150 được nung trong lò điện sau đó đưa
qua các máy cán với các khuôn cán nhỏ dần đến các kích thước đường kính D51,…,
20,…, 10, 8, 6. Do dung sai chế tạo (sai số trong khi cán do khuôn mòn, tốc độ trục
cán thay đổi, chất liệu phôi cán không đồng nhất) nên không thể có các sản phẩm
thép được cán ra có đường kính chính xác 100% như đã định dẫn đến các tham số
kg/m và kg/cây thép cũng không thể chính xác 100% con số này có thể lớn hơn hay
nhỏ hơn quy chuẩn. Do đó để biết số cây / tấn không thể lấy trọng lượng tổng cộng
chia cho trọng lượng một cây. Nếu làm như vậy thì khi số tổng trọng lượng càng
lớn thì sai số số cây càng lớn.
Trong hai loại thép này với thép tròn trơn thì việc đếm đầu bó dễ dàng hơn
do hình dạng trong ảnh của chúng tròn đều. Với các cây thép cường lực thì ảnh của
chúng ở đầu bó không đều và không trơn do bản thân cấu tạo của chúng nên qua các
phép biến đổi sẽ bị thay đổi hình dạng khá nhiều.
Hình 3.4 Đầu thép thanh tròn và thép thanh cường lực
49
Hình 3.5 Dây chuyền cán và cơ cấu đếm của DANIEL (Ytalia) tại nhà máy Thái
Trung – Thái Nguyên
Hình 3.6 Hệ thống đếm thép 2 Camera của của dây chuyền cán Thái Trung
(Thái Nguyên) sử dụng công nghệ DANIEL
Hình 3.7 Dây chuyền cán NasteelVina sử dụng đếm thủ công
50
Hình 3.8 a) Hệ thống đếm từng cây thép trên băng tải của SINOM GROUP
LTD Sai số 0.7 % b) ảnh trên chương trình xử lý [11].
Sau khi có số đếm (thủ công hoặc tự động) các số đếm này được đưa vào chương
trình in mã vạch để quản lý.
Hình 3.9 Đưa số đếm vào chương trình mã vạch để quản lý
Các đại lý bán lẻ do hai nhu cầu chính là 1) nhu cầu quản lý thất thoát khi
vận chuyển và 2) nhu cầu bán lẻ tại cửa hàng lại cần số liệu chính xác số cây/bó là
100%. Các hệ thống cán tại các nhà máy cán thép hiện nay đang sử dụng hai loại
hình đếm là dùng cơ cấu cơ khí và dùng camera (hệ thống của DANIEL – Ytalya).
Không thể sử dụng các sensor để làm đầu vào các bộ đếm điện tử vì cường độ nhiễu
công nghiệp tại các nhà máy rất lớn (có thể đến 120V) gây “treo” hệ thống đếm.
Các hệ thống đếm cơ khí có ưu điểm chính xác nhưng lại mau hỏng. Các hệ thống
51
của DANIEL sử dụng hai camera đặt chéo cũng chưa chính xác (sai số 1%). Sai số
này rõ ràng không đáp ứng được với các đại lý là khâu phân phối cuối cùng đến
người sử dụng. Giải pháp của các nhà máy hiện nay là đành phải thuê nhân công
đếm thủ công. Tuy vậy nhân công đếm cũng không hoàn toàn chính xác do những
lơ đãng do sức khỏe, do có thể phân tâm trong khi làm việc.
Một nhu cầu nữa trong đếm thép cây là nhiều cơ sở cán nhỏ không thuê
người đếm và chỉ bán theo trọng lượng (tấn). Để quản lý các bó thép mua của các
cơ sở này các đại lý cũng cần có một thiết bị nhanh chóng đếm được số cây thép
trong bó.
3.2 Đếm cây thép qua ảnh đầu bó
Qua các công bố của các tác giả nghiên cứu thấy rằng hiện nay trên thế giới
có rất ít các nghiên cứu đếm thép qua đầu bó:
Công bố của Weiyan Hou, Zhengwei Duan, Xiaodan Liu trong [12] giải
quyết đếm đầu bó thép dùng một mẫu ảnh rà trên các nhóm đối tượng dựa theo ý
tưởng đánh dấu của thao tác đếm thủ công. Trước hết dùng mẫu Horizotal Template
bắt đầu từ góc trên bên trái kéo dần xuống dưới theo từng hàng để xem có đối
tượng nào trùng với mẫu ngang này không. Nếu có thì dùng tiếp mẫu chữ thập
Cross Template so khớp xem có trùng không. Nếu khớp thì lại dùng tiếp một mẫu
tám cạnh Octagon Template so khớp. Nếu trùng thì đây là một đối tượng đã tìm
được. Chương trình xóa đối tượng này đi và tìm tiếp. Đến cuối cùng có thể còn một
số nhóm đối tượng nhỏ nhưng chúng không thỏa mãn “trùng mẫu ngang, trùng mẫu
chữ thập và trùng mẫu tám cạnh” nên không thể là đối tượng cần tìm. Phương pháp
này cũng chưa đạt kết quả chính xác, sai số còn tới 2%. Đây là sai số không chấp
nhận được.
52
Hình 3.10 Tách đối tượng dùng mẫu
Trong phần thực nghiệm dưới đây phương pháp đếm số cây thép qua ảnh đầu
bó đã trình bày trong phần 2.6 sẽ được áp dụng để thực hiện xử lý một số ảnh đầu
bó thép.
3.3 Kết quả thực nghiệm
Mẫu ảnh:
Với mục đích thử nghiệm để đưa vào ứng dụng thực tế, các mẫu ảnh để xử lý
được thu thập từ thực tế tại nhà máy cán thép NasteelViNa và cán thép Thái Trung
tại Thái Nguyên. Ảnh của các đầu bó thép D10-D16 trơn và D10 – D16 cường lực
được chụp bằng máy ảnh dân dụng thông thường ống kính 6.2 đến 18.6mm. Độ
phân giải 10.1 Mpixels. Ánh sáng khi chụp tại kho trong nhà máy là ánh sáng tự
nhiên không dùng đèn flash.
53
Hình 3.11 Mẫu ảnh dùng trong thực nghiệm
Thực hiện chương trình
Ngôn ngữ được sử dụng trong lập trình thực hiện thuật toán 2.6 là Matlab phiên bản 2017
Đọc file ảnh và chuyển sang ảnh xám, ảnh nhị phân
a) b)
c) d)
54
e) f)
g) h)
Hình 3.12 Các bước thực hiện tách đối tượng trong ảnh a) ảnh nguyên bản b)
ảnh xám c) ảnh nhị phân d), e), f) các bước trung gian g) tìm biên để xác định
hưởng thực hiện hình thái học h) kết quả tách các đối tượng.
Kết quả: Số đếm trong ảnh N=108 (hình 3.13)
n =108
55
Hình 3.13 Kết quả đếm số cây đầu bó
Bảng 3.3 Độ chính xác kết quả đếm qua ảnh đầu bó thép (%)
Loại thép Số ảnh Bằng đầu Không
xử lý bằng đầu
100 100% 98% 10 vằn
100 100% 99% 12 vằn
100 100% 100% > 14
Trong các trường hợp với ảnh thép 10 vằn và 12 vằn mà đầu bó thép không
bằng thì không đạt được kết quả 100%. Lý do được giải thích trong hình 3.14 Với
sai số này cần có biện pháp hỗ trợ cơ khí “vỗ” để tạo ra bó thép bằng đầu. Việc này
được thực hiện giống như chúng ta cầm bó đũa dỗ một đầu xuống sẽ được bó đũa ở
phía đầu dỗ xuống các đầu cây đũa đều tiếp xúc với cùng mặt phẳng và có bó đũa
bằng đầu. Khi đó chụp ảnh đầu bó đũa phía dỗ xuống này sẽ không có ảnh đầu đũa
bị thụt vào.
Với bó bằng đầu kết quả đạt 100%.
Đầu cây thép bị thụt vào
Hình 3.14 Trường hợp đầu cây thép bị thụt vào
3.4 Nhận xét và đánh giá, so sánh
56
Trường hợp đặc biệt: trường hợp hai mũi tên 1 và 2 (hình 2.32 trang 39
mục 2.5.2) Khi đó chúng ta cần kết hợp watershed mới xử lý được nếu cứ xử lý
theo hình thái học định hướng lại có xu hướng khoét sâu vào đối tượng mà
không có hiệu quả như các trường hợp khác.
Hướng phát triển: Đã có các nghiên cứu về cứng hóa các thuật toán xử lý
ảnh. Do vậy việc nghiên cứu hoàn thiện phương pháp đề xuất sau đó thực hiện thuật
toán này trên FPGA để có thể có một thiết bị cầm tay sử dụng chuyên dụng cho
đếm thép bó hoặc các loại ảnh đầu bó tương tự là hoàn toàn khả thi.
KẾT LUẬN CHƯƠNG 3
Chương 3 thực hiện việc tiến hành thực nghiệm để tách các cây thép trong
ảnh đầu bó thép để thực hiện quá trình đếm. Với loại thép tròn do tính đồng nhất
của chúng nên các ảnh đầu bó khi thực hiện tách và đếm tương đối dễ dàng khi sử
dụng hình thái học kinh điển. Với ảnh đầu bó cây thép vằn phương pháp hình thái
học có định hướng sẽ rất hữu ích khi tách các đối tượng trong ảnh.
57
KẾT LUẬN
Phương pháp đếm số đối tượng qua ảnh được áp dụng nhiều trong cuộc sống và
nhiều khi là phương pháp duy nhất để thực hiện việc đếm. Khó khăn lớn trong việc
đếm qua ảnh là trong một số trường hợp ảnh của các đối tượng này dính với nhau hoặc
chồng lấn lên nhau. Luận văn chỉ khảo sát trong trường hợp ảnh các đối tượng dính
nhau. Để tách các đối tượng dính nhau phương pháp hình thái học co ảnh đã được áp
dụng. Tuy nhiên trong nhiều trường hợp không thể áp dụng được phương pháp này vì
khi thực hiện pháp co ảnh qua mỗi lần thực hiện diện tích của đối tượng (hoặc nhóm
đối tượng) sẽ bị giảm đi có những khi giảm đến 0 vẫn chưa tách được. Trong trường
hợp này thực hiện hình thái học là phương pháp rất hữu ích.
Trong thời gian thực hiện luận văn em đã hệ thống lại được các kiến thức cơ
bản về xử lý ảnh và nghiên cứu thêm được một số nghiên cứu của các giả về hình
thái học gradient, watersheed. Thực nghiệm được thực hiện với một trường hợp cụ
thể trong công nghiệp là đếm số cây thép qua ảnh đầu bó thép. Em xin cảm ơn các
thày, cô giáo trong Khoa Công nghệ thông tin trường đại học Công nghệ Thông tin
và Truyền thông Đại học Thái Nguyên đã tận tình trong quá trình truyền đạt kiến
thức. Cảm ơn thày giáo hướng dẫn TS Phạm Đức Long đã giải thích, giúp đỡ em
trong quá trình thực hiện luận văn.
HƯỚNG PHÁT TRIỂN
Ứng dụng kỹ thuật xử lý ảnh trong cuộc sống nói chung và trong sản xuất
công nghiệp nói chung là một hướng nghiên cứu ứng dụng có nhiều tiếm năng.
Những phát triển của em có thể tập trung vào:
Xây dựng thuật toán khắc phục trường hợp hình 2.32
Xây dựng các mạch phát hiện lỗi ví dụ mạch phá hiện lỗi trong các bản mạch
linh kiện trên dây chuyền sản xuất
Nghiên cứu cứng hóa các chương trình xử lý ảnh; khi đó các chương trình
xử lý ảnh sẽ tách rời khỏi máy tính và hoạt động ổn định hơn, đáp ứng được trong
các môi trường khắc nghiệt như công nghiệp, chiến tranh .
58
Qua quá trình thực hiện luận văn mặc dù đã có nhiều cố gắng nhưng do năng lực
còn có hạn chế và lĩnh vực nghiên cứu yêu cầu kiến thức rộng nên trong luận văn
của em có thể còn có những khiếm khuyết. Em rất mong nhận được sự chỉ bảo, giúp
đỡ của các thày cô giáo. Em xin chân thành cảm ơn.
Thái Nguyên Ngày 01 tháng 10 năm 2020
HỌC VIÊN
NGUYỄN THỊ THANH XUÂN
59
TÀI LIỆU THAM KHẢO
[1] Amruta Pandit, Jyoti Rangole, Literature Review on Object Counting using
Image Processing Techniques, International Journal of Advanced Research in
Electrical, Electronics and Instrumentation Engineering, Vol. 3, Issue 4, April 2014.
[2] Sanaullah Khan, Aamir Khan, Faisal Saleh Khattak, Arslan Naseem, An
Accurate and Cost Effective Approach to Blood Cell Count, International Journal of
Computer Applications (0975 – 8887) Volume 50 – No.1, July 2012.
[3] Jeydeo K.Dharpure, Madhukar B.Potdar, Counting Objects using Homogeneous
Connected Components, International Jourpplications , Volume 63 – No.21,
February 2013.
[4] Pham Duc Long, Construcing hardwave to Count Number of Steel Bar in the
Steel Bunches by Image Processing, TNU Journal of Science and Technology, 6-
2018.
[5] Jos B.T.M. Roerdink, Arnold Meijster, The Watershed Transform: Definitions,
Algorithms and Parallelization Strategies, IOS Press, Fundamenta Informaticae 41,
187–228, 2001.
[6] Amandeep Kaur, Aayushi, Image Segmentation Using Watershed Transform,
International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-
2307, Volume-4, Issue-1, March 2014.
[7] Zhun Fan, Jiewei Lu, Benzhang Qiu, Tao Jiang, Kang An, Alex Noel Josephraj,
and Chuliang Wei, Automated Steel Bar Counting and Center Localization with
Convolutional Neural Networks, Published in ArXiv 2019.
[8] Serge Beucher, P. Soille, J.F. Rivest, Morphological gradients, Proc. SPIE
"Image Science and Technology", San Jose, California, Feb. 1992.
[9] Pham Duc Long, Oriented Morphology and Application to Count the Number of
Steelbars in the Bunches by Image Processing, TNU Journal of Science and
Technology, 6- 2020.
[10] LO Chua, L Yang, Cellular Neral Network Theory, IEEE Transactions on
circuits and systems, 1988.
60
[11] Zuoxian Nie, Mao-Hsiung Hung, Jing Huang, A Novel Algorithm of Rebar
Counting on Conveyor Belt Based on Machine Vision, Journal of Information
Hiding and Multimedia Signal Processing Volume 7, Number 2, March 2016.
[12] Weiyan Hou, Zhengwei Duan, Xiaodan Liu, “A Template Covering based
Algorithm to Count the Bundled Steel Bars,” 2011 4th International Congress on
Image and Signal Processing, 2014, pp. 1813-1816.
I
PHỤ LỤC
Một số mã nguồn chương trình
Hiình thái học gradient
%% Dilation, erosion, and the morphological gradient
% The morphological operator dilation acts like a local maximum operator.
% Erosion acts like a local minimum operator. You can use them together to
% compute something called the _morphological gradient_.
%
%% Dilation
% The basic form of grayscale image dilation computes, for each image
% pixel, the maximum value of its neighboring pixels. The neighborhood is
% defined by the _structuring element_. For example, this structuring
% element:
se1 = strel([1 1 1])
%%
% defines a neighborhood consisting of the pixel itself, together with its
% left and right neighbors. Whereas this structuring element:
se2 = strel([1; 1; 1])
%%
% defines a neighborhood consisting of the pixel itself, together with the
% pixels above and below it.
%
% Let's try dilation on everyone's favorite sample MATLAB matrix, the magic
% square:
II
m5 = magic(5)
%%
d1 = imdilate(m5, se1)
%%
% |d1(3,3)|, which is 20, is the maximum of |[m5(3,2), m5(3,3), m5(3,4)]|, or
% |[6 13 20]|.
%
% Dilating with |se2| computes the 3-pixel local maximum vertically:
d2 = imdilate(m5, se2)
%%
% |d2(3,3)| is the maximum of |[m5(2,3), m5(3,3), m5(4,3)]|.
%% Erosion
% Grayscale image erosion computes the minimum of each pixel's
% neighborhood.
e1 = imerode(m5, se1)
%%
% |e1(3,3)| is the minimum of |[m5(3,2), m5(3,3), m5(3,4)]|.
%% Morphological gradient
% Dilation and erosion are often used in combination to produce a desired
% image processing effect. One simple combination is the _morphological
III
% gradient_. P. Soille, in section 3.8 of the second edition of
% _Morphological Image Analysis: Principles and Applications_, talks about
% three kinds of basic morphological gradients:
%
% * dilated_image - eroded_image
% * original_image - eroded_image
% * dilated_image - original_image
%
% Soille calls the first one the basic morphological gradient, and you
% compute it this way using MATLAB and the Image Processing Toolbox:
% Read in circuit board image, crop it so it's not too big for the blog
% page, and convert it to grayscale:
rgb = imread('board.tif');
I = rgb2gray(rgb(1:256,1:256,:));
se = strel(ones(3,3));
basic_gradient = imdilate(I, se) - imerode(I, se);
subplot(1,2,1), imshow(I), imcredit('Image courtesy of Alexander V. Panasyuk')
subplot(1,2,2), imshow(basic_gradient, [])
%%
% The second form is called the _half-gradient by erosion_ or _internal
% gradient_.
internal_gradient = I - imerode(I, se);
IV
subplot(1,2,2), imshow(internal_gradient, [])
%%
% "The internal gradient enhances internal boundaries of objects brighter
% than their background and external boundaries of objects darker than
% their background. For binary images, the internal gradient generates a
% mask of the internal boundaries of the foreground image objects."
% [Soille, page 86]
%
% The third form is called the _half-gradient by dilation_ or _external
% gradient_:
external_gradient = imdilate(I, se) - I;
%% Direction gradients
% By using line segments as structuring elements, you can compute
% directional gradients.
seh = strel([1 1 1]);
sev = strel([1;1;1]);
horizontal_gradient = imdilate(I,seh) - imerode(I,seh);
vertical_gradient = imdilate(I,sev) - imerode(I,sev);
subplot(1,2,1)
imshow(horizontal_gradient, []), title('Horizontal gradient')
subplot(1,2,2)
V
imshow(vertical_gradient, []), title('Vertical gradient')
%%
% Try this on your own grayscale images. You can experiment with larger
% structuring elements, too, such as |strel('disk',7)|.
%
% I'll be covering ways to combine erosion, dilation, and other fundamental
% morphological operators in the near future.
%%
% _Steve Eddins_
% _Copyright 2006 The MathWorks, Inc._
%read a file image RGB = imread('anh_toan_bo1.png'); figure(1),imshow(RGB)
%chuyen sang gray I = rgb2gray(RGB); figure(2),imshow(I)
BW = im2bw(I, 0.46); figure(3),imshow(BW); se = strel('disk',12); closeBW = imopen(BW,se); holes = imfill(closeBW, [1 1]); closeBW(~holes) = 1; figure (6), imshow(closeBW) % Thuc hien DT BW1=bwdist(BW,'euclidean'); %BW1=bwdist(BW);
///////////////////////////
figure(4),imshow(BW1);
BW2=bwdist(BW1,'cityblock'); figure(5),imshow(BW2);
BW3 = imread('cac_truong_hop.png'); BW4 = edge(BW3,'canny'); figure (7), imshow(BW4)
///////////////////////////////////////////
VI
Đếm thép đầu bó
%RGB = imread('dongxu.png');%
RGB = imread('dau_bo_chua_eosion.png');
%figure(1),imshow(RGB)
%chuyen sang gray
I = rgb2gray(RGB);
figure(1),imshow(I)
BW = im2bw(I, 0.46);%BW = im2bw(I, 0.47);
%BW=imread('dau_bo_chua_eosion.png');
figure(2),imshow(BW);
se = strel('disk',12);
closeBW = imopen(BW,se);
holes = imfill(closeBW, [1 1]);
closeBW(~holes) = 1;
figure (3), imshow(closeBW)
erodedBW = imerode(closeBW,se);
figure (8), imshow(closeBW)
L = bwlabel(BW,8);
[L,n] = bwlabel(closeBW)
%title(['Number =',n]);

