1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế hệ thống phân loại cà chua theo màu sắc và khối lƣợng

113 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Hệ Thống Phân Loại Cà Chua Theo Màu Sắc Và Khối Lượng
Tác giả Cao Anh Tú, Giáp Thanh Điền
Người hướng dẫn TS. Trần Hoàng Vũ
Trường học Đại học Đà Nẵng
Chuyên ngành Chuyên ngành kỹ thuật điện tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 113
Dung lượng 6,12 MB

Nội dung

Các sản phẩm dự kiến- Mô hình “Hệ thống phân loại cà chua theo màu sắc và khối lượng”.- Báo cáo thuyết minh đề tài.- Chương trình xử lý ảnh trên Python ứng dụng trên nền tảng Raspberry.-

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Giảng viên hướng dẫn : TS TRẦN HOÀNG VŨ

: Giáp Thanh Điền

Trang 2

Đà Nẵng, tháng 06 năm 2023

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Giảng viên hướng dẫn : TS TRẦN HOÀNG VŨ

Nhóm sinh viên: : Cao Anh Tú

: Giáp Thanh Điền

Trang 3

Đà Nẵng, tháng 06 năm 2023

Trang 4

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Họ và tên Sinh viên

: Cao Anh Tú MSV: 1911505120244 : Giáp Thanh Điền MSV: 1911505120215 Ngành: Công nghệ kỹ thuật điện tử.

Tên đề tài: “THIẾT KẾ HỆ THỐNG PHÂN LOẠI CÀ CHUA THEO MÀU

SẮC VÀ KHỐI LƯỢNG”

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện

Tp Đà Nẵng, ngày… tháng… năm 2022

Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 5

PHIẾU NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Trang 6

Đề tài “Thiết kế hệ thống phân loại cà chua theo màu sắc và khối lượng” là môhình phân loại nông sản cà chua theo màu sắc (đỏ, vàng, xanh) Sau khi phân loại càchua theo màu sắc chúng ta tiến hành cân lượng cà chua màu đỏ và vàng rồi đổ theotừng thùng để đưa tới nơi đóng gói và gửi khối lượng lên file excel để nắm bắt khốilượng từng loại quả Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và đượcthực hiện trên Kit Raspberry và Kit Arduino Mega 2560 Ở đây sử dụng các đặc điểmriêng biệt từng màu sắc của quả cà chua để đi nhận dạng, sau đó phân loại từng sảnphẩm và sử dụng cảm biến trọng lượng để tiến hành cân khối lượng từng quả theo khốilượng ta mong muốn.

Trang 7

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ

THUẬT

KHOA ĐIỆN – ĐIỆN TỬ

CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Trần Hoàng Vũ

1 Tên đề tài:

“THIẾT KẾ HỆ THỐNG PHÂN LOẠI CÀ CHUA THEO MÀU SẮC VÀ

KHỐI LƯỢNG”.

2 Các số liệu, tài liệu ban đầu:

- Arduino, Raspberry Pi 4B, camera, động cơ, cảm biến…

- Các công nghệ, kiến thức kỹ thuật: Hệ thống IoT, vi điều khiển, hệ thống

nhúng

- Tài liệu về ngôn ngữ lập trình Python và thư viên OpenCV

3 Nội dung chính của đồ án:

Chương 1: Tổng quan

Chương 2: Cơ sở lý thuyết và các công nghệ

Chương 3: Thiết kế, chế tạo mô hình hệ thống phân loại cà chua theo màu sắc

và khối lượng

Chương 4: Chương trình điều khiển và giám sát hệ thống

Kết luận

4 Các sản phẩm dự kiến

- Mô hình “Hệ thống phân loại cà chua theo màu sắc và khối lượng”

- Báo cáo thuyết minh đề tài

- Chương trình xử lý ảnh trên Python ứng dụng trên nền tảng Raspberry

- Chương trình điều khiển arduino

5 Ngày giao đồ án:

Trang 8

Đà Nẵng, ngày tháng năm 2023

TS Trần Hoàng Vũ

Trang 9

LỜI NÓI ĐẦULời đầu tiên, em xin chân thành gửi lời cảm ơn sâu sắc đến TS Trần Hoàng Vũ,

người đã đồng hành, dẫn dắt và hướng dẫn em trong quá trình hình thành và phát triển

đề tài tốt nghiệp này

Theo đó em muốn gửi gắm lòng biết ơn đến các quý thầy cô trong khoa Điện – Điện tử, trường Đại học Sư Phạm Kỹ thuật Đà Nẵng đã luôn tạo điều kiện thuận

lợi, môi trường học tập tốt nhất cho em Giúp em xây dựng vững chắc nền tảng kiếnthức chuyên ngành mà mình đang hướng đến

Cuối cùng, sẽ thật thiếu sót khi không đề cập đến gia đình của mình, đặc biệt là

bố mẹ, những người bạn Niềm tin của họ dành cho em đã giúp tinh thần và động lựccủa em luôn cao trong suốt quá trình học tập và làm việc

Chân thành cảm ơn!

Trang 10

Sinh viên thực hiện

Trang 11

MỤC LỤC

PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

PHIẾU NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

TÓM TẮT

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

LỜI NÓI ĐẦU i

CAM ĐOAN ii

MỤC LỤC iii

DANH SÁCH CÁC BẢNG, HÌNH VẼ vi

DANH SÁCH CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT viii

MỞ ĐẦU 1

Chương 1 TỔNG QUAN 2

1.1 Tính cấp thiết của đề tài 2

1.2 Mục tiêu đề tài 2

1.3 Nội dung nghiên cứu 2

1.4 Giới hạn đề tài 3

1.5 Tổng quan về xử lý ảnh 3

1.5.1 Thu nhận ảnh (Image Acquisition) 4

1.5.2 Tiền xử lý (Image processing) 4

1.5.3 Phân đoạn (Segmentation) hay phân vùng ảnh 4

1.5.4 Biểu diễn ảnh ( Image Representation) 5

1.5.5 Nhận dạng và nội suy ảnh 5

1.5.6 Cơ sở tri thức 5

1.5.7 Mô tả 6

1.6 Những vấn đề trong xử lý ảnh 6

1.6.1 Điểm ảnh 6

1.6.2 Ảnh số 6

1.6.3 Phân loại ảnh 6

1.6.4 Quan hệ giữa các điểm ảnh 6

1.6.5 Lọc nhiễu 7

1.6.6 Phương pháp phát hiện biên 8

Trang 12

1.6.7 Phân đoạn ảnh 9

1.6.8 Các phép toán hình thái Morphology 10

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG NGHỆ 12

2.1 Ngôn ngữ lập trình python 12

2.1.1 Giới thiệu 12

2.1.2 Đặc điểm nổi bật của python 12

2.2 Thư viện openCV 13

2.2.1 Giới thiệu về OpenCV 13

2.2.2 Các phép xử lý dơn giản của OpenCV 14

2.3 Xử lý ảnh sử dụng YOLO 19

2.3.1 Khái niệm yolo 20

2.3.2 Kiến trúc mạng YOLO 20

2.3.3 Cách Yolo hoạt động 22

2.3.4 Output của YOLO 23

2.3.5 Hàm tính IOU 24

2.4 Chuẩn giao tiếp nối tiếp UART 25

2.4.1 Giới thiệu 25

2.4.2 Truyền thông UART 26

2.4.3 Ứng dụng của giao tiếp UART 28

2.5 Chuẩn giao tiếp I2C 28

2.5.1 Giới thiệu 28

2.5.2 Quy trình truyền nhận dữ liệu chuẩn I2C 29

2.6 Giới thiệu phần cứng 31

