3 Biểu đồ liên hệ giữa kích thước và khối lượng xoài
4.2 Qui trình xử lý ảnh và tính toán số liệu
4.3.1 Thu nhận ảnh:
Một hệ thống chiếu sáng tốt nên được cung cấp đồng bộ về điều kiện chiếu sáng, không gian chụp, điều kiện bức xạ… để chống tạo ra bóng của vật mẫu và gây nhiễu màu. Chất lượng của ảnh thu được quyết định nhiều đến kết quả của việc nhận dạng, sau đó ảnh phải được lưu trữ theo một định dạng phù hợp với các bước xử lý sau này, ảnh tạo ra có dạng hai chiều.
Camera:
Hình 4. 2 Webcam logitech c270 (Nguồn Internet)
Thông số kỹ thuật:
- Kiểu kết nối: dây USB
- Loại USB: Tốc độ cao Usb 2.0
- Focal length: 4mm
- Field of view: 600
- W: 680 pixels
- Chất lượng video HD 1280x720
- Công nghệ tinh thể lỏng Logitech Fluid Crystal™
- Chụp ảnh cho độ phân giải 640x480 3.0MP
- Tốc độ khung hình tối đa: 30 frame/s
Dựa vào thông số kỹ thuật của webcam và qua thực nghiệm cho thấy Camera đáp ứng được yêu cầu.
Buồng chụp và đèn chiếu sáng :
Việc sắp xếp nguồn sáng ảnh hưởng đáng kể đến hình ảnh thu được vậy nên điều kiện chiếu sáng được ưu tiên như sau:
- Các mẫu được chiếu sáng bằng hai thanh led 12v
- Vị trí đặt đèn được bố trí như hình dưới:
Hình 4. 3 Sơ đồ bố trí đèn chiếu sáng
Qua thực nghiệm cho thấy vị trí đặt đèn chiếu sáng như trên sẽ không tạo bóng đen làm nhiễu ảnh và cường độ sáng không làm bề mặt trái xoài quá chói, thuận lợi cho việc nhận diện khuyết tật chính xác hơn.
Bước này làm tăng khả năng nhận dạng chính xác, có vai trò nâng cao chất lượng ảnh trước khi đem phân tích và nhận dạng. Công việc của bước này thường là khử nhiễu, biến đổi ảnh và nâng cao một số đặc tính quan trọng của ảnh. Trong đề tài này sử dụng bộ lọc Gausian filter.
- Bộ lọc Gausian filter: Nhanh chóng làm nhòe vùng chọn theo mức độ có thể
điều chỉnh. Giá trị Radius càng cao thì mức độ nhòe càng mạnh
- Thuật toán: Ta sử dụng một cửa sổ lọc (ma trận 3x3) quét qua lần lượt từng
điểm ảnh của ảnh đầu vào input. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc "lấp" vào ma trận lọc. Sau đó sắp xếp các điểm ảnh trong cửa sổ này theo thứ tự (tăng dần hoặc giảm dần tùy ý). Cuối cùng, gán điểm ảnh nằm chính giữa (Trung vị) của dãy giá trị điểm ảnh đã được sắp xếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu ra output.
Hình 4. 4 Sắp xếp phần tử trung vị
Hình 4. 5 Ảnh lọc nhiễu
4.3.3 Chuyển ảnh màu RGB sang ảnh mức xám:
Mô hình màu RGB: sử dụng mô hình bổ sung trong đó ánh sáng đỏ, xanh lá cây và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu khác trên một điểm ảnh, cường độ của mỗi màu có thể thay đổi từ 0 đến 255 và tạo ra 16,777,216 màu khác nhau.
Hình 4. 6 Hình ảnh được lưu trữ
Dưới đây là ví dụ mẫu về cường độ của 3 màu đỏ, xanh lục, xanh lam để tạo ra màu hiển thị của một điểm ảnh:
Đỏ Xanh lục Xanh lam Vàng Trắng Đen
- Ảnh xám (Gray image) hay còn gọi là ảnh đơn sắc (Monochromatic), mỗi giá
trị điểm ảnh (Pixel) trong ma trận điểm ảnh mang giá trị từ 0 đến 255. Để chuyển từ ảnh RGB sang ảnh xám sử dụng hàm trong OpenCvSharp: Cv2.cvtcolor();
4.3.4 Nhị phân hóa ảnh
Nhị phân hóa ảnh là quá trình biến đổi ảnh xám thành ảnh nhị phân.
Ảnh nhị phân là ảnh mà giá trị của các điểm ảnh chỉ được biểu diễn bằng hai giá trị là 0 (Đen) và 255 (Trắng).
Cách biến đổi:
- Gọi giá trị cường độ sáng tại một điểm ảnh là I (x, y).
- INP (x, y) là cường độ sáng của điểm ảnh trên ảnh nhị phân.
- (Với 0 < x <Chiều dài ảnh) và (0 < y < Chiều rộng ảnh).
Để biến đổi ảnh xám thành ảnh nhị phân. Ta so sánh giá trị cường độ sáng của điểm ảnh với một ngưỡng nhị phân T (Threshold).
- Nếu I (x, y) > T thì INP (x, y) = 0 (0).
- Nếu I (x, y) > T thì INP (x, y) = 255 (1).
Điều chỉnh giá trị T trong khoảng (0, 255) sẽ cho ra ảnh nhị phân khác nhau. Vậy nên cần điều chỉnh giá trị T để cho ra ảnh mong muốn.
Hình 4. 8 Nhị phân hóa ảnh
Hình : Chuyển sang ảnh nhị phân
4.3.5 Xác định kích thước và diện tích khuyết tật
1.3.5.1 Xác định kích thước
Ta xây dựng thuật toán để lấy chiều rộng và chiều cao của trái xoài theo nguyên tắc tính khoảng cách giữa các pixel theo chiều ngang và dọc, sau đó tìm khoảng lớn nhất theo từng chiều để lấy chiều rộng và chiều cao theo pixel.
Kích thước quả xoài tìm được tính theo đơn vị pixels
4.3.5.2: Tính diện tích khuyết tật
Bước 1: Tìm contours: Contour là thuật toán được sử dụng trong xử lý ảnh nhằm tách, trích xuất các đối tượng, tạo điều kiện để các xử lý sau được chính xác. Contour tìm được sẽ là phần viền bao quanh trái xoài và phần khuyết tật trên bề mặt trái xoài.
Bước 2: Giới hạn mỗi contour tìm được bằng việc vẽ hình chữ nhật bao quanh. Sử dụng hàm Cv2.BoundingRect() và Cv2.Rectangle()
4.3.6 Phân loại dựa trên diện tích khuyết tật
Tính toán xấp xỉ diện tích của một điểm ảnh:
Với khoảng cách từ camera tới băng tải là không đổi, kích thước thực chiều dài, chiều rộng, chiều cao của trái xoài được đo bằng thước kẹp. Sau đó đếm số điểm ảnh tương ứng với mỗi kích thước trên.
Kết quả đo kích thước thực của một trái xoài mẫu và số điểm ảnh tương ứng: Chiều dài(L): 13,69 cm - 426 pixels
Chiều rộng(R): 8,51 cm - 281 pixels Chiều cao(H): 7,28 cm - 258 pixels
Từ trên tính được xấp xỉ diện tích của một pixel: 42601369 × 2810851 = 0,09732 2
Phân loại: Tìm phần diện tích khuyết tật lớn nhất nếu lớn hơn …hoặc số vùng khuyết tật lớn hơn … vùng mà mỗi vùng có diện tích lớn hơn … thì trái xoài bị loại
Số vùng khuyết tật tìm thấy
Bước 3: Tính thể tích xoài
Phương pháp thống kê:
Bư ớc 1: Thống kê kích thước thể tích
Ở bước này chúng ta đo kích thước chiều dài chiều rộng chiều
cao thực tế của xoài cát Chu và xoài cát Hòa Lộc. Ở đây nhóm sử dụng thước kẹp 20cm để đo kích thước xoài với sai số của thước là 0.01mm
Tiếp theo để đo thể tích thực của xoài, nhóm sử dụng nguyên lý bình tràn để đo thể tích của xoài.
Hình 4.2.6: Nguyên lý đo thể tích sử dụng bình tràn (Nguồn: Internet)
Khi ta xác định được chiều dài, chiều rộng, chiều cao và thể tích thực của xoài, ta bắt đầu tìm mối liên hệ giữa chúng.
Bước 2: Tìm phương trình phụ thuộc
Ta có 3 biến đầu vào (chiều dài, chiều rộng, chiều cao) và một biến đầu ra (thể tích), sử dụng hồi quy đa biến để tìm mối quan hệ giữa chúng. Ta cứ hiểu rằng, khi ta sử dụng kích thước thể tích thực của xoài để tìm phương trình phụ thuộc, sau đó sử dụng Kinect để tính chiều dài, chiều rộng, chiều cao và với phương trình phụ thuộc ta sẽ tìm được thể tích tương ứng.
Phần mềm SPSS hỗ trợ cho ta về hồi quy đa biến để tìm phương trình phụ thuộc. Ta chỉ cho biến đầu vào và biến đầu ra, SPSS sẽ cho ta chính xác nhất phương trình phụ thuộc và các biểu đồ liên quan. Ở đây biến đầu vào là kích thước của xoài và biến đầu ra sẽ là thể tích xoài tương ứng.
Kết quả ta được :
Hình 4.2.7: Bảng thông số phương trình phụ thuộc (ảnh chụp)
Phương trình phụ thuộc giữa kích thước và thể tích
Volume = 3.249 * length + 2.956 * width + 10.155 * height – 1000.959
Bước 3: Tìm kích thước camera
Ta xây dựng thuật toán để lấy chiều dài, chiều rộng, chiểu cao theo nguyên tắc tính khoảng cách giữa các pixel theo chiều ngang và dọc sau đó tìm khoảng lớn nhất theo từng chiều để lấy chiều dài, chiều rộng chiều cao theo pixel.
Xác định chiều dài và chiều rộng : Ta có khung hình trả về của Kinect là 640x480 Pixel, ta dùng lệnh chạy trên mảng Pixel của khung hình, so sánh giá trị Pixel và tìm các điểm bên trái đầu tiên, phải cuối cùng, trên cùng và dưới cùng. Qua đó dùng phép hiệu để lấy khoảng
cách Pixel, đó cũng chính là chiều dài và chiều rộng tính theo Pixel của xoài. Để xác định lấy đúng chiều dài và rộng, dựa vào những điểm tìm được để vẽ ra hình chữ nhật tương ứng.
Đối với chiều dài và chiều rộng ta tính được theo Pixel, để lấy được kích thước theo chuẩn thì ta nhân thêm kích thước thực của Pixel vào (đã tính phương pháp 1).
Bước 4: Tính thể tích xoài
Dựa vào phương trình phụ thuộc ta đã tìm ra từ một loại xoài cát Chu hoặc cát Hoài Lộc, ứng với từng loại xoài cần tính ta xác định chiều dài chiều rộng và chiều cao thì ta suy ra được thể tích tương ứng.
Kết quả thể tích xoài thu được khi tính bằng phương pháp thống kê Kinect với thể tích thực tế :
4.3.7 Xác định thể tích xoài sử dụng Camera IP
Vì độ phân giải của CameraIP thấp nên đề tài bổ sung thêm phương pháp tính thể tích sử dụng camera màul, sử dụng kết nối cáp mạng với router truyền tín hiệu về máy tính. Để có thể sử dụng lập trình và xử lý dữ liệu cho camera ta sử dụng các thư viện hỗ trợ gồm : OpenCV dựa trên ngôn ngữ Python
Phương pháp thống kê tính thể tích theo kích thước
Ở hai bước đầu là : Thống kê kích thước thể tích và tìm phương
trình phụ thuộc ta đã thực hiện. Nên ở phần này ta sẽ bỏ qua 2 bước này và chuyển đến 2 bước tiếp theo.
Bước 3 : Tìm kích thước qua Camera
Ảnh thu được từ camera là ảnh màu RGB ta cần chuyển đổi về ảnh xám để thao tác dễ dàng hơn. Trong mô hình có sử dụng thêm buồng chụp giúp tăng khả năng thu nhận ảnh và tách được phông dễ dàng hơn
Đầu tiên ta biết rằng ở hầu hết xoài thì sẽ có một ngưỡng màu nhất định. Nên ta sẽ chỉnh ngưỡng và bắt đầu chuyển sang ảnh xám sao cho ảnh thu được có phông nền và xoài là 2 giá trị màu tách biệt.
Ở đây ngưỡng đề tài đặt là 135, ngưỡng của xoài dao động trong
khoảng 140-255.
Hình 4.2.8: Kết quả sau khi chỉnh ngưỡng và chuyển sang ảnh xám (ảnh chụp)
Sau khi ta đã chuyển sang ảnh xám và tách riêng biệt 2 giá trị màu của xoài và phông thì bài toán lại chuyển sang như khi ta sử dụng CameraIP. Để lấy được kích thước chiều dài, chiều rộng và chiều cao ta truy cập vào từng giá trị pixel và tính khoảng cách theo chiều ngang và dọc 2 pixel ở xa nhất. Và cũng dùng cách tính như ở CameraIP để ta tính được kích thước của một pixel.
Hình 4. 9 Cách chạy pixel xác định các điểm (ảnh chụp).
Ta vẽ hình chữ nhật để kiểm định việc xác định kích thước pixel đúng hay sai.
Khi ta đã có kích thước theo pixel và cũng có được kích thước của pixel ta chỉ cần nhân chúng vào thì ta có được kích thước thật của xoài.
Bước 4: Tính thể tích xoài
Ta dựa vào phương trình phụ thuộc đã tìm được ở phương pháp trước và với kích thước thật tìm được ở bước 3 ta thay vào phương trình để tính được thể tích tương ứng.
4.4 Giao diện phần mềm phân loại:
Sau khi khỏi động phần mềm phân loại, máy sẽ tiến hành phân loại xoài theo khối lượng, kích thước đã qui định. Với mỗi quả xoài được phân loại, phần mềm sẽ lưu lại thông tin dữ liệu trên một file excel để tiện lưu trữ và xử lí:
Chương 5: ĐIỀU KHIỂN
5.1. Thiết kế mạch điều khiển trung tâm cho hệ thống phân loại xoài đáp ứngyêu cầu điều khiển cho cơ cấu phân loại. yêu cầu điều khiển cho cơ cấu phân loại.
Điều khiển điện của hệ thống xử lý ảnh và cân khối lượng xoài bao gồm điều khiển động cơ băng truyền của bộ phận xử lí ảnh, động cơ bộ phận cân khối lượng xoài. Đồng thời, hệ thống điều khiển đảm nhiệm việc cấp nguồn cho hệ thống xử lý ảnh, hệ thống phân loại xoài dựa vào khối lượng.
Các thiết bị cần thiết cho mạch điều khiển:
1 Aptomat 3 pha để đóng ngắt dòng điện 3 pha cấp cho biến tần.
Công suất định mức: 6, 10, 16, 25, 32, 40A Dòng ngắn mạch: 6kA
2 biến tần dùng để điều khiển động cơ 3 pha.
Hình 2: Biến tần DELTA DVF-E series
Tần số ngõ ra: 0.1 ~ 600Hz Dạng module, thiết kế tích hợp
Tích hợp chức năng PLC
Tích hợp bộ lọc tín hiệu (Đối với các model 1Pha/230V~ và 3Pha/ 460V~) 2 động cơ 3 pha. Công suất:0,4kw=1/2hp Tỉ số truyền: 1/3~1/1800 Vật liệu vỏ: Nhôm Điện áp: 3pha 220V/380V
2 cầu dao CB để đóng ngắt nguồn điện 220V cấp cho hệ thống xử lí ảnh và hệ thống cân.
Hình 5.4 sơ đồ mạch điều khiển
5.2. Thiết kế điều khiển cho cơ cấu phân loại theo tỉ trọng5.2.1. Tính khối lượng 5.2.1. Tính khối lượng
Loadcell
Hình 5.6 Loadcell (Nguồn Internet)
Do trái xoài có khối lượng nhỏ (dao động từ 400g – 800g) nên nhóm sử dụng Loadcell có giới hạn đo nhỏ (ở đây là Loadcell 2kg) để tăng độ chính xác trong quá trình đo.
Thông số kỹ thuật của Loadcell sử dụng:
- Tải trọng
- Độ lệch tuyến tính
- Rate output
- Điện áp hoạt động - Nhiệt độ hoạt động
Cảm biến vật cản hồng ngoại NPN E3F-DS30C4
Thông số kỹ thuật:
- Nguồn điện cung cấp:6 ~ 36VDC.
- Khoảng cách phát hiện: 5 ~ 30cm.
- Có thể điều chỉnh khoảng cách qua biến trở.
- Ngõ ra dạng NPN cực thu hở giúp tùy biến được điện áp ngõ ra, trở treo lên áp bao nhiêu sẽ tạo thành điện áp ngõ ra bấy nhiêu.
- Có led hiển thị ngõ ra màu đỏ.
- Kích thước: 1.8cm (D) x 7.0cm (L).
Hình 5.7 Cảm biến vật cản hồng ngoại E3F-DS30C4 (Nguồn: Internet)
PLC S7 – 1200
Cấu trúc của PLC được mô tả như sau:
Hình 5.8 Sơ đồ cấu trúc PLC (Nguồn Internet)
Ở đây nhóm sử dụng PLC Siemens S7 – 1200 CPU 1212C DC/DC/DC model 6ES7212-1AE40-0XB0 để điều khiển mô hình.
Thông số kỹ thuật:
- Cổng I/O: 8 DI 24V DC / 6 DO 24V DC
- Cổng AI: 2 AI 0 – 10V DC (0 1)
- Power supply: DC 20.4 – 28.8V DC
- Program/Data memory: 75KB
- Cổng PROFINET, hỗ trợ chuẩn Ethernet và TCP/IP
Hình 5.9 PLC S7-1200 CPU 1212C DC/DC/DC (Nguồn Internet)
5.2.2 Thuật toán điều khiển
Theo thông số của Loadcell, tín hiệu trả về có giá trị rất nhỏ 1.0 ± 0.15 (mV/V) nhưng cổng tín hiệu Analog của PLC lại nhận giá trị 0 – 10V DC, nếu kết nối trực tiếp thì PLC không thể nào đọc được tín hiệu của Loadcell nên cần có 1 bộ
khuếch đại tín hiệu điện áp kết nối với Loadcell để khuếch đại tín hiệu ra của Loadcell từ 1.0 ± 0.15 (mV/V) lên 0 – 10V DC.
Thông số kỹ thuật bộ khuếch đại:
- VO đầu ra
- Điện áp nguồn cấp: - Độ nhạy:
- IO đầu ra:
- Chân GNDD: chống nhiễu có thể lắp hoặc không.
Hình 5.10 Mạch khuếch đại tín hiệu cảm biến (Nguồn Internet)
Hình 5.11 Sơ đồ kết nối Loadcell với mạch khuếch đại và PLC
Để đọc được giá trị chính xác của khối lượng trái xoài, nhóm tiến hành lấy tín hiệu trả về từ loadcell kết hợp giữa chương trình điều khiển PLC trên phần mềm Tia portal v13 SP1 và Visual Studio 2017.
Kết nối giữa PLC S7-1200 trên Studio Tia Portal V13 SP1 và Visual 2017 Bước 1: Kết nối PLC S7-1200 với Tia Portal V13 SP1 qua cổng Profinet dùng chuẩn truyền TCP/IP để kết nối phần cứng và nộp code
Bước 2: Sử dụng thư viện S7.net thiết kế giao diện trên WPF để truy xuất trực tiếp vào vùng nhớ PLC thông qua cổng mạng Profinet dùng chuẩn