Nội dung chính của đồ án: CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH CHƯƠNG 2: GIỚI THIỆU VỀ ARDUINO VÀ CÔNG NGHỆ XỬ LÝ ẢNH CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN- ĐIỆN TỬ
Trang 4Tên đề tài: “ Thiết kế và thi công khâu kiểm tra chất lượng vỏ chai thuỷ tinh” Sinh viên thực hiện : Nguyễn Duy Châu
Mã sinh viên : 2050551200112 Lớp: 20TDH01 Đề tài “ Thiết kế và thi công khâu kiểm tra chất lượng vỏ chai thuỷ tinh” Ở đây nhóm đã sử dụng vi điều khiển Arduino nano để điều khiển và sử dụng phần mềm Pycharm viết bằng ngôn ngữ Python để xử lý ảnh
Bài báo cáo trình bày về quá trình nghiên cứu, thiết kế và thi công khâu kiểm tra chất lượng vỏ chai thuỷ tinh Hệ thống có thể phân loại bỏ các chai, lọ thuỷ tinh bị lỗi như chứa dị vật hay nứt vỡ trước khi đến khâu chiết rót và đóng nắp
Nội dung bài báo cáo Chương 1: Giới thiệu tổng quan về hệ thống kiểm tra chất lượng vỏ chai, lọ thuỷ tinh Phân loại và giới thiệu một số công nghệ kiểm tra đã và đang sử dụng Kết quả đưa ra được phương án thiết kế phù hợp cho đề tài
Chương 2: Trình bày tổng quan về Arduino và giới thiệu về Arduino nano, làm việc với phần mềm Arduino IDE Giới thiệu về phầm mềm Pycharm và thư viện OpenCV
Chương 3: Trình bày, lựa chọn quy trình công nghệ Tính toán, lựa chọn các thiết bị phù hợp với quy trình công nghệ đề ra để lắp đặt, thiết kế phần cơ khí, đấu nối các thiết bị hệ thống Kết quả hoàn thành được mô hình hệ thống kiểm tra
Chương 4: Thiết lập lưu đồ thuật toán, lập trình cho hệ thống Kết quả hoàn thành được chương trình điều khiển đáp ứng được quy trình công nghệ đề ra
Trang 5NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: ThS Phan Thị Thanh Vân
Sinh viên thực hiện : Nguyễn Duy Châu Mã SV: 2050551200112
1 Tên đề tài:
“THIẾT KẾ VÀ THI CÔNG KHÂU KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH”
2 Các số liệu, tài liệu ban đầu:
Những số liệu và tài liệu tham khảo đều được tìm hiểu qua Internet như: - Arduino nano, động cơ, cảm biến,…
- Công nghệ xử lý ảnh OpenCV
3 Nội dung chính của đồ án:
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH
CHƯƠNG 2: GIỚI THIỆU VỀ ARDUINO VÀ CÔNG NGHỆ XỬ LÝ ẢNH CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG KHÂU KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH
CHƯƠNG 4: CHƯƠNG TRÌNH ĐIỀU KHIỂN HỆ THỐNG KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH
ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN CỦA ĐỀ TÀI HƯỚNG PHÁT TRIỂN ĐỀ TÀI
4 Các sản phẩm dự kiến
- Mô hình hệ thống - Báo cáo thuyết minh đề tài - Chương trình điều khiển hệ thống trên Arduino IDE và chương trình xử lý ảnh
5 Ngày giao đồ án: Ngày 15 tháng 01 năm 2024 6 Ngày nộp đồ án: Ngày 31 tháng 05 năm 2024
Trang 6Ngày nay, đất nước ta ngày càng phát triển, kéo theo đó nhu cầu cuộc sống của mọi người ngày càng tăng, từ quan niệm “ ăn no, mặc ấm” đã dần thay đổi thành “ ăn ngon, mặc đẹp” Vì vậy, yêu cầu của con người về vấn đề ăn uống ngày càng cao, người tiêu dùng càng quan tâm hàng đầu về vấn đề an toàn vệ sinh thực thẩm
Chai thuỷ tinh được sử dụng nhiều trong việc đựng thực phẩm đồ uống như nước ngọt, bia,…Chai thuỷ tinh được sử dụng rất nhiều trên thị trường vì vậy nên nếu trong chai có thể mảnh dị vật nhỏ thì cũng ảnh hưởng rất lớn đến sức khoẻ người tiêu dùng và cũng như doanh nghiệp sản xuất nước uống
Từ đó, ý tưởng có tính chất ứng dụng cao trong các nhà máy sản xuất chúng em đã
lựa chọn đề tài:” THIẾT KẾ VÀ THI CÔNG KHÂU KIỂM TRA CHẤT LƯỢNG
CỦA VỎ CHAI THUỶ TINH” dưới sự hướng dẫn của Th.S Phan Thị Thanh Vân Hệ
thống có khả năng kiểm tra, phát hiện dị vật của vỏ chai thuỷ tinh và đồng thời loại bỏ những chai thuỷ tinh không đạt chất lượng trước khi đến khâu chiết rót
Nhóm xin gửi lời biết ơn sâu sắc đến Ban Giám Hiệu, các thầy cô trong Khoa Điện – Điện Tử đã giúp đỡ, tạo điều kiện thuận lợi cho nhóm hoàn thành được đồ án tốt nghiệp này Đặc biệt, nhóm xin chân thành cảm ơn Th.S Phan Thị Thanh Vân một người giảng viên tâm huyết đã luôn quan tâm, giúp đỡ tận tình để nhóm hoàn thiện đồ án tốt nghiệp một cách tốt nhất
Chúng em xin chân thành cảm ơn!
Trang 7Tên đề tài: “ Thiết kế và thi công khâu kiểm chất lượng của vỏ chai thuỷ tinh” Sinh viên thực hiện : Nguyễn Duy Châu
Mã sinh viên : 2050551200112 Lớp: 20TDH01 “ Tôi xin cam đoan đồ án tốt nghiệp này là do chính chung tôi nghiên cứu và thực hiện Tôi không sao chép từ bất kì một bài viết nào đã được công bố mà không có trích dẫn nguồn gốc Nếu có bất kỳ một sự vi phạm chúng tôi xin chịu hoàn toàn trách nhiệm”
Sinh viên thực hiện
Nguyễn Duy Châu
Trang 8Nhận xét của giảng viên hướng dẫnNhận xét của người phản biệnTóm tắt
1.4 Các phướng án kiểm tra vỏ chai thông dụng 4
1.4.1 Kiểm tra lỗi sử dụng đầu do kim loại 4
1.4.2 Kiểm tra lỗi sử dụng cảm biến siêu âm 5
1.4.3 Kiểm tra lỗi sử dụng tia X 6
1.4.4 Kiểm tra lỗi sử dụng xử lý ảnh 7
1.5 Tiêu chí của đề tài 8
1.6 Lựa chọn giải pháp thiết kế 8
1.7 Ảnh hưởng của đề tài đến với con người, môi trường 9
1.8 Tính mới của đề tài 9
CHƯƠNG 2: GIỚI THIỆU VỀ ARDUINO VÀ CÔNG NGHỆ XỬ LÝ ẢNH 10
2.1 Giới thiệu về Arduino 10
2.1.1 Tổng quan về Arduino 10
2.1.2 Lịch sử ra đời của Arduino 10
2.1.3 Khả năng tương tác 11
2.2 Giới thiệu về Arduino nano 11
2.3 Giới thiệu về phần mềm Arduino IDE 13
2.3.1 Giao diện phần mềm Arduino 14
2.3.1.1 Giao diện phần mềm Arduino 14
2.3.1.2 Cấu trúc một chương trình trong phần mềm IDE 16
Trang 92.4.3.1 Thư viện Open CV 24
2.4.3.1 Thư viện Serial 25
2.4.4 Quy trình xử lý ảnh 26
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG KHÂU KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH 28
3.1 Thiết kế hệ thống 28
3.2 Tính toán lựa chọn thiết bị 29
3.2.1 Tính toán thiết kế khung giá đỡ camera 29
3.2.2 Tính chọn camera 30
3.2.3 Băng tải 31
3.2.4 Tính chọn cảm biến hồng ngoại 33
3.2.5 Tính chọn đ ộng cơ servo 34
3.2.6 Mạch điều khiển động cơ BTS960 35
3.2.7 Cáp kết nối USB Nano mini 36
3.4 Sơ đồ đấu nối dây 43
3.5 Thi công mô hình hệ thống 44
CHƯƠNG 4: CHƯƠNG TRÌNH ĐIỀU KHIỂN HỆ THỐNG KIỂM TRA CHẤT LƯỢNG CỦA VỎ CHAI THUỶ TINH 47
4.1 Bảng phân công đầu vào, đầu ra 47
4.2 Lưu đồ thuật toán 47
Trang 104.2.2 Lưu đồ chương trình xử lý ảnh 49
4.3 Chương trình điều khiển 51
ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN ĐỀ TÀI 52
TÀI LIỆU THAM KHẢO 54
PHỤ LỤC 55
Trang 11DANH MỤC BẢNG BIỂU
BẢNG 3.1 Thông số kỹ thuật của camera 30
BẢNG 3.2 Bảng kỹ thuật động cơ băng tải 33
BẢNG 3.3 Thông số kỹ thuật của cảm biến hồng ngoại 34
BẢNG 3.4 Thông số kỹ thuật của động cơ servo 35
BẢNG 3.5 Thông số kỹ thuật của mạch điều khiển động cơ 36
BẢNG 3.6 Thông số kỹ thuật của màn hình LCD 37
BẢNG 3.7 Thông số kỹ thuật của module I2C 38
BẢNG 3.8 Thông số của nguồn tổ ong 24 VDC 39
BẢNG 3.9 Thông số của nguồn tổ ong 5 VDC 40
BẢNG 3.10 Thông số kỹ thuật của đèn 41
BẢNG 4.1 Bảng phân công đầu vào, đầu ra 47
Trang 12HÌNH 1.1 Vỏ chai thuỷ tinh có chứa dị vật 4
HÌNH 1.2 Máy dò kim loại SQUARE 5
HÌNH 1.3 Mô tả hoạt động của cảm biến siêu âm 6
HÌNH 1.4 Hệ thống kiểm tra bằng tia X 7
HÌNH 1.5 Phát thảo mô hình hệ thống 9
HÌNH 2.1 Một số Arduino 10
HÌNH 2.2 Sơ đồ chân của Arduino nano 12
HÌNH 2.3 Giao diện của phần mềm IDE 14
HÌNH 2.4 Menu file trên phần mềm IDE 15
HÌNH 2.5 Cách chọn board trên màn hình giao diện IDE 15
HÌNH 2.6 Cách chọn cổng trên màn hình IDE 15
HÌNH 2.7 Cấu trúc chương trình soạn thảo phần mềm IDE 16
HÌNH 2.8 Mô hình netcapse Color Cube 18
HÌNH 2.9 Chuyển đổi ảnh xám 18
HÌNH 2.10 Ảnh và biểu đồ tần suất gốc 19
HÌNH 2.11 Ảnh và biểu đồ tần suất đã cân bằng 20
HÌNH 2.12 Kết quả hiện thị các phương pháp ngân ngưỡng 21
HÌNH 2.13 Chuyển ảnh nhị phân 21
HÌNH 2.14 Phần mềm IDE Pycharm 22
HÌNH 2.15 Giao diện IDE Pycharm 22
HÌNH 2.16 Thư viện OpenCV 24
HÌNH 2.17 Quy trình xử lý nhận diện ảnh 26
HÌNH 2.18 Hiển thị lọ nứt vỡ 27
HÌNH 3.1 Sơ đồ khối của hệ thống 28
HÌNH 3.2 Webcam digital high defition camera 30
HÌNH 3.3 Băng tải sử dụng trong hệ thống 31
HÌNH 3.4 Động cơ băng tải 33
HÌNH 3.5 Cảm biến hồng ngoại PNP 33
HÌNH 3.6 Động cơ Servo 34
HÌNH 3.7 Mạch điều khiển động cơ BTS960 35
HÌNH 3.8 Cáp kết nối máy tính với Arduino 36
HÌNH 3.9 Màng hình LCD 16x2 37
HÌNH 3.10 Module I2C 38
HÌNH 3.11Nguồn tổ ong 24 VDC và 5VDC 40
Trang 13HÌNH 3.13 Phát thảo quy trình công nghệ 1 41
HÌNH 3.14 Phát thảo quy trình công nghệ 2 42
HÌNH 3.15 Sơ đồ đấu nối dây 43
HÌNH 3.16 Lắp ráp phần khung, băng tải và các camera 44
HÌNH 3.17 Đấu nối dây hệ thống 44
HÌNH 3.18 Mô hình sau khi đấu nối xong 45
HÌNH 3.19 Thiết kết buồng kiểm tra chất lượng vỏ chai 45
HÌNH 3.20 Hệ thống được sau khi hoàn thiện 46
HÌNH 4.1 Lưu đồ thuật toán của Arduino 48
HÌNH 4.2 Lưu đồ thuật toán nhận dạng và phân loại vỏ chai 50
Trang 14UART Universal Asynchronous
Receiver/Transmitter Truyền và nhận dữ liệu nối tiếp PWM Pulse Width Modulation Phương pháp điểu chỉnh điện
áp tải DAC Digital- to – Analog
Converter Chuyển đổi dữ liệu kĩ thuật số PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản
Màu sắc “phụ gia” bới sự kết hợp giữa chúng tạo ra các màu
sắc khác HSV Hue- Saturation-Value Vùng màu- Độ bão hoà màu-
Độ sáng PPM Pulse Position Modulation Sử dụng để điều khiển Servo LCD Liquid- Crystal Display Công nghệ hiển thị cấu tạo bởi
Trang 15MỞ ĐẦU
❖ Lý do chọn đề tài : Ngày nay, đất nước ta ngày càng phát triển, kéo theo đó nhu cầu cuộc sống của mọi người ngày càng tăng, từ quan niệm “ ăn no, mặc ấm” đã dần thay đổi thành “ ăn ngon, mặc đẹp” Vì vậy, yêu cầu của con người về vấn đề ăn uống ngày càng cao, người tiêu dùng càng quan tâm hàng đầu về vấn đề an toàn vệ sinh thực thẩm
Giả sử bạn là nhà sản xuất thực phẩm, bạn phải đảm bảo về chất lượng của sản phẩm trước khi bán ra thị trường Sản phẩm đến tay người tiêu dùng mà trong đó chứa mảnh dị vật nhỏ thì cũng dể dàng gây ảnh hưởng nghiệm trọng đến uy tín mà bạn đã xây dựng lâu nay Đến lúc đó, doanh nghiệp của bạn phải tốn rất nhiều chi phí để thu hồi sản phẩm và xử lý thông tin đại chúng, nguy cơ phá sản rất cao
Ảnh hưởng của dị vật trong thực phẩm là rất to lớn nên đó là lý do các công ty và doanh nghiệp sản xuất thực phẩm càng phải ưu tiên sử dụng hệ thống kiểm tra để nhanh chóng phát hiện ra những sản phẩm có chứa dị vật trước khi tung ra thị trường Tuy nhiên, kiểm tra một cách thủ công sẽ có nhiều nhược điểm như không có tính ổn định, năng suất thấp, không chính xác….Do đó, sử dụng hệ thống kiểm tra một cách tự động sẽ giải quyết được những vấn đề mà kiểm tra thủ công còn gặp phải
Từ những yêu cầu thực tế đó, hệ thống phân loại vỏ chai thuỷ tinh đòi hỏi cần phải sự chính xác cao trong công nghiệp thêm vào đó sự phát triển mạnh mẽ của công nghệ
nên chúng em đã chọn đề tài “THIẾT KẾ VÀ THI CÔNG KHÂU KIỂM TRA CHẤT
LƯỢNG CỦA VỎ CHAI THUỶ TINH” nhằm đáp ứng được nhu cầu của các công
ty sản xuất nước giải khát để có thể loại bỏ được những chai thuỷ tinh lỗi trước khi đến khâu chiết rót và được đưa ra thị trường tiêu thụ
❖ Đối tượng nghiên cứu: Tìm hiểu quy trình, thiết kế và lập trình phát hiện dị vật trong chai thuỷ tinh Các lỗi khuyết tật và dị vật tồn tại trong chai thuỷ tinh trong suốt như mảnh kim loại, mảnh thuỷ tinh, đá khoáng, gỗ, cao su,
❖ Phạm vi nghiên cứu: Hệ thống phân loại sản phẩm là một đề tài đã được nghiên cứu và phát triển từ lâu Hiện nay trong các nhà máy sản xuất công nghiệp có rất nhiều hệ thống hoàn thiện cả về chất lượng và phẩm mỹ Tuy nhiên, trong phạm vi đồ án tốt nghiệp nên đề tài chỉ giải quyết những vấn đề như:
Thiết kế hệ thống kiểm tra lỗi dị vật vỏ chai thuỷ tinh
Trang 16❖ Cấu trúc của bài báo cáo gồm: Lời nói đầu
Cam đoan Mục lục Danh sách bảng và hình ảnh Danh sách các ký hiệu, chữ viết tắt Chương 1: Tổng quan về hệ thống kiểm tra dị vật của vỏ chai thuỷ tinh Chương 2: Giới thiệu Arduino và công nghệ xử lý ảnh
Chương 3: Thiết kế và thi công khâu kiểm tra dị vật của vỏ chai thuỷ tinh Chương 4: Chương trình điều khiển hệ thống kiểm tra chất lượng của vỏ chai thuỷ tinh
Đánh giá kết quả thực hiện đề tài Tài liệu tham khảo
Phụ lục
Trang 17CHƯƠNG 1 : TỔNG QUAN VỀ HỆ THỐNG KIỂM TRA
CHẤT LƯỢNG VỎ CHAI
1.1 Tổng quan tính cấp thiết của đề tài
Khi sản phẩm được tung ra thị trường, các nhà máy sản xuất sẽ đóng gói sản phẩm trong các bao bì hoặc chai lọ ( phụ thuộc vào thực phẩm là thức ăn hay đồ uống) Trong đó, chai lọ ngày càng được sử dụng rộng rãi trong việc đóng gói đồ uống, đặc biệt là các chai thuỷ tinh trong suốt giúp người tiêu dùng có sự tin tưởng cao hơn đối với sản phẩm Tuy chai thuỷ tinh có nhiều ưu điểm về độ bền, độ tin cậy cao, tính an toàn cũng như thẩm mỹ hơn so với chai nhựa nhưng chai thuỷ tinh vẫn còn tồn tại một số lỗi trong quá tình sản xuất gây ảnh hưởng trực tiếp đến chất lượng của sản phẩm
Chai thuỷ tinh có nhiều ưu điểm như bảo vệ thực phẩm tốt, đa dạng về hình dáng phù hợp với sản phẩm, và có thể tái chế để sử dụng được nhiều lần Vì vậy, chai thuỷ tinh được sử dụng rộng rãi trong công nghiệp đóng gói Tuy ưu điểm là vậy nhưng chai thuỷ tinh vẫn tồn tại một số nhược điểm như hay bị khuyết trên thân, tồn tại các dị vật trong chai…Những nguyên nhân làm chai thuỷ tinh bị lỗi có thể kể như trong quá trình sản xuất hay gặp va chạm trong quá trình vận chuyển Các lỗi trên chai thuỷ tinh có thể chia thành 2 nhóm cơ bản như sau:
- Lỗi nứt vỡ: Là hiện tượng khi chai thuỷ tinh bị nứt hoặc vỡ ra, có thể là do lực bên trong chai tăng cao hoặc do va chạm mạnh
- Lỗi chứa dị vật: Là tình trạng có chứa những dị vật lạ không phải thành phần trong chai thuỷ tinh như: mảnh cao su, côn trùng,…
1.2 Vấn đề đặt ra
Để kiểm tra chai lọ, nhiều nhà máy sản xuất vẫn còn sử dụng nguồn lực con người là chính Phương pháp này có độ tin cậy thấp vì phải phụ thuộc vào tâm sinh lý và tình trạng sức khoẻ của người kiểm tra Ứng dụng công nghệ kỹ thuật tự động để thay thế con người là một việc thiết yếu Khi khâu kiểm tra lỗi được tự động hoá sẽ giúp cải thiện đáng kể năng suất cũng như phát hiện dễ dàng những chai thuỷ tinh có chứa vật thể lạ và giúp nhà sản xuất tiết kiệm rất nhiều chi phí và củng cố uy tín cho doanh nghiệp Tuỳ vào tính chất của sản phẩm và lỗi mà khâu kiểm tra có thể đặt ở những vị trí khác nhau trong dây chuyền sản xuất Trong đề tài này, chúng ta sẽ tập trung vào nghiên cứu hệ thống kiểm tra lỗi trong qua trình trước khi chiết rót và hoàn thiện sản phẩm Đây là quá trình quan trọng vì ảnh hưởng trực tiếp đến chất lượng sản phẩm trước khi đến tay người tiêu dùng Trong đề tài, đối tượng kiểm tra là lọ thuỷ tinh rỗng
Trang 18HÌNH 1.1 Vỏ chai thuỷ tinh có chứa dị vật
1.3 Giải quyết vấn đề
Các vấn đề cần giải quyết: - Vấn đề cơ khí: tính toán và lựa chọn nguyên vật liệu của các chi tiết trong mô
hình phải thoả mãn yêu cầu như: dễ dàng lắp đặt và sửa chữa, có tính thẩm mỹ cao, có tính bền bỉ:
- Vấn đề về điều khiển: hệ thống được điểu khiển hoàn toàn tự động và dễ dàng kiểm tra sửa chữa
- Vấn đề chất lượng và an toàn: đảm bảo an toàn cho người sử dụng và kiểm tra vỏ chai thuỷ tinh một cách nhanh chóng và chính xác
1.4 Các phướng án kiểm tra vỏ chai thông dụng
1.4.1 Kiểm tra lỗi sử dụng đầu do kim loại
Đầu do kim loại thường được sử dụng trong các máy dò, sử dụng từ trường để dò các vật thể kim loại không mong muốn bị trộn lẫn vào trong sản phẩm Máy dò kim loại gồm 3 loại phổ biến là: máy dò băng tải, máy dò đường ống và máy dò rơi tự do
Nguyên lý chung của máy dò kim loại là dùng cuộn dây phát tạo ra trường điện từ trong môi trường và cuộn dây thu để thu từ trường cảm ứng trong vùng không gian dò tìm hiệu dụng của đầu dò Nếu không có dị vật kim loại, cuộn dây thu chỉ thu được từ trường bình thường Khi có vật kim loại có độ dẫn điện sẽ xuất hiện dòng điện cảm
Trang 19ứng (dòng điện xoáy) làm lệch từ trường ở vùng cuộn dây thu Mức lệch từ trường phụ thuộc độ dẫn, độ lớn vật thể và khoảng cách đến đầu dò
HÌNH 1.2 Máy dò kim loại SQUARE
❖ Ưu điểm:
- Có khả năng xử lý nhạy bén với vật thể dẫn điện và bán dẫn - Tốc độ xử lý nhanh chóng
- Cách thức hoạt động đơn giản
❖ Nhược điểm: Chỉ có thể phát hiện được vật liệu là kim loại
1.4.2 Kiểm tra lỗi sử dụng cảm biến siêu âm
Kiểm tra siêu âm là quá trình truyền sóng âm tần số cao vào vật liệu để xác định những thay đổi trong đặc tính của vật liệu Kiểm tra siêu âm sử dụng sóng âm thanh để phát hiện các khuyết tật bên dưới bề mặt của vật liệu Kỹ thuật kiểm tra này có thể xử dụng trên nhiều loại vật liệu khác nhau như thép, vật liệu tổng hợp, cao su… Trong công nghiệp, kỹ thuật này được ứng dụng rộng rãi trong việc dò tìm phát hiện các dị vật mảnh kim loại, thủy tinh và nhựa trong chai thủy tinh
Kỹ thuật này sử dụng đầu dò tạo ra sóng siêu âm tần số cao (từ 500KHz đến 10MHz) và đo thời gian cần thiết để tín hiệu siêu âm rời khỏi đầu dò, truyền qua vật liệu, tiếp xúc với bề mặt và phản xạ trở lại đầu dò Trong công nghiệp, khâu kiểm tra chai lọ thường sử dụng kỹ thuật chùm tia thẳng, nghĩa là sử dụng một chùm âm vuông góc với vật liệu được kiểm tra Âm thanh bị phản xạ ngược trở lại từ phía xa của vật liệu, hoặc suy giảm Các chùm tia phản xạ được thu lại trên đầu dò của thiết bị đo và được xử lý thành hình ảnh hoặc các biểu đồ và hiển thị lên màn hình của thiết bị, từ đó nhận biết được những điểm bất thường trên bề mặt vật liệu
Trang 20HÌNH 1.3 Mô tả hoạt động của cảm biến siêu âm
❖ Ưu điểm:
- Có độ chính xác cao
❖ Nhược điểm:
- Giá thành cao - Phụ thuộc vào điều kiện môi trường ( nhiệt độ, độ ẩm, đồ dày vật liệu)
1.4.3 Kiểm tra lỗi sử dụng tia X
Tia X là một dạng ánh sáng có mang năng lượng Chúng xuất hiện như khi một bức xạ điện từ năng lượng cao được truyền đi với tốc độ ánh sáng, và theo đường thẳng, giống như các sóng ánh sáng thường gặp khác Tuy nhiên, bước sóng của chúng ngắn hơn hàng ngàn lần so với các bước sóng ánh sáng thông thường, vì vậy tần số của tia X lớn hơn rất nhiều Vì năng lượng của sóng điện từ liên quan trực tiếp đến tần số của chúng, tia X mang nhiều năng lượng và mức độ xuyên thấu cao hơn các sóng ánh sáng – cho phép tia X đi xuyên qua các vật liệu mà các ánh sáng thông thường không thể xuyên thấu được
Công nghệ kiểm tra bằng tia X đạt hiệu quả cao trong phát hiện kim loại có từ tính hoặc phi từ tính, cũng như thép không gỉ, thậm chí khi sản phẩm được đóng gói bằng giấy bạc hoặc màng phủ kim loại Công nghệ tia X cũng có thể phát hiện ra thủy tinh, đá khoáng, xương, nhựa cứng và cao su.Các loại máy kiểm tra tia X tự tạo tia X trong bộ máy của chính nó Chúng hoạt động bằng hình thức của bức xạ điện từ, điện áp cao được sử dụng để tạo ra các electron vận tốc cao, tạo thành từ cực âm, electron vận tốc cao sẽ va chạm với cực dương để tạo ra tia X Khi tia X chiếu vào vật thì các loại máy
Trang 21kiểm tra sẽ phân tích dựa trên tỷ trọng của các vật chất, đưa ra hình ảnh mô phỏng của sản phẩm và thể hiện rõ các tạp chất nguy hiểm thể hiện nổi bật trên màn hình
HÌNH 1.4 Hệ thống kiểm tra bằng tia X
❖ Ưu điểm: Phát hiện ra dị vật một cách nhanh chóng và hiệu quả ❖ Nhược điểm:
- Nếu sử dụng không đúng cách có thể gây nguy hại cho người sử dụng - Chi phí thiết bị khá cao
- Yêu cầu kỹ thuật cao
1.4.4 Kiểm tra lỗi sử dụng xử lý ảnh
Trong dây chuyền sản xuất, có nhiều lỗi mà con người khó có thể phát hiện hoặc nếu có thể kiểm tra thì sẽ mất nhiều thời gian và tốn chi phí nhân công thực hiện Bởi vậy, trong dây chuyền sản xuất sử dụng các thiết bị công nghiệp, camera công nghiệp, phần mềm để hỗ trợ nhà máy sản xuất phát hiện lỗi sản phẩm là rất cần thiết
Giải pháp kiểm tra phát hiện lỗi sản phẩm sử dụng thị giác máy tính dùng một máy tính công nghiệp xử lý hình ảnh kết hợp với một camera Camera được gắn cách bề mặt sản phẩm từ 10cm đến 30cm, hình ảnh camera thu về phải thấy được hết khu vực trên bề mặt sản phẩm cần kiểm tra Ngoài ra, giải pháp dùng một cảm biến phát hiện sản phẩm kết nối với máy tính để gửi tín hiệu điều khiển cho camera chụp hình, khi sản phẩm chạy qua vị trí kiểm tra Hình ảnh được gửi về máy tính công nghiệp, phần mềm xử lý sẽ phân tích ảnh, nhận diện, phát hiện lỗi và xuất tín hiệu điều khiển để loại sản phẩm lỗi ra khỏi băng truyền chính
❖ Ưu điểm:
- Phát hiện dị vật một cách chính xác - Có thể kiểm tra nhiều vật thể cùng một lúc
Trang 22❖ Nhược điểm:
- Khả năng phát hiện lỗi còn hạn chế - Bị ảnh hưởng bởi điều kiện môi trường
1.5 Tiêu chí của đề tài
Từ những ưu nhược điểm đã nêu ra ở trên, nhóm đưa ra những tiêu chí cho hệ thống kiểm tra dị vật của vỏ chai thuỷ tinh:
- Kiểm tra được vỏ chai thuỷ tinh một cách chính xác và đảm bảo về số lượng kiểm tra trong một thời gian nhất định
- Thể hiện được tính chuyên nghiệp
1.6 Lựa chọn giải pháp thiết kế
Sau quá trình tham khảo một số tài liệu liên quan, và qua khảo sát một số mô hình kiểm tra dị vật trong thực tế, nhóm quyết định sử dụng công nghệ xử lý ảnh cho đề tài “ Thiết kế và thi công khâu kiểm tra dị vật của chai thuỷ tinh”
Nhóm chọn phương án thiết kế này vì nó dễ lắp đặt và thi công trong mô hình và chi phí phù với khả năng của nhóm Còn những phương án thiết kế khác thì chi phí cao, nhiều thiết bị vật liệu khó tìm kiếm
❖ Phương án thiết kế khâu kiểm tra dị vật gồm những phần chính như sau: ➢ Phần cơ khí:
- Phần khung mô hình dự kiến xây dựng bằng khung nhôm kết hợp với nhôm định hình, vừa đảm bảo độ chắc chắn, vừa có khối lượng nhẹ và thẩm mỹ cao
- Hệ thống băng tải sử dụng động cơ 24VDC Băng tải sử dụng dạng băng đai cao su đi kèm với bộ phận cố định đường đi để di chuyển chai lọ
➢ Phần điện:
- Sử dụng nguồn tổ ong 24VDC và 5VDC - Cảm biến hồng ngoại loại PNP để phát hiện chai thuỷ tinh - Sử dụng camera để lấy ảnh
- Sử dụng Servo để gạt phân loại chai thuỷ tinh Mô hình được phát thảo sơ bộ trong hình 1.5 trong phần mềm Solidwork cũng như lên ý tưởng cách vận hành của mô hình
Trang 23• Bước 3: Hiển thị số lượng chai đạt và chai lỗi trên màng hình LCD
1.7 Ảnh hưởng của đề tài đến với con người, môi trường
• Tiết kiệm được thời gian, công sức lao động của công nhân Tránh việc xảy ra sai sót khi kiểm tra bằng phương pháp thủ công
• Hệ thống có thể hoạt động bền bỉ và lâu dài • Phân loại chính xác các dị vật xuất hiện trong chai thuỷ tinh trước khi đến khâu
chiết rót và đảm bảo được chất lượng trước khi đến tay người tiêu dùng • Tổng hợp được những chai thuỷ tinh lỗi để có thể xử lý cùng lúc
1.8 Tính mới của đề tài
Đề tài này là một đề tài khác độc đáo và ít người thực hiện vì tính chất mới mẻ và phức tạp của nó Tối ưu hoá tiêu chuẩn chất lượng bằng cách sử dụng các cảm biến, công nghệ xử lý ảnh có thể kiểm soát chất lượng sản phẩm tốt hơn để đảm bảo kết quả kiểm tra một cách chất lượng và đồng đều Việc sử dụng công nghệ xử lý ảnh để kiểm tra không chỉ giúp tiết kiệm chi phí nhân công mà còn đảm bảo an toàn cho người lao động Quá trình kiểm tra trở nên hiệu quả hơn, giảm thiểu rủi ro, tai nạn lao động và nâng cao năng suất làm việc Mô hình giúp giảm thiểu chất thải công nghiệp cụ thể là làm giảm chất thải thuỷ tinh giúp bảo vệ môi trường
Trang 24CHƯƠNG 2: GIỚI THIỆU VỀ ARDUINO VÀ CÔNG NGHỆ XỬ LÝ ẢNH
2.1 Giới thiệu về Arduino [6]
2.1.1 Tổng quan về Arduino
Khái niệm: Arduino là nền tảng mã nguồn mở giúp con người xây dựng các ứng dụng điện tử có khả năng liên kết, tương tác với nhau tốt hơn Arduino có thể xem như một chiếc máy tính thu nhỏ giúp người dùng lập trình , thưc hiện các dự án điện tử không cần tới dụng cụ chuyên biệt để phục vụ quá trình nạp code
HÌNH 2.1 Một số Arduino
2.1.2 Lịch sử ra đời của Arduino
Vào thế kỷ 19 ở nước Ý, Arduino đã ra đời và được đặt theo tên của vị vua đó là King Arduino Arduino đã chính thức được giới thiệu năm 2005 là công cụ cho học sinh học tập Một trong những người phát triển Arduino ở trường Interaction Design Institute Ivrea
Dù đa phần không có sự tiếp thị hay quảng cáo nào những Arduino lan truyền với tốc độ chóng mặt Ngày nay, Arduino càng nổi tiếng hơn trên toàn thế giới và có không ít người tìm về thị trấn Ivrea để tham quan nơi sinh ra nền tảng thú vị và độc đáo này Nếu bạn là người cuồng của Arduino nên tìm tới nơi này để khám phá
Arduino hiện nay đã được ứng dụng trong nhiều lĩnh vực và đời sống Mã nguồn mở này mang lại không ít lợi ích thiết thực cho con người Nhờ đó mà Arduino ra đời đã lâu những vẫn tồn tại lâu và phổ biển đến như vậy
Ứng dụng của Arduino trong đời sống con người ❖ Sau đây là một số ứng dụng của Arduino trong một số lĩnh vực như:
Trang 25- Làm Robot với khả năng đọc những thiết bị cảm biến, điều khiển động cơ… Arduino giúp bộ xử lý trung tâm hoạt động nhiệm vụ của mình qua nhiều loại Robot
- Game tương tác: Arduino sử dụng để tương tác với màn hình, Joytick…khi chơi game như phá gạch, Mario,
- Máy bay không người lái - Điều khiển đèn tín hiệu giao thông, hiệu ứng led đèn nhấp nháy - Làm máy in 3D
- Arduino Micro có 20 chân thiết kế nhỏ gọn, trọng lượng nhẹ, kích thước bảng board 5x2cm
- Arduino Pro thiết kế mới, chân số không có sẵn Loại này thường có 2 nguồn 3.3V và 5V
- Arduino Nano kích thước nhỏ gọn nhất, dễ dàng lắp đặt với kích thước 2x4cm - Arduino Mega bộ phận thiết kế số chân đếm 64 chân, kich thước 5x10cm - Arduino Leanardo kyhoong có cổng nối USB dùng lập trình Thiết kế board với
chip nhỏ điều khiển, kết nối qua COM ảo
2.2 Giới thiệu về Arduino nano [7]
Arduino nano được tích hợp vi điều khiển Atmega328P, sử dụng chip CH340 để chuyển đổi USB sang UART giúp Arduino giao tiếp được máy tính từ đó thực hiện việc lập trình
❖ Thông số kỹ thuật: - IC chính: Atmega328P - IC nạp và giao tiếp UART : CH340 - Điện áp hoạt động: 5VDC
- Số chân Digital I/O: 14 chân ( trong đó có 6 chân PWM) - Số chân Analog: 8 ( độ phân giải 10bit, nhiều hơn Arduino Uno 2 chân) - Dòng tiêu thụ: 40mA
Trang 26- Bộ nhớ Flash: 32KB với 2B dùng bởi booloader - SRAM: 2KB
- EEPROM:1B - Xung nhịp:16MHz
HÌNH 2.2 Sơ đồ chân của Arduino nano ❖ Chức năng của các chân :
- GND (Ground):Là chân đất của nguồn điện cấp cho kit Khi dùng các ứng dụng sử dụng nguồn điện riêng hoặc nhiều nguồn thì phải nối những chân GND này với nhau
- 5V: Đầu ra điện áp 5V Phải lưu ý là dòng tối đa cho phép cấp ở pin này là 0.5A
- 3.3V: Đầu ra điện áp 3.3V Dòng tối đa cho phép cấp ở pin này là 0.05A - Vin (Voltage Input): Cấp nguồn ngoài cho kit Khi kết nối, tiến hành nối cực
dương của nguồn với pin này và cực âm của nguồn với pin GND - Chân kỹ thuật số: có thể được sử dụng làm đầu vào hoặc đầu ra cho đầu dò
kỹ thuật số và thiết bị đầu ra bằng pinMode () cho hướng chân, digitalWrite () để ghi chân và digitalRead () để đọc tình trạng pin
- IOREF: Điện áp hoạt động của vi điều khiển Arduino Nano có thể dùng đồng hồ đo được ở pin này Khi đó sẽ thấy nó luôn là 5V Tuy nhiên không được lấy nguồn từ pin này cấp đi chỗ khác vì đơn giản chức năng của nó không phải là cấp nguồn
- RESET: (Đặt lại đầu vào) Mức thấp trên chân này lâu hơn 4 chu kỳ xung nhịp sẽ tạo ra một thiết lập lại Arduino Nano có mạch đặt lại sẵn với nút nhấn để đặt lại hệ thống và chân này có thể được sử dụng bởi các thiết bị khác để đặt lại bộ điều khiển
Trang 27- Chân Serial: 1 (TX) và 0 (RX): dùng để nhận (receive–RX) và gửi (transmit–TX) dữ liệu TTL Serial Arduino Nano có thể giao tiếp với thiết bị khác thông qua 2 chân này Không nên sử dụng 2 chân này nếu không cần thiết
- Chân PWM : Chân kỹ thuật số 3,5,6,9 và 11 có thể được sử dụng làm đầu ra PWM với analogWrite () để ghi giá trị pwm từ 0-255 Đây là sự thay thế của DAC cho hệ thống để lấy tín hiệu tương tự ở đầu ra bằng cách sử dụng bộ lọc - Chân analog : Có thể được sử dụng làm chân đầu vào tương tự cho ADC, nếu không sử dụng nó hoạt động như chân kỹ thuật số bình thường Nó có thể được sử dụng bởi pinMode () cho hướng chân, analogRead () để đọc trạng thái chân và nhận giá trị kỹ thuật số cho tín hiệu tương tự, phải cẩn thận khi lựa chọn điện áp tham chiếu bên trong hoặc bên ngoài và chân Aref
- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
- AREF: Chân này được sử dụng Adc để chuyển đổi tương tự sang kỹ thuật số với điện áp tham chiếu bên ngoài để chuyển đổi và không muốn sử dụng tham chiếu bên trong 1.1V hoặc 5v
- Chân I2C: Chân kỹ thuật số A4 cho SDA và A5 cho SCK để cho phép giao tiếp hai dây với các thiết bị khác Hàm được sử dụng là wire.begin () để bắt đầu chuyển đổi I2C, với wire.Read () để đọc dữ liệu I2C và wire.Write () để ghi dữ liệu I2C
❖ Nguồn cấp: - Các nguồn cấp của Arduino có thể được thực hiện với sự trợ giúp của nguồn
điện bên ngoài nếu không có kết nối USB Nguồn điện bên ngoài (6 đến 20 volt) chủ yếu bao gồm pin hoặc bộ chuyển đổi AC sang DC Việc kết nối bộ chuyển đổi có thể được thực hiện bằng cách cắm phích cắm dương trung tâm (2,1mm) vào giắc nguồn trên bo mạch Các cực của pin có thể được đặt trong các chân của Vin cũng như GND
2.3 Giới thiệu về phần mềm Arduino IDE [7]
Arduoino cung cấp đên môi trường lập trình tích hợp mã nguồn mở hỗ trợ người dùng viết code và tái hiện nó lên bo mạch Arduino Đây là môi trường đa nền tảng, hỗ trợ một loạt các bo mạch Arduino cùng rất nhiều tính năng độc đáo Ứng dụng lập trình này có giao diện được sắp xếp một cách hợp lý, phù hợp với cả những người dùng chuyên nghiệp lẫn không chuyên
Arduino có môi trường lập trình được viết bằng java, hiện đang được sử dụng cho các board mạch Arduino và Genuido, được nhiều công ty trên thế giới sử dụng để lập
Trang 28trình cho các thiết bị của họ Java2 Platform Standard Edition cũng là một IDE hỗ trợ Java Hiện Java2 Platform Standard Edition được rất nhiều người sử dụng
Arduino IDE là môi trường phát triển tích hợp đa nền tảng, hỗ trợ cho một loạt các board mạch Arduino như Arduino Uno, Nano, Mega…Phần mềm này cũng phù hợp cho những lập trình biên C và C++ là thay thế hoàn hảo cho các IDE khác Với những ai muốn học lập trình PHP, thì PHP Designer 2007 Personal là lựa chọn tốt Phần mềm PHP Designer 2007 Personalcung cấp các giải pháp hiệu quả trong thiết kế Website
❖ Các tính năng chính của Arduino IDE - Viết code cho các bo mạch Arduino - Hỗ trợ nhiều loại board mạch Arduino - Giao diện được sắp xếp hợp lí
- Bộ sưu tập các ví dụ mẫu - Mảng thư viện hỗ trợ phong phú
2.3.1 Giao diện phần mềm Arduino 2.3.1.1 Giao diện phần mềm Arduino
HÌNH 2.3 Giao diện của phần mềm IDE
Trang 29HÌNH 2.4 Menu file trên phần mềm IDE
HÌNH 2.5 Cách chọn board trên màn hình giao diện IDE
HÌNH 2.6 Cách chọn cổng trên màn hình IDE
Trang 302.3.1.2 Cấu trúc một chương trình trong phần mềm IDE
HÌNH 2.7 Cấu trúc chương trình soạn thảo phần mềm IDE
2.3.2 Tổng quan quá trình xử lý chương trình Arduino
❖ Phần 1: Khai báo biến Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biên thông dụng: #define
Nghĩa của từ “define” là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân hay một ngõ ra nào đó với một cái tên
Ví dụ: #define led13 Chú ý: sau #define thì không có dấu “,” ( dấu phẩy) Khai báo các kiểu biển khác như: int ( kiểu số nguyên ), float,…
❖ Phần 2: Thiết lập( void setup()) Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó Void setup()
{ … } Cấu trúc của nó có dấu ngoặc nhọn ở đầu và cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào Trong đó:
Dùng để xác định kiểu chân là đầu
vào hay đầu ra
❖
Trang 31❖ Phần 3: Vòng lặp Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng:
Void loop {
…… }
2.4 Công nghệ xử lý ảnh [11]
Công nghệ xử lý ảnh là một lĩnh vực quan trọng của khoa học máy tính, liên quan đến việc áp dụng các thuật toán và kỹ thuật toán học để biến đổi, phân tích, nén, khôi phục và cải thiện chất lượng của các hình ảnh kỹ thuật số Công nghệ xử lý ảnh có nhiều ứng dụng trong các lĩnh vực khác nhau như: Y tế, giáo dục, an ninh, tự động hoá, nghiên cứu khoa học…
Công nghệ xử lý ảnh là một lĩnh vực phát triển nhanh chóng Các tiến bộ trong cộng nghệ này đang dẫn đến những ứng dụng mới và sáng tạo trong nhiều lĩnh vực khác nhau
2.4.1 Tổng quan về xử lý ảnh
Xử lý ảnh là quá trình chuyển đổi một hình ảnh sang dạng kỹ thuật số và thực hiện các thao tác nhất định để nhận được một số thông tin hữu ích từ hình ảnh đó Hệ thống xử lý hình ảnh thường coi tất cả các hình ảnh là tín hiệu 2D khi áp dụng một số phương pháp xử lý tín hiệu đã xác định trước Kết quả của xử lý ảnh là một ảnh khác có đặc điểm khác với ảnh ban đầu hoặc một kết luận Xử lý ảnh phát triển rất mạnh mẽ trong thời gian gần đây, bao gồm ở rất nhiều lĩnh vực: y tế, kinh tế, văn hóa, quân sự, quốc phòng… Hiện nay, có bốn khía cạnh chính liên quan đến xử lý ảnh: xử lý và nâng cao chất lượng ảnh, nhận dạng ảnh, truy vấn ảnh và nén ảnh Ở phạm vi đề tài này sẽ tìm hiểu về vấn đề nhận dạng ảnh trên cơ sở màu sắc ảnh thu được từ cảm biến Camera
2.4.1.1 Không gian màu
Đối với phương pháp xử lý ảnh người dùng cần có kiến thức về các thành phần cơ bản cấu thành điểm ảnh cũng như không gian màu – được hiểu như một cách số hóa màu sắc Như ta đã biết, hình ảnh mà các thiết bị kỹ thuật số hiển thị cho chúng ta thấy được là do sự kết hợp giữa các kênh màu Trong đó, chúng ta không thể không kể đến một hệ màu thông dụng là RGB (Red, Green và Blue) với mỗi kênh màu có cường độ từ 0 đến 8 bit (giá trị từ 0 đến 255) tạo thành một ma trận 3 chiều Hình ảnh các pixel được phóng lớn, có các màu red-green-blue được lặp lại, cứ 3 màu được 1 pixel
Trang 32HÌNH 2.8 Mô hình netcapse Color Cube Sự kết hợp này tạo ra độ đa dạng cho màu sắc trong kỹ thuật số khi một điểm ảnh sẽ mang giá trị từ 0 đến 2563-1 ứng với 16.777.216 màu hiển thị Tuy nhiên, không phải lúc nào sự đa dạng cũng mang tính tiện lợi cho con người Đối với các màn hình bị giới hạn về độ sâu của màu sắc, chúng chỉ có thể hiển thị 216 màu RGB tương ứng với 6 giá trị màu cho mối kênh theo hệ lục phân: #00, #33, #66, #99, #CC, #FF
Tuy nhiên với sự phát triển vượt bậc về công nghệ hiển thị, giờ đây việc hiển thị đầy đủ giá trị màu của RBG với 24 bit mỗi điểm ảnh (24bpp) không còn là vấn đề quá lớn Thậm chí, các màn hình với công nghệ tiên tiến hiện nay có thể hiển thị với tốc độ sâu lên đến 48pp (16bit mỗi kênh), mang đến khả năng hiển thị hơn 68 tỷ màu
2.4.1.2 Tạo màu xám
Đây là một trong những phương pháp được sử dụng phổ biến trong quá trình tiền sử lý Giá trị hệ màu xám được xác định từ 0 (màu đen) đến 255 (màu trắng), từ 1 đến 254 là các sắc độ từ xám đậm đến xám nhạt
HÌNH 2.9 Chuyển đổi ảnh xám
Trang 33Như chúng ta có thể thấy, phép chuyển đổi từ ảnh màu sang ảnh xám giữ nguyên tính chất ảnh về các cầu trúc, chiều sâu, và ánh sáng, trừ yếu tô màu sắc Việc chuyển đổi hình ảnh thành hệ màu xám đề sử dụng trong quá trình xử lý giúp giảm dùng lượng bộ nhớ và tăng tốc độ xử lý của hệ thống một cách đáng kể do ảnh xám chỉ yêu cầu 8 bits dữ liệu cho mỗi điểm ảnh thay vì ít nhất 24 bits như trong các hệ màu khác (lưu ý rằng với mỗi điểm ảnh RGB hệ thống luôn cấp đủ 24 bits cho dù tất cả các giá trị của hệ màu là 0) Vì vậy, phần lớn các thuật toán xử lý ảnh đều yêu cầu ảnh đầu vào là một ảnh xám vì chúng giúp đơn giản hóa thuật toán cũng như giảm số lượng phép tính cần phải thực hiện, nhờ đó bộ nhớ máy tính có thẻ lưu trữ nhiều dữ liệu hơn, khả năng xử lý đa nhiệm cũng được cải thiện một cách đáng kể
HÌNH 2.10 Ảnh và biểu đồ tần suất gốc Cân bằng histogram (histogram equalization) là sự điều chỉnh histogram về trạng thái cân bằng, làm cho phân bố (distribution) giá trị pixel không bị co cụm tại một khoảng hẹp mà được "kéo dãn" ra Trong thực tế, camera thường chịu tác động từ điều kiện sáng Điều đó khiến cho nhiều ảnh bị tối hoặc quá sáng Cân bằng histogram là một phương pháp tiền/hậu xử lí ảnh rất mạnh mẽ
Trang 34HÌNH 2.11 Ảnh và biểu đồ tần suất đã cân bằng
2.4.1.4 Phân ngưỡng ảnh
Phép phân ngưỡng được sử dụng đề chuyên đối ảnh đa cấp xám (mỗi điểm ảnh có giá trị cường độ xám từ 0 đến 255) thành ảnh nhị phân (mỗi điểm ảnh chỉ mang giá trị 0 hoặc 255) Việc phân ngưỡng được ứng dụng nhiều trong các bài toán về phát hiện vật thể, phân lớp, và giúp tăng tốc các bài toán liên quan đến vùng ảnh Đối với một ảnh xám, nếu độ đậm G của điểm ảnh lớn hơn giá trị ngưỡng đặt trước, điểm ảnh sẽ được gắn một giá trị ở đầu ra của phép phân ngường Trường hợp độ đậm G của điểm ảnh nhỏ hơn hoặc bằng giá trị ngưỡng, điểm ảnh sẽ được gán một giá trị khác Các giá trị đầu ra được quyết định dựa trên sự lựa chọn về phương pháp phân ngưỡng Một số phương pháp phân ngưỡng cơ bản có thế được kể đến như:
- Phân ngưỡng nhị phân (Binary): Nếu G lớn hơn ngưỡng, điểm ảnh được gán giá trị 255 (hoặc giá trị bất kỳ được đặt trước), ngược lại, điểm ảnh được gán giá trị là 0
- Phân ngưỡng nhị phân đảo (Binary Inaverted): Nếu G lớn hơn ngưỡng, điểm ảnh được gắn giá trị 0.Ngược lại, điểm ảnh được gán giá trị là 255 (hoặc giá trị bất kỹ đặt trước)
- Phân ngưỡng cụt (Ngưỡng Truncate): Nêu G lớn hơn ngưỡng, điểm ảnh được gán với giá trị ngưỡng Ngược lại, giá trị điểm ảnh không thay đổi
- Phân ngưỡng Về-không (Ngưỡng Tozero): Nêu G lớn hơn ngưỡng, giá trị điểm ảnh không thay đổi Ngược lại, điểm ảnh được gắn giá trị 0
- Phân ngưỡng Về-không đảo (Ngưỡng Tozero Iaverted): Nêu G lớn hơn ngưỡng, điểm ảnh được gán giá trị 0 Ngược lại, giá trị điểm ảnh không thay đổi
Trang 35Hình ảnh dưới đây minh hoạ về các phương pháp trên
HÌNH 2.12 Kết quả hiện thị các phương pháp ngân ngưỡng
HÌNH 2.13 Chuyển ảnh nhị phân
Trang 362.4.2 Giới thiệu phần mềm Pycharm[9]
Pycharm là một môi trường phát triển tích hợp (IDE) được sử dụng để lập trình bằng Python Nó cung cấp phân tích mã, trình gỡ lỗi đồ hoạ, trình kiểm tra đơn vị tích hợp, tích hợp với hệ thống kiểm soát phiên bản và hỗ trợ phát triển web với Django Pycharm được phát triển bởi công ty JetBrains Ngôn ngữ Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và học máy( ML) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau
HÌNH 2.14 Phần mềm IDE Pycharm
HÌNH 2.15 Giao diện IDE Pycharm
Trang 37Chúng ta có thể chạy PyCharm trên Windows, Linux hoặc Mac OS Ngoài ra, nó chứa các module và các package giúp các lập trình viên phát triển phần mềm bằng Python tiết kiệm thời gian và công sức Hơn nữa, nó cũng có thể được tùy chỉnh theo yêu cầu của các nhà phát triển
Một số tính năng chính của PyCharm bao gồm: - Giao diện người dùng thân thiện: PyCharm có giao diện người dùng dễ sử dụng
và thân thiện, giúp người dùng dễ dàng tìm hiểu và sử dụng các tính năng của IDE
- Gỡ lỗi (debugging) mạnh mẽ: PyCharm cung cấp công cụ gỡ lỗi mạnh mẽ, cho phép bạn theo dõi và sửa lỗi trong code Python một cách dễ dàng
- Hỗ trợ lập trình nhanh: PyCharm cung cấp tính năng autocompletion (hoàn thành tự động) và code suggestions (gợi ý code) giúp bạn viết code nhanh hơn và giảm thời gian gõ code
- Kiểm tra code tự động: PyCharm cung cấp tính năng kiểm tra code tự động (code inspection) để phát hiện và chỉ ra các lỗi, cảnh báo và cải thiện code
- Quản lý dự án: PyCharm cho phép bạn quản lý dự án Python của mình, bao gồm tạo và quản lý các tệp tin, thư mục, mô-đun, và gói trong dự án
- Hỗ trợ version control: PyCharm tích hợp với các hệ thống quản lý phiên bản như Git, SVN, Mercurial, và Perforce, giúp bạn quản lý phiên bản của code dễ dàng - Hỗ trợ phát triển web: PyCharm cung cấp tích hợp với các framework web phổ biến như Django và Flask, giúp bạn phát triển ứng dụng web Python một cách dễ dàng
- PyCharm là một IDE tuyệt vời cho các lập trình viên và nhà phát triển ứng dụng Python Tuy nhiên, có một số ưu và nhược điểm của việc sử dụng PyCharm IDE ❖ Ưu điểm :
- Cài đặt PyCharm rất dễ dàng - PyCharm là một IDE dễ sử dụng - Có rất nhiều plugin hữu ích và phím tắt hữu ích trong PyCharm - PyCharm tích hợp các tính năng của thư viện và IDE như tự động hoàn thành và
tô màu - Nó cho phép xem mã nguồn trong một cú nhấp chuột - Tiết kiệm thời gian phát triển phần mềm
- Tính năng đánh dấu lỗi trong code giúp nâng cao hơn nữa quá trình phát triển - Cộng đồng các nhà phát triển Python vô cùng lớn và chúng ta có thể giải quyết
các thắc mắc/ nghi ngờ của mình một cách dễ dàng
Trang 38❖ Nhược điểm: - Tính năng phức tạp: PyCharm có nhiều tính năng phong phú và mạnh mẽ, nhưng
đôi khi có thể làm cho giao diện người dùng trở nên phức tạp và khó sử dụng đối với những người mới bắt đầu
- Tốn tài nguyên: PyCharm là một IDE mạnh mẽ, điều này có nghĩa là nó sử dụng nhiều tài nguyên hệ thống Điều này có thể gây ra hiện tượng giật lag hoặc chậm khi làm việc trên các máy tính có cấu hình yếu
2.4.3 Thư viện xử lý ảnh
Thư viện xử lý ảnh là một tập hợp các công cụ và thuật toán được sử dụng để xử lý và phân tích ảnh số Nó cung cấp các chức năng và phương pháp để thực hiện các tác vụ như lọc ảnh, phát hiện đối tượng, nhận dạng khuôn mặt, trích xuất đặc trưng và nhiều tác vụ khác
Có nhiều thư viện xử lý ảnh phổ biến và mạnh mẽ được sử dụng trong lĩnh vực này Dưới đây là một số thư viện phổ biến:
- OpenCV - Scikit-image - TensorFlow và Keras - PIL (Python Imaging Library) - EmguCV
Tổng quan về thư viện xử lý ảnh cho thấy chúng là các công cụ quan trọng để xử lý, biến đổi và phân tích hình ảnh số Các thư viện này cung cấp các chức năng và thuật toán mạnh mẽ để thực hiện các thao tác xử lý ảnh và thị giác máy tính trong các ứng dụng khác nhau như xử lý ảnh y tế, nhận dạng đối tượng và xử lý ảnh trực quan
2.4.3.1 Thư viện Open CV[10]
HÌNH 2.16 Thư viện OpenCV Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV viết tắt cho thư viện thị giác máy tính nguồn mở OpenCV là thư viện nguồn mở đầu cho