Nhận dạng và định vị cà phê hạt bằng mầu sắc

Lời cảm ơn Em xin chân thành cảm ơn toàn thể các thầy, cô giáo trong nhà trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội, những người đã tận tình chỉ dậy cho em trong suốt quá trình học tập tại trường. Em xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới Tiến sỹ Chử Đức Trình (trường Đại học Công Nghệ) và Thạc sỹ Vũ Bá Huấn (Viện Cơ học kỹ thuật – Viện Khoa học Kỹ thuật việt nam ) đã tận tình hướng dẫn và chỉ bảo em trong suốt quá trình thực hiện khóa luận này. Em xin chân thành cảm ơn toàn thể cán bộ bộ môn vi cơ điện tử - vi hệ thống đã giúp đỡ em trong suốt quá trình em học tập tại trường. Em xin gửi lời cảm ơn đến Ths.Nguyễn kiêm Hùng cùng toàn thể cán bộ làm việc trong phòng “các hệ thống tích hợp và thông minh” đã chỉ bảo em trong quá trình học tập và nghiên cứu ở trường. Cuối cùng, em xin được bày tỏ lòng biết ơn vô hạn tới những người thân trong gia đình đã dành cho em sự quan tâm, động viên trong cuộc sống cũng như trong suốt quá trình học tập. Do thời gian nghiên cứu có hạn, chắc chắn khóa luận không tránh khỏi những thiếu sót. Em rất mong nhận được những góp ý, nhận xét của thầy cô và các bạn để đề tài của em được hoàn thiện hơn. GIỚI THIỆU VỀ MÁY PHÂN LOẠI CÀ PHÊ BẰNG MÀU SẮC 1.1 Tính cấp thiết của dự án. Hiện nay, nhu cầu về thiết bị phân loại sản phẩm ở dạng hạt là rất lớn, đặc biệt trong lĩnh vực nông sản, thực phẩm như gạo, cà phê . Do không có thiết bị phân loại các sản phẩm theo màu sắc nên chất lượng sản phẩm của Việt Nam khi đưa ra thị trường thường có chất lượng thấp dẫn đến giá thấp và không có tính cạnh tranh. Với khoảng 500.000 ha canh tác, Việt Nam đạt sản lượng 1 triệu tấn cà phê mỗi năm và đang dẫn đầu thế giới về xuất khẩu cà phê. Tuy nhiên, cà phê Việt Nam chưa có sức cạch tranh so với cà phê thế giới do tỷ lệ những hạt lỗi quá lớn làm cho chất lượng hạt cà phê giảm đáng kể. Để tăng sức cạch tranh, đảm bảo chất lượng cà phê theo tiêu chuẩn quốc tế, chúng ta cần phải có quá trình sàng lọc các hạt cà phê không đủ tiêu chuẩn. Vì vậy, việc nghiên cứu máy nhận dạng màu sắc và chỉ ra vị trí của hạt xấu để loại bỏ chúng là việc làm cần thiết cho nhu cầu thực tế hiện nay. 1.2 Tình hình nghiên cứu trong nước. Kỹ thuật phân loại sử dụng các sensor quang đã bước đầu được thực hiện ở Việt Nam từ đầu những năm 90 tại các trung tâm nghiên cứu lớn như Viện Máy và dụng cụ công nghiệp, Trường Đại học Bách khoa Hà Nội Tuy nhiên, kỹ thuật và thiết bị phân loại chỉ có thể ứng dụng cho các đối tượng có màu sắc rõ ràng, di chuyển chậm theo tốc độ và mật độ hoàn toàn xác định trước. Việc nghiên cứu kỹ thuật và thiết bị phân loại đối tượng có màu không rõ ràng di chuyển nhanh với mật độ lớn như các loại vật liệu rời và nông sản thực phẩm dạng hạt thì vẫn chưa được quan tâm đúng mức. Được sự hỗi trợ của bộ công nghiệp cùng với sự hợp tác của các đơn vị thuộc Tổng Công ty cà phê Việt Nam. Máy phân loại cà phê đầu tiên của Việt Nam OPSOTEC 5.01A là sản phẩm của đề tài đã được đưa vào sử dụng trong lĩnh vực chế biến cà phê tại Công ty Xuất nhập khẩu Cà phê II, Nha Trang.

doc45 trang | Chia sẻ: banmai | Lượt xem: 1858 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Nhận dạng và định vị cà phê hạt bằng mầu sắc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
y trình bày nhu cầu và nguyên lý hoạt động của máy phân loại cà phê hạt bằng mầu sắc. Nhiệm vụ của khóa luận cũng được trình bày kết hợp với các kết quả mong muốn. Chương 2: Giới thiệu qua về cơ sở xử lý ảnh: một số khái niệm cơ sở về xử lý ảnh được trình bày. Chương 3: Ứng dụng của xử lý ảnh trong hệ thông máy phân loại cà phê: trong chương này, hệ thống xử lý ảnh dùng cho máy phân loại cà phê của Viện máy và công cụ công nghiệp - IMI, Việt Nam được giới thiệu. Đây là một sản phẩm nghiên cứu khoa học và ứng dụng trong sản xuất thành công đầu tiên tại Việt Nam trong trong vực này. Phương pháp xử lý ảnh của IMI dựa trên thuật toán tách biên. Chương này trình bày phương pháp thiết kế về hệ thống phân biệt hạt cà phê xấu và phương pháp tìm trọng tâm của vị trí hạt xấu đó dựa trên thuật toán phép đệ quy. Các so sánh giữa hệ thống xử lý ảnh đề xuất của khóa luận và hệ thống đã phát triển của IMI cũng được đưa ra. Chương 4: Kết luận và hướng phát triển trong tương lai: Phần này trình bày kết luận về kết quả đã đạt được trong quá trình thực hiện khóa luận tốt nghiệp. Các hướng phát triển trong tương lai cũng như bài toán ứng dụng được đặt ra. Chương 2 CƠ SỞ VỀ XỬ LÝ ẢNH 2.1 Giới thiệu chung về xử lý ảnh. Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới so với nhiều ngành khoa học khác. Song tốc độ của nó phát triển rất nhanh, kích thích được nhiều các trung tâm nghiên cứu về nó với nhiều ứng dụng khác nhau. Xử lý ảnh có thể được áp dụng cho nhiều lĩnh vực khác nhau từ những lĩnh vực về dân sự đến những lĩnh vực an ninh quốc phòng xu hướng ngày nay, đang được áp dụng hết sức rộng dãi, và ngày một phát triển nhanh dưới sự phát triển của khoa học công nghệ nó đã giúp cho xử lý ảnh ngay càng phát triển. Những ứng dụng của xủ lý ảnh đang được ứng dụng rất nhiều như trong dự báo cháy rừng, dự báo lũ lụt, dự báo thời tiết, trong lĩnh vực an ninh như nhân dạng vân tay, nhận dạng khuôn mặt, nhận dạng tội phạm. Ngoài ra còn một ứng dụng của xử lý ảnh mà mấy năm trở lại đây được cho là rất quan trọng đó chính là ứng dụng xử lý ảnh trong việc phân biệt màu sắc, ứng dụng này bây giờ đang được ứng dụng trong rất nhiều nghành. Đặc biệt bây giờ đang được áp dụng rất mạnh trong nông nghiệp, như ứng dụng xử lý ảnh cho việc phát hiện vật phẩm xấu. Do vậy xử lý ảnh đang được phát triện hết sức toàn diện trên mợi lĩnh vực. Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh. Nâng cao chất lượng ảnh là cần thiết bởi vì khi chúng ta thu nhận ảnh, thi ảnh thường có nhiễu do bị chiếu sáng qua hay do một vài lý do nào đó mà làm cho ảnh bị biến dạng so với ban đầu. Do vậy việc nâng cao chất lượng ảnh là hoàn toàn quan trọng trước khi chúng ta thực hiện một thao tác nào đó với ảnh mà thu được. Vì nếu không nâng cao chất lượng thi khi phân tích ảnh thì ảnh sẽ không cho ra đúng như mình mong muốn tại vì ảnh lúc đó đã bị biến dạng, không còn là ảnh ảnh gốc ban đầu nữa. Phân tích ảnh thực chất bao gồm nhiều công đoạn nhỏ. Trước hết là công việc tăng cường ảnh để nâng cao chất lượng ảnh. Do những nguyên nhân khác nhau: có thể do chất lượng thiết bị thiết bị thu nhận ảnh, do nguồn sáng hay do nhiễu, ảnh có thể bị suy biến. Do vậy cần phải tăng cường và khôi phục ảnh để nổi bật một số đặc tính chính của ảnh, hay làm cho ảnh gần giống nhất với trạng thái gốc. 2.2 Khái niệm cơ sở xử lý ảnh 2.2.1 Các thiết bị thu nhận ảnh. Bộ cảm biến ảnh. Bao gồm như máy chụp ảnh, camera có thể ghi lại hình ảnh như phim trong máy chụp ảnh, vidicon trong camera truyền hình. Có nhiều loại máy cảm biến (sensor) làm việc với ánh sáng nhìn thấy được và hồng ngoại như: Micro Densitomerters, Image Disector, Camera Divicon, linh kiện quan điện bằng bán dẫn. Camera Đối với một hệ thống xử lý ảnh thu nhận qua camera-camera như là con mắt của hệ thống. Cú 2 loại camera: camera ống loại CCIR và camera CCD. Loại camera ứng với chuẩn CCIR quột ảnh với tần số 1/25 và mỗi ảnh gồm 625 dũng. Loại CCD gồm cỏc photo điốt và làm tương ứng một cường độ sỏng tại một điểm ảnh ứng với một phần tử ảnh (pixel). Như vậy, ảnh là tập hợp các điểm ảnh. Số pixel tạo nờn một ảnh gọi là độ phân giải (resolution). Có nhiều kiểu thiết bị tạo ảnh, từ mắt động vật đến những ống kính camera ghi hình và radio. Chúng có thể có hoặc không trang bị thấu kính. Mô hình buồng tối camera đầu tiên được phát minh vào thế kỷ 16 không có các thấu kính, nhưng thay vào đó là một lỗ (pinhole) để hội tụ các tia sáng lên trên tường hoặc tấm mờ. Các lỗ dần dần được thay thế bởi các thấu kính càng ngày càng phức tạp. Nói chung camera thường có hai bộ phận cơ bản một là hệ thống tạo ảnh và hai là bề mặt tạo ảnh có chứa chất nhạy cảm quang. Bề mặt tạo ảnh của một camera thông thường là hình chữ nhật, nhưng các camera toàn cảnh có thể trang bị mặt tạo ảnh hình trụ để tăng trường nhìn. Những phần tử nhạy tạo ảnh có những đặc trưng khác nhau. Chúng có thể ghi nhận một ảnh rời rạc hoặc một ảnh liên tục về mặt không gian. Hệ thống tạo ảnh có thể là lỗ hoặc là hệ thấu kính trong các camera hiện đại. Cảm biến ảnh CCD (Charge Couple Device). Như chúng ta biết Niepce phát minh ra kỹ thuật chụp ảnh từ đầu thế kỷ 19, nhưng Daguerre mới là người giới thiệu nó với công chúng. Sau hai lần cùng cộng tác trong năm 1826, Daguerre tiếp tục phát triển phương pháp chụp ảnh của riêng mình sử dụng hơi thuỷ ngân để khuếch đại và để lộ ra ảnh được tạo trên miếng đồng mạ bạc được bôi iốt. Phép chụp ảnh Daguerre ngay lập tức thành công khi Arago biểu diễn phương pháp Daguerre ở viện hàn lâm khoa học Pháp năm 1839. Những cột mốc khác trong lịch sử lâu dài của phương pháp chụp ảnh bao gồm phương pháp tấm ướt âm/dương của Legray và Archer năm 1850, phương pháp gelatin (chất lỏng trong suốt không có vị để chế tạo phim ảnh) của Maddox năm 1870, Eastman giới thiệu phim chụp ảnh năm 1889, và phát minh kỹ thuật điện ảnh (cinema) của Lumiere năm 1895 và chụp ảnh màu năm 1908. Các camera CCD (Charge Couple Device) được đề xuất năm 1970 và đã thay thế các camera vidicon trong hầu hết các ứng dụng hiện đại. Cảm biến CCD sử dụng một lưới hình chữ nhật của các điểm (site) thu thập điện tử phủ trên một đế silic mỏng để ghi lại năng lượng ánh sáng đến mỗi điểm trong chúng (hình 2.3). Mỗi một điểm được tạo thành bằng cách cấy một lớp SiO2 trên đế và sau đó lắng đọng một cấu trúc cổng dẫn lên trên. Khi photon đập vào silic, thì cặp điện tử lỗ trống được tạo ra (chuyển đổi quang) và điện tử bị bắt giữ bằng giếng điện thế được tạo thành bởi tác động của một điện thế dương ở cổng tương ứng. Các điện tử được tạo ra ở mỗi điểm được tập hợp qua một chu kỳ thời gian T cố định. Truyền pixel Thanh ghi dịch Truyền hàng Mảng các điểm thu Hình 2.1: Thiết bị CCD. Các điện tích được lưu trữ ở những điểm riêng biệt sẽ được di chuyển sử dụng cách mắc tích nạp điện (charge coupling): Các gói điện tích được truyền từ điểm này đến điểm kia bằng cách vận chuyển các điện thế cổng và bảo tồn các gói riêng biệt. ảnh được đọc ra khỏi CCD một hàng một lần, mỗi hàng được truyền song song tới một thanh ghi lối ra nối tiếp. Giữa hai lần đọc hàng, thanh ghi truyền một ô điện tích của nó một lần (hình 2.1) tới một bộ khuếch đại lối ra tạo ra một tín hiệu tỷ lệ với điện tích nó nhận được. Quá trình này tiếp tục cho tới khi toàn bộ ảnh đã được đọc ra. Nó có thể được lặp lại 30 lần trong một giây (tốc độ TV) cho các ứng dụng ghi hình hoặc ở tốc độ thấp hơn nhiều, bỏ đi nhiều thời gian (giây, phút, thậm chí hàng giờ) để thu thập điện tử trong các ứng dụng mức sáng thấp như thiên văn học. Lưu ý rằng lối ra số của hầu hết các CCD camera được chuyển đổi bên trong thành một tín hiệu ghi hình tương tự trước khi được chuyển tới một bộ bắt hình (frame grabber) ở đó tạo dựng ảnh số cuối cùng. Các CCD camera mầu cấp độ dân dụng thực chất sử dụng các chip giống như các camera đen trắng, chỉ khác là các hàng hoặc các cột liên tiếp của cảm biến được tạo ra nhạy cảm với ánh sáng đỏ, lục hoặc lam thường sử dụng một bộ lọc phủ để bù ánh sáng. Các mẫu lọc khác có thể thực hiện được bao gồm các khối khảm (mosaic) 2´2 được tạo bởi các bộ cảm nhận hai lục, một đỏ và một lam (mẫu Bayer). Độ phân giải không gian của camera một CCD tất nhiên là có giới hạn, các camera chất lượng cao hơn sử dụng một bộ chia chùm tia để chuyển ảnh tới 3 CCD khác nhau thông qua các bộ lọc màu. Các kênh màu riêng biệt sau đó được số hoá hoặc là riêng biệt (lối ra RGB) hoặc kết hợp thành tín hiệu ghi hình màu hỗn hợp (NTSC, SECAM hoặc PAL) hoặc thành định dạng ghi hình thành phần tách rời thông tin màu và độ chiếu sáng. Quá trình số hoá ảnh và các bộ xử lý. Các tín hiệu hình ảnh từ CCD sẽ được số hoá qua các bộ bắt hình rồi đưa tiếp vào bộ xử lý. Hình 2.2 là cấu trúc cơ bản của một bộ bắt hình. Hình 2.2: Cấu tạo của bộ bắt hình (frame grabber). Tín hiệu video được đưa đến bộ tách các xung đồng bộ dòng và mành ra khỏi tín hiệu thị tần hình ảnh. Tuỳ theo chuẩn video mà mạch trích giữ mẫu tín hiệu sẽ trích 767 pixel trên một dòng cho chuẩn CCIR và 647 pixel trên một dòng cho chuẩn EIA để số hoá chúng. Khi bộ bắt hình được nối với bus mở rộng có tốc độ chậm như bus ISA thì cần phải sử dụng các bộ nhớ phụ trên bản mạch nhưng khi nối với các bus nhanh như PCI thì chỉ cần bộ nhớ đệm FIFO để đệm cho một dòng quét. Thường sau khi tín hiệu video vào đến bộ bắt hình, cần đến 3 khung ảnh để khởi động. Các bộ xử lý có thể là các mạch vi xử lý chuyên dụng (DSP), vi điều khiển hoặc các máy vi tính PC. Ngoài nhiệm vụ thu thập dữ liệu, chúng có nhiệm vụ xử lý các dữ liệu này bằng các chương trình được nhúng trong bộ xử lý hoặc chạy trên các máy PC. Một vi điều khiển (microcontroller) là một máy tính trên một chip (computer-on-a-chip, single-chip computer). Thường các vi điều khiển còn được gọi là các bộ điều khiển nhúng (embedded controller) vì rằng chúng và các mạch điện hỗ trợ thường được thiết kế lắp đặt (nhúng) ngay bên trong các thiết bị được điều khiển. Hiện có rất nhiều loại vi điều khiển được sản xuất như họ 80x51, MC68HCxx, Basic Stamp hay PSoC. Một vi điều khiển tương tự như một vi xử lý bên trong một máy tính cá nhân. Cả hai loại, vi xử lý và vi điều khiển đều chứa một đơn vị xử lý trung tâm CPU có nhiệm vụ chạy các lệnh cho phép thực hiện các chức năng logic, toán học và chuyển số liệu cơ bản trong máy tính. Để tạo một máy tính hoàn chỉnh, ngoài vi xử lý còn phải có bộ nhớ để lưu trữ số liệu và chương trình, các ghép nối vào/ra. Ngược lại, một vi điều khiển là một máy tính trên một chip nghĩa là nó chứa cả bộ nhớ và giao diện vào/ra bên cạnh CPU. Tuy nhiên, vì cần được thiết kế chỉ trên một chip nên lượng bộ nhớ và các giao diện vào/ra trong vi điều khiển được thiết kế nhỏ. Mô hình cảm biến. Để đơn giản, ta hạn chế sự chú ý tới các CCD camera đen trắng: các camera màu có thể được giải quyết tương tự bằng cách xem xét mỗi kênh màu riêng biệt và tính đến hiệu ứng lọc màu. Gọi I là số các điện tử ghi được tại tế bào có vị trí ở hàng r và cột c của mảng CCD thì I có thể được mô hình là: (2.1) ở đó T là thời gian thu thập điện tử và tích phân được tính trên miền không gian S(r,c) của tế bào và dải bước sóng mà đáp ứng của CCD khác không. Trong tích phân E là công suất trên đơn vị diện tích và đơn vị bước sóng đến điểm p, R là đáp ứng không gian của điểm, và q là hiệu ứng lượng tử của thiết bị. Trong trường hợp tổng quát, E và q phụ thuộc vào bước sóng ánh sáng l, và E và R phụ thuộc vào vị trí điểm p trong S(r,c). Bộ khuếch đại lối ra của CCD chuyển đổi điện tích được thu thập tại mỗi điểm thành điện áp có thể đo lường được. Trong hầu hết các camera, điện áp này sau đó được chuyển đổi thành một tín hiệu ghi hình được lọc thông thấp có biên độ tỷ lệ với I. Ảnh tương tự có thể được chuyển đổi lại một lần nữa thành ảnh số sử dụng một khối bắt hình ở đó lấy mẫu không gian và lượng tử hoá giá trị chiếu sáng ở mỗi điểm ảnh hoặc gọi là pixel (hoặc thành phần ảnh – picture element). Có một vài hiện tượng vật lý làm thay đổi mô hình camera lý tưởng chẳng hạn nhèo ảnh sẽ xuất hiện khi nguồn sáng chiếu vào các điểm thu thập là quá mạnh đến mức điện tích được lưu trữ ở các điểm đó tràn qua các điểm gần kề. Có thể ngăn chặn việc này bằng cách điều khiển sự chiếu sáng, nhưng các yếu tố khác như khuyết tật sản xuất, các hiệu ứng nhiệt và lượng tử và ồn lượng tử hoá là gắn liền với quá trình tạo ảnh 2.2.2 Những khái niệm cơ sở về xử lý ảnh Ảnh phẳng là ảnh một thị kính một vật kính (monocular) được tạo bởi hệ thống như camera lỗ (pinhole camera). Trong đó ảnh được tạo bởi phép chiếu các điểm trên vật thể tới mặt phẳng ảnh qua 1 lỗ. ảnh phẳng không cho các thông tin về độ sâu của các điểm trên vật thể trong không gian 3 chiều. Ảnh nổi là ảnh hai thị kính hai vật kính (binocular) được tạo bởi hệ thống có hai điểm nhìn. Hệ thống này có các ống kính không đồng quy mà được sắp đặt song song nhìn ra điểm vô cực theo hướng z nào đó. Thông tin độ sâu của một điểm được giải mã bởi các vị trí khác nhau của điểm đó trong hai mặt phẳng ảnh. Tín hiệu điện của một ảnh trong thực tế thường là liên tục về không gian và cường độ sáng. Khi được số hoá, các tín hiệu này được rời rạc hoá thông qua quá trình lấy mẫu và lượng tử hoá thành phần độ sáng. Mặc dù các mẫu không gian có thể được đại diện cho các điểm nhưng sẽ thực tế hơn khi coi các mẫu này như các mẫu ảnh có kích thước hữu hạn và có mức xám không đổi trong toàn mẫu. Những mẫu ảnh này gọi là các pixel (picture element) và ảnh trở thành ảnh số gồm một tập hợp các pixel. Trong thị giác máy tính, thường coi một pixel cần khảo sát ở trung tâm có hình chữ nhật thì có 4 pixel hoặc 8 pixel lân cận như mô tả trên hình 2.3. Thường biểu diễn trực tiếp các số đo mức xám của các pixel như hình 2.3c. Ảnh số được biểu diễn toán học bằng một hàm ảnh (image function). Nói chung nó là một hàm vectơ với m hướng. Hầu hết các ảnh được biểu diễn bằng hàm của 2 biến không gian f(x) = f(x,y), trong đó f(x,y) là độ sáng của mức xám ảnh tại toạ độ (x,y) của các pixel. Mức xám (gray level) là kết quả của sự mã hoá tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị số. Thông thường ảnh đơn sắc thường được mã hoá bằng 8 bit tương ứng sẽ có 256 mức xám (từ 0 đến 255). 15 7 3 9 16 18 2 20 98 (b) (a) c) (c) Hình 2.3: Pixel trung tâm và 4 pixel lân cận (a) và 8 pixel lân cận (b). Một ảnh đa phổ f là một hàm vectơ với các thành phần (f1, f2, ..., fn). Một ảnh đa phổ đặc biệt là ảnh màu trong đó các thành phần đo các giá trị độ sáng của mỗi một trong 3 bước sóng, đó là: f(x) = (2.2) Với trường hợp ảnh ba chiều 3-D, x = (x,y,z). Thường giá trị của f được lưu trữ trên 1 bit (với ảnh đen trắng), 8 bit (ảnh đa mức xám) hay 16, 24 hay 32 bit (ảnh giả màu, màu thật, ...). Vậy trong một ảnh thường có nhiều điểm ảnh mà mỗi điểm ảnh thường có thể là là 1 bit hay cũng cú thể là một ma trận 8 bit hay 24 bit. Hình 2.4: Sự phân bố dữ liệu RGB. Từ hình 2.4 trên ta thấy với định dạng RGB mỗi điểm ảnh có 24 bit: Trong đó 8 bit là R, 8 bit G, 8 bit B. Tổng quát không gian biểu diễn phân bố điểm ảnh của RGB được trên hình trên. Đây chính là biểu diễn về sự phân bố của không gian màu RGB, từ hình trên ta thấy mỗi điểm ảnh bao gồm 3 màu R,G,B mỗi màu mang giá trị 8 bít vậy một điểm ảnh bao gồm 24 bit. Mà trong một ảnh thì lại có nhiều điểm ảnh. 2.2.3 Không gian màu. Mọi vật mà chúng ta quan sát được là nhờ ánh sáng. Bề mặt của các vật đó là sáng hay tối có hai nguyên nhân chính: năng xuất phản xạ của nó và số lượng ánh sáng mà chúng ta nhận được từ nguồn. Có hai loại nguồn sáng. Loại thứ nhất tự nó phát ra ánh sáng gọi là nguồn sơ cấp (mặt trời, đèn điện..). Loại thứ hai là chỉ phản xạ hay khuyếch tán ánh sáng mà nó nhận được từ các nguồn sáng khác nhau gọi là nguồn sáng thứ cấp (như mặt trăng, đồ vật..). Hình 2.5: Các loại sóng điện từ (trên) và dải ánh sáng được phóng to (dưới). Ánh sáng khác với sóng điện từ khác là mắt người nhận biết được nó. Mắt người nhậy cảm với sóng điện từ trong dải của bước sóng l trong khoảng từ 350nm đến 750nm. Hình 2.5 trên biểu diễn các loại sóng điện từ theo bước sóng và dải nhìn thấy được. Cảm nhận màu có được do 3 loại tế bào hình chóp trong võng mạc mắt người. Mỗi tế bào nhậy cảm với một dải phổ nhất định tương ứng với các màu đỏ,xanh lục và xanh dương. Nguồn sáng có thành phần phổ f(l) được biến đổi bởi bề mặt phản xạ của vật thể. Giả sử r(l) là hàm phản xạ này. Khi đó số đo R được tạo bởi tế bào màu đỏ sẽ là: . (2.3) Tức là tín hiệu hình ảnh trên các lối ra của sensor(tế bào). Trong thực tế chính bằng tích phân của 3 thành phần phụ thuộc vào bước sóng khác nhau: nguồn sáng f, phản xạ bề mặt của vật r và đặc tính sensor hR Vậy mọi màu sắc tự nhiên đều được tổ hợp từ 3 màu cơ bản: đỏ R(red), xanh G(green) và xanh dương B(blue). Người ta cũng đã quy định 3 màu cơ bản ứng với các bước sóng 700 nm(R), bước sóng 546,8 nm(G), và 435,8 nm (B) Có 3 thuộc tính chủ yếu trong cảm nhận màu: brightness còn gọi là độ chói. hue còn gọi là sác thái. Saturation là độ bão hòa màu. Với nguồn sáng đơn sắc thì sắc lượng tương ứng với bước sóng ánh sáng nguồn. Độ bão hòa thay đổi nhanh nếu lượng ánh sáng trắng được thêm vào. Mô hình không gian màu. Là phương pháp diễn giải các đặc tính và tác động của màu trong ngữ cảch nhất định. Song không có mô hình màu nào là đầy đủ cho mọi việc được ví dụ như không gian màu RGB ứng dụng cho màn hình, TV và không gian màu HSV dùng cho nhận nhức của con người ngoài ra còn có không gian màu CMYK dùng cho máy in. Tổ chức quốc tế về chuẩn hoá màu CIE(Commision Internationale d'Eclairage) đưa ra một số các chuẩn để biểu diễn màu. Các hệ này có các chuẩn riêng. ở đây chỉ đề cập đến chuẩn màu CIE-RGB (hệ toạ độ dùng 3 màu cơ bản). Như đã nêu trên, một màu là tổ hợp của các màu cơ bản theo một tỉ lệ nào đấy. Như vậy, một pixel ảnh màu kí hiệu Px được viết: Px = (2.4) Người ta dùng hệ toạ độ ba màu R-G-B(tương ứng với hệ toạ độ x-y-z) để biểu diễn màu như sau: Do vậy ta có không gian màu RGB như hình vẽ dưới đây: Hình 2.6: Mô hình không gian màu RGB Trong cách biểu diễn này ta có công thức: R + G + B =1. Công thức này gọi là công thức Maxell. Mô hình không gian màu HSV. Thay vì chọn phần tử RGB để có màu mong muốn, người ta chọn các tham số màu:Hue,Saturation và Value. Mô hình không gian màu HSV có thể suy diễn từ mô hình RGB. Trong đó Hue: Bước sóng của ánh sáng. Value: Cường độ hay là độ chói ánh sáng. Saturation: Thước đo độ tinh khiết của ánh sáng. Hình 2.7 a: mô hình không gian màu HSV. Hình 2.7 b:Mô hình không gian màu HSV. Ngoài ra còn có một vài không gian màu khác mỗi không gian màu đều có những ứng dụng riêng. Tuy thuộc vào tính chất công việc mình làm gì mà ta chọn sủ dụng không gian màu đó. Giả sử như để nhận dạng màu thì thường hay dùng không gian màu HSV. Vì không gian màu HSV này phù hợp với nhận nhức của con người nên nó rất phù hợp cho nhận dạng màu sắc. 2.2.4 Những định dạng của ảnh. Ảnh thu nhận được sau quá trình số hóa thường được lưu lại cho các quá trình xử lý tiếp theo hay truyền đi. Trong quá trình truyền của kỹ thuật xử lý ảnh, tồn tại nhiều định dạng khác nhau từ ảnh đen trắng như định dạng IMG, ảnh đa cấp xám cho đến ảnh màu (BMP,JPEG,GIF). tùy thuộc định dạng khác nhau. Nhưng chúng đều tuân theo một cấu trúc chung nhất. Nhìn chung một tệp ảnh bất ký thường bao gồm các phần sau: Header: Là phần chứa các thông tin về kiểu ảnh, kích thước, độ phân giải, số bit dùng cho 1 pixel, cách mã hóa, vị trí bảng màu. Data Compression: Số liệu ảnh được mã hóa bởi kiểu mã hóa chỉ ra trong phần Header. Palette Color: Palette Color(bảng màu) không nhất thiết phải có ví dụ ảnh đen trắng. Nếu có bảng màu được sử dụng để hiển thị màu của ảnh. Một số các định dạng khác, cấu hình, đặc trưng của từng định dạng và các tham số. Header Data Compression Palette Color Hình 2.8: Cấu trúc chung của định dạng ảnh. Chương 3 ỨNG DỤNG XỬ LÝ ẢNH TRONG HỆ THỐNG MÁY PHÂN LOẠI MÀU SẮC 3.1 Nguyên tắc hoạt động của hệ thống phân loại cà phê theo màu sắc. Hình 3.1 là một mẫu cà phê còn lẫn các hạt xấu cần phải loại bỏ. Hạt tốt là các hạt có màu nâu đen, các hạt màu đỏ hoặc màu vàng là các hạt xấu cần loại bỏ. Mẫu ảnh này được chụp từ máy ảnh thương mại thường và có định dạng BITMAP. Hình 3.1: Ảnh mẫu hạt cà phê. Phương pháp truyền thống để phân biệt hạt cà phê xấu là dùng mắt thường và tay nhặt loại bỏ các hạt xấu. Phương pháp sàng được dùng để loại bỏ các hạt có kích thước không phù hợp hoặc các mảnh vỡ của hạt. Nhược điểm của phương pháp truyền thống là năng xuất thấp không phù hợp với khối lượng sản phẩm lớn và cách xác định hạt xấu mang tính chủ quan của từng công nhân. Trong thời gian gần đây, phương pháp dùng phần mềm để phân biệt màu sắc rất được ưa chuộng trong các máy phân tách cà phê cũng như nhiều loại sản phẩm nông nghiệp khác. Phương pháp này cho năng xuất rất cao, độ chính xác và đồng nhất của sản phẩm cao. Có nhiều phương pháp sử dụng phần mềm để xác định hạt cà phê xấu như: xác định hạt xấu thông qua biên, thông qua phân biệt màu sắc….. Phương pháp nhận dạng cà phê hạt xấu của IMI: Sơ đồ dưới đây mô tả chi tiết các bộ phận của một máy phân biệt cà phê hạt của IMI: Hình 3.2: Sơ đồ nguyên lý và bố trí các cụm thiết bị của máy OPSOTEC 5.0XX (foreground) và nền (background) tương đương màu hạt tốt bằng nguồn sáng phản xạ. Từ hình 3.2 trên ta thấy được nguyên tắc xử lý và tách cà phê hạt xấu ra ngoài. Chi tiết của quá trình này được thực hiện như sau: Các camera thu thập dữ liệu ảnh từng dòng quét một cách liên tục. Đây là bước quan trọng hàng đầu để đảm bảo nhận dạng đủ tín hiệu của từng hạt. Trong trường hợp lý tưởng, với dòng hạt một lớp (hạt không che nhau) chuyển động với tốc độ đều, quét bởi camera được chọn tần số quét thích hợp, ta sẽ thu thập được toàn bộ tín hiệu của mọi hạt. Sau bước này, chúng ta thu được dữ liệu ảnh được chứa trong bộ đệm. Bộ xử lý dữ liệu phân tích, xác định hạt và màu vào nhóm cần loại bỏ hay không căn cứ vào màu hạt rơi vào dải màu nào: đen, nâu,hay nền …Sau khi đã xác định được hạt xấu bước tiếp theo dùng phương pháp tách biên để tách hạt cà phê xấu ra khỏi nền. Tách biên mục đích để tìm trọng tâm của hạt xấu. Sau khi đã biết được trọng tâm của hạt cà phê xấu ta có thể dùng súng thổi để thổi hạt cà phê xấu ra ngoài. Trước tiên sử dụng bộ lọc trung bình để lọc bớt nhiễu. Sau đó mới dùng thuật toán dò biên để tìm ra được trọng tâm của hạt xấu. Sau đây là lưu đồ của thuật toán nhận dạng của IMI: Bắt đầu. Dò phát hiện biên theo phương pháp Gradient & đánh dấu biên. Xử lý tách hạt ra khỏi nền. Lọc nhiễu loại bỏ các pixel bất thường. Nhận dạng ra quyết định phân loại. Kết thúc. Hình 3.3: Lưu đồ của thuật toán nhận dạng của IMI. Từ lưu đồ thuật toán trên ta thấy bước xác định biên để từ đó tìm ra được vị trí của hạt xấu là bước quan trọng nhất cửa IMI làm thế nào để tìm ra được vị trí của hạt xấu một cách nhanh nhất. Họ chưa quan tâm đúng mức đến việc việc làm sao để chọn được các hạt xấu vì với thuật toán của IMI thì nhiều trường hợp khó phát hiện ra được hạt xấu. Phương pháp sử dụng nhận dạng cà phê hạt bằng màu sắc: bài toán này có đối tượng cụ thể với dải màu hạt xấu và đặt cho trước. Vấn đề chủ yếu của bài toán phân biệt màu hạt cà phê là phải đối phó với độ chiếu sáng vào hạt cà phê. Đây cũng chính là vấn đề chính để ta có thể phân biệt được hạt cà phê xấu. Dưới đây là sơ đồ chung cho quá trình hoạt động của hệ thống phân biệt màu hạt cà phê. Tọa độ hạt xấu xấu Đầu vào Bộ lọc trung bình Bộ chuyển đổi RGB->HSV. Phân ngưỡng Lọc nhiễu. Quyết định vị trí hạt xấu Hình 3.4: Sơ đồ hoạt động của hệ thống cà phê colour sorter. Để hệ thống này làm việc đạt được hiệu quả cao tức là phát hiện được vị trí hạt xấu nhanh nhất và chính xác bài toán này là xử lý từng khung (Frame ),tức là chia một ảnh mà ta chụp được thành các frame nhỏ. Sau khi xử lý hết frame này thì chuyển sang frame tiếp theo trình tự theo dòng chảy của hạt cà phê. Nếu phát hiện hạt xấu thì xác định vị trí của hạt xấu ở frame đó. Ngoài ra để nâng cao thêm tốc độ xử lý ảnh thì cần phải xử lý song song. Tức là khi ta vừa tiến hành thu nhận dữ liệu ảnh đồng thời ta cũng tiến hành xử lý dữ liệu ảnh. Nội dung cửa phương pháp này được minh họa trong hình vẽ dưới đây. Giả sử ảnh ta chia ảnh làm N frames thì thứ tự xử lý các frames theo chiều hướng sau: Thu nhận Frame 1 Thu nhận Frame 2 Thu nhận Frame 3 Thu nhận Frame 4 ………….. Thu nhận Frame N Xử lý Frame 1 Xử lý Frame 2 Xử lý Frame 3 Xử lý Frame 4 ………………… Hình 3.5: Chiều xử lý từng frame của một ảnh. Mục đích cuối cùng của hệ thống này là tìm được vị trí của hạt cà phê xấu trong từng frame. Ảnh mẫu trong bài toán này có định dạng BITMAP và có không gian màu chuẩn RGB. Vì các ảnh mẫu mà chúng ta nhận được thường bị ảnh hưởng bởi nhiễu, do vậy trước tiên khi thu nhận ảnh thì ta phải lọc bớt nhiễu, để nhiễu không ảnh hưởng nhiều đến quá trình xử lý ảnh. Có nhiều phương pháp được sử dụng để lọc nhiễu như lọc thông thấp, lọc trung bình và lọc trung vị…..trong phần này tôi xin nêu ra phương pháp dùng bộ lọc trung bình. 3.1.1 Lọc trung bình. Ảnh thu nhận được thường có hai nguồn nhiễu chính đó là: Nhiễu muối tiêu và nhiễu cuộn. Nhiễu muối tiêu xuất hiện khi một hình ảnh được mã hóa và truyền qua một kênh có nhiễu hoặc ồn điện tử. Nhiễu cuộn là nhiễu do thấu kính không hội tụ, sự chuyển động, hoặc sự nhiễu loạn khí quyển trong những điều kiện thời tiết bất lợi. Cả hai nguồn nhiễu này phân bố ở các thành phần tần số cao, như giữa các điểm có độ xám khác biệt nhiều với điểm xung quanh có thể coi đó là một xung của tần số cao. Để loại đi các loại nhiễu trong trường hợp bộ lọc trung bình dược sử dụng. Sau khi cho ảnh qua bộ lọc trung bình thì ảnh đã được lọc đi một phần nhiễu. Bước tiếp theo của quá trình xử lý ảnh trong hệ thống này là chuyển đổi không gian màu sao cho phù hợp với thị giác của con người giúp cho chương trình có thể phân biệt màu sắc một cách tốt nhất. Dưới đây là bộ chuyển đổi không gian màu từ RGB sang HSV. 3.1.2 Bộ chuyển đổi RGB sang HSV. Ảnh mà thu nhận về thường là ảnh BITMAP và có không gian chuẩn RGB, nhưng không gian màu RGB không phù hợp cho việc nhận dạng màu sắc vì không gian màu RGB không phù hợp với thị giác của con người. Để khắc phục điều trên thì ta dùng một không gian HSV (hue, saturation and value), không gian màu này thu được từ không gian RGB. dựa vào không gian màu HSV ảnh sẽ được phân ngưỡng cho ảnh để tìm các hạt xấu. 3.1.3 Phân ngưỡng. Để xác định vị trí của hạt cà phê xấu yêu cầu phân ngưỡng cho ảnh dựa trên không gian màu HSV. Đây là bước tìm ngưỡng hạt xấu. Các hạt vượt qua ngưỡng này được đánh dấu bằng màu trắng, tất cả các điểm còn lại đánh dấu bằng màu đen. Do vậy, sau quá trình tìm ngưỡng chúng ta thu được ảnh nhị phân chỉ với hai mức đen và trắng. Các ảnh nhị phân này thường bị ảnh hưởng bởi nhiễu nên yêu cầu thực hiện lọc nhiễu sau khi phân ngưỡng. 3.1.4 Lọc nhiễu. Lọc nhiễu ở đây là tìm các đối tượng nhỏ mà được coi không phải là hạt xấu. Đó chỉ là nhiễu mắc phải. Vậy nên chúng ta phải loại bỏ nhiễu này để tránh nhầm lẫn với các hạt xấu. Sau quá trình phân ngưỡng cho ảnh về bản chất, ảnh lúc này chỉ là ảnh nhị phân. Do ảnh gốc ban có nhiễu dù đã được lọc đi từ bước trước, song nhiễu vẫn còn hoặc nhiễu do ảnh hưởng của độ không đồng nhất màu trong chính một hạt cà phê. Đây là nguyên nhân chính gây nên nhiễu ảnh hưởng đến quá trình xác định vị trí hạt cà phê xấu. 3.1.5 Quyết định vị trí hạt xấu. Sau khi đã lọc nhiễu việc quan trọng là xác được vị trí của những hạt cà phê xấu. Mục đích chính là xác định được trọng tâm của hạt xấu đó. Thuật toán ở phần sau sẽ thể hiện cách xác định trọng tâm của hạt cà phê xấu. 3.2 Cài đặt thuật toán. 3.2.1 Bộ lọc trung bình. Đầu vào (RGB) Đầu ra (RGB) Bộ lọc trung bình Hình 3.6: Sơ đồ hoạt động của bộ lọc trung bình. Bộ lọc trung bình là bộ lọc mà mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận. Để thực hiện được bộ lọc trung bình này phải dựa trên phép xử lý vùng ảnh. Phép xử lý vùng ảnh sử dụng những pixel lân cận nhau của ảnh đầu vào I(i,j) để tạo ra một pixel của ảnh đầu ra . Phép xử lý vùng ảnh chủ yếu dựa trên phép nhân chập. Phương trình biểu diễn toán học của phép toán nhân chập được áp dụng để tính bộ lọc trung bình ảnh I(i, j) với mặt nạ: . (3.1) trong đó:W(k,l) là mặt nạ nhân chập và là ma trận vuông (2r+1)*(2r+1), N là số phần tử trong mặt nạ. Với mỗi pixel I(i, j) tương ứng ta có thể suy ra được pixel tương ứng. Ở đây ta xét mặt nạ 3x3 khi đó ta có lân cận của I(i, j) là từ I1 tới I8.Và trọng số mặt nạ từ w0 đến w8 tức là có 9 phần tử khi đó ta có N=9 Hình sau đây mô tả việc thực hiện phép toán trên. M0 M1 M2 M3 M4 M5 M5 M6 M7 ´ mặt nạ nhân chập ảnh đầu vào I0´M0 I1´M1 I2´M2 I3´M3 I4´M4 I5´M5 I6´M6 I7´M7 I’(i,j)=I’(i, j)/9 + ảnh đầu ra I0 I1 I2 I3 I I5 I6 I7 I8 của sổ nhân chập Hình 3.7: Sơ đồ mô tả thuật toán bộ lọc trung bình. Dưới đây là thuật toán tổng quát để tính bộ lọc trên : for i=1 to HEGHT for j=1 to WIDTH sum=0; for k=-r to r for l=-r to r Col=i-k;Row=j-l if ((Col>0) and (Col <M)) then if( (Row>0) and (Row <N)) then sum= sum + I[Col,Row] * H[k,l]; (3.2) I’[i,j]= *Sum (3.3) I’(i, j): là đầu ra của ảnh sau khi cho qua bộ lọc trung bình. I(i, j):là ảnh đầu vào trước khi đưa vào bộ lọc trung bình. H(k,l) :là mặt nạ của bộ lọc trung bình. HEIGHT: là chiều dài của ảnh. WIDTH: là chiều rộng của ảnh. Bộ lọc trung bình có trọng số chính là thực hiện chập ảnh đầu vào với mặt nạ. Mặt nạ H trong trường hợp này có kích thước 3x3 là: (3.4) (3.5 Code của chương trình này là. for (i = 1; i < height-1; i++) for (j = 1; j < width-1; j++) { psrc[i* bytewidth+3*j+1]= (pdest[(i-1)* bytewidth+3*(j-1)+1]+ pdest[(i-1)* bytewidth+3*j+1]+ pdest[(i-1)* bytewidth+3*(j+1)+1]+ pdest[i* bytewidth+3*(j-1)+1]+ pdest[i* bytewidth+3*j+1]+ pdest[i* bytewidth+3*(j+1)+1] + pdest[(i+1)* bytewidth+3*(j-1)+1]+ pdest[(i+1)* bytewidth+3*j+1]+ pdest[(i+1)* bytewidth+3*(j+1)+1])/9; } Kết quả của phép toàn này được cho ra kết quả dưới hình 3.8(a) là ảnh đầu vào còn hình 3.8(b) là ảnh ra khỏi bộ lọc trung bình được thể hiện như dưới hình sau đây: a) b) Hình 3.8: a: Ảnh RGB gốc b:Ảnh RGB đã qua lọc. Từ hình trên ta thấy ảnh đã lọc đi được một phần nhiễu so với ảnh đầu vào trước khi chưa cho qua bộ lọc trung bình. 3.2.2 Chuyển đổi không gian màu từ RGB sang HSV. Việc chuyển đổi không gian màu từ RGB sang HSV là hoàn toàn cần thiết cho việc nhận biết màu sắc. Bởi vì không gian màu HSV là không gian màu phù hợp với mắt người. Ta có sơ đồ chuyển đổi không gian màu là. Đầu vào (RGB) Đầu ra (HSV) Bộ chuyển đổi RGB ->HSV Hình 3.9: Sơ đồ bộ chuyển đổi RGB sang HSV. Đối với mới điểm ảnh đều được biểu diễn bằng ba màu cơ bản RGB. Từ đầu vào là không gian màu RGB ta có để tìm không gian màu của HSV như sau: B1: tìm giá trị max, min của (R,G,B) tương ứng với từng điểm ảnh một. Nếu max(R,G,B)=min(R,G,B) thì S=H=0. Ngược lại thì thực hiện B2 ,B3 sau đây. B2: gán giá trị của V là: V=max(R,G,B) (3.6) B3:gắn giá trị của S là: (3.7) B4: tìm H trong các trường hợp sau: Nếu :max(R,G,B)=R. Và nếu G>=B thì (3.8) Ngược lại G<B thì (3.9) Nếu :max(R,G,B)=G thì (3.10) Nếu :max(R,G,B)=B thì (3.11) Code của chương trình này là. minRGB=min3(R,G,B); maxRGB=max3(R,G,B); if(maxRGB==minRGB) { S=H=0; V=maxRGB=minRGB; } else { V=maxRGB; S=(maxRGB-minRGB)*255/maxRGB; if (maxRGB==R if (G>=B) { H= ((G-B)*60/S); } else { H=360+((G-B)*60/S); } } else if((maxRGB==G)) { H=120+(G-B)*60/S; } else { H=(240+((R-G)*60)/S); } Kết quả của chương trình bộ chuyển đổi RGB sang HSV với nguồn ảnh đầu vào là ảnh ở hình 3.8(b) ( ảnh đã ra khỏi bộ lọc trung bình ) được thể hiện ở hình vẽ dưới đây. Hình 3.10: Ảnh khi được chuyển đổi sang HSV. Từ hình 3.10 ta thấy ảnh đã được chuyển từ không gian màu RGB sang HSV. 3.2.3 Phân ngưỡng. Đầu vào Đầu ra Phân ngưỡng Hình 3.11: Sơ đồ bộ phân ngưỡng. Như đã giới thiệu ở phần trên ảnh cà phê thu được thường có chứa hạt cà phê xấu, tốt và background gọi chung là object và background. Nếu ảnh cà phê thu được chỉ đơn thuần không chịu tác động bởi cường độ chiếu sáng. Thì khi đó chúng ta hoàn hoàn toàn đơn giản trong việc tách ngưỡng. Lúc đó để tách ngưỡng ta chỉ quan tâm đến màu của hạt xấu. Vì mẫu vật xấu đều đã biết được cho nên ta đã biết được màu của hạt xấu nằm trong dải màu nào từ đó ta gắn cố định dải màu đó. Dựa vào đó chúng ta có thể tách được hạt xấu trong ảnh mà ta thu được. Do vậy, ta phải xây dựng một thư viện để xác định các loại hạt xấu. Dựa vào thư viện này ta có thể xác định được hạt xấu xuất hiện trong ảnh. Song trong thực tế, ảnh mà chúng ta thu nhận được không chỉ đơn giản như vậy, ảnh thu nhận về còn bị ảnh hưởng bởi độ chiếu sáng. Do đó, nhiệm vụ quan trọng nhất là đối phó được với sự chiếu sáng. Như đã trình bày ở phần trên, chúng ta dùng không gian màu HSV để dễ dàng cho việc nhận dạng màu sắc. Ta đã biết đặc tính của không gian màu có đặc tính như sau: H là bước sóng của ánh sáng, V là cường độ ánh sáng, S là độ tinh khiết của ánh sáng gốc. Cho nên, để chọn ngưỡng cho ảnh thì ta dựa trên dải giá trị của H. Đó là dải mà ta coi nó là hạt xấu trong thư viện các hạt xấu mà ta đã đưa ra. Dải giá trị trong ngưỡng này là dựa trên các mẫu đã biết trước và được ta đưa vào không gian màu của HSV ở trên. Trong khi đó từ không gian màu HSV ta thấy nếu giá trị của V mà lớn thì tương ứng giá trị của S cũng lớn và ngược lại nếu giá trị của V mà nhỏ thì giá trị của S cũng nhỏ theo (vì bán kính của vòng tròn trong không gian màu phụ thuộc vào giá trị trục đứng của V trong không gian màu HSV). Do vậy, nếu giá trị của V bị thay đổi thì đống nghĩa với giá trị cường độ sáng cũng bị thay đổi và ngược lại. Cho nên, để chọn ngưỡng xử lý thì trước tiên ta phải chọn khoảng giá trị của H sau đó mới chọn khoảng giá trị của S bằng cách coi S là một hàm của V. Mặt khác V cũng là đại diện cho mức cường độ chiếu sáng của ảnh. Dưới đây là miêu tả thuật toán phân ngưỡng cho ảnh: Các bước để xác định ngưỡng của hạt cà phê như sau: Xác định khoảng giá trị của H mà chúng ta coi dải màu đó là dải màu của hạt xấu. Tìm giá trị lớn nhất và nhỏ nhất của V. Chọn S là một hàm mà V lại là một biến của hàm S. Cụ thể S được chọn như sau: S > (maxV-minV)*H; Với H là hệ số mà chúng ta phải tìm ra được cho phù hợp để nếu có bị chiếu sáng ảnh hưởng đến hạt cà phê thì nó cũng không gây ảnh hưởng nhiều đến kết quả của việc phân loại hạt cà phê. Nếu dải hạt màu cà phê mà nằm trong dải màu như đã nếu trên thì ta coi đó là dải hạt xấu và quyết định nó có màu trắng, còn ngược lại nó sẽ có màu đen. Do vây, sau quá trình phân ngưỡng thì ảnh sau xử lý ảnh hạt cà phê thực chất chỉ là ảnh nhị phân. Cho giá trị của V nằm trong khoảng: minV <V< maxV. Sau bước này chúng ta phân ngưỡng được khoảng giá trị của hạt cà phê. Song ảnh sau khi thu được từ bước xử lý trên thì nhiễu có thể vẫn còn tồn tại trong ảnh. Để loại bỏ triệt để nhiễu chúng ta phải thực hiện bước lọc tiếp theo: code của chương trình này là. for(i=0; i < height; i++) for(j=0; j < width; j++) { if(psrc[i*bytewidth+3*j]>maxv) maxv=psrc[i*bytewidth+3*j]; } for(i=0; i < height; i++) for(j=0; j < width; j++) { if(psrc[i*bytewidth+3*j]<minv) minv=psrc[i*bytewidth+3*j]; } s=(maxv-minv)*205/255; h>minv; h<maxv; Kết quả của phép toán phân ngưỡng với ảnh đầu vào là ảnh ở hình 3.10 (ảnh đã được chuyển đổi thành HSV) được thể hiện ở hình vẽ sau: Hình 3.12: Ảnh khi đã được phân ngưỡng. Từ hình 3.12 trên ta thấy ảnh thu nhận được sau khi phân ngưỡng bao gồm cả hạt xấu và nhiễu. Nhiễu là các đối tượng nhỏ còn các hạt xấu mà ta quan tâm là các đối tượng lớn. 3.2.4 Lọc nhiễu. Đầu vào Đầu ra Lọc nhiễu Hình 3.13: Sơ đồ bộ lọc nhiễu. Thuật toán lọc nhiễu được dùng trong quá trình xử lý này còn được gọi là Mophologyclose. Thuật toán này dựa trên hai phép “dãn” và “co”. Các bước xác định thuật toán lọc nhiễu Mophologyclose sẽ được chỉ ra dưới đây: Để hiểu được thuật toán này trước tiên ta phải hiểu được phương pháp lập bảng tìm kiếm: Mỗi pixel và 8 pixel lân cận của nó trong ảnh nhị phân có thể được biểu diễn một cách đầy đủ bởi một số nguyên dương 9 bit được thể hiện như hình sau: Hình 3.14: Phương pháp lập bảng tìm kiếm. B1: Thực hiện phép co ảnh : Dựa vào phương pháp lập bảng tìm kiếm ta có được cách thực hiện sau. Từ pixel cũ X và lân cận của nó ta có thể suy ra được một pixel mới Y như sau: (3.12) B2: Thực hiện phép dãn ảnh: Cũng tương tự như phép co ảnh phép dãn ảnh cũng dựa vào bảng tìm kiếm ta có thể suy ra được pixel mới Y từ pixel cũ X và lân cận của nó như sau: (3.13) Trong thuật toán Mophologyclose thì ảnh được tạo ra từ phép co ảnh rồi sau đó mới đến phép dãn ảnh. Số lượng các bước co ảnh phải bằng với số lượng các bước dãn ảnh. Qua thuật toán Mophologyclose đối tượng nhỏ bị mất hoàn toàn. các cấu trúc gờ cạch của đối tượng lõm cũng được san bằng. Các đối tượng ảnh sẽ thay đổi theo một cách không thuận nghịch. Song ảnh sau khi qua thuật toán Mophologyclose thì ảnh thường bị bé đi hay bị lõm. Do vậy ta nên thực hiện một thuật toán làm sao lấp đầy các đối tượng bị lõm. Đó chính là thuật toán Mophologyopen. Thuật toán này chính là ngược so với thuận toán Mophologyclose. Thuât toán Mophologyopen được thực hiện bằng phép dãn ảnh, sau đó mới đến phép co ảnh, số lượng các phép dãn ảnh phải bằng số lượng các phép co ảnh. Thuật toán này có tác dụng các đối tượng nằm sát nhau cùng lớn lên, còn lỗ trống trong các đối tượng được khép kín lại và cấu trúc lõm ở mép đối tượng được làm đầy. Code cho thuật toán Mophologyclose này là // co for(iter=0; iter<num_iterations; iter++) { for(i=1; i<height-1; i++) for(j=1; j<width-1; j++) { temp = i*width+j; if((input[temp]==255)&&getNeighbor(input,temp,wid th,true)) output[temp]=0; } memcpy(input,output,size); } // gian for(iter=0; iter<num_iterations; iter++) { for(i=1; i<height-1; i++) for(j=1; j<width-1; j++) { temp = i*width+j;// if((input[temp]==0)&&getNeighbor(input,temp,width, false)) output[temp]=255; } memcpy(input,output,size); } Code cho thuật toán Mophologyopen này là : // gian for(iter=0; iter<num_iterations; iter++) { for(i=1; i<height-1; i++) for(j=1; j<width-1; j++) { temp = i*width+j; if((input[temp]=0)&&getNeighbor(input,temp,width, false)) output[temp]=255; } memcpy(input,output,size); } // co for(iter=0; iter<num_iterations; iter++) { for(i=1; i<height-1; i++) for(j=1; j<width-1; j++) { temp = i*width+j; if((input[temp]=255)&&getNeighbor(input,temp,width, true)) output[temp]=0; } memcpy(input,output,size); } Bool CBitmapReaderDoc::getNeighbor(unsigned char *input, unsigned int index, int width, BOOL type) { // co if (type) { if (input[index+1]==0)return true; if (input[index-1]==0)return true; if (input[index-width]==0)return true; if (input[index-width+1]==0)return true; if(input[index-width-1]==0)return true; if(input[index+width]==0)return true; if(input[index+width+1]==0)return true; if(input[index+width-1]==0)return true; } // gian else { if (input[index+1]==255) return true; if (input[index-1]==255) return true; if (input[index-width]==255) return true; if(input[index-width+1]==255)return true; if(input[index-width-1]==255)return true; if (input[index+width]==255)return true; if(input[index+width+1]==255)return true; if(input[index+width-1]==255)return true; } return false; Kết quả của chương trình lọc nhiễu này với ảnh đầu vào là ảnh ở hình 3.12 (ảnh đã được phân ngưỡng) được thể hiện ở hình dưới đây: a) b) Hình 3.15: a: Ảnh sau khi được lọc nhiễu bởi thuật toán morpholoryclose b: Ảnh sau khi đã được qua lọc bởi thuật toán morpholoryopen. Từ hình 3.15(a) ta thấy ảnh đã được lọc đi các đối tượng nhỏ, bằng cách ta so sánh ảnh ở hình 3.12 là ảnh chưa được lọc đi các đối tượng nhỏ và hình 3.15(a) là ảnh đã lọc đi được các đối tượng nhiễu đó. Do khi dùng thuật toán mopholoryclose thì các đối tượng nhỏ sẽ bị biến mất hoàn toàn còn các đối tượng lớn (các hạt xấu) bị nhỏ đi. Do vậy, ta phải thực hiện một thuật toán làm lớn các đối tượng xấu và lấp đầy lỗ trỗng cửa hạt xấu do quá trình phân ngưỡng gây ra. Bằng cách thực hiện thuật toán mophologyopen. Chúng được thể hiện bởi hình 3.15(b) trên. 3.2.5 Quyết định vị trí hạt xấu. Đầu vào Đầu ra Quyết định vị trí hạt xấu Hình 3.16: Sơ đồ bộ quyết định hạt xấu. Sau khi lấy ngưỡng ảnh lúc này chỉ còn hai mức đen và trắng, mức trắng là mức mà ta coi đó là mức của hạt xấu, còn mức đen là mức mà là mức của hạt không không phải là xấu. Để tìm được trọng tâm của hạt xấu thì ta dựa vào thuật toán đệ quy là chủ yếu. Thuật toán này được trình bày như sau: Thuật toán này chủ yếu dựa vào phép đệ quy để tìm được vị trí thuộc đối tượng xấu. Đầu tiên trong quá trình quét ảnh nếu tìm được pixel(i,j)=255; thì ta đánh dấu vị trí đó, sau đó dựa vào vị trí vừa đánh dấu đó tìm các lân cận gận nó xem có pixel nào cũng thuộc vật xấu nữa hay không. Nếu thuộc ta lại đánh dấu nó vào sau đó lại tìm pixel lân cận của nó. Cứ như vậy cho đến khi tìm được hết đối tượng xấu thì thôi. Khi đó dựa vào những tập hợp mà ta đã đánh dấu ta được một tập hợp các điểm thuộc vật xấu. Từ đó ta tính trung bình các các tập hợp đó ta sẽ tìm được trọng tâm của hạt cà phê xấu. Nội dung cụ thể của thuật toán này được trình bày cụ thể như sau: B 1: Trong chiều quét ảnh nếu gặp pixel(i,j)=255; đánh dấu vị trí pixel này lại và pixel(i,j)=0 nhấy vào B1.1. B 1.1: thiết lập hàm đệ quy mà nội dung của hàm này là: Đánh dấu vị trí hiện tại tức vị trí có pixel(i,j)=255; sau đó lưu giá trị tọa độ (i,j) . Tăng biến đếm mỗi khi được đánh dấu (area=area+1). B 1.2: Kiểm tra các lân cận của pixel vừa được đánh dấu. Nếu có pixel nào có giá trị =255 thì quay lại B 1.1 tức là gọi lại hàm đệ quy trên. Cứ như vậy sẽ kiểm tra hết tất cả các lân cận của những pixel vừa được đánh dấu cho đến khi nào không còn pixel lân cận của những pixel đã được đánh dấu =255 thì thôi. B 1.3: kiểm tra biến đếm area: Nếu area >=sizeobj: thì coi đó là một đối tượng và nhẩy đến B 1.4 Nếu area <sizeobj: coi đó không phải là đối tượng nhẩy đến B1.5 Với sizeobj: là số đã cho trước. B 1.4: Khi đến bước này thì chúng ta coi như là đã gặp được một đối tượng. Khi đó thể hiện bằng cách cho biến count đại diện cho biến đếm mỗi khi gặp được một đối tượng tức là count=count+1. Mặt khác khi đã tìm được một đối tượng xấu thi còn phải tìm trọng tâm của một đối tượng xấu đó. Trọng tâm=(Tổng tất cả các giá trị tọa độ mà đã đánh dấu được)/ (tổng tất cả các pixel có trong đối tượng đó). Sau bước này nhẩy đến B2. B 1.5: area=0; vì khi đó coi như đối tượng đang xét không phải là đối tượng vì nó quá nhỏ sau bước này nhẩy đến B 2: B2: Tiếp tục quét ảnh bằng cách tăng biến i,j để xem có gặp đối tượng xấu nữa hay không. Nếu trong toàn bộ quá trình quét ảnh mà không gặp đối tượng xấu thì thôi. Còn nếu có gặp đối tượng xấu thì lại lập lại các B1 như trên. Code của thuật toán này là: Void couting(int sizeobj,int height,int width) { for(i=1;i<height-1;i++) for(j=1;j<width-1;j++) { if(input[i*bytewidth+3*j+2]==255) { area = 0; input[i*bytewidth+3*j+2]=0; dequy(input,&area,i,j,point); if(area>sizeobj) double x=0.0,y=0.0; for(m=0;m<area;m++) { x+=(double)point[m].x; y+=(double)point[m].y; } x /= (double)area; y /= (double)area; ar[count] = area; count++; else area =0; } void dequy(int *count,int row,int col,POINT *point) { point[*count].x = row; point[*count].y = col; *count = *count +1; if(input[(row-1)*bytewidth+3*col+2]==255) { input[(row-1)*bytewidth+3*col+2]=0; dequy(input,count,(row-1), col, point); } if(input[(row-1)*bytewidth+3*(col-1)+2]==255) { input[(row-1)*bytewidth+3*(col-1)+2]=0; dequy(input,count,(row-1),(col-1) ,point); } if(input[(row-1)*bytewidth+3*(col+1)+2]==255) { input[(row-1)*bytewidth+3*(col+1)+2]=0; dequy(input,count,(row-1), col+1, point); } if(input[(row+1)*bytewidth+3*(col)+2]==255) { input[(row+1)*bytewidth+3*(col)+2]=0; dequy(input,count,(row+1), (col), point); } if(input[(row+1)*bytewidth+3*(col-1)+2]==255) { input[(row+1)*bytewidth+3*(col-1)+2]=0; dequy(input,count,(row+1), col-1, point); } if(input[(row+1)*bytewidth+3*(col+1)+2]==255) { input[(row+1)*bytewidth+3*(col+1)+2]=0; dequy(input,count,(row+1), col+1, point); } if(input[row*bytewidth+3*(col-1)+2]==255) { input[row*bytewidth+3*(col-1)+2]=0; dequy(input,count,(row), col-1, point); } if(input[row*bytewidth+3*(col+1)+2]==255) { input[row*bytewidth+3*(col+1)+2]=0; dequy(input,count,(row), col+1,point); } Hình dưới đây thể hiện việc xác định trọng tâm của hạt cà phê xấu với ảnh đầu vào là ảnh ở hình 3.15 (ảnh đã được lọc ) được thể hiện ở hình vẽ dưới đây. Hình 3.17: Xác định tâm của hạt xấu. Từ hình 3.17 trên ta thấy diện tích của vòng tròn là diện tích của mỗi hạt xấu. Tâm của các vòng tròn nhỏ bên trong mỗi hạt xấu chính là trọng tâm của hạt cà phê xấu. Vậy sau bước này ta đã thu được trọng tâm của một hạt xấu. Mục đích của việc tìm trọng tâm của hạt xấu đó là dựa vào trọng tâm đó ta có thể gửi tín hiệu đến một bộ phận xử lý để bộ phận xử lý gửi đến bộ phận thổi hạt xấu vừa xác định được đó. Dưới đây là một ví dụ về cơ cấu thổi hạt xấu ra ngoài máng chứa hạt phế phẩm. Hình 3.18: Cơ cấu dùng súng thổi hạt xấu khi biết trọng tâm của hạt xấu. 3.3 Nhận xét kết quả đạt được giữa hai hệ thống nhận dạng cà phê hạt bằng màu sắc của IMI và của ta thực hiện. Đối với thuật toán xử lý nhận dạng của IMI: Phương pháp dựa trên biên không cho hiệu quả cao do phương pháp tách biên rất khó tách được hạt cà phê xấu vì hạt cà phê xấu và tốt thường nằm sát nhau cho nên khó xác định được biên của từng hạt. Do vậy, việc tách cà phê hạt xấu dựa trên thuật toán tách biên là không được dễ, và cho hiệu quả không được cao vì thường phải loại bỏ cả hạt tốt quanh các hạt xấu đó. Ngoài ra, phương pháp của IMI chỉ dựa vào ảnh đơn sắc để tìm ra màu của hạt xấu, sau khi đã tìm ra được màu của hạt xấu thì đánh dấu vị trí của hạt xấu đó. Sau khi đã biết được hạt cà phê xấu bước tiếp theo chính là tìm biên của hạt cà phê xấu đó, để từ đó tìm ra được trọng tâm của hạt xấu. Tuy nhiên, thuật toán dựa vào biên để tìm ra trọng tâm của hạt xấu đơn giản không mất nhiều thời gian xử lý. Đây cũng là ưu điểm của thuật toán xử lý ảnh của IMI. Nhưng nhược điểm của thuật toán xử lý ảnh của IMI này là chỉ dựa vào màu đơn sắc để tìm hạt cà phê xấu. Vì nếu dùng màu đơn sắc để xác định hạt hỏng thì sẽ sẽ bỏ qua rất nhiều hạt cà phê có màu hỏng, như là hạt cà phê bị sâu bọ chỉ làm biến đổi màu sắc trên vỏ hạt cà phê. Từ đó dẫn đến việc vẫn để lọt cả hạt cà phê xấu lẫn vào hạt cà phê tốt. Dẫn đến ảnh hưởng chất lượng của hạt cà phê. Đối với phương pháp đề xuất trong khóa luận: Xác định hạt hỏng thông qua màu sắc do phần lớn các hạt hỏng có màu sắc khác so với các hạt tốt. Như đã phân tích ở phần trên nếu dùng máy phân biệt màu sắc thì ta hoàn toàn có thể xác định được hầu hết các loại hạt xấu hạt xấu, kể cả các hạt cà phê bị hỏng do bị sâu bọ. Nhưng nhược điểm của phương pháp này độ phức tạp của thuật toán và hệ quả là kéo dài thời gian tìm trọng tâm của hạt cà phê xấu. Để khắc phục được điều này thì nên sử dụng vi xử lý có tốc độ cao đáp ứng được tốc độ thực của xử lý ảnh trong hệ thống dây truyền phân loại cà phê hạt bằng mầu sắc. Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 4.1 Kết luận về thuật toán phân biệt màu sắc. Thuật toán phân biệt màu sắc trên được sử dụng cho kết quả tốt, đã phân biệt được hạt xấu một cách tự động. Hình vẽ dưới đây thể hiện được tính ưu việt của thuật toán phân ngưỡng tự động so với khi ta dùng ngưỡng cố định. a) b) Hình 4.1: a: Ảnh sử dụng ngưỡng cố định b: Ảnh đã qua lọc. Từ hình 4.1(a) và hình 4.1(b) ta thấy ảnh nếu dùng ngưỡng cố định sẽ không thể nào lọc được nhiễu mắc phải. a) b) Hình 4.2: a: Ảnh mà dùng ngưỡng tự động b: Ảnh đã qua lọc. Từ hình 4.2(a) và hình 4.2(b) ta thấy nếu dùng ngưỡng tự động thì ảnh hầu như đã được lọc nhiễu hoàn toàn. Từ hình 4.1 và 4.2 ta có thể thấy ngay được sự khác biệt giữa phân biệt màu dựa trên việc phân ngưỡng tự động và ngưỡng cố định. Khi thực hiện phân ngưỡng cố định thì không đối phó được với sự chiếu sáng vào ảnh. Nhưng khi sử dụng ngưỡng tự động thì đối phó được tương đối với sự chiếu sáng tác động đến ảnh. Qua đó ta thấy được ưu điểm cửa việc lấy ngưỡng tự động. 4.2 Một số hướng phát triển trong tương lai. Để tốc độ đạt nhanh nhất đáp ứng xử lý ảnh trong thời gian thực thì ta ta nên xử lý ảnh bằng chíp xử lý có tốc độ nhanh như chip DSP hoặc là cứng hóa thuật toán xử lý ảnh bằng FPGA hay ASIC. Phát triển phần mềm phù hợp với các yêu cầu cụ thể của các chip cụ thể. Đồng thời kết hợp thuật toán xử lý ảnh tìm trọng tâm hạt xấu và các mạch điều khiển trong hệ thống phân loại cà phê. Cứng hóa phần mềm xử lý ảnh và điều khiển là bước nghiên cứu trong tương lai của bài toán này. TÀI LIỆU THAM KHẢO Lương Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, NXB Khoa học và Kỹ thuật, Hà nội. Nguyễn Văn Ngọ (2001), Xử lý ảnh (trích dịch từ “Two-Dimensional Signal and Image Processing” của tác giả Jae S. Lim). Nguyễn Kim Sách (1997), Xử lý ảnh và video số, NXB Khoa học và Kỹ thuật, Hà nội. Ngô Diên Tập (1997), xử lý ảnh bằng máy tính, NXB Khoa học và Kỹ thuật, Hà nội. Anil K. Jain (1989), Fundamentals of Digital Image Processing, Prentice Hall PTR David A. Forsyth & Jean Ponce (2003), Computer vision a modern approach, Prentice Hall PTR. D. H. Ballard & C. M. Brown (1997), Computer vision, Prentice Hall PTR. Rafael C.Gonzalez & Rivhard E.Woods & Steven L.Eddins(2002), Digital image processing, Prentice Hall PTR Jae S. Lim (1999), Two-Dimensional Signal and Image Processing, Prentice Hall. www.codeproject.com. www.functionx.com.

Các file đính kèm theo tài liệu này:

  • docnhan dang va dinh vi ca phe hat bang mau sac cua son V2.doc
  • docbia khoa luan tot nghiep.doc