2.6.1 Raspberry Pi 4 31

2.6.2 Mô tả chân Raspberry Pi 4 Module B 33

2.6.3 Camera Webcam Dùng Cho Raspberry Pi 38

2.6.4 Arduino Mega 2560 40

2.6.5 Cảm biến tải trọngloadcell 44

2.6.6 Module HX711 45

2.6.7 Cảm biến hồng ngoại E18-D80NK 45

2.6.8 Động cơ DC kéo băng tải 46

2.6.9 Động cơ servo MG995 47

Trang 13

2.6.10 Màn hình LCD × 02 và module I2C 48

2.6.11 Giới thiệu hệ thống băng tải 49

Chương 3 THIẾT KẾ, CHẾ TẠO MÔ HÌNH HỆ THỐNG PHÂN LOẠI CÀ CHUA THEO MÀU SẮC VÀ KHỐI LƯỢNG 50

3.1 Xác định yêu cầu 50

3.2 Đặc tả kỹ thuật 52

3.3 Phát triển phần cứng 52

3.3.1 Lựa chọn linh kiện 52

3.3.2 Sơ đồ nguyên lý mạch điều khiển 57

3.3.3 Sơ đồ nguyên lý mạch điều khiển động cơ 59

3.3.4 Thi công mạch in 62

3.4 Phát triển phần mềm cho vi điều khiển 65

3.4.1 Mô hình hóa hệ thống 65

3.4.2 Các công cụ và môi trường phát triển 66

3.5 Hoàn thiện Hệ thống phân loại cà chua theo màu sắc và khối lượng 68 Chương 4 CHƯƠNG TRÌNH ĐIỀU KHIỂN VÀ GIÁM SÁT HỆ THỐNG 70

4.1 Lưu đồ thuật toán trên Arduino 70

4.2 Lưu đồ thuật toán trên Raspberry PI 4 Module B 72

4.3 Thao tác sử dụng hệ thống nhận diện quả cà chua trên Raspberry 74

4.3.1 Các bước vào giao diện hệ điều hành Raspberry 74

4.3.2 Thao tác chạy chương trình trên Raspberry và Laptop 76

4.4 Thao tác sử dụng ArduSpreadsheet 77

KẾT LUẬN 78

TÀI LIỆU THAM KHẢO 79

PHỤ LỤC 80

Trang 14

DANH SÁCH CÁC BẢNG, HÌNH

Bảng 2 1 Các chân Ground trên Raspberry Pi 35

Bảng 2 2 Các chân I/O digital trên Raspberry Pi 35

Bảng 2 3 Các chân hỗ trợ giao tiếp UART trên Raspberry Pi 36

Bảng 2 4 Các chân hỗ trợ giao tiếp I2C trên Raspberry Pi 37

Bảng 2 5 Các chân GPIO PWM trên Raspberry Pi 38

Bảng 2 6 Các chân SDIO của Raspberry Pi 38

Bảng 2 7 Bảng thông số kỹ thuật của board Arduino Mega 2560 40

Bảng 2 8 Thông số kỹ thuật của cảm biến tải trọng Loadcell 44

Y Bảng 3 1 Phần cứng khối ngoại vi [7] 54

Bảng 3 2 Phần cứng khối nguồn [7] 56

Hình 2 1 Quá trình xử lý ảnh 4

Hình 2 2 Lân cân 4 và lân cận 8 7

Hình 2 3 Hình tách biên 8

Hình 2 4 Phép giãn 11

Hình 2 5 Phép co 11

Hình 2 6 Trang chủ Python 12

Hình 2 7 Không gian mùa RGB 14

Hình 2 8 Không gian màu CMYK 15

Hình 2 9 Không gian màu HSV 16

Hình 2 10 Biến đổi ảnh xám 17

Hình 2 11 Biến đổi ảnh đen trắng 18

Hình 2 12 Các lớp trong YOLO 20

Hình 2 13 Sơ đồ kiến trúc mạng YOLO 21

Hình 2 14 Các layer trong mạng darknet-53 22

Hình 2 15 Hoạt động của YOLO 22

Hình 2 16 Output của YOLO 24

Hình 2 17 Giao tiếp UART 26

Hình 2 18 Truyền thông UART 27

Hình 2 19 Giao tiếp UART với vi điều khiển 28

Hình 2 20 Kết nối các thiết bị chủ tớ 29

Hình 2 21 Quá trình truyền dữ liệu của thiết bị chủ 30

Hình 2 22 Quá trình nhận dữ liệu từ thiết bị chủ 31

Hình 2 23 Máy tính nhúng Raspberry Pi 32

Hình 2 24 Thông số kỹ thuật của Raspberry Pi 32

Hình 2 25 Sơ đồ chân Raspberry Pi 34

Hình 2 26 GPIO Raspberry Pi 34

Hình 2 27 Webcam 39

Trang 15

Hình 2 28 Board Arduino Mega 2560 40

Hình 2 29 Cảm biến tải trọng Loadcell 44

Hình 2 30 Cảm biến hồng ngoại E18-D80NK 45

Hình 2 31 Động cơ kéo băng tải 46

Hình 2 32 Động cơ servo MG995 47

Hình 2 33 Màn hình LCD 16×2 48

Hình 2 34 Module I2C 48

Hình 2 35 Băng tải 49

Hình 3 1 Sơ đồ khối hoạt động của hệ thống mạch điện tử 50

Hình 3 2 Board Arduino Mega 2560 53

Hình 3 3 Máy tính nhúng Raspberry Pi 53

Hình 3 4 Sơ đồ nguyên lý mạch điều khiển 58

Hình 3 5 Sơ đồ nguyên lý mạch điều khiển động cơ 59

Hình 3 6 Khối điều khiển cân 1 60

Hình 3 7 Sơ đồ nguyên lý khối điều khiển cân 2 60

Hình 3 8 Sơ đồ nguyên lý khối điều khiển băng tải 1 61

Hình 3 9 Sơ đồ nguyên lý khối điều khiển băng tải 2 61

Hình 3 10 Sơ đồ nguyên lý khối điều khiển băng tải 3 62

Hình 3 11 Mạch in PCB 62

Hình 3 12 Lớp TopLayer sau khi thi công 63

Hình 3 13 Mạch in PCB 63

Hình 3 14 Lớp ButtomLayer sau tkhi thi công 64

Hình 3 15 Lớp TopLayer sau khi thi công 64

Hình 3 16 Mô hình phân rã chức năng Controller 1 65

Hình 3 17 Mô hình phân rã chức năng Cotroller 2 66

Hình 3 18 Visual Studio Code 66

Hình 3 19 Arduino IDE 67

Hình 3 20 ArduSpreadsheet 68

Hình 3 21 Mặt trước mô hình hệ thống 68

Hình 3 22 Mặt sau mô hình hệ thống 69

Hình 4 1 Lưu đồ thuật toán trên Arduino Mega 2560 70

Hình 4 2 Lưu đồ thuật toán trên Raspberry 73

Hình 4 3 Dò địa chỉ IP của Raspberry 74

Hình 4 4 Nhập địa chỉ IP vào VNC Viewer 75

Hình 4 5 Đăng nhập vào giao diện hệ điều hành Raspberry 75

Hình 4 6 Giao diện hệ điều hành Raspberry 76

Hình 4 7 Chay chương trình nhận diện quả cà chua Visual Studio Code 76

Hình 4 8 Quá trình nhận diện trên Raspberry được hoàn tất 77

Trang 16

DANH SÁCH CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT

Trang 17

MỞ ĐẦU

