TỔNG QUAN
Lý do chọn đề tài
Việt Nam, nằm trong bán đảo Trung Ấn, được thiên nhiên ban tặng nhiều điều kiện thuận lợi cho sự phát triển ngành thủy sản Nghề thủy sản, bao gồm đánh bắt và nuôi trồng, đã tồn tại từ lâu và trải qua nhiều thăng trầm Hiện nay, ngành thủy sản Việt Nam đã phát triển mạnh mẽ, có khả năng cạnh tranh với các quốc gia hàng đầu về xuất khẩu Đặc biệt, nuôi trồng thủy sản đã đạt được nhiều thành tựu, hình thành phong trào nuôi trồng rộng rãi trong cộng đồng.
Nhu cầu con giống trên thị trường hiện nay rất lớn, nhưng việc giao dịch mua bán con giống vẫn phụ thuộc vào phương pháp đếm truyền thống thông qua đếm mẫu và ước lượng Tuy nhiên, phương pháp đếm thủ công này tốn nhiều thời gian và độ chính xác không cao Do đó, việc tìm kiếm giải pháp đếm con giống mới là cần thiết để nâng cao hiệu quả và độ chính xác trong giao dịch mua bán con giống Một giải pháp tiềm năng là ứng dụng công nghệ xử lý ảnh để đếm con giống, giúp giảm thiểu thời gian và tăng độ chính xác trong quá trình đếm.
Lịch sử giải quyết vấn đề
Hình 1.1 Máy đếm quang học có hệ thống camera
Theo nghiên cứu của nhóm tác giả Brinson A Lingenfelter, Addison L Lawrence, Eric Steime, Will Flanery và Kurt Kramer, hệ thống đếm ấu trùng (Larvae Counting System) sử dụng công nghệ quét quang học kết hợp với phần mềm xử lý hình ảnh để đếm tôm, giúp giảm căng thẳng cho tôm và nâng cao độ chính xác so với các phương pháp truyền thống Thiết bị này nặng 4 kg, có khả năng đếm hơn 1000 cá thể tôm mỗi phút với độ chính xác đạt 95% Giá thị trường của thiết bị khoảng 30.000 USD.
Thiết bị XperCount 1, do XpertSea Solutions Inc sản xuất, là một thiết bị tiên tiến trong ngành thủy sản Thiết bị này có khả năng đếm chính xác các động vật thủy sinh như Artemia, vi tảo, ấu trùng tôm cá và tôm cá giống XperCount 1 hoạt động hiệu quả trong thùng nhựa HDPE với dung tích nước từ 500 ml trở lên, mang lại giải pháp công nghệ hiện đại cho việc quản lý và nghiên cứu sinh vật thủy sản.
10 lít nước, cho kết quả trong 5 giây, với độ chính xác khoảng 95% Thiết bị XperCount 1 trên thị trường có giá khoảng $5000
Hình 1.2 Máy đếm tôm, cá giống
Năm 2016 XpertSea Solutions Inc, cho ra mắt tại thị trường Việt Nam thiết bị XpertCount 2 với các tính năng báo cáo chất lượng cho trại sản xuất giống
Thiết bị XperCount 2 sử dụng công nghệ quang học an toàn cho tất cả sinh vật, cho phép người dùng dễ dàng đếm hàng nghìn sinh vật chỉ trong vài phút Với độ chính xác trên 95%, thiết bị này có khả năng đếm nhiều loại sinh vật, từ tế bào vi tảo đến ấu trùng và hậu ấu trùng Thời gian sử dụng pin của XperCount 2 lên tới 8-10 tiếng, mang lại sự tiện lợi cho người sử dụng.
Hình 1.3 Máy đếm con giống XperCount2
Máy đếm tôm giống hiện đại có giá thành cao, nhưng chưa được nhiều cơ sở sản xuất tôm giống trong nước áp dụng Việc bảo trì và sử dụng các thiết bị này cũng gặp nhiều khó khăn.
Các bài báo khoa học nước ngoài liên quan đến đề tài
Theo các tác giả Addthajaroon, S.Kiattisin, W.Chiracharit, K.Chamnongthai
Thuật toán biến đổi hệ số wavelet được sử dụng để nhận dạng tôm giống bằng cách áp dụng phương pháp biến đổi wavelet thuận và kỹ thuật xử lý hình thái để xác định các đặc trưng như vị trí của hai con mắt Sau khi tìm được các đặc trưng, thuật toán thực hiện biến đổi wavelet ngược để phát hiện các con tôm Tuy nhiên, phương pháp này gặp khó khăn trong việc đếm những con tôm chồng lên nhau, dẫn đến độ chính xác chỉ đạt 80,61% khi có hai con tôm trùng nhau.
Tác giả W Khantuwan và N Khiripet [4] đã áp dụng thuật toán biểu đồ đồng dạng màu (Co-occurrence Color Histogram) để đếm tôm giống trong chậu kính Hình ảnh được xử lý trước nhằm loại bỏ nhiễu và phân đoạn thành hai lớp: tôm kết nối và không kết nối Phương pháp đếm sử dụng giải thuật giới hạn kích thước diện tích pixel, cho kết quả thực nghiệm đạt độ chính xác 97%.
Thuật toán trong hai bài báo khoa học chỉ áp dụng hiệu quả cho tôm giống có kích thước lớn khoảng post 15; đối với các post nhỏ hơn, độ chính xác của thuật toán giảm sút Nguyên nhân là do hình ảnh đầu vào của các post nhỏ bị phân đoạn và xử lý hình thái, dẫn đến kết quả đầu ra thiếu những đặc trưng cần thiết để nhận dạng chính xác.
Theo nghiên cứu của Y.H Toh và các cộng sự, một giải pháp đơn giản đã được đề xuất để đếm cá tự động thông qua kỹ thuật xử lý ảnh Phương pháp này đánh dấu các đốm màu tương ứng với vị trí cá trong từng khung hình, sau đó tiến hành lọc nhiễu và nền xung quanh các đốm màu Số lượng đốm màu được đếm chính là số cá trong khung hình, với kết quả cho thấy khả năng đếm chính xác cho các đàn cá có 5, 10, 15 và 50 con Tuy nhiên, độ chính xác giảm khi số lượng cá tăng lên, do khoảng cách giữa các cá thể giảm, dẫn đến tình trạng cá bơi chồng lên nhau Phương pháp này tỏ ra hiệu quả hơn khi số lượng cá ít, vì cá bơi riêng lẻ nhiều hơn, giúp xử lý dữ liệu chính xác hơn.
Các tác giả A Flores, P Crisostomo và J Lopez đã nghiên cứu hệ thống đếm ấu trùng sò Peruvian bằng kỹ thuật xử lý ảnh Họ phát triển một hệ thống giám sát tự động nhằm phát hiện ấu trùng sò Peru trong ảnh kính hiển vi Nghiên cứu áp dụng các thuật toán xử lý hình ảnh và phương pháp thống kê để xác định và đếm số lượng ấu trùng, cũng như đo diện tích của từng ấu trùng trong ảnh.
Theo L Li và J Hong đã áp dụng kỹ thuật xử lý ảnh để phân loại cá, sử dụng phần mềm Matlab Sau khi chụp ảnh cá, các bức ảnh được trải qua quá trình tiền xử lý bao gồm chuyển đổi sang ảnh xám, ảnh nhị phân, tăng cường ảnh và tách biên Qua đó, họ đã trích xuất 11 thông số đặc trưng cho 4 loại cá cần phân loại Phương pháp này đạt được tỷ lệ nhận dạng trung bình là 96,67%.
Các bài báo hiện nay chủ yếu ứng dụng kỹ thuật xử lý ảnh để nhận dạng đối tượng và sử dụng phép toán thống kê để đếm số lượng đối tượng, tuy nhiên, độ chính xác vẫn chưa cao Để cải thiện độ chính xác, việc kết hợp kỹ thuật xử lý ảnh với mạng nơ-ron là cần thiết Chẳng hạn, K Veropoulos, C Campbell và G Learmonth đã áp dụng kỹ thuật này để chẩn đoán bệnh lao; M B A Miah và M A Yousuf đã sử dụng nó trong phát hiện ung thư phổi; và nhóm P Neelamegam, S Abirami, K Vishnu Priya cùng S R Valantina đã ứng dụng để phân tích chất lượng hạt gạo Kết quả cho thấy độ chính xác đạt được cao hơn so với phương pháp phân tích truyền thống.
Năm 2014, Huỳnh Hoàng Giang và nhóm cộng sự [11] đã thực hiện đề tài
Máy đếm tôm giống có năng suất 6000 con/giờ, được nghiên cứu trong dự án khoa học cấp trường mã số TSV2014-07, đã đạt được mục tiêu với năng suất trên 6000 con/giờ và độ chính xác 95%, cùng với thiết kế gọn nhẹ Tuy nhiên, vẫn còn một số hạn chế như năng suất chưa cao và chưa loại bỏ được tạp chất (bụi, xác tôm, tôm chết) ảnh hưởng đến độ chính xác của máy.
Vào tháng 8 năm 2014, Võ Minh Trí từ bộ môn tự động hóa của trường Đại học Cần Thơ đã thiết kế và thử nghiệm một thiết bị đếm tôm giống sử dụng cảm biến quang Thiết bị này hoạt động dựa trên phương pháp đếm quang học, cụ thể là sử dụng cảm biến quang để thực hiện việc đếm tôm Kết quả nghiên cứu ban đầu cho thấy thiết bị đạt năng suất cao trong việc đếm tôm giống.
6000 con/giờ và độ chính xác khoảng 95%, sai số tối đa trong khoảng ± 5%
Các bài báo khoa học trong nước liên quan đến đề tài
Trong Hội nghị toàn quốc lần 3 về điều khiển và tự động hóa - VCCA-
Năm 2015, nhóm tác giả Trương Quốc Bảo, Nguyễn Chánh Nghiệm, Nguyễn Minh Kha, Huỳnh Hoàng Giang và Võ Minh Trí từ trường ĐH Cần Thơ đã phát triển một thuật toán xử lý ảnh nhằm phát hiện và đếm tôm giống Thuật toán chính sử dụng là phân đoạn ảnh dựa trên ngưỡng tối ưu, kết hợp với các phương pháp như trừ nền và xử lý hình thái ảnh để nâng cao độ chính xác trong việc nhận dạng số lượng tôm Kết quả thử nghiệm ban đầu cho thấy thuật toán đạt độ chính xác khoảng 94% và thời gian xử lý chỉ mất khoảng 8 giây.
Hình 1.4 Máy đếm tôm giống có năng suất 6000 con/giờ
Hình 1.5 Mô hình thiết bị đếm tôm
Mục tiêu của đề tài
Mục tiêu của nghiên cứu là phát triển giải pháp nhận dạng và đếm con giống bằng công nghệ xử lý ảnh và mạng nơ-ron Giải pháp này có khả năng loại bỏ các tạp chất như bụi, lá cây và cành khô trong quá trình đếm, nhằm nâng cao độ chính xác và hiệu quả của quá trình nhận dạng.
Nhiệm vụ và giới hạn của đề tài
Sau khi qua các khâu tiền xử lý, ảnh cá sẽ được nhận dạng để phân loại các giống cá và loại bỏ tạp chất Chương trình phần mềm sẽ thu thập dữ liệu về các giống cá và tạp chất, dữ liệu này sẽ được sử dụng làm mẫu để huấn luyện mạng nơ-ron Tiếp theo, dữ liệu từ các giống cá cần xử lý sẽ được đưa vào mạng nơ-ron đã được huấn luyện để phân tích và đưa ra hướng điều khiển phù hợp.
Trong nghiên cứu này, tác giả tập trung vào việc tự chụp 300 hình ảnh mẫu về các loại cá giống và những bức ảnh tạp.
Bài viết mô tả quy trình phân tích ảnh cá giống và ảnh tạp bằng phần mềm chuyên dụng Đầu tiên, tác giả thu thập 100 ảnh cá giống và ảnh tạp, sau đó sử dụng phần mềm để trích xuất các đặc trưng của chúng Tiếp theo, những đặc trưng này được đưa vào mạng thần kinh nhân tạo để huấn luyện Tác giả cũng chụp nhiều hình ảnh ngẫu nhiên về cá giống và ảnh tạp, sau đó phân tích và trích xuất đặc trưng tương tự Cuối cùng, dữ liệu thu được được sử dụng để nhận dạng cá giống, giúp hệ thống quyết định loại bỏ ảnh tạp và giữ lại ảnh cá giống.
Ý nghĩa khoa học và thực tiễn của đề tài
Những tiến bộ trong khoa học kỹ thuật và công nghệ, bao gồm phát minh, sáng chế và máy móc tiên tiến, đã được áp dụng vào sản xuất nhằm nâng cao chất lượng cuộc sống Việc sử dụng máy móc để thay thế con người trong các nhiệm vụ đòi hỏi độ chính xác và tốc độ cao ngày càng phổ biến Đề tài nghiên cứu này không chỉ nhằm nhận dạng và đếm cá giống, mà còn hướng đến việc cải thiện quy trình giao dịch mua bán con giống tại các cơ sở nuôi cá ở Việt Nam, giúp tăng tính nhanh chóng, chính xác và minh bạch Đồng thời, nó còn hỗ trợ người mua trong việc quản lý mật độ thả nuôi và lượng thức ăn phù hợp.
Đề tài này có ý nghĩa thực tiễn lớn trong lĩnh vực mua bán con giống, vì hiện nay, giao dịch chủ yếu vẫn dựa vào phương pháp đếm thủ công truyền thống Phương pháp này gặp khó khăn trong việc xác định chính xác số lượng con giống bán cho người mua, đặc biệt khi số lượng lớn, dẫn đến tốn thời gian và độ chính xác không cao Do đó, cần thiết phải có giải pháp đếm con giống hiệu quả hơn, đảm bảo độ chính xác cao, nhằm nâng cao tính minh bạch trong giao dịch mua bán.
Phương pháp nghiên cứu
Đề tài sử dụng dữ liệu đã tự xây dựng được Việc phân tích và xử lý dữ liệu được thực hiện dựa trên phần mềm Matlab, phiên bản R2015a.
LÝ THUYẾT XỬ LÝ ẢNH
Tổng quan về xử lý ảnh
Trong các hình thức truyền thông cơ bản như lời nói, văn bản, hình ảnh và âm thanh, hình ảnh được xem là phương tiện truyền tải thông tin mạnh mẽ nhất, đóng vai trò quan trọng trong việc trao đổi thông tin Mỗi bức ảnh chứa một lượng thông tin nhất định, và để nhận diện những thông tin ẩn chứa trong đó, cần có quá trình xử lý ảnh Quá trình này được hiểu là thao tác trên ảnh đầu vào để đạt được kết quả mong muốn, có thể là một bức ảnh "tốt hơn" hoặc một kết luận cụ thể.
Trong những năm gần đây, sự phát triển mạnh mẽ của phần cứng máy tính đã thúc đẩy kỹ thuật xử lý ảnh ứng dụng rộng rãi trong nhiều lĩnh vực xã hội Công nghệ này không chỉ dừng lại ở việc xử lý vết nhòa hay phục hồi ảnh cũ, mà còn kết hợp với trí tuệ nhân tạo, mang lại những tiến bộ vượt bậc như nhận dạng khuôn mặt, dấu vân tay, đối tượng và chẩn đoán bệnh.
Xử lý ảnh số đang ngày càng phát triển và trở nên phổ biến nhờ vào sự tiện lợi mà nó mang lại Với công nghệ số, thông tin trong ảnh có thể được truyền tải nhanh chóng và chính xác, đồng thời việc xử lý cũng trở nên đơn giản hơn nhờ vào sự hỗ trợ của máy tính.
Quá trình xử lý ảnh
Quá trình xử lý ảnh trong đề tài được tiến hành theo các công đoạn như hình 2.1
Quá trình thu nhận ảnh là bước đầu tiên và quyết định trong xử lý ảnh, nơi ảnh đầu vào được tiếp nhận qua các thiết bị như máy chụp ảnh và camera Chất lượng ảnh thu nhận ảnh hưởng lớn đến kết quả nhận dạng, phụ thuộc chủ yếu vào thiết bị và môi trường xung quanh như ánh sáng và phong cảnh Do đó, việc lựa chọn thiết bị thu nhận ảnh rất quan trọng, cần dựa vào đặc tính của đối tượng cần nhận dạng, giá thành hệ thống và kích cỡ đối tượng, từ đó xác định độ phân giải cần thiết cho camera Các thông số quan trọng của thiết bị bao gồm độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh.
Hình 2.1 Các bước của quá trình xử lý ảnh
Hình ảnh thu nhận từ các bộ cảm biến thường gặp phải sai lệch và mất mát thông tin, vì vậy cần chuyển đổi chúng thành ảnh số để máy tính có thể phân tích và phục hồi Việc xử lý ảnh số không chỉ giúp khôi phục thông tin bị sai lệch mà còn mang lại nhiều tiện lợi, như khả năng truyền tải thông tin nhanh chóng và chính xác, cũng như đơn giản hóa quá trình xử lý nhờ vào công nghệ máy tính.
Trong quá trình xử lý ảnh, hình ảnh thu nhận từ camera hoặc cảm biến được chuyển vào bộ nhớ máy tính dưới dạng ma trận số liệu Tại thời điểm này, ảnh sẽ được lưu trữ trong một định dạng phù hợp để phục vụ cho các bước xử lý tiếp theo Một số định dạng ảnh số phổ biến bao gồm: *.BMP, *.GIF, *.JPEG và *.JPG.
Tiền xử lý ảnh là quá trình cải thiện chất lượng ảnh, giúp giữ lại những đặc trưng quan trọng và chuẩn bị cho các bước xử lý tiếp theo Do ảnh hưởng của thiết bị thu nhận, nguồn sáng và nhiễu, ảnh có thể bị suy biến, vì vậy cần tăng cường và khôi phục ảnh để làm nổi bật các đặc tính chính hoặc đưa ảnh gần về trạng thái gốc Quá trình này thực chất là một phép biến đổi ảnh, với kết quả cuối cùng vẫn là một bức ảnh.
Hình 2.2 Các bước tiền xử lý ảnh
Chuyển ảnh màu RGB sang ảnh xám
Lọc nhiễu cho ảnh xám
Tăng độ tương phản của ảnh
Chuyển ảnh xám sang ảnh nhị phân đen trắng Đảo pixel ảnh xám
Loại bỏ những vùng đối tượng có ít pixel
Trong luận văn, ảnh mẫu sau khi được đưa vào hệ thống sẽ được xử lý qua các bước tiền xử lý như hình 2.2
Trích đặc trưng là bước quan trọng trong quá trình nhận dạng ảnh, nhằm phát hiện các đặc tính riêng biệt của từng đối tượng Mỗi đối tượng có những đặc trưng khác nhau, phụ thuộc vào phương pháp nhận dạng được áp dụng Trong nghiên cứu này, tác giả tập trung vào phương pháp trích đặc trưng dựa trên hình dạng của đối tượng, có thể được mô tả thông qua đường bao hoặc diện tích mà nó chiếm giữ trong ảnh.
Trong đề tài này, khâu trích đặc trưng ảnh trải qua các bước như hình sau:
Hình 2.3 Các bước của khâu trích đặc trưng ảnh
Nhận dạng ảnh là quá trình xác định hình ảnh bằng cách so sánh với mẫu chuẩn đã được học trước đó Trong nghiên cứu này, tác giả áp dụng phương pháp mạng nơ-ron để thực hiện nhận dạng ảnh cho đối tượng cá.
Tìm trọng tâm của đối tượng
Tìm đường biên của đối tượng
Phân đoạn đường biên của đối tượng thành 200 đoạn nhỏ
Tính 200 bán kính từ trọng tâm đến các đoạn đường biên trên.
Nội dung lý thuyết xử lý ảnh dùng trong đề tài
2.3.1 Chuyển ảnh màu RGB sang ảnh mức xám Gray Ảnh màu: Trong hệ màu RGB, mỗi điểm ảnh được cấu thành từ ba thành phần màu khác nhau: Red, Green, Blue và mỗi thành phần màu được biểu diễn bởi 1 Byte (8 bit) Nếu sử dụng 8 bit để biểu diễn giá trị màu sắc cho ảnh thì giá trị màu của mỗi điểm ảnh biến thiên trong đoạn [0, 2 8 -1] Như vậy mỗi điểm ảnh của ảnh màu sẽ có giá trị RGB là (0 255, 0 255, 0…255), ảnh Red RGB (0…255, 0, 0), ảnh Green RGB (0, 0…255, 0) và ảnh Blue RGB (0, 0, 0…255) Ảnh đen trắng (ảnh xám): là ảnh có hai màu đen, trắng với mức xám các điểm ảnh có thể khác nhau Với ảnh đen trắng nếu dùng 8 bit để biểu diễn mức xám thì số mức xám có thể biểu diễn được là 256 mức Mỗi mức xám được biểu diễn dưới dạng là một số nguyên nằm trong khoảng từ 0 đến 225, mức 0 biểu diễn cho mức cường độ đen nhất và 255 biểu diễn cho mức cường độ sáng nhất
Chuyển ảnh màu RGB sang ảnh mức xám được thực hiện theo công thức (2.1) O(x, y) = 0,2989 ∗ IR(x, y) + 0,5870 ∗ IG(x, y) + 0,1140 ∗ IB(x, y) (2.1)
Trong đó: x,y là tọa độ của điểm ảnh
IR là thành phần màu đỏ tại màu I(x,y)
IG là thành phần màu xanh lá tại màu I(x,y)
IB là thành phần màu xanh dương tại màu I(x,y) O(x,y) là màu đầu ra; I(x,y) là màu đầu vào
2.3.2 Lọc nhiễu cho ảnh Ảnh thu nhận sau khi được số hóa có thể gây nhiễu Trên thực tế, tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân và nhiễu xung:
Nhiễu cộng là loại nhiễu xuất hiện phổ biến trong toàn bộ ảnh, được biểu diễn bằng công thức: ảnh quan sát (Xqs) bằng ảnh gốc (Xgoc) cộng với nhiễu (𝜂).
Nhiễu nhân Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn với công thức:
Nhiễu xung Nhiễu xung thường gây đột biến tại một số điểm ảnh
Để xử lý điểm ảnh bị nhiễu, cần sử dụng thông tin từ các điểm ảnh lân cận Quy trình này bao gồm việc thay thế giá trị của điểm ảnh bị nhiễu bằng tổ hợp giá trị của các điểm ảnh xung quanh, dựa trên giả định rằng các điểm ảnh lân cận có giá trị tương tự như điểm ảnh cần xử lý.
Trong kỹ thuật lọc nhiễu, mặt nạ được di chuyển qua ảnh gốc theo chiều ngang và dọc Tại mỗi vị trí, giá trị của điểm ở tâm mặt nạ được tính toán dựa trên các điểm trong mặt nạ Các loại mặt nạ khác nhau sẽ có những phương pháp tính toán riêng để kết hợp giá trị của các điểm lân cận.
Đối với nhiễu cộng và nhiễu nhân, các bộ lọc như lọc trung bình, lọc thông thấp và lọc đồng hình (homomorphic filtering) thường được sử dụng Trong khi đó, để xử lý nhiễu xung, người ta thường áp dụng bộ lọc trung vị (median filter), lọc giả trung vị (pseudo median filter) và lọc ngoài.
Lọc không gian trung bình (Mean filtering)
Trong lọc trung bình, mỗi điểm ảnh trong ảnh được thay thế bằng giá trị trung bình trọng số của các điểm ảnh lân cận, bao gồm cả điểm ảnh đó Lọc trung bình giúp làm mịn ảnh và giảm nhiễu, cải thiện chất lượng hình ảnh.
Nếu trong kỹ thuật lọc trên, ta dùng các trọng số như nhau, phương trình trên sẽ trở thành:
V(m,n) : ảnh đầu ra a(k,l) : cửa sổ lọc
𝑁 𝑤 và Nw là số điểm ảnh trong cửa sổ lọc W
Lọc trung bình có trọng số chính là thực hiện chập ảnh đầu vào với nhân chập
H (mặt nạ bộ lọc, cửa sổ lọc) Các dạng nhân chập H thường dùng trong bộ lọc không gian trung bình có dạng:
Mặt nạ bộ lọc H1 được biết đến như một bộ lọc không gian trung bình đều và không trọng số, không ưu tiên theo hướng nào Với trọng số trung bình là 1/9, bộ lọc này giúp giảm năng lượng nhiễu xuống 9 lần.
Mặt nạ bộ
Trong lọc trung bình, việc ưu tiên các hướng giúp bảo vệ biên của ảnh khỏi hiện tượng mờ khi làm trơn ảnh là rất quan trọng Các kiểu mặt nạ được sử dụng tùy thuộc vào từng trường hợp cụ thể Các bộ lọc này là bộ lọc tuyến tính, nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay thế bằng tổ hợp của các điểm lân cận kết hợp với mặt nạ.
Lọc không gian trung bình là một bộ lọc tuyến tính đơn giản với tác dụng làm mịn ảnh, khử nhiễu,…
Lọc thông thấp là kỹ thuật phổ biến để làm mịn nhiễu, thường sử dụng bộ lọc có các hệ số đối xứng qua tâm Các hệ số gần tâm có giá trị lớn hơn hoặc bằng các hệ số xa tâm, giúp cải thiện chất lượng tín hiệu.
Một số nhân chập của bộ lọc thông thấp có dạng sau:
Ta dễ dàng nhận thấy khi b = 1, Hb chính là nhân chập H1 của bộ lọc trung bình Lọc không gian trung bình là 1 trường hợp riêng của lọc thông thấp
Lọc đồng hình (Homomorphic filtering)
Kỹ thuật lọc này rất hiệu quả trong việc xử lý ảnh có nhiễu nhân Ảnh quan sát được là sự kết hợp giữa ảnh gốc và một hệ số nhiễu Đặt X̅(m,n) là ảnh thu được, X(m,n) là ảnh gốc và η(m,n) là nhiễu, mô hình nhiễu nhân cho ảnh gốc X(m,n) có thể được diễn tả như sau:
Khi áp dụng bộ lọc đồng hình, bước đầu tiên là lấy logarit của ảnh quan sát, điều này giúp chuyển đổi nhiễu nhân thành nhiễu cộng Kết quả thu được từ quá trình này sẽ có ý nghĩa quan trọng trong việc xử lý ảnh.
Nhiễu nhân trong ảnh sẽ được giảm thiểu bằng cách sử dụng bộ lọc tuyến tính để khử nhiễu cộng Sau đó, phép biến đổi hàm e mũ sẽ được áp dụng để chuyển đổi ảnh về dạng thông thường Kết quả thu được từ quá trình lọc đồng hình sẽ cho chất lượng ảnh tốt hơn so với ảnh gốc.
Lọc trung vị là một kỹ thuật phổ biến trong xử lý ảnh, giúp khắc phục những nhược điểm của bộ lọc trung bình Bộ lọc này giữ lại độ nét tần số cao trong khi hiệu quả trong việc loại bỏ nhiễu, mang lại hình ảnh rõ nét hơn.
Trung vị được viết với công thức:
LÝ THUYẾT MẠNG THẦN KINH NHÂN TẠO
Mô hình nơ-ron nhân tạo
Mạng thần kinh nhân tạo, hay còn gọi là mạng nơ-ron nhân tạo, là một mô hình toán học đơn giản mô phỏng hoạt động của bộ não con người Loại mạng này hoạt động dựa trên nguyên lý tính toán phân bố song song, khác biệt so với các mô hình tính toán truyền thống Đặc biệt, hầu hết các mạng thần kinh cần phải trải qua quá trình huấn luyện trước khi có thể được áp dụng trong thực tế.
Vào năm 1944, McCulloch và Pitts đã phát triển cấu trúc cơ bản của nơ-ron trong mô hình mạng nơ-ron nhân tạo, từ đó tạo nền tảng cho việc xây dựng mô hình nơ-ron nhân tạo tương tự như hệ nơ-ron của con người.
Mô hình nơ-ron nhân tạo được thể hiện qua các thành phần chính: xj là đầu vào của nơ-ron, wij là trọng số của nơ-ron, và yi là đầu ra của nơ-ron thứ i.
Mô hình mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (ANN) là một hệ thống được phát triển dựa trên cấu trúc của mạng nơ-ron sinh học Mạng nơ-ron này mô phỏng cách thức hoạt động của não bộ con người, cho phép xử lý và phân tích dữ liệu một cách hiệu quả.
Hệ thống này bao gồm nhiều tế bào thần kinh (nơ-ron) được kết nối chặt chẽ qua các liên kết nơ-ron, với mỗi liên kết mang một trọng số đặc trưng cho tính chất kích hoạt hoặc ức chế giữa các nơ-ron Các trọng số này đóng vai trò quan trọng trong việc lưu trữ thông tin dài hạn trong mạng nơ-ron Quá trình huấn luyện nhằm mục đích cập nhật các trọng số khi có thêm thông tin từ các mẫu học, giúp điều chỉnh sao cho đầu ra của hệ thống hoàn toàn phù hợp với môi trường đang được xem xét.
Trong mạng nơ-ron, nơ-ron vào nhận tín hiệu đầu vào, trong khi nơ-ron ra cung cấp thông tin đầu ra Các thông số cấu trúc của mạng nơ-ron rất quan trọng để xác định cách thức hoạt động và hiệu suất của nó.
Số tín hiệu vào, số tín hiệu ra
Số nơ-ron trên mỗi lớp ẩn
Số lượng liên kết của mỗi nơ-ron
Các trọng số liên kết.
Phân loại mạng nơ-ron
Tùy theo cấu trúc mạng, người ta chia ra các loại mạng sau đây:
Mạng một lớp: là mạng chỉ gồm một lớp tế bào thần kinh xử lý
Mạng nhiều lớp: là mạng gồm nhiều lớp tế bào thần kinh xử lý
Mạng truyền thẳng: là mạng mà trong đó tín hiệu chỉ truyền theo một chiều từ ngõ vào đến ngõ ra
Mạng hồi quy: là mạng mà trong đó có tín hiệu hồi tiếp từ ngõ ra trở về ngõ vào.
Các phương pháp huấn luyện mạng thần kinh nhân tạo
Mạng thần kinh nhân tạo phải được huấn luyện trước khi sử dụng Có hai kiểu học:
Học cấu trúc (Structure Learning): để thay đổi cấu trúc mạng, bao gồm số tế bào thần kinh và cách liên kết giữa chúng
Học thông số (Parameter Learning): để cập nhập các trọng số liên kết giữa các tế bào thần kinh trong mạng Có ba phương pháp học thông số:
Học có giám sát (supervised learning) là quá trình trong đó mạng được cung cấp một tập mẫu học {(xk, dk)}, với xk là tín hiệu vào và dk là tín hiệu ra mong muốn Trong quá trình này, sai lệch giữa tín hiệu ra thật sự và tín hiệu ra mong muốn sẽ được giám sát thông qua bộ tạo tín hiệu sai lệch Hệ số trọng lượng kết nối giữa các nơ-ron trong mạng sẽ được cập nhật dựa trên tín hiệu sai lệch này, nhằm tối ưu hóa tín hiệu ra thật sự của mạng sao cho nó ngày càng gần với tín hiệu ra mong muốn.
Hình 3.2 Mô tả cách học có giám sát [15]
+ Học củng cố (Reinforced learning)
Trong thực tế, chúng ta không phải lúc nào cũng xác định được mối quan hệ giữa dữ liệu đầu vào và ngõ ra của mạng Đôi khi, chúng ta chỉ biết ngõ ra thực tế của mạng là đúng hay sai so với ngõ ra mong muốn Thông tin đánh giá chỉ cung cấp mức độ chính xác của ma trận trọng số, nhưng không chỉ rõ cách thay đổi ma trận này để đạt được kết quả đúng.
Tín hiệu ra mong muốn
Trọng số W của mạng nơ-ron
Tín hiệu vào Tín hiệu ra
Bộ tạo tín hiệu sai lệch
Hình 3.3 Mô tả cách học củng cố [15]
+ Học không có giảm sát (Unsupervised learning)
Trong quá trình học của mạng nơ-ron, không có phản hồi từ môi trường bên ngoài để xác định tính chính xác của tín hiệu đầu ra, khác với học có giám sát Thay vào đó, mạng nơ-ron tự phát hiện các mối liên hệ tiềm ẩn trong dữ liệu đầu vào và chuyển đổi những mối liên hệ này thành đầu ra Phương pháp học này được gọi là mạng tự tổ chức.
Hình 3.4 Mô tả cách học không giám sát [15]
Một số mô hình mạng nơ-ron ứng dụng để nhận dạng ảnh
3.5.1 Mạng Perceptron (mạng truyền thẳng 1 lớp)
Mạng Perceptron là một loại mạng nơ-ron với cấu trúc truyền thẳng một lớp, sử dụng hàm tổng tuyến tính ở ngõ vào Hàm tác động ở ngõ ra có thể là hàm dấu, hàm tuyến tính hoặc hàm dạng S Tùy thuộc vào loại hàm tác động, các thuật toán huấn luyện mạng Perceptron sẽ khác nhau.
Trọng số W của mạng nơ-ron
Tín hiệu vào Tín hiệu ra
Bộ tạo tín hiệu đánh giá
Trọng số W của mạng nơ-ron
Tín hiệu vào Tín hiệu ra
Hình 3.5 Mô hình mạng Perceptron 1 lớp (mạng truyền thẳng 1 lớp)
The Perceptron training algorithm, known as the Perceptron learning algorithm, is also referred to as the Error Correction Learning Rule This algorithm is designed to improve the performance of neural networks by adjusting weights based on the errors in predictions.
Thuật toán học Perceptron được tóm tắt như sau [15]:
Bước 1: Chọn tốc độ học 𝜂 > 0
- Gán các vector trọng số 𝑤 𝑖 (𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅) bằng giá trị ngẫu nhiên nhỏ bất kỳ Bước 3: Quá trình huấn luyện bắt đầu, tính:
Bước 4: Cập nhật các vector trọng số:
Bước 5: Tính sai số tích lũy:
Bước 6: Nếu k < K thì gán k = k+1 và trở lại bước 3 Nếu k = K thì tiếp tục bước 7 Bước 7: Kết thúc một chu kỳ huấn luyện (epoch)
- Nếu 𝐸 = 0 thì kết thúc quá trình học
- Nếu 𝐸 ≠ 0 thì gán 𝐸 = 0, k = 1 và trở lại bước 3 bắt đầu một chu kỳ huấn luyện mới
3.5.2 Mạng truyền thẳng nhiều lớp
Mạng truyền thẳng nhiều lớp là loại mạng có từ hai lớp tế bào thần kinh trở lên, trong đó lớp đầu tiên, gọi là lớp vào, kết nối với ngõ vào nhưng không thực hiện xử lý Lớp tiếp theo, được gọi là lớp ẩn, kết nối với ngõ ra Các tế bào thần kinh giữa các lớp có thể được kết nối đầy đủ hoặc không đầy đủ, tạo ra sự linh hoạt trong khả năng xử lý thông tin.
Khác với mạng truyền thẳng 1 lớp, mạng truyển thẳng nhiều lớp có thể giải bài toán không khả phân tuyến tính
Thuật toán huấn luyện mạng truyền thẳng nhiều lớp dựa trên phương pháp lan truyền ngược, bao gồm hai bước chính Đầu tiên, mẫu dữ liệu đầu vào x(k) được truyền từ ngõ vào đến ngõ ra, tạo ra tín hiệu y(k) tại ngõ ra của mạng Tiếp theo, sai số giữa d(k) và y(k) được truyền ngược từ lớp ra về lớp trước để cập nhật trọng số của mạng.
Lớp vào Lớp ẩn Lớp ẩn Lớp ra
Hình 3.6 Mạng truyền thẳng nhiều lớp
Thuật toán lan truyền ngược để huấn luyện mạng truyền thằng nhiều lớp được tóm tắt như sau [15]:
Bước 1: Chọn tốc độ 𝜂 > 0, chọn sai số cực đại 𝐸 𝑚𝑎𝑥
- Gán các trọng số 𝑤 𝑖𝑞 (𝑘), 𝑣 𝑞𝑗 (𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅; 𝑗 = 1, 𝑚̅̅̅̅̅̅; 𝑞 = 1, 𝑙̅̅̅̅) bằng giá trị ngẫu nhiên nhỏ bất kỳ
Bước 3: (Truyền thuận dữ liệu) Tính ngõ ra của mạng với tín hiệu vào là 𝑥 (𝑘) :
Bước 4: (Lan truyền ngược sai số) Cập nhập trọng số của mạng:
Bước 5: Tính sai số tích lũy:
Bước 6: Nếu k < K thì gán k = k+1 và trở lại bước 3 Nếu k = K thì tiếp tục bước 7 Bước 7: Kết thúc một chu kỳ huấn luyện
Nếu 𝐸 < 𝐸 𝑚𝑎𝑥 thì kết thúc quá trình học
Nếu 𝐸 ≥ 𝐸 𝑚𝑎𝑥 thì gán E = 0, k = 1 và trở lại bước 3 bắt đầu một chu kỳ huấn luyện mới
Mạng nơ-ron truyền thẳng nhiều lớp với thuật toán lan truyền ngược là mô hình phổ biến và đơn giản nhất trong nhận dạng ảnh Trong nghiên cứu này, tác giả áp dụng mô hình mạng nơ-ron truyền thẳng để thực hiện các nhiệm vụ nhận diện hình ảnh.
2 lớp với thuật toán lan truyền ngược.
NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
Thiết kế chậu chứa cá
Chậu chứa cá đóng vai trò quan trọng trong việc thu nhận ảnh đầu vào, ảnh hưởng lớn đến kết quả xử lý sau này Để đạt hiệu quả tối ưu, chậu chứa cần có màu sắc tương phản với cá, ánh sáng phân bố đều và mức nước ổn định Chúng tôi đã chọn chậu chứa bằng mica hình hộp vuông với kích thước 13cm x 13cm Hệ thống chiếu sáng bao gồm 4 bóng đèn LED (9W, 806lm) đặt dưới chậu và cách đáy 18cm Camera 13 Megapixel được cố định trên chậu, cách đáy 15cm Mực nước trong bể được duy trì từ 1cm đến 1,5cm để hạn chế tình trạng cá chồng lên nhau.
Hình 4.1 Chậu chứa cá giống
Tạo dữ liệu ảnh cá và ảnh tạp dùng để huấn luyện mạng nơ-ron
Tác giả đã tiến hành thực nghiệm bằng cách cho cá và tạp chất vào chậu chứa, sau đó sử dụng máy chụp hình kỹ thuật số 13 Megapixel để ghi lại hình ảnh của cá và tạp chất Qua nhiều lần chụp, tác giả thu thập được một lượng lớn ảnh cá và tạp chất, từ đó tạo ra dữ liệu huấn luyện cho mạng nơ-ron.
Phần mềm được sử dụng để tách riêng từng con cá và từng tạp chất Tác giả đã tạo ra 300 tập tin ảnh của 300 con cá với các hình dạng bơi khác nhau và 150 tập tin ảnh của 150 tạp chất Dữ liệu ảnh cá và tạp chất được chia thành 200 tập tin ảnh cá và 100 tập tin ảnh tạp để huấn luyện mạng nơ-ron, trong khi 100 tập tin ảnh cá và 50 tập tin ảnh tạp còn lại được sử dụng để kiểm tra độ chính xác của quá trình học.
Hình 4.2 Một số hình ảnh cá
Hình 4.3 Một số hình ảnh tạp
Quá trình xử lý ảnh
Tác giả sử dụng giao diện đồ họa (GUI) trong Matlab để xây dựng chương trình cho việc nhận dạng và đếm cá giống
Hình 4.4 Giao diện đồ họa chương trình nhận dạng và đếm cá
Chuyển ảnh màu RGB thành ảnh mức xám
Tác giả đã sử dụng hàm rgb2gray của Matlab để thực hiện được tác vụ này
Hàm rgb2gray chuyển đổi ảnh màu RGB thành ảnh mức xám, trong đó dữ liệu đầu vào là ảnh màu và dữ liệu đầu ra là ảnh xám Sau khi áp dụng hàm này, chúng ta nhận thấy rằng đối tượng cá trở nên tối màu hơn so với nền xung quanh Quá trình chuyển đổi đã làm nổi bật cá trong ảnh xám, tạo ra sự tương phản rõ rệt.
Trong quá trình xác định trọng tâm của ảnh, việc hiển thị điểm trọng tâm trở nên khó khăn khi đối tượng cá có màu đen Để khắc phục vấn đề này, tác giả đã sử dụng hàm imcomplement của Matlab để đảo ngược các pixel, chuyển pixel 0 thành pixel 1 và ngược lại, tức là đổi màu đen thành trắng và trắng thành đen Dữ liệu đầu vào của hàm có thể là ảnh nhị phân, ảnh xám hoặc ảnh màu RGB Trong nghiên cứu này, tác giả chọn ảnh xám làm dữ liệu đầu vào và kết quả là ảnh xám, trong đó đối tượng cá được chuyển sang màu trắng còn nền giữ màu tối.
Lọc nhiễu cho ảnh mức xám
Tác giả đã sử dụng hàm medfilt2 của Matlab để thực hiện được tác vụ này
Dữ liệu vào của hàm này là ảnh mức xám chưa được lọc nhiễu, dữ liệu ra của hàm cũng là ảnh mức xám nhưng đã được lọc nhiễu
Tăng độ tương phản cho ảnh mức xám
Tác giả đã sử dụng hàm imadjust của Matlab để thực hiện được tác vụ này
Hàm này nhận dữ liệu đầu vào là ảnh mức xám đã được lọc nhiễu và xuất ra ảnh mức xám với độ tương phản giữa hai màu đen và trắng rõ nét hơn.
Chuyển ảnh mức xám thành ảnh nhị phân đen trắng Để thực hiện được tác vụ này, tác giả đã sử dụng 2 hàm graythresh và im2bw của Matlab
Hàm graythresh được sử dụng để xác định ngưỡng giá trị mức xám cho ảnh đã được tăng cường độ tương phản Dữ liệu đầu vào của hàm là ảnh mức xám, trong khi dữ liệu đầu ra là ngưỡng giá trị mức xám của ảnh.
Hàm im2bw được sử dụng để chuyển đổi ảnh mức xám thành ảnh nhị phân đen trắng Trong quá trình này, các điểm ảnh có giá trị mức xám lớn hơn ngưỡng sẽ được chuyển thành màu đen, trong khi các điểm ảnh có giá trị thấp hơn sẽ trở thành màu trắng Kết quả cuối cùng là một ma trận điểm ảnh, trong đó mỗi điểm có giá trị là 0 hoặc 1.
Để loại bỏ các vùng ảnh nhỏ có ít pixel, tác giả đã sử dụng hàm bwareaopen trong Matlab Ảnh chụp thực tế thường chứa nhiều tạp chất nhỏ mà không thể xây dựng thành ảnh tạp mẫu để huấn luyện mạng nơ-ron, do đó việc loại bỏ các tạp chất này là cần thiết.
Hàm bwareaopen xử lý ảnh nhị phân bằng cách loại bỏ các vùng đối tượng có số pixel ít, và kết quả trả về cũng là ảnh nhị phân đã được tinh chỉnh.
Hình 4.5 Ảnh gốc Hình 4.6 Ảnh xám
Hình 4.7 Ảnh đảo pixel Hình 4.8 Ảnh lọc nhiễu
Hình 4.9 Ảnh tăng độ tương phản Hình 4.10 Ảnh nhị phân đen trắng
Quá trình trích đặc trưng của ảnh
Tìm trọng tâm của ảnh cá:
Theo [13] việc xác định tọa độ trọng tâm của đối tượng được thực hiện theo công thức sau:
Trong đó: S là diện tích đối tượng
Mx, My là momen so với trục x và trục y xSize, ySize là kích thước ảnh nhị phân của đối tượng bw là ảnh nhị phân, 𝑏𝑤 = {1 𝑛ế𝑢 (𝑥, 𝑦) ∈ 𝐷
0 𝑛ế𝑢 (𝑥, 𝑦) ∉ 𝐷 , D là miền chứa đối tượng
M0 = (x0,y0) là tọa độ trọng tâm của đối tượng
Điểm xuất phát là vị trí khởi đầu cho quá trình xác định đường biên của ảnh cá, nơi bán kính từ tâm cá đến đường biên đạt giá trị lớn nhất Từ điểm xuất phát này, chúng ta có thể xác định các điểm nằm trên đường biên của con cá một cách chính xác.
Trích đặc trưng của ảnh cá
Hình dạng của con cá được xác định bởi các bán kính từ trọng tâm đến biên của nó Tác giả chia đường biên của cá thành 200 đoạn thẳng nhỏ, từ đó đặc trưng ảnh của cá được hình thành bởi 200 bán kính từ trọng tâm đến các đoạn thẳng này, tạo nên hình dạng tổng thể của con cá.
Hình 4.11 Trọng tâm của ảnh cá Hình 4.12 Điểm xuất phát của ảnh cá
Hình 4.13 Trích đặc trưng ảnh cá
Quá trình thiết kế và huấn luyện mạng nơ-ron
Để thiết kế một mạng nơ-ron hiệu quả, cần xác định số lượng nơ-ron ở các lớp khác nhau, bao gồm lớp vào, lớp ra và các lớp ẩn Với đặc điểm của ảnh cá có 200 giá trị dữ liệu, số nơ-ron ở lớp vào sẽ là 200 Sau quá trình nhận dạng, mạng nơ-ron sẽ đưa ra kết luận về việc ảnh có phải là cá hay không, do đó, số nơ-ron ở lớp ra chỉ cần là 1.
Sau nhiều lần thử nghiệm và huấn luyện mạng nơ-ron với dữ liệu đã chuẩn bị, kết quả tốt nhất đạt được khi sử dụng mạng nơ-ron truyền thẳng 2 lớp với các thông số tối ưu.
- Số nơ-ron ngõ vào: 200
- Số nơ-ron lớp ẩn: 30
- Số nơ-ron lớp xuất: 1
- Hàm huấn luyện là traingdx
- Hàm truyền lớp ẩn: logsig
- Hàm truyền lớp xuất: logsig
- Số thế hệ huấn luyện: 250000
Điểm hội tụ của mạng nơ-ron là 10^-5 Quá trình huấn luyện mạng nơ-ron được thực hiện theo sơ đồ hình 4.14 Một trong những thách thức lớn nhất trong huấn luyện mạng là xác định số lượng nơ-ron trong lớp ẩn Nếu số nơ-ron quá ít hoặc quá nhiều, kết quả huấn luyện có thể không đạt yêu cầu, và trong trường hợp có quá ít nơ-ron, mạng có thể không hội tụ trong quá trình học.
Hình 4.14 Sơ đồ quá trình huấn luyện mạng nơ-ron Lưu đồ giải thuật quá trình thiết kế và huấn luyện mạng nơ-ron như hình 4.15
Để đảm bảo độ chính xác của mạng nơ-ron, cần tiến hành thử nghiệm và kiểm tra kết quả đầu ra Nếu kết quả không đạt yêu cầu, có thể điều chỉnh bộ dữ liệu huấn luyện hoặc thiết kế lại cấu trúc của mạng nơ-ron.
Tạo bộ dữ liệu chuẩn dùng để huấn luyện mạng nơ-ron
Thiết kế mạng nơ-ron Đưa dữ liệu vào để huấn luyện mạng nơ-ron
Thử nghiệm cho đến khi chọn được mạng nơ-ron hoạt động có độ chính xác đúng theo yêu cầu
Dữ liệu ảnh cá và tạp chuẩn
Tiền xử lý Trích đặc trưng
Chọn mô hình mạng nơ-ron
Huấn luyện mạng Thử nghiệm mạng
Tinh chỉnh mạng Ứng dụng
Hình 4.15 Lưu đồ giải thuật quá trình thiết kế và huấn luyện mạng nơ-ron
Sơ đồ huấn luyện ban đầu cho mạng nơ-ron như hình 4.16
Hình 4.16 Sơ đồ huấn luyện mạng nơ-ron ban đầu
Quá trình kiểm tra độ chính xác của mạng nơ-ron vừa được huấn luyện như sơ đồ hình 4.17
Tiền xử lý ảnh Phân đoạn ảnh Trích đặc trưng ảnh
Mạng nơ-ron: mạng truyền thẳng 2 lớp
Kết quả cho ra là một mạng nơ-ron đã được huấn luyện
Hình 4.17 Sơ đồ quá trình kiểm tra độ chính xác của mạng nơ-ron vừa được huấn luyện
Quá trình nhận dạng và đếm số lượng cá
Quá trình nhận dạng và đếm cá được thực hiện theo sơ đồ hình 4.18 Hình ảnh cá sẽ được camera kỹ thuật số thu nhận và chuyển vào máy tính để xử lý Ảnh này là ảnh màu RGB, như thể hiện trong hình 4.19, với hình chụp cá ngẫu nhiên.
Mạng nơ-ron đã được huấn luyện
Quyết định điều khiển: nếu là ảnh cá thì giữ lại, là ảnh tạp thì loại bỏ
Nếu quyết định điều khiển của mạng nơ-ron không đáp ứng yêu cầu, cần quay lại để điều chỉnh dữ liệu mẫu huấn luyện Quá trình này sẽ tiếp tục cho đến khi mạng nơ-ron đạt được kết quả nhận dạng đúng theo yêu cầu, và lúc đó có thể chọn mạng đó.
Quá trình nhận dạng và đếm cá bắt đầu bằng việc chuyển đổi ảnh màu RGB sang ảnh mức xám Sau đó, thực hiện đảo pixel, lọc nhiễu và tăng độ tương phản cho ảnh mức xám Cuối cùng, ảnh mức xám của các con cá sẽ được chuyển đổi sang dạng ảnh nhị phân đen trắng để phục vụ cho việc nhận dạng và đếm.
Ảnh nhị phân đen trắng là một ma trận điểm ảnh, trong đó các điểm ảnh biểu thị hình dạng cá có giá trị 1 (màu trắng) và điểm ảnh nền có giá trị 0 (màu đen) Việc đếm số lượng cá trong ảnh ngẫu nhiên này là cần thiết.
Tiền xử lý ảnh Phân đoạn ảnh
Chuyển ảnh nhị phân thành dạng ma trận đồng thời ghi nhãn các đối tượng có trong ảnh
Từng đối tượng trong ảnh được tách riêng để trích xuất đặc trưng, sau đó đưa vào mạng nơ-ron đã được huấn luyện Mạng nơ-ron sẽ quyết định xem đối tượng vừa tách có nên được giữ lại hay loại bỏ.
Sau khi nhận diện tất cả các đối tượng trong ảnh, phần mềm sẽ tổng hợp các hình ảnh cá để tạo ra bức ảnh cuối cùng chỉ chứa những con cá.
Ghi nhãn các đối tượng cá và tạp có trong ảnh:
Khi gán nhãn các đối tượng cá và tạp trong ảnh, toàn bộ ảnh sẽ được chuyển đổi thành ma trận Trong ma trận này, các điểm thuộc ảnh nền sẽ có giá trị 0, trong khi các điểm thuộc ảnh đối tượng thứ nhất sẽ có giá trị 1, và các điểm thuộc ảnh đối tượng thứ hai, thứ ba, và các đối tượng tiếp theo sẽ lần lượt có giá trị 2, 3, và tiếp tục như vậy.
Hình 4.19 Ảnh cá cần nhận dạng Hình 4.20 Ảnh nhị phân đen trắng
Hình 4.21 Gán nhãn các đối tượng trong ảnh
Tách riêng từng đối tượng
Chương trình nhận dạng tiến hành tách biệt các đối tượng đã được đánh dấu thứ tự, nhận diện từng đối tượng và phân loại chúng thành ảnh cá hoặc ảnh tạp Cuối cùng, chương trình chỉ giữ lại những đối tượng là ảnh cá, đồng thời thống kê số lượng cá và ảnh tạp trong bức ảnh ban đầu Kết quả và giao diện của phần mềm nhận dạng và đếm cá được trình bày như hình 4.22.
Hình 4.22 Kết quả và giao diện phần mềm nhận dạng và đếm cá
Một số kết quả chạy chương trình phần mềm nhận dạng và đếm cá thu được
Ảnh thực tế gồm 6 cá và không có tạp
Chương trình đã nhận dạng và đếm đúng số lượng cá là 6 và số lượng tạp là 0 Ảnh thực tế gồm 5 cá và 2 tạp
Chương trình đã đếm đúng 5 cá và 2 tạp, đồng thời hiển thị hình ảnh những con cá đã nhận dạng Trong ảnh có 10 cá mà không có tạp, nhưng trong ảnh thực tế chỉ có 6 cá, trong đó có 2 con bơi dính nhau Kết quả nhận dạng cho thấy 4 con cá và 1 tạp, do hai con cá bơi sát nhau chưa được nhận diện, chương trình đã loại chúng ra khỏi kết quả cuối cùng Ảnh thực tế cuối cùng gồm 7 cá và 3 tạp.
Chương trình nhận dạng đã phát hiện 6 cá và 4 tạp, tuy nhiên, có sự sai sót khi nhận diện 2 con cá thành 2 tạp và nhầm 1 ảnh tạp thành cá Trong thực tế, tổng số là 10 cá và 9 tạp.
Chương trình nhận dạng đã đếm được 9 cá và 11 tạp, tuy nhiên chưa nhận dạng được 2 cá và nhầm lẫn 1 tạp thành cá Trong ảnh thực tế có 33 cá và không có tạp, chương trình đã nhận dạng 29 cá và 2 tạp, trong đó có 2 trường hợp cá bơi chồng nhau được nhận diện là tạp và bị loại bỏ khỏi kết quả cuối Trong một ảnh thực tế khác có 53 cá và không có tạp.
Chương trình đã xác định được 51 con cá và 2 tạp chất Hai con cá chưa được nhận dạng nên được coi là tạp chất Do đó, tổng số tạp chất mà chương trình ghi nhận là 2 Trong ảnh có tổng cộng 74 con cá và không có tạp chất nào.
Chương trình đã đếm được 70 cá và 4 tạp, trong đó có 2 trường hợp cá bơi chồng lên nhau Những trường hợp này được nhận diện là ảnh tạp và đã bị loại bỏ khỏi kết quả cuối cùng.
Số lượng cá trong các mẫu được đếm thủ công sau đó được đếm lại bằng giải thuật đã đề xuất để so sánh và đánh giá kết quả
Bảng 1 liệt kê kết quả của 10 lần nhận dạng và đếm với số lượng cá trong mỗi mẫu tăng từ 10 con đến 75 con
Bảng 1: Kết quả đếm cá với số lượng từ 10 đến 75 con
Lần đếm Số lượng cá trong một mẫu
Số lượng đếm bằng giải thuật Hiệu suất
Hiệu suất trung bình 10 lần đếm 99%
Kết quả nghiên cứu cho thấy giải thuật nhận dạng và đếm con giống đạt hiệu suất 99% khi áp dụng cho các mẫu có từ 10 đến 75 con cá.
Giải pháp đếm cá giống đã chứng minh hiệu quả trong việc đếm cá bơi riêng lẻ, tuy nhiên, độ chính xác sẽ giảm khi cá bơi chồng chéo hoặc sát nhau Thuật toán áp dụng đã loại bỏ tạp chất trong quá trình đếm, từ đó nâng cao độ chính xác của kết quả.