❖ Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhận dạng ảnh. Thứ hai, người ta sử dụng biên làm phân cách các vùng xám (màu) cách biệt. Ngược lại, người ta cũng sử dụng các vùng ảnh để tìm đường phân cách. Tầm quan trọng của biên: để thấy rõ tầm quan trọng của biên, xét ví dụ sau: khi người họa sỹ muốn vẽ một danh nhân, họa sỹ chỉ cần vẽ vài đường nét tốc họa mà không cần vẽ một cách đầy đủ. 4
❖ Mơ hình biểu diễn đường biên, theo tốn học: điểm ảnh có sự biến đổi mức xám u(x) một cách đột ngột theo hình dưới.
2.3.5.2.Phương pháp phát hiện biên Canny
Phương pháp này sử dụng hai mức ngưỡng cao và thấp. Ban đầu ta dùng mức ngưỡng cao để tìm điểm bắt đầu của biên, sau đó chúng ta xác định hướng phát triển của biên dựa vào các điểm ảnh liên tiếp có giá trị lớn hơn mức ngưỡng thấp. Ta chỉ loại bỏ các điểm có giá trị nhỏ hơn mức ngưỡng thấp. Các đường biên yếu sẽ được chọn nếu chúng được liên kết với các đường biên khỏe. Phương pháp Canny bao gồm các bước sau: 6
Bước 1: Trước hết dùng bộ lọc Gaussian để làm mịn ảnh.
6
Bước 2: Sau đó tính tốn gradient của đường biên của ảnh đã được làm mịn.
6 6 G' ( x) = − − x 2 2 2 C x, y=− C x, y=− 2 e − x 2
Bước 3: Tiếp theo là loại bỏ những điểm không phải là cực đại.
Bước 4: Bước cuối cùng là loại bỏ những giá trị nhỏ hơn mức ngưỡng.
Phương pháp này hơn hẳn các phương pháp khác do ít bị tác động của nhiễu và cho khả năng phát hiện các biên yếu. Nhược điểm của phương pháp này là nếu chọn ngưỡng quá thấp sẽ tạo ra biên không đúng, ngược lại nếu chọn ngưỡng quá cao thì nhiều thơng tin quan trọng của biên sẽ bị loại bỏ. Căn cứ vào mức ngưỡng đã xác định trước, ta sẽ quyết định những điểm thuộc biên thực hoặc không thuộc biên. Nếu mức ngưỡng càng thấp, số đường biên được phát hiện càng nhiều (nhưng kèm theo là nhiễu và số các đường biên giả cũng xuất hiện càng nhiều). Ngược lại nếu ta đặt mức ngưỡng càng cao, ta có thể bị mất những đường biên mờ hoặc các đường biên sẽ bị đứt đoạn. 6
Phương pháp Canny có các ưu điểm sau:
⚫ Cực đại hóa tỷ số tín hiệu trên nhiễu làm cho việc phát hiện các biên thực càng chính xác.
⚫ Đạt được độ chính xác cao của đường biên thực.
⚫ Làm giảm đến mức tối thiểu số các điểm nằm trên đường biên nhằm tạo ra các đường biên mỏng, rõ. 6
chuẩn để xác định các vùng liên thơng có thể là cùng mức xám, cùng màu hay cùng độ nhóm. 4
Quá trình phân đoạn ảnh nhằm tách đối tượng cần khảo sát ra khỏi phần nội dung dung còn lại của ảnh, hay phân chia các đối tượng trong ảnh thành những đối tượng riêng biệt. Như vậy quá trình phân đoạn ảnh là quá trình giảm bớt số lượng thơng tin trong ảnh và chỉ giữ lại những thông tin cần thiết cho ứng dụng. Do đó phân đoạn ảnh là q trình loại bỏ các đối tượng khơng quan tâm trong ảnh. Phương pháp phân đoạn ảnh này hiệu quả lớn đối với ảnh nhị phân, văn bản in hay đồ họa... 4
.Dựa vào đặc tính vật lý của vùng ảnh, các kỹ thuật phân đoạn vùng có thể được chia làm 3 loại:
❖ Các kỹ thuật cục bộ: dựa trên các đặc tính cục bộ của các điểm ảnh và các lân cận của nó
❖ Các kỹ thuật tổng thể: phân đoạn một ảnh dựa trên cơ sở của thông tin lấy từ tổng thể như sử dụng biểu đồ mức xám histogram.
❖ Các kỹ thuật chia, nối và phát triển: dựa trên các khái niệm tương đồng về hình dạng và tính đồng nhất. Hai vùng có thể được nối lại với nhau và liền kề bên nhau. Các vùng khơng đồng nhất có thể được chia thành các vùng nhỏ. Một vùng có thể được phát triển bằng các nối các điểm ảnh sao cho nó đồng nhất với nhau. 4
2.4.GIỚI THIỆU NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV
2.4.1Ngôn ngữ Python
2.4.1.1.Giới thiệu về ngôn ngữ Python
Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng, phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web... Ngồi ra Python cũng là ngơn ngữ ưa thích trong xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning. Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. . 4
2.4.1.2.Đặc điểm nổi bật của ngôn ngữ Python
Python là ngôn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một số lượng ít các từ khố, do đó Python là một ngơn ngữ dễ học đối với người mới bắt đầu tìm
hiểu. Python là ngơn ngữ có mã lệnh (source code hay đơn giản là code) không mấy phức tạp. Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viết bằng ngơn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux. 4
Nên do đó nhóm em chọn ngơn ngữ Python để lập trình thay vì những ngơn ngữ khác để tiến hành nghiên cứu và thực hiện xử lý ảnh.
2.4.2.Thư viện OpenCV
2.4.2.1.Giới thiệu
Hình 2. 28 Thư viện OpenCV
OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở, nó là miễn phí cho những ai bắt đầu tiếp cận với các học thuật. OpenCV được ứng dụng trong nhiều lĩnh vực như cho thị giác máy tính hay xử lý ảnh và máy học. Thư viện được lập trình trên các ngơn ngữ cấp cao: C++, C, Python, hay Java và hỗ trợ trên các nền tảng Window, Linux, Mac OS, iOS và Android. Opencv có rất nhiều ứng dụng: Nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video, thực tế ảo,… Ở đề tài này thư viện OpenCV được chạy trên ngơn ngữ Python. OpenCV được dùng làm thư viện chính để xử lý hình ảnh đầu vào và sau đó đi nhận dạng ảnh. 7
2.4.2.2.Đặc điểm
➢ Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh. ➢ Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh.
➢ Phát hiện các đối tượng xác định được xác định trước như khn mặt, mắt, xe trong video hoặc hình ảnh.
➢ Phân tích video,... ước lượng chuyển động của nó, trừ nền ra và theo dõi các đối tượng trong video. 7
Chính vì những đặc điểm trên, nhóm em quyết định dùng thư viện OpenCV làm thư viện chính, viết trên ngơn ngữ Python để thực hiện đề tài.
2.5.PHƯƠNG PHÁP ĐÁNH GIÁ CHẤT LƯỢNG CÀ CHUA
Cà chua là một trong những mặt hàng nông sản cũng như rau quả thực phẩm quen thuộc với chúng ta. Quá trình sinh trưởng của quả cà chua từ lúc kết quả đến lúc chín hồn tồn trải qua các giai đoạn biến đổi hình thái về màu sắc mà bằng mắt thường, con người có thể thấy được sự thay đổi đó. Các giai đoạn chuyển hóa của quả cà chua được trình bày cụ thể sau đây: 8
❖ Thời kỳ quả xanh: Quả và hạt phát triển chưa hoàn thiện. Nếu thu hái quả
vào lúc này và thơng qua thúc chín tới thì quả khơng bình thường, khơng có hương vị, khơng có màu sắc đặc trưng của giống.
❖ Thời kỳ quả chín xanh: chất keo bao quanh hạt được hình thành, quả chưa
có màu hồng hoặc màu vàng. Nếu thúc chín thì quả sẽ thể hiện màu sắc của giống nhưng hương vị khơng rõ như quả chín trên cây.
❖ Thời kỳ chín vàng: Đỉnh quả xuất hiện màu vàng hoặc màu hồng với diện
tích bề mặt chiếm khoảng 10%.
❖ Thời kỳ chuyển màu: Diện tích bề mặt 10-30%, có màu vàng hoặc đỏ nhạt.
❖ Thời kỳ quả chín hồng: diện tích bề mặt 30-60%, có màu đỏ nhạt hoặc vàng.
❖ Thời kỳ chín đỏ: diện tích bề mặt quả 90% có màu đỏ. 8
Ở phạm vi của đề tài, những quả cà chua sẽ được phân thành 3 nhóm quả có màu như sau, dựa trên đặc điểm về màu sắc ở các giai đoạn:
Loại 1: Quả chín hồng và quả chín đỏ. Loại 2: Quả chín vàng hoặc vàng xanh Loại 3: Quả xanh hoặc quả non.
Cơ sở và các tiêu chí phân loại:
Trong quá trình thực hiện đề tài tụi em có tìm hiểu về các tiêu chuẩn xuất nhập khẩu nông sản trong nước, nghiên cứu quá trình phát triển của cà chua và giá cả thị trường của các loại cà chua.
=> Nhận thấy có 3 giai đoạn rõ rệt:
- Khi cà chua mới được hình thành màu xanh, non và khơng có chất dinh dưỡng. Khi tiêu thụ sẽ dễ gây ngộ độc thực phẩm nhiều hơn. Các triệu chứng ngộ độc do ăn cà chua xanh thường là buồn nôn, nôn mửa, tiết nước bọt, yếu sức, mệt mỏi và… thậm chí trường hợp nghiêm trọng có thể đe dọa tính mạng
- Cà chua vàng thì đang trong giai đoạn phát triển nên có để chờ chín 1 vài ngày thì sẽ sử dụng được.
- Cà chua đỏ là trạng thái hoạn thiện nhất, có thể sử dụng rộng rãi trên thị trường làm thực phẩm hoặc mỹ phẫm => năng suất tiêu thụ lớn.
2.5.1.Các màu sắc cơ bản của sản phẩm
Khơng gian màu là một mơ hình tốn học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học. Trên thực tế có rất nhiều khơng gian màu khác nhau được sử dụng vào những mục đích khác nhau. Trong phần này sẽ tìm hiểu qua về hai không gian màu cơ bản hay được nhắc tới và ứng dụng nhiều, đó là hệ khơng gian màu RGB, HSV.
⚫ Không gian màu RGB
RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính và nhiều thiết bị kĩ thuật số khác. Ý tưởng chính của khơng gian màu này là sự kết hợp của 3 màu sắc cơ bản: màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác. 4
Nếu như một ảnh số được mã hóa bằng 24 bit, nghĩa là 8 bit cho kênh R, 8bit cho kênh G, 8 bit cho kênh B, thì mỗi kênh màu này sẽ nhận giá trị từ 0-255. Với mỗi giá trị khác nhau của các kênh màu kết hợp với nhau ta sẽ được một màu khác nhau, như vậy ta sẽ có tổng cộng 255x255x255 = 1.66 triệu màu sắc. Dưới đây là một số màu cơ bản được biển diễn trong hệ màu RGB: 4
❖ (255, 0, 0) là màu đỏ
❖ (0, 255, 0) là màu xanh lá cây ❖ (255, 255, 0) là màu vàng
⚫ Không gian màu HSV
HSV là không gian màu được dùng nhiều trong việc chỉnh sửa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác máy tính. Hệ khơng gian này dựa vào 3 thơng số sau để mô tả màu sắc H = Hue: màu sắc, S = Saturation: độ đậm đặc, sự bảo hòa, V = value: giá trị cường độ sáng. Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón . Theo đó, ứng dụng xử lý ảnh trong thực tế với thư viện OpenCV. 9
Hình 2. 30 Khơng gian màu HSV và mơ hình khơng gian màu HSV Hệ toạ độ cho khơng gian màu HSV ta thấy:
➢ Giá trị màu thuần khiết (Hue): chạy từ 0 đến 360°
➢ Độ bão hòa màu (Saturation): là mức độ thuần khiết của màu, có thể hiểu là có bao nhiêu màu trắng được thêm vào màu thuần khiết này. Giá trị của S nằm trong đoạn [0, 255], trong đó S = 255 là màu tinh khiết nhất, hồn tồn
chất.
➢ Độ sáng của màu (Value): có giá trị dao động trong đoạn [0, 255], trong đó V = 0 là hồn toàn tối (đen), V = 255 là hồn tồn sáng. Nói cách khác, V càng lớn thì màu càng sáng. 9
2.5.2.Phương pháp nhận dạng màu sắc cà chua
Ảnh sau khi được camera chụp và định dạng RGB sẽ được chuyển sang một hệ màu mới thích hợp cho việc phân tích màu sắc hơn, trong đó có sự phân chia biểu diễn về vùng màu, độ bão hịa, và độ sáng. Đó là hệ màu HSV.
Hình 2. 31 Dải màu sắc (H) trong hệ màu HSV
Trong phạm vi đề tài, mỗi màu sắc được biểu diễn bằng một tổ hợp bộ 3 giá trị (H, S, V). Đối với các đặc trưng về độ bão hịa (S) và độ sáng (V), cần lấy tồn bộ các giá trị từ [0÷255] để đảm bảo có thể nhận biết được màu sắc với mọi mức bão hòa và độ sáng khác nhau. Riêng giá trị (H), cần căn cứ vào dải phổ màu (hình 2.15) để đưa ra được khoảng giá trị màu sắc phù hợp, phản ánh đúng đặc trưng màu sắc ở bề mặt cà chua. 10
Các giá trị HSV có được sau nhiều lần lấy mẫu, hiệu chỉnh, đối chiếu và so sánh
Đầu tiên, em căn cứ vào bảng màu HSV để đưa ra những giá trị HSV phù hợp. Sau q trình này, ta sẽ có được những giới hạn (hoặc ngưỡng màu) như sau:
❖ Màu đỏ: (0, 0, 0) ÷ (8, 255, 255) ❖ Màu vàng: (15, 0, 0) ÷ (60, 255 ,255) ❖ Màu xanh lục: (70, 0, 0) ÷ (150, 255, 255)
Cơng đoạn tiếp theo, cà chua được phân tách màu sắc bề mặt với các ngưỡng màu đã có được từ việc đối chiếu thủ cơng với bảng màu HSV từ trước. Ở giai đoạn này, sẽ có sai lệch về màu sắc chọn ngưỡng và màu sắc thực tế của cà chua nhưng không quá lớn.
thực tế của màu sắc bề mặt quả cà chua. Dưới đây là 4 loại màu sắc trong phạm vi đề tài: ⚫ Màu đỏ: Giá trị HSV (0, 100, 100) ÷ (10, 255, 255) (160, 100, 100) ÷ (179, 255, 255) Hình 2. 32 Cà chua đỏ ⚫ Màu vàng: Giá trị HSV (21, 39, 64) ÷ (40, 255, 255 ) Hình 2. 33 Cà chua vàng ⚫ Màu xanh:Giá trị HSV (45, 68, 34) ÷ (54, 86, 47 )
Hình 2. 34 Cà chua xanh
2.5.3.Phương pháp đánh giá chất lượng theo màu sắc
Với sự giúp đỡ của thư viện OpenCV, ngơn ngữ lập trình Python và kit Raspberry Pi 3, công việc nhận biết và phân loại màu sắc của quả cà chua sẽ gồm những cơng đoạn chính như sau:
❖ Chụp và lưu ảnh quả cà chua.
❖ Dùng thuật tốn phát hiện màu (tìm màu, tính số lượng pixel vùng màu, tính phần trăm số lượng pixel của mỗi màu trên số lượng pixel toàn bề mặt quả cà chua) và “dán nhãn” phân loại cà chua (gồm 3 loại cà chua: đỏ, vàng, xanh ) từ ảnh đã được chụp bằng camera.
❖ Lưu dữ liệu cho bộ phận phân loại làm việc
❖ Bộ phận đánh giá phân loại cà chua theo dữ liệu đã cho ❖ Cập nhật ảnh chụp mới.
2.5.4.Phương pháp đánh giá chất lượng theo kích thước
Phương pháp tìm đường biên của vật giúp ta tính tốn được kích thước của bề mặt quả cà chua được chụp, dù kết quả kích thước của cà chua khơng được chính xác nhưng cũng giúp hệ thống đánh giá được độ lớn to nhỏ của cà chua. Các công đoạn chính của phương pháp:
CHƯƠNG 3. TÍNH TỐN VÀ THIẾT KẾ
3.1. QUY TRÌNH VẬN HÀNH HỆ THỐNG
Hệ thống đánh giá chất lượng ứng dụng xử lý ảnh có phần chính là bộ phận phân loại.
❖ Bộ phận đánh giá : khi được đưa qua bộ phận đánh giá , hệ thống sẽ kiểm tra trái
cây trong hai q trình chính trước khi hồn tất phân loại:
➢ Phần xử lý ảnh: khi cà chua đi qua buồng tối, camera sẽ chụp hình lại và hệ thống bắt đầu xử lí màu, xử lí diện tích bề mặt để đưa ra quyết định đây là cà chua loại gì (gồm 6 loại: xanh nhỏ, xanh to, vàng nhỏ, vàng to, đỏ nhỏ, đỏ to). ➢ Phần phân loại: sau khi cà chua được chụp ảnh sẽ đi ngang qua các ngăn
phân loại, nếu tới đúng ngăn phân loại, bộ phận đẩy sẽ đẩy cà chua vào đúng ngăn đó.
Hệ thống có giao diện người dùng được hiển thị trực tiếp trên màn hình giúp quản lí được q trình hoạt động của hệ thống.
3.2. TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG
3.2.1.Thiết kế sơ đồ khối tổng quát của hệ thống
Hình 3. 1 Sơ đồ khối tổng quát của hệ thống
❖ Khối xử lý ảnh: xử lí thơng tin ảnh chụp cà chua bằng các thuật toán xử lý ảnh.