Trong thời đại mà các dây chuyền sản xuất, đóng gói và phân loại sản phẩm củacác nhà máy không chỉ ở nước ta mà trên toàn thế giới đang dần dần chuyển hoàn toànthành dây chuyền tự động hóa Mục đích nhằm tăng năng suất sản phẩm, rút ngắn thờigian thành phẩm, có thể làm việc liên tục, giảm sức người và nhân công nhằm đem lạilợi nhuận lớn hơn cho doanh nghiệp và nhà đầu tư

Đề tài: “Thiết kế hệ thống phân loại cà chua theo màu sắc và khối lượng” thôngqua việc sử dụng Raspberry Pi 4 Module B, kit Arduino Mega 2560 để phân loại càchua theo màu sắc và dùng cảm biến trọng lượng loadcell để cân khối lượng quả theotừng loại màu với khối lượng mong muốn để đưa tới nơi đóng gói

Đề tài gồm có 4 chương chính:

Chương1: Tổng quan

Chương 2: Cơ sở lý thuyết và các công nghệ

Chương 3: Thiết kế, chế tạo mô hình hệ thống phân loại cà chua theo màu sắc

và khối lượng

Chương 4: Chương trình điều khiển và giám sát hệ thống

Kết luận và hướng phát triển

Trang 18

Chương 1 TỔNG QUAN

1.1 Tính cấp thiết của đề tài

Khoa học kỹ thuật luôn phát triển ở mọi lĩnh vực, nhất là các ngành sản xuất,chúng đòi hỏi cải tiến và nâng cấp hệ thống sản xuất là ưu tiến hàng đầu Tự động hóa

hệ thống phân loại sản phẩm là một cách cải tiến và nâng cấp trong những công đoạnsản xuất Hệ thống này giúp cho việc sản xuất được linh hoạt hơn, tiết kiệm thời gian,nhân lực, tăng năng suất đem lại hiểu quả kinh tế cao

Đã có khá nhiều đề tài thực hiện việc mô hình phân loại nông sản như phân loạitheo chiều cao, phân loại theo khối lượng theo kích thước Nhưng với những nông sản

có màu sắc thay đổi theo tính chất của nông sản thì các mô hình phân loại kia khôngphù hợp, nhiều hệ thống chỉ thực hiện phân loại mà chưa thực hiện giám sát, quản lýviệc phân loại Vì vậy chúng ta cần xây dựng việc giám sát quá trình phân loại cho hệthống

Phân loại cà chua theo màu sắc và khối lượng giúp cho việc quản lý và sản xuấttrở nên hiệu quả hơn Các loại cà chua khác nhau thường được sử dụng cho các mụcđích khác nhau, ví dụ như sản xuất nước cà chua, chế biến thực phẩm hoặc tiêu thụtươi Bằng cách phân loại chúng theo màu sắc và khối lượng, các nhà sản xuất có thểtối ưu hóa quy trình sản xuất và đảm bảo rằng sản phẩm được sản xuất đáp ứng cácyêu cầu cụ thể của khách hàng

Vì vậy, chúng em xin đề xuất đề tài “Thiết kế hệ thống phân loại cà chua theomàu sắc và khối lượng” Hệ thống này giúp phân loại cà chua theo màu sắc và kiểmsoát tỷ lệ quả cà chua theo khối lượng từng loại màu so với đơn vị đầu vào, từ đó tanắm bắt được chất lượng lô nguyên liệu đầu vào

1.2 Mục tiêu đề tài

- Tìm hiểu cơ chế hoạt động của mạch

- Phân tích sơ đồ nguyên lý

- Nâng cao kỹ năng lập trình, hàn mạch, làm sản phẩm điện tử

- Phân loại được sản phẩm theo màu sắc và khối lượng

1.3 Nội dung nghiên cứu

Nội dung 1: Nghiên cứu tài liệu về máy tính nhúng Raspberry Pi 4 Module BArduino Mega 2560, các thiết bị ngoại vi dùng trong đề tài

Nội dung 2: Cài giao diện hệ điều hành cho Raspberry Pi và cài đặt các IDEcần dùng cho đề tài

Trang 19

Nội dung 3: Dựa vào các đặc tính trên cà chua để tiến hành lựa chọn giải phápthiết kế và thi công mô hình.

Nội dung 4: Thiết kế lưu đồ thuật toán và viết chương trình cho Arduino vàRaspberry

Nội dung 5: Điều chỉnh phần mềm, phần cứng để mô hình được tối ưu và sửdụng dễ dàng

Nội dung 6: Viết báo cáo thực hiện

Nội dung 7: Đánh giá kết quả thực hiện

1.4 Giới hạn đề tài

Mô hình phân loại quy mô nhỏ

Phân loại theo 3 màu sắc: đỏ, vàng, xanh

Tốc độ phân loại chậm

1.5 Tổng quan 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ànhkhoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rấtnhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyêndụng riêng cho nó.Xử lý ảnh là kỹ thuật áp dụng trong việc tăng cường và xử lý cácảnh thu nhận từ các thiết bị như camera, webcam… Do đó, xử lý ảnh đã được ứngdụng và phát triển trong rất nhiều lĩnh vực quan trọng như:

Trong lĩnh vực quân sự: xử lý và nhận dạng ảnh quân sự

Trong lĩnh vực giao tiếp người máy: nhận dạng ảnh, xử lý âm thanh, đồ họa Trong lĩnh vực an, bảo mật: nhận diện khuôn mặt người, nhận diện vân tay,mẫu mắt, …

Trong lĩnh vực giải trí: trò chơi điện tử

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

và phân tích ảnh Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báođược truyền từ Luân đôn đến New York từ những năm 1920 Vấn đề nâng cao chấtlượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh Việc nâng caochất lượng ảnh được phát triển vào khoảng những năm 1955 Điều này có thể giảithích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quátrình xử lý ảnh số được thuận lợi hơn Năm 1964, máy tính đã có khả năng xử lý vànâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi

Trang 20

đường biên, lưu ảnh Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chấtlượng, nhận dạng ảnh phát triển không ngừng Các phương pháp tri thức nhân tạo nhưmạng nơ-ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnhngày càng được áp dụng rộng rãi và thu được nhiều kết quả khả quan hơn

Sau đây, ta sẽ xét các bước cần thiết trong quá trình xử lý ảnh Đầu tiên, ảnh tựnhiên từ thế giới bên ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụpảnh) Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểuCCIR) Gần đây với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra

từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếptheo Mặt khác ảnh có thể được quét từ vệ tinh chụp trực tiếp bằng máy quét ảnh [1]

Hình 2 1 Quá trình xử lý ảnh

Sơ đồ này bao gồm các thành phần sau:

1.5.1 Thu nhận ảnh (Image Acquisition)

Ảnh có thể nhận qua camera màu hoặc trắng đen Thường ảnh nhận qua camera

là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng

có loại camera đã số hóa (như loại CCD – Change Coupled Device) là loại photodiottạo cường độ sáng tại mỗi điểm ảnh

Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng hai chiều Chất lượngảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường [1]

1.5.2 Tiền xử lý (Image processing)

Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền

xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độtương phản để làm ảnh rõ hơn, nét hơn [1]

1.5.3 Phân đoạn (Segmentation) hay phân vùng ảnh

Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễnphân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thưcho mục đích phân loại bưu phẩm, cần chia các câu chữ về địa chỉ hoặc tên người

Trang 21

thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng Đây là phầnphức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác củaảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này [1]

1.5.4 Biểu diễn ảnh ( Image Representation)

Đây là phần sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)cộng với mã liên kết ở các vùng lân cận Việc biến đổi các số liệu này thành dạng thíchhợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiệnảnh gọi là trích chọn đặc trưng( Feature Extration) gắn với việc tách các đặc tính củaảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng nàyvới đối tượng khác trong phạm vi ảnh nhận được Ví dụ: trong nhận dạng ký tự trênphong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phận biệt ký tự nàyvới ký tự khác [1]

1.5.5 Nhận dạng và nội suy ảnh

Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằngcách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoántheo ý nghĩa trên cơ sở nhận dạng Ví dụ: một loạt chữ số và nét gạch ngang trênphong bì thư có thể nội suy thành mã điện thoại Có nhiều cách phân loại ảnh khácnhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phântheo hai loại nhận dạng ảnh cơ bản:

- Nhận dạng theo tham số

- Nhận dạng theo cấu trúc

Một số đối tượng nhận dạng khá phổ biến hiện nay được áp dụng trong khoahọc và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạngvăn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người,… [1]

1.5.6 Cơ sở tri thức

Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối,dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiềukhâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảmbảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnhtheo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theocác phương pháp trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy [1]

1.5.7 Mô tả

Ảnh sau khi số hóa sẽ lưu vào bộ nhớ, hoặc truyền sang các khâu tiếp theo đểphân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn

Trang 22

và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, các ảnhđược gọi là các đặc trưng ảnh như: biên ảnh, vùng ảnh [1]

1.6 Những vấn đề trong xử lý ảnh

1.6.1 Điểm ảnh

Là đơn vị cơ bản nhất để tạo nên một bước ảnh kỹ thuật số Địa chỉ của điểmảnh được xem như là một tọa độ (x,y) nào đó Một bức ảnh kỹ thuật số, có thể đượctạo ra bằng cách chụp hoặc bằng một phương pháp đồ họa nào khác, được tạo nên từhàng ngàn hoặc hàng triệu pixel riêng lẻ Bức ảnh càng chứa nhiều pixel thì càng chitiết Một triệu pixel thì tương đương với 1 megapixel [1]

1.6.2 Ảnh số

Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tảảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giảicàng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trởnên thực và sắc nét hơn Một hình ảnh là một tín hiệu hai chiều, nó được xác định bởihàm toán học f(x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc Cácgiá trị của f(x, y) tại bất kỳ điểm nào là cung cấp các giá trị điểm ảnh (pixel) tại điểm

đó của một hình ảnh [1]

1.6.3 Phân loại ảnh

Mức xám của điểm ảnh là cường độ sáng, gán bằng một giá trị tại điểm đó Cácmức ảnh xám thông thường: 16, 32, 64, 128, 256 Mức được sử dụng thông dụng nhất

là 265, tức là dùng 1byte để biểu diễn mức xám Trong đó:

- Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ

sử dụng 1 bit dữ liệu trên 1 điểm ảnh

- Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) vớimức xám ở các điểm ảnh có thể khác nhau

- Ảnh màu: Là ảnh kết hợp của 3 màu cơ bản lại với nhau để tạo ra một thếgiới màu sinh động Người ta thường dùng 3byte để mô tả mức màu, tức là

có khoảng 16,7 triệu mức màu [1]

1.6.4 Quan hệ giữa các điểm ảnh

Lân cận điểm ảnh: được nói một cách hài hước như là hàng xóm của cái điểmảnh Có 2 loại lân cận cơ bản là lân cận 4 và lân cận 8

Trang 23

Hình 2 2 Lân cân 4 và lân cận 8

4 điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là (x+1, y), (x-1, y),(x,y+1), (x, y-1) ký hiệu là tập N4(p) 4 điểm ảnh lân cận 4 theo đường chéo có tọa độlần lượt là (x+1, y+1), (x+1, y+1), (x-1, y+1), (x-1, y-1) ký hiệu là tập ND(p) Tập 8điểm ảnh lân cận 8 là hợp của 2 tập trên:

N8(p) = N4(p) + ND(p)

Liên kết ảnh: Các mối liên kết của ảnh được xem như là mối liên kiết của 2điểm ảnh gần nhau, có 3 loại liên kết: liên kết 4, liên kết 8, lên kết m (liên kết hỗnhợp) Trong ảnh đa mức xám, ta có thể đặt V chứa nhiều giá trị như V={tập con} Cho

Trang 24

các bộ lọc thông cao, lọc Laplace Phương pháp lọc nhiễu Chia làm 2 loại: lọc tuyếntính, lọc phi tuyến

Làm trơn nhiễu bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loạinhiễu vào quá trình xử lý ảnh, nên ta cần phải lọc nhiễu Gồm các phương pháp cơ bảnlọc trung bình, lọc thông thấp,… Ví dụ lọc trung bình: Với lọc trung bình, 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

Làm trơn nhiễu bằng lọc phi tuyến: Các bộ lọc phi tuyến cũng hay được dùngtrong kỹ thuật tăng cường ảnh Một số phương pháp lọc cơ bản bộ lọc trung vị, lọcngoài,… Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểmảnh còn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị “trung vị” (trung bìnhcộng của max và min)

Lọc trung vị: Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếptheo thứ tự tăng hay giảm dần so với giá trị trung vị Kích thước cửa số thường đượcchọn sao cho số điểm ảnh trong cửa sổ là lẻ

Lọc ngoài: Giả thiết có ngưỡng nào đó cho các mức nhiễu (có thể dựa vào lược

đồ xám) Tiến hành so sánh giá trị độ xám của một điểm ảnh với trung bình số học 8lân cận của nó Nếu sai lệch lớn hơn ngưỡng, điểm ảnh này được coi như nhiễu Trongtrường hợp đó, thay thế giá trị của điểm ảnh bằng giá trị trung bình 8 lân cận vừa tínhđược [1]

1.6.6 Phương pháp phát hiện biên

Biên là một trong những vấn đền ta cần quan tâm trong xử lý ảnh Vì ở giaiđoạn phân đoạn ảnh chủ yếu dựa vào biên

Hình 2 3 Hình tách biên

Điểm biên: Một điểm ảnh được coi là điểm biên nếu có sự thay đổi nhanh hoặcđột ngột về mức xám (hoặc màu) Ví dụ trong ảnh nhị phân, điểm đen gọi là điểm biênnếu lân cận nó có ít nhất một điểm trắng Đường biên (đường bao: boundary): tập hợpcác điểm biên liên tiếp tạo thành một đường biên hay đường bao

Trang 25

Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên là mộtloạ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ầmquan 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 đủ

Như vậy, phát hiện biên một cách lý tưởng là phát hiện được tất cả các đườngbiên trong các đối tượng Định nghĩa toán học của biên ở trên là cơ sở cho các kỹ thuậtphát hiện biên Điều quan trọng là sự biến thiên giữa các điểm ảnh thường nhỏ, trongkhi đó biến thiên độ sáng của điểm biên thường là khá lớn khi qua biên Xuất phát cơ

sở này người ta thường sử dụng hai phương pháp phát hiện biên như sau: Tách biêntheo đạo hàm bậc một: Có 2 phương pháp cơ bản là: một là tạo gradient của hai hướng

và trực giao trong ảnh, hai là dùng tập đạo hàm có hướng Tách biên theo đạo hàm bậchai: được thực hiện trên một số dạng vi phân bậc 2 để làm xuất hiện biên Có hai dạngcủa phương pháp đạo hàm bậc hai đã được nghiên cứu là: phương pháp Laplace vàđạo hàm trực tiếp

Bộ tách biên Canny: Phương pháp phát hiện này được sử dụng phổ biến vì nó

có nhiều ưu điểm hơn các phương pháp khác Các bước thực hiện: Làm phẳng dùng bộlọc Gauss; Sau đó, Gradient cục bộ của biên độ và hướng được tính Tìm điểm ảnh cóbiên độ lớn nhất dùng kỹ thuật nonmaximal suppression; Các điểm ảnh đỉnh (tìm được

từ bước 2) được chia làm hai ngưỡng T1 và T2, T1 < T2 Các điểm ảnh đỉnh có giá trịlớn hơn T2 được gọi là Strong và nằm trong khoảng T1 và T2 được gọi là Weak Liênkiết các điểm ảnh Weak có 8 kết nối đến điểm ảnh Strong [1]

1.6.7 Phân đoạn ảnh

Phân đoạn ảnh là bước then chốt trong xử lý ảnh Giai đoạn này nhằm phân tíchảnh thành các vùng có cùng tính chất nào đó dựa theo biên hay các vùng liên thông.Tiêu 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 haycùng độ nhóm

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ộidung còn lại của ảnh, hay phân chia các đối tượng trong ảnh thành những đối tượngriê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 tintrong ả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à quá trình loại bỏ các đối tượng không quan tâm trong ảnh Có nhiều phương phápphân đoạn ảnh khác nhau Trong đó quá trình phân đoạn ảnh sử dụng một ngưỡng giátrị xám để phân đoạn ảnh ra thành các đối tượng và nền là phương pháp đơn giản nhất.Lúc này các điểm ở bên dưới ngưỡng giá trị xám thuộc về nền còn những điểm ảnh ởbên trên ngưỡng giá trị xám thuộc về đối tượng Phương pháp phân đoạn ảnh này hiệu

Trang 26

quả lớn đối với ảnh nhị phân, văn bản in hay đồ họa [1]Dựa vào đặc tính vật lý củavù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áclâ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ùngnhỏ 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 [1]

1.6.8 Các phép toán hình thái Morphology

Khái niệm Morphology trong xử lý ảnh số khởi nguồn từ một ngành của sinhhọc, nghiên cứu về hình thể và cấu trúc của động thực vật Đây là một công cụ giúp rúttrích các thành phần trong ảnh nhị phân, biễu diễn và mô tả chúng dưới dạng các vùnghoặc dạng như các đường biên, xương và bao lồi Kỹ thuật morphology cũng được ápdụng trên ảnh xám cho các công đoạn tiền/hậu xử lý ảnh (pre or post processing) Cácphép toán đầu tiên trong Morphology được phát triển vào những năm 1964 bởiGeorges Matheron (1930 - 2000) và Jean Serra (1940) tại trường đại học École desMines de Paris, Pháp Matheron là tiến sĩ hướng dẫn của Jean, họ cố gắng xác định sốlượng đặc tính của khoáng sản thông qua “thin cross section” và công việc cho ra kếtquả là một phương pháp tiếp cận mới, cũng như sự tiến bộ trong hình học tích phân và

tô pô Từ đó đến hết năm 1970, Morphology xử lý cơ bản với các ảnh nhị phân, tạo racác phép toán và kĩ thuật như: Dilation, Erosion, Opening, Closing…

Phép giãn (Dilation): Phép toán Dilation là thao tác giãn nở/phình to các đốitượng ảnh đơn sắc

Hình 2 4 Phép giãnPhép co (Erosion): Phép toán Erosion là thao tác xói mòn/co hẹp các đối tượngảnh đơn sắc Nếu như phép dãn có thể nói là thêm điểm ảnh vào trong đối tượng ảnh,

Trang 27

làm cho đối tượng ảnh trở nên lớn hơn thì phép co sẽ làm cho đối tượng ảnh trở nênnhỏ hơn, ít điểm ảnh [1]

Hình 2 5 Phép co

1.6.8.1 Những định dạng trong ả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ạinhiề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) [1]

1.6.8.2 Các phần mềm hổ trợ xử lý ảnh

Hiện nay xử lý ảnh được giảng dạy trường đại học và ứng dụng vào thực tế rấtnhiều như các phần mềm chỉnh sửa hình ảnh hay nhận biết khuôn mặt Chính vì thế córất nhiều công cụ để chúng ta lập trình ứng dụng vào thực tế Như phải kể đến Matlap,hay ngôn ngữ Python,… [1]

Trang 28

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG NGHỆ

2.1 Ngôn ngữ lập trình python

2.1.1 Giới thiệu

Hiện nay, Python là một trong những ngôn ngữ lập trình đang được chú ý bởitính đa dạng về ứng dụng, thư viện phong phú và cộng đồng đông đảo Đã làm việcvới PHP 10 năm, và có những tác vụ mà PHP khó mà thực hiện tối ưu được, khiếnmình phải tiếp cận với Python trong giai đoạn này Cuốn sách nhỏ này được viết trongquá trình mình bắt đầu học Python và giải quyết các bài toán cơ bản theo nhu cầu củamình Hy vọng những ghi chép của mình cũng sẽ giúp ích cho những ai đang quan tâmđến việc ứng dụng Python vào công việc và xử lý hiện tại

Python là một ngôn ngữ phiên dịch (Interpreter Language), tức là không cầnbuild thành file thực thi mà chạy trực tiếp như PHP Hiện tại Python có 2 nhánh chính

là 2.x và 3.x Ở nhánh 2.x đã dừng phát triển và đang đứng ở phiên bản 2.7 NhánhPython 3.x thì vẫn đang được tiếp tục phát triển [2]

Website chính thức của Python: www.python.org

Hình 2 6 Trang chủ Python

2.1.2 Đặc điểm nổi bật của 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ừ khoá, do đó Python là một ngôn ngữ dễ học đối với người mới bắt đầutìm hiểu Python là ngôn ngữ có mã lệnh (source code hay đơn giản là code) khôngmấy phức tạp Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoánđược ý nghĩa của từng dòng lệnh trong source code

Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viếtbằ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 nhaubao gồm Windows, Mac OSX và Linux [2]

2.2 Thư viện openCV

2.2.1 Giới thiệu về OpenCV

2.2.1.1 Giới thiệu

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở về thịgiác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về xử lý ảnh, vàcác vấn đề liên quan tới thị giác máy OpenCV được thiết kế một cách tối ưu, sử dụngtối đa sức mạnh của các dòng chip đa lõi… để thực hiện các phép tính toán trong thời

Trang 29

gian thực, nghĩa là tốc độ đáp ứng của nó có thể đủ nhanh cho các ứng dụng thôngthường OpenCV là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau(cross-patform), nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS

… Việc sử dụng thư viện OpenCV tuân theo các quy định về sử dụng phần mềm mãnguồn mở BSD do đó bạn có thể sử dụng thư viện này một cách miễn phí cho cả mụcđích phi thương mại lẫn thương mại

Dự án về OpenCV được khởi động từ những năm 1999, đến năm 2000 nó đượcgiới thiệu trong một hội nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng,tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thức được công bố và năm

2008 bản 1.1 (pre-release) mới được ra đời Tháng 10 năm 2009, bản OpenCV thế hệthứ hai ra đời (thường gọi là phiên bản 2.x), phiên bản này có giao diện của C++ (khácvới phiên bản trước có giao diện của C) và có khá nhiều điểm khác biệt so với phiệnbản thứ nhất

Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợ bởWillow Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ robot Chođến nay, OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận(none -profit foundation) và được hưởng ứng rất lớn của cộng đồng [3]

2.2.1.2 Phiên bản openCV

Cho tới nay, trải qua hơn 6 năm từ lúc phiên bản OpenCV đầu tiên được công

bố, đã có lần lượt nhiều phiên bản OpenCV ra đời, tuy nhiên có thể chia thư viện nàythành hai bản chính dựa trên những đặc điểm khác biệt lớn nhất của chúng: phiên bảnOpenCV thế hệ thứ nhất (hay còn gọi là phiên bản OpenCV 1.x) và phiên bảnOpenCV thứ hai (hay còn gọi là phiên bản OpenCV 2.x) Sau đây ta sẽ chỉ ra một sốđiểm khác biệt cơ bản giữa hai phiên bản này [3]

2.2.2 Các phép xử lý dơn giản của OpenCV

2.2.2.1 Không gian màu, chuyển đổi giữa các không gian màu

Khôn gian màu là một mô hình toá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ácnhau được mô hình để sử dụng vào những mục đích khác nhau Trong bài này ta sẽtìm hiểu qua về ba 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 và CMYK [3]

- Không gian màu RGB [3]

RGB là không gian màu rất phổ biến được dùng trong đồ họa máy tính và nhiềuthiế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 3mà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

Trang 30

Nếu như một số đạt được mã hóa bằng 24bit, nghĩa là 8bit cho kênh R, 8bit chokênh G, 8bit cho kênh B, thì mỗ kênh này màu này sẽ nhận giá trị từ 0-255 Với mỗigiá 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.

Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương ứng(0, 0, 0) màu trắng có giá trị (255, 255, 255), màu vàng có giá trị (255, 255, 0), màutím đậm có giá trị (64, 0, 128) Nếu ta dùng 16bit để mã hóa một kênh màu (48bit chotoàn bộ 3 kênh màu) thì dãi màu sẽ trãi rộng lên tới 3*2^16 = Một con số rất lớn

Hình 2 7 Không gian mùa RGB

- Không gian màu CMYK [3]

CMYK là không gian màu được sử dụng phổ biến trong ngành công nghiệp inấn.Ý tưởng cơ bản của hệ không gian này là dùng 4 màu sắc cơ bản để phục vụ choviệc pha trộn mực in Trên thực tế, người ta dùng 3 màu là C=Cyan: xanh lơ,M=Magenta: hồng xẫm, và Y=Yellow: vàng để biểu diễn các màu sắc khác nhau Nếulấy màu hồng xẫm cộng với vàng sẽ ra màu đỏ, màu xẫm kết hợp với xanh lơ sẽ choxanh lam Sự kết hợp của 3 màu trên sẽ cho ra màu đen, tuy nhiên màu đen ở đâykhôn phải là đen tuyệt đối và thường có độ tương phản lớn, nên trong ngành in, để tiếtkiệm mực in người ta thêm vào màu đen để in những chi tiết có màu đen thay vì phảikết hợp 3 màu sắc trên Và như vậy ta có hệ màu CMYK chữ K ở đây là để kí hiệumàu đen (Black), có nhẽ chữ B đã được dùng để biểu diễn màu Blue nên người ta lấychữ cái cuối K để biểu diễn màu đen?

Nguyên lý làm việc của hệ màu này như sau : Trên một nền giấy trắng, khi mỗimàu này được in lên sẽ loại bỏ dần đi thành phần màu trắng 3 màu C, M, Y khác nhau

in theo những tỉ lệ khác nhau sẽ loại bỏ đi thành phần đó một cách khác nhau và cuốicùng cho ta màu sắc cần in Khi cần in màu đen, thay vì phải in cả 3 màu người tadùng màu đen để in lên Nguyên lý này khác với nguyên lý làm việc của hệ RGB ởchỗ hệ RGB là sự kết hợp của các thành phần màu, còn hệ CMYK là sự loại bỏ lẫnnhau của các thành phần màu

Hình 2 8 Không gian màu CMYK

- Không gian màu HSV [3]

HSV và cũng gần tương tự như HSL là không gian màu được dùng nhiều trongviệ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

Trang 31

này thường được biểu diễn dưới dạng hình trụ hoặc hình nón Theo đó, đi theo vòngtròn từ 0 -360 độ là trường biểu diễn màu sắc(Hue) Trường này bắt đầu từ màu đỏ đầutiên (red primary) tới màu xanh lục đầu tiên (green primary) nằm trong khoảng 0-120

độ, từ 120 - 240 độ là màu xanh lục tới xanh lơ (green primary - blue primary) Từ 240

- 360 là từ màu đen tới lại màu đỏ

Hình 2 9 Không gian màu HSV

2.2.2.2 Chuyển đổi ảnh màu

- Biến đổi ảnh xám (Grayscale convert) [3]

Trong xử lý ảnh, việc chuyển đổi ảnh màu sang ảnh xám là công việc vô cùngphổ biến

Ảnh màu thực chất chỉ là tập hợp của những ma trận số có cùng kích thước Khimuốn xử lý thông tin trên ảnh, sẽ dễ dàng hơn nếu ta chỉ xử lý dữ liệu trên một ma trận

số thay vì nhiều ma trận số Việc biến đổi ảnh màu về ảnh số (Grayscale converting)xuất hiện vì mục đích trên - biến đổi thông tin ảnh về một ma trận số hai chiều duynhất

Giả sử, hình ảnh của bạn được lưu trữ dưới dạng RGB (Red-Green-Blue) Điềunày có nghĩa bạn có ba ma trận xám tương ứng cho màu Red, Green, Blue Công việccủa bạn là tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất Một trong

số công thức phổ biến để thực hiện việc đó là:

Nếu bạn chưa quen về việc thực hiện phép toán trên ma trận, hãy hình dung Y,

R, G, B là giá trị mức xám trên các ô có tọa độ giống nhau

Hình 2 10 Biến đổi ảnh xám

- Biến đổi ảnh trắng đen (Black-and-white convert) [3]

Trang 32

Từ ảnh xám, bạn có thể biến đổi về thành ảnh chỉ có hai màu đen-trắng and-white)

(black-Ảnh đen trắng thường được ứng dụng trong bài toán phân vùng ảnh (Imagesegmentation) Giả sử trong hình ví dụ trên, bằng cách biến đổi ảnh về nhị phân, bạn

có thể loại bỏ các thông khung cảnh xung quanh và chỉ giữ lại hai con cá heo trênhình

Ảnh đen trắng, như tên gọi, chỉ có hai màu đen với giá trị là 0 và trắng với giátrị 255 Bài toán đặt ra là làm thế nào để biến đổi ảnh xám (hay nói cách khác là một

ma trận 2 chiều với giá trị mỗi ô trong khoảng 0-255) về thành một ma trận 2 chiều vớigiá trị mỗi ô là 0 hoặc 255

Cách giải quyết là chọn một ngưỡng (threshold) để xác định đâu là điểm ảnhđen và đâu là điểm ảnh trắng Nếu giá trị trên ảnh xám lớn hơn ngưỡng threshold, đấy

là điểm ảnh trắng và ngược lại

Gọi ảnh xám là Gray, ảnh đen trắng cần xác định là BW, tọa độ các pixel trênhình là (x,y), ta có

- BW(x,y) = 255 nếu Gray(x,y) > threshold

- BW(x,y) = 0 nếu Gray(x,y) <= threshold

Hình 2 11 Biến đổi ảnh đen trắng

- Chuyển đổi giữa các không gian màu [3]

Chuyển đổi RGB sang CMYK và ngược lại:

Như đã nói ở trên, thành phần K là thành phần phụ dùng để in cho những điểmmàu có màu đen trong hệ CYMK, do vậy để chuyển không gian màu từ RGB sangCMYK trước hết ta chuyển RGB sang CMY sau đó tìm thành phần K còn lại Cô ngthức chuyển từ

RGB sang CMY:

(C', M', Y') = ((255 - R), (255 - G), (255 - B))

Việc tính giá trị của K lại là một vấn đề khác vì nó liên quan tới nhà sản xuấtcông nghệ in, tuy nhiên về mặt lý thuyết có thể chấp nhận rằng K = min {C'/2,55,M'/2,55, Y'/2,55}, như vậy 0<= K <=100

Nếu K = 100, thì C = M = Y =0 (trương hợp in màu đen)

Trang 33

Nếu 0 < K < 100:C=(C’/2.55 - K)* 100 /(100 - K), M = (M'/2.55 - K) * 100/(100 - K), Y = (Y'/2.55 - K) *100 /(100 - K) và K = K Trong đó, C, M, Y, K đượclàm tròn tới để lấy chỉ số nguyên.

Chuyển đổi RGB sang HSV và ngược lại:

Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B) ta chuyển sangkhông gian SHV như sau:

S = C/V Trong trường hợp V hoặc C bằng 0, S = 0

Để chuyển từ HSV sang RGB ta làm như sau:

Giả sử ta có không gian màu HSV với H = [0, 360], S = [0, 1], V = [0, 1] Khi đó, tatính C = VxS H' = H/60

X = C(1 - |H' mod2 -1|) Ta biểu diễn hệ (R1, G1, B1) như sau:

Single-shot object detection

Single-shot object detection sử dụng một lần truyền hình ảnh đầu vào để đưa ra

dự đoán về sự hiện diện và vị trí của các đối tượng trong ảnh Nó xử lý toàn bộ hìnhảnh trong một lần chạy, khiến chúng trở nên hiệu quả về mặt tính toán

Tuy nhiên, single-shot object detection thường kém chính xác hơn so với cácphương pháp khác và kém hiệu quả hơn trong việc phát hiện các đối tượng nhỏ Các

Trang 34

thuật toán như vậy có thể được sử dụng để phát hiện các đối tượng theo thời gian thựctrong các môi trường hạn chế về tài nguyên.

YOLO là thuật toán single-shot object detection sử dụng mạng thần kinh tíchchập (CNN) để xử lý hình ảnh

Two-shot object detection

Two-shot object detection sử dụng hai lần truyền hình ảnh đầu vào để đưa ra dựđoán về sự hiện diện và vị trí của đối tượng Lượt đầu tiên được sử dụng để tạo mộttập hợp các đề xuất hoặc vị trí tiềm năng của đối tượng Lượt thứ hai được sử dụng đểtinh chỉnh các đề xuất này và đưa ra dự đoán cuối cùng Cách tiếp cận này chính xáchơn Single-shot object detection nhưng cũng tốn kém hơn về mặt tính toán

Nhìn chung, sự lựa chọn giữa phát hiện đối tượng một lần và hai lần tùy thuộcvào các yêu cầu và ràng buộc cụ thể của ứng dụng

Nói chung, Single-shot object detection phù hợp hơn cho các ứng dụng thờigian thực, trong khi two-shot object detection tốt hơn cho các ứng dụng đề cao độchính xác [4]

2.3.1 Khái niệm yolo

YOLO (You Only Look Once) là một trong những mô hình nổi tiếng nhất trongObject Detection (phát hiện đối tượng) Tuy sau đó có sự xuất hiện của những đối thủrất đáng gờm (vừa nhanh, vừa chính xác) như RetinaNet, SSD (Single Shot Detector),YOLO cũng không ngừng phát triển với những biến thể riêng của mình Trong đề tàinày nhóm chúng em sử dụng YOLOV8

Hình 2 12 Các lớp trong YOLOYolo là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đốitượng Yolo được tạo ra từ việc kết hợp giữa các convolutional layers và connectedlayers.Trong đóp các convolutional layers sẽ trích xuất ra các feature của ảnh, còn full-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối tượng [4]

2.3.2 Kiến trúc mạng YOLO

Trang 35

Kiến trúc YOLO bao gồm: base network là các mạng convolution làm nhiệm

vụ trích xuất đặc trưng Phần phía sau là những Extra Layers được áp dụng để pháthiện vật thể trên feature map của base network Base network của YOLO sử dụng chủyếu là các convolutional layer và các fully conntected layer Các kiến trúc YOLO cũngkhá đa dạng và có thể tùy biến thành các version cho nhiều input shape khác nhau

Hình 2 13 Sơ đồ kiến trúc mạng YOLOConvolutional layers:

- Các lớp tích chập được sử dụng để trích xuất đặc trưng từ ảnh đầu vào

- YOLO sử dụng một kiến trúc CNN có nhiều lớp tích chập để trích xuấtcác đặc trưng của ảnh

Fully Connected layers:

- Các lớp kết nối đầy đủ được sử dụng để chuyển đổi các đặc trưng đã tríchxuất thành các dự đoán về vị trí và loại đối tượng

- YOLO sử dụng một số lớp kết nối đầy đủ để biến đổi đặc trưng của ảnhthành các giá trị tọa độ và xác suất nhận dạng

Bounding Box Predictions:

- Các lớp đầu ra của YOLO được sử dụng để dự đoán các bounding box(hình chữ nhật) xác định vị trí của các đối tượng trong ảnh

- Mỗi bounding box được định nghĩa bởi tọa độ của điểm trung tâm, chiềurộng và chiều cao của bounding box

Trang 36

Hình 2 14 Các layer trong mạng darknet-53

2.3.3 Cách Yolo hoạt động

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượngnào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh ẢNh đầu vàođược chia thành thành S×SStimes SS×S ô thường thì sẽ là: 3×33times33×3,7×77times77×7, 9×99times99×9… việc chia ô này có ảnh hưởng tới việc mô hình pháthiện đối tượng

Hình 2 15 Hoạt động của YOLOVới Input là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước

S×S×(5×N+M)Stimes Stimes(5times N+ M)S×S×(5×N+M) với số lượng tham

số mỗi ô là (5×N+M)(5times N + M)(5×N+M) với N và M lần lượt là số lượng Box vàClass mà mỗi ô cần dự đoán Ví dụ với hình ảnh trên chia thành 7×77times77×7 ô, mỗi

ô cần dự đóan 2 bounding box và 3 object: con chó, ô tô, xe đạp thì output là7×7×137times7times137×7×13, mỗi ô sẽ có 13 tham số, kết quả trả về (7×7×2=98)(7times7times2 = 98)(7×7×2=98) bounding box Chúng ta sẽ cùng giải thích con số(5×N+M)(5times N + M)(5×N+M) được tính như thế nào

Dự đoán mỗi bounding box gồm 5 thành phần : (x, y, w, h, prediction) với (x,

y ) là tọa độ tâm của bounding box, (w, h) lần lượt là chiều rộng và chiều cao của

Trang 37

bounding box, prediction được định nghĩa Pr(Object)∗ IOU(pred,truth)Pr(Object)*IOU(pred, truth)Pr(Object)∗ IOU(pred,truth) xin trình bày sau Với hình ảnh trên như

ta tính mỗi ô sẽ có 13 tham số, ta có thể hiểu đơn giản như sau tham số thứ 1 sẽ chỉ ra

ô đó có chứa đối tượng nào hay không P(Object), tham số 2, 3, 4, 5 sẽ trả về x, y ,w, hcủa Box1 Tham số 6, 7, 8, 9, 10 tương tự sẽ Box2, tham số 11, 12, 13 lần lượt là xácsuất ô đó có chứa object1( P(chó|object), object2(P(ô tô|object)), object3(P( xe đạp|object)) Lưu ý rằng tâm của bounding box nằm ở ô nào thì ô đó sẽ chứa đối tượng,cho dù đối tượng có thể ở các ô khác thì cũng sẽ trả về là 0 Vì vậy việc mà 1 ô chứa 2hay nhiều tâm của bouding box hay đối tượng thì sẽ không thể detect được [4]

2.3.4 Output của YOLO

Output của mô hình YOLO là một véc tơ sẽ bao gồm các thành phần:

y T

Trong đó:

 P0 là xác suất dự báo vật thể xuất hiện trong bounding box

 (tx, ty,tw,th) giúp xác định bounding box Trong đó tx, ty là tọa độ tâm và tw,th làkích thước rộng, dài của bounding box

 ⟨ p1, p2,…pc scores of c classes⟩ là véc tơ phân phối xác suất dự báo của cácclasses

Việc hiểu output khá là quan trọng để chúng ta cấu hình tham số chuẩn xác khihuấn luyện model qua các open source như darknet Như vậy output sẽ được xác địnhtheo số lượng classes theo công thức (n_class + 5) Nếu huấn luyện 80 classes thì bạn

sẽ có output là 85 Trường hợp bạn áp dụng 3 anchors/cell thì số lượng tham số output

sẽ là:

(n_class + 5) ×=85 × 3=255

Hình 2 16 Output của YOLOKiến trúc một output của model YOLO Hình ảnh gốc là một feature map kíchthước 13x13 Trên mỗi một cell của feature map chúng ta lựa chọn ra 3 anchor boxesvới kích thước khác nhau lần lượt là Box 1, Box 2, Box 3 sao cho tâm của các anchorboxes trùng với cell Khi đó output của YOLO là một véc tơ concatenate của 3bounding boxes Các attributes của một bounding box được mô tả như dòng cuối cùngtrong hình [4]

2.3.5 Hàm tính IOU

Trang 38

Trên ta có đề cập prediction được định nghĩa Pr(Object)∗ IOU(pred,truth) IOU(INTERSECTION OVER UNION) là hàm đánh giá độ chính xác của object detectortrên tập dữ liệu cụ thể IOU được tính bằng:

IoU = Area of Overlap

Area of ∪¿ ¿

Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted boundingbox với grouth-truth bouding box , còn Area of Union là diện tích phần hợp giữapredicted bounding box với grouth-truth bounding box Những bounding box đượcđánh nhãn bằng tay trong tập traing set và test set Nếu IOU > 0.5 thì prediction đượcđánh giá là tốt

Hàm tính IOU trong YOLO hoạt động như sau:

Nhận đầu vào là hai bounding box cần tính IOU: box1 và box2

Tính toán tọa độ của vùng giao nhau của hai bounding box:

- Tọa độ (x1, y1) là tọa độ góc trên bên trái của bounding box có giá trị lớnhơn trong box1 và box2

- Tọa độ (x2, y2) là tọa độ góc dưới bên phải của bounding box có giá trịnhỏ hơn trong box1 và box2

- Nếu không có vùng giao nhau (không có sự chồng lấn), thì diện tích giaonhau sẽ bằng 0

Tính toán diện tích vùng giao nhau bằng cách tính toán chiều rộng và chiều caocủa vùng giao nhau (x2 - x1 + 1 và y2 - y1 + 1), và đảm bảo rằng kết quả không âm(sử dụng max(0, ))

Tính toán diện tích hợp của hai bounding box:

- Diện tích của box1 là (box1[2] - box1[0] + 1) * (box1[3] - box1[1] + 1),với (box1[2] - box1[0] + 1) là chiều rộng và (box1[3] - box1[1] + 1) làchiều cao

- Diện tích của box2 được tính tương tự

- Diện tích hợp là tổng của diện tích box1, box2 và trừ đi diện tích giaonhau

Tính toán IOU bằng cách chia diện tích giao nhau cho diện tích hợp: iou =intersection_area / union_area

Trả về giá trị IOU [4]

2.4 Chuẩn giao tiếp nối tiếp UART

2.4.1 Giới thiệu

Trang 39

Các tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”, và

nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giaothức truyền thông (I2C & SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp.Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giaotiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song

Hình 2 17 Giao tiếp UART

Trong giao tiếp dữ liệu nối tiếp, dữ liệu có thể được truyền qua một cáp hoặcmột đường dây ở dạng bit-bit và nó chỉ cần hai cáp Truyền thông dữ liệu nối tiếpkhông đắt khi chúng ta so sánh với giao tiếp song song Nó đòi hỏi rất ít mạch cũngnhư dây Giao tiếp này rất hữu ích trong các mạch ghép so với giao tiếp song song

Trong giao tiếp dữ liệu song song, dữ liệu có thể được truyền qua nhiều cápcùng một lúc Truyền dữ liệu song song tốn kém nhưng rất nhanh, vì nó đòi hỏi phầncứng và cáp bổ sung Các ví dụ tốt nhất cho giao tiếp này là máy in cũ, PCI, RAM, [5]

2.4.2 Truyền thông UART

Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART

và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điềunày, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu sẽ từ cả hai chântruyền (Tx) và nhận (Rx) của UARTs Trong UART, việc truyền dữ liệu từ Tx UARTsang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng

bộ hóa các bit o / p)

Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữliệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v Saukhi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bitnhư bắt đầu, dừng lại và trung bình Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệunhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu Tóm lại, gói dữ liệunhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận

Trang 40

Hình 2 18 Truyền thông UART

Dữ liệu bit hoặc khung dữ liệu:

Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận

Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8 Nếu bit chẵn lẻ không được sửdụng thì chiều dài khung dữ liệu có thể dài 9 bit Nói chung, LSB của dữ liệu đượctruyền trước tiên sau đó nó rất hữu ích cho việc truyền

Giao diện UART:

Hình dưới đây cho thấy UART giao tiếp với vi điều khiển Giao tiếp UART cóthể được thực hiện bằng ba tín hiệu như TXD, RXD và GND [5]

Ngày đăng: 08/03/2024, 14:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Thảo T.N.D., Khánh H.D., và Minh T.H.C. (2018). PHÂN LOẠI SẢN PHẨM DÙNG KIT RASPBERRY Khác
2. (2023). Welcome to Python.org. Python.org, &lt;https://www.python.org/&gt;, accessed:24/05/2023 Khác
3. Ứng dụng xử lý ảnh trong thực tế với thư viện OpenCV Khác
4. (2019). Tìm hiểu về YOLO trong bài toán real-time object detection.&lt;https://viblo.asia/p/tim-hieu-ve-yolo-trong-bai-toan-real-time-object-detection-yMnKMdvr57P&gt;, accessed: 24/05/2023 Khác
5. Ts P., Thị Đ., Huy T. và cộng sự. ỨNG DỤNG XỬ LÝ ẢNH TRONG HỆ THỐNG BĂNG TRUYỀN PHÂN LOẠI SẢN PHẨM Khác
6. Thông Số Kỹ Thuật Raspberry Pi 4 — Điện Tử Ứng Dụng. IO Stream,&lt;https://www.iostream.vn/dien-tu-ung-dung/thong-so-ky-thuat-raspberry-pi-4-Eb12V&gt;, accessed: 24/05/2023 Khác
7. ĐIỆN TỬ TƯƠNG LAI. &lt;https://dientutuonglai.com/&gt;, accessed: 24/05/2023 Khác
8. Giới thiệu Arduino Mega 2560. &lt;https://dientutuonglai.com/gioi-thieu-arduino-mega-2560.html&gt;, accessed: 24/05/2023 Khác
9. Băng tải là gì? Cấu Tạo - Phân Loại - Ứng dụng - MHA.&lt;http://www.www.cokhimha.com/san-xuat-bang-tai-mha-a138&gt;, accessed Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w