.3 Bảng thông số kỹ thuật của Driver HBS86H B32

Một phần của tài liệu Thiết kế hệ thống điều khiển robot thu hoạch dứa dựa trên công nghệ xử lý ảnh (Trang 46)

Thông số Giá trị

Điện áp đầu vào 30-100 VDC Dòng điện đầu ra 6A 20KHz PWM Tần số phát xung 200KHz

Các chếđộ bảo vệ Dòng điện vượt quá 12A. Quá điện áp 130V

36 Khối lượng Sấp xỉ 580g

Điều kiện môi trường Tránh bụi, sương đầu và khí ăn mòn Nhiệt độ làm việc Tối đa 70 ℃

Nhiệt độ bảo quản -20℃ ~ +65℃ Độẩm 40 ~ 90%RH

Các chếđộ làm mát Làm mát tự nhiên hoặc

37 Nguyên lý hoạt động:

Hình 3.19 Sơ đồ đấu dây Driver với PLC và động cơ.

Driver HBS86 có 4 cổng kết nối, thứ nhất là cổng kết nối cho tín hiệu điều khiển, thứ hai kết nối cho tín hiệu phản hồi từ encoder, thứ ba kết nối tín hiệu cảnh báo với stator và cuối cùng là kết nối với động cơ stepper hai pha. Nguyên lý điều kiển rất đơn giản: Driver đóng vai trò là một bộđiều khiển vòng kín với 3 vòng điều khiển dòng điện, tốc độ và vị trí nhận giá trị đặt là tần số và số xung được cấp qua PORT giao tiếp với PLC.

38

CHƯƠNG 4.PHƯƠNG PHÁP PHÂN TÍCH ẢNH VÀ NHẬN DIỆN QUẢ

DỨA

4.1 Mục tiêu và nhiệm vụ của chương

Ởđây chúng ta sẽ có ba nhiệm vụđó là :

Nhiệm vụ 1: Nhận diện hình dạng trái dứa

Nhiệm vụ 2: Nhận diện dứa chin, dứa xanh

Nhiệm vụ 3: Xác định tọa độ của dứa chín, dứa xanh nhận diện được theo 3 trục x,y,z.

Phân tích bài toán :

• Yêu cầu : Nhận diện quả dứa, phân biệt dứa chín, dứa xanh trên ảnh.

• Dữ liệu đầu vào: Một bức ảnh màu (RGB), định dạng jpg hoặc png.

• Dữ liệu đầu ra: Một danh sách các bộ 5 số, mỗi bộ chứa thông tin của 1 quả dứa:

Toạđộ và kích thước của quả dứa:

Mỗi quả dứa được bao bởi một hình chữ nhật có các cạnh song song với các cạnh của ảnh. Có nhiều cách khác nhau để biểu diễn hình chữ nhật này, tuy nhiên, cách nào cũng cần tối thiểu 4 tham số.

Ởđây, ta dùng 4 tham số:

- Hoành độ tâm hình chữ nhật - Tung độ tâm hình chữ nhật

- Một nửa chiều rộng hình chữ nhật - Một nửa chiều cao hình chữ nhật

4.2 Giải quyết bài toán

4.2.1 Phươngpháp Machine Learning (học máy)

Machine Learning là một phương pháp để cung cấp cho máy tính khảnăng giải quyết vấn đề mà không cần lập trình cụ thể.

Bài toán với đặc trưng cụ thể: Bài toán tìm số lớn nhất trong một dãy số cho trước, ta có thể chỉ ra phương pháp cụ thể để máy tính thực hiện điều này, đó là duyệt lần lượt tất cả các sốtrong dãy, luôn lưu lại giá trị lớn nhất trong các giá trị đã duyệt qua, và cập nhật giá trị này mỗi khi gặp một số lớn hơn. Giải thuật kết thúc khi đã duyệt toàn bộ các số trong dãy. Có thể thấy, với bài toán vừa nêu, con người có thể chỉ rõ ra các đặt trưng của vấn đề, nhờ đó mà có thể chỉ cho máy tính cách giải quyết cụ thể.

Bài toán không có đặc trưng cụ thể: Bài toán nhận diện quả dứa (Phần xử lý ảnh mà đồ án kì trước đã làm). Với bài toán này máy tính khó có thể phân biệt được quả dứa trong một bức ảnh vì nhiều lý do: trong một ruộng dứa sẽ có cả quả xanh và quả chín, không có màu sắc đặc trưng, màu của quả dứa, lá dứa, và vương miện tương đồng nhau.

39

Hình 4.1 Màu sắc của quả dứa rất đa dạng

Hình 4.2 Màu sắc của quả dứa, lá dứa, vương miện tương đồng nhau

Bài toán phân loại trên không có đặc trưng cụ thể vì vậy cần một phương pháp để dạy cho máy tính hiểu được đâu là quả dứa trong ảnh.

Phương pháp nhận diện mà các bạn kì trước đã làm là dùng thuật toán Haar Cascade. Khi đó sẽđẩy 2 bộ dữ liệu bao gồm một tập dữ liệu có chứa ảnh quả dứa và một tập dữ liệu là không chứa ảnh quả dứa để huấn luyện và nhận diện quả dứa.

40

Hình 4.3 Kết quả nhận diện quả dứa bằng phương pháp Haar Cascade

Từ kết quả cho ta thấy kết quả đang còn sai lệch nhiều, những quả dứa ở gần camera có thể nhận diện được, tuy nhiên ở những vị trí không có quả dứa máy tính vẫn cho đó là quả dứa, có quả dứa được nhận diện 2 lần.

4.2.2 Phương pháp Deep Learning

Deep learning là một nhánh của học máy, chủ yếu dựa trên mạng nơ-ron nhân tạo. Mạng nơ-ron nhân tạo sử dụng trong deep learning chứa nhiều lớp ẩn, nên được gọi là mạng nơ-ron sâu, tên gọi deep learning cũng xuất phát từ đây. Ngoài ra, deep learning cũng có thể hiểu theo nghĩa là hiểu sâu vấn đề. Đối với phương pháp machine learning thông thường, từ dữ liệu đầu vào, ta cần thực hiện nhiều giải thuật để phân tích ra các đặc trưng (ví dụđối với ảnh ta cần phân tích đặc trưng về ánh sáng, màu sắc, độ tương phản,...). Như vậy, trong phương pháp machine learning thông thường, con người đang bắt máy tính phải hiểu về vấn đề giống cách con người hiểu. Tuy nhiên, kiến trúc não bộ và kiến trúc máy tính khác nhau rất nhiều, việc hiểu về 1 vấn đề theo cùng 1 cách, chưa chắc đã giúp cho máy tính suy luận giống với con người, do đó, kết quả mà các mô hình machine learning thông thường đưa ra vẫn có khả năng là kết quả của một quá trình học “vẹt”.

Một mạng nơ-ron nhân tạo đơn giản có cấu trúc như hình dưới:

41

o Lớp đầu vào (lớp input): Là lớp nhận kích thích, mọi kích thích vào mạng sẽđều thông qua lớp này.

o Lớp ẩn (lớp hidden): Nằm sau lớp đầu vào, nhận tín hiệu từ lớp đầu vào trước khi chuyển sang lớp tiếp theo.

o Lớp đầu ra (lớp output): Nhận tín hiệu từ lớp ẩn và đưa ra kết quả.

o Ứng với mỗi liên kết sẽ có các trọng số

o Ứng với mỗi nơ-ron (trong mạng nơ-ron nhân tạo gọi là unit – đơn vị) sẽ có 1 giá trị ngưỡng (giá trị mà tại đó nơ-ron phát tín hiệu) và 1 giá trị tương ứng với xung điện được phát đi, tất cả được quy định bởi một hàm kích hoạt. Một hàm kích hoạt thường thấy là hàm ReLU:

- F(x) = max(0, x).

- Hàm này sẽ chỉ cho tín hiệu truyền đi khi giá trị truyền đến nơ-ron >= 0 - Khi giá trị truyền đơn nơ-ron >= 0, nó sẽ truyền toàn bộ giá trịnày đi Mạng nơ-ron nhân tạo cơ bản gồm có nhiều lớp, mỗi lớp lại gồm nhiều nơ-ron, các nơ-ron được liên kết với nhau bởi các liên kết. Ban đầu, mạng nơ-ron được thiết kế để mỗi nơ-ron đều liên kết với mọi nơ-ron ở lớp liền trước và lớp liền sau, mỗi một liên kết lại mang một trong số khác nhau. Mạng nơ-ron nhân tạo như vậy gọi là mạng nơ- ron kết nối đầy đủ (fully-connected neural network).

Với mạng nơ-ron nhân tạo, các trọng số cần điều chỉnh trong quá trình huấn luyện chính là các trọng số của các liên kết. Có thể thấy, mạng nơ-ron kết nối đầy đủ, số trọng số cần tối ưu là rất lớn.

Ta có thể nhận thấy, với một đầu vào cụ thể, sẽ chỉ có 1 số thuộc tính là có ảnh hưởng lên nhau. Ví dụ với dữ liệu đầu vào là một bức ảnh, hầu như chỉ có các điểm ảnh gần nhau mới cùng nhau tạo nên một đối tượng (object). Ngoài ra, đối với ảnh, mỗi quan hệ giữa 1 cụm điểm ảnh liên tiếp cũng không thay đổi nếu chúng được đặt ở các vị trí khác nhau trong bức ảnh này. Vì vậy, một kiến trúc mạng nơ-ron nhân tạo mới đã được đề xuất, cắt bỏ đi các liên kết không gây nhiều ảnh hưởng và bắt các liên kết có cùng bản chất chia sẻ trọng số với nhau. CNN chính là một kiến trúc mạng nơ-ron như vậy.

Phương pháp deep learning tiếp cận vấn đề theo một hướng khác, thay vì phải đưa ra những đặc trưng tương đối cụ thể như đã kể trên, thì ta chỉ đưa cho mô hình những đặc trưng “thô”, ví dụ đối với ảnh là một ma trận 3 chiều chứa các giá trị, mỗi giá trị ứng với cường độ 1 kênh màu (R – đỏ, G –lục, B –lam) tại một điểm ảnh nào đó. Mô hình sẽ tự phân tích, kết hợp, suy luận và lựa chọn ra các đặc trưng phù hợp để quyết định đầu ra. Mạng nơ-ron nhân tạo sâu thực hiện việc này một cách hiệu quả, do càng vào sâu, các tham số càng trở nên khó hiểu (trừu tượng) đối với con người, nên con người càng khó can thiệp vào, vì vậy, deep learning sẽ hoàn thành nhiệm vụ đầu tiên: để cho máy tính tự hiểu vấn đề theo cách hiểu của máy. Các đặc trưng trừu tượng này sẽ được đưa qua một mô hình machine learning, tương tự như phương pháp machine learning thông thường, để tạo ra kết quả cuối cùng. Nếu mô hình machine learning này là một mạng nơ-ron nhân tạo, ta có thể nối 2 mạng này với nhau, thành một mạng duy

42 nhất. Việc sử dụng một mạng nơ-ron duy nhất sẽ giúp quá trình học trở nên xuyên suốt, liền mạch, giúp nâng cao hiệu quả của quá trình huấn luyện cũng như tối ưu cho kết quả.

4.2.3 CNN – mạng nơ-ron tích chập (Convolutional Neural Network)

Hình 4.5 Mạng nơ-ron tích chập CNN

Mạng nơ-ron nhân tạo cơ bản gồm có nhiều lớp, mỗi lớp lại gồm nhiều nơ-ron, các nơ-ron được liên kết với nhau bởi các liên kết. Ban đầu, mạng nơ-ron được thiết kế để mỗi nơ-ron đều liên kết với mọi nơ-ron ở lớp liền trước và lớp liền sau, mỗi một liên kết lại mang một trong số khác nhau. Mạng nơ-ron nhân tạo như vậy gọi là mạng nơ-ron kết nối đầy đủ (fully-connected neural network).

Với mạng nơ-ron nhân tạo, các trọng số cần điều chỉnh trong quá trình huấn luyện chính là các trọng số của các liên kết. Có thể thấy, mạng nơ-ron kết nối đầy đủ, số trọng số cần tối ưu là rất lớn. Ví dụ với một mạng nơ-ron gồm 3 lớp có kích thước lần lượt là 784 – 1024 – 10 (mạng perceptron giải quyết bài toán nhận diện chữ viết tay trên tập MNIST), ta cần tối ưu đến tận 813056 tham số.

Ta có thể nhận thấy, với một đầu vào cụ thể, sẽ chỉ có 1 số thuộc tính là có ảnh hưởng lên nhau. Ví dụ với dữ liệu đầu vào là một bức ảnh, hầu như chỉ có các điểm ảnh gần nhau mới cùng nhau tạo nên một đối tượng (object). Ngoài ra, đối với ảnh, mỗi quan hệ giữa 1 cụm điểm ảnh liên tiếp cũng không thay đổi nếu chúng được đặt ở các vị trí khác nhau trong bức ảnh này. Vì vậy, một kiến trúc mạng nơ-ron nhân tạo mới đã được đề xuất, cắt bỏ đi các liên kết không gây nhiều ảnh hưởng và bắt các liên kết có cùng bản chất chia sẻ trọng số với nhau. CNN chính là một kiến trúc mạng nơ-ron như vậy.

Một mạng CNN cơ bản được hình thành từ các lớp Convolution (Conv) và các lớp Pooling. Kết thúc của mạng CNN thường là một số lớp Fully-connected giúp kết hợp mọi đặc trưng (features) đã trích rút bởi các lớp trước lại với nhau và đưa ra kết quả.

Đầu vào của lớp conv thường là một ma trận có kích thước CxMxM (với C là số kênh – ví dụ số kênh màu của ảnh là 3), đầu ra của lớp conv là một ma trận có kích thước C’xM’xM’. Mỗi lớp Conv gồm C’ ma trận vuông, kích thước CxNxN với N rất nhỏ(thường cỡ 3x3, 5x5, 7x7,...) có cùng kích thước với nhau, gọi là filter. Mỗi filter sẽtrượt trên toàn bộ output của lớp trước và sinh ra một ô của output bằng cách tính tổng chập. Có thểđiều chỉnh các tham số của lớp conv

43 như kích thước filter, độ dài bước nhảy, bổ sung viền,... Nhiệm vụ của lớp conv là tìm ra các mối liên hệ (đặc trưng) giữa các điểm ảnh gần nhau, mỗi filter phụ trách tìm ra một mối liên hệtrong đó.

Lớp Pooling có nhiệm vụ lựa chọn ra điểm ảnh có đặc trưng tiêu biểu nhất trong các điểm ảnh nằm gần nhau. Các loại pooling thường gặp là max pooling và average pooling. Ta cũng có thể thay đổi các tham số kích thước, bước nhảy,... của lớp pooling.

4.3 Bài toán nhận diện vật thể

Trong lớp các bài toán nhận diện ảnh, bài toán nhận diện quả dứa và phân loại dứa chín được xếp vào nhóm bài toán nhận diện vật thể. Đặc điểm chung của những bài toán nhận diện vật thể là một bức ảnh chứa nhiều vật thể thuộc nhiều lớp (class) khác nhau. Nhiệm vụ của bài toán là phải đưa ra danh sách tất cả các vật thể thuộc những lớp được chỉ định trong bức ảnh đó, bao gồm thông tin về toạđộ, lớp của vật thể. Toạđộ của vật thể thường là thông tin hình chữ nhật bao quanh vật thểđó, hình chữ nhật này có các cạnh song song với các viền của ảnh.

Có nhiều phương pháp giải quyết bài toán nhận diện vật thể khác nhau. Có thể xếp các phương pháp này vào 2 nhóm:

- Giải quyết theo cơ chế đường ống (pipeline): phát hiện -> phân loại. Nhóm bài toán này sẽ tìm cách phân tách các vật thể trong một bức ảnh thành các bức ảnh độc lập, sau đó phân loại những bức ảnh đó một cách độc lập. Những giải thuật tiêu biểu là: R-CNN, Fast R-CNN,...

- Giải quyết theo cơ chế end-to-end: sử dụng một mô hình duy nhất để giải quyết đồng thời cả bài toán phân loại và bài toán xác định vị trí. Thuật toán tiêu biểu có thể kểđến là YOLO, SSD,...

4.3.1 Thuật toán YOLO

YOLO (You Only Look Once) là thuật toán Object Dection nhằm mục tiêu xử lý thời gian thực có tốc độ tốt nhất hiện tại.

a) Ý tưởng thuật toán

YOLO chia input image thành SxS grid cell, mỗi grid cell sẽ dựđoán một đối tượng. Ví dụ: grid cell màu vàng ở hình 2.4 dự đoán đối tượng “person” với boundary box có tâm nằm vào trong grid cell đó.

44 Với mỗi grid cell sẽ dựđoán một số lượng boundary box nhất định. Ví dụ grid cell màu vàng bên dưới tạo ra 2 boundary box để dự đoán vị trí của người trong hình

Hình 4.7 Grid Cell

Quy tắc một đối tượng cho mỗi grid cell gặp hạn chế khi các đối tượng quá gần nhau. Vì thế YOLO có một giới hạn nhất định về khoảng cách giữa 2 vật thể mà nó có thể nhận diện được.

Với mỗi ô grid cell:

- YOLO dự doán B boundary box với các tham số (x, y, w, h, c). Với x và

y là tọa độ góc trên bên phải của box, w và h là độ lớn chiều ngang và chiều dọc của box, c là box confidence score.

- YOLO dựđoán một đối tượng bất kể số lượng boundary box B. - YOLO dựđoán C conditional class probabilities.

Box confidence score phản ánh khả năng hộp chứa đối tượng và độ chính xác của boundary box. Các tham số x, y, w h đều được chuẩn hóa do đó có khoảng giá trị là [0,1]. Mỗi grid cell có C conditional class probability, là xác

suất mà đối tượng được phát hiện thuộc về một lớp cụ thể. Vì thế dự đoán của YOLO có dạng (S,S, Bx5 + C) = (7, 7, 2x5+5) = (7, 7, 15). (C = 5 đối với bài toán của chúng ta).

Class confidence score cho mỗi box được dự đoán được tính theo công thức:

𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐𝑐𝑐𝑐𝑐𝑐𝑠𝑠𝑐𝑐 = 𝑏𝑏𝑐𝑐𝑏𝑏 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐𝑐𝑐𝑐𝑐𝑐𝑠𝑠𝑐𝑐 × 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑝𝑝𝑠𝑠𝑐𝑐𝑏𝑏𝑐𝑐𝑏𝑏𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐y

45

Hình 4.8 Kiến trúc mạng mô hình YOLO

YOLO có 24 Convalutional Layers theo sau là 2 Fully Conneted Layers (FC).

c) Lost Function

YOLO sử dụng sai số bình phương giữa các preditions (giá trị dự đoán) và ground truth (giá trị thực) để tính toán tổn thất. Hàm mất bao gồm:

- Classification loss - Localization loss - Confidence loss

Classification loss

Nếu một đối tượng được phát hiện, classification loss tại mỗi ô là bình phương lỗi của class conditional probabilities

2 2 0 ˆ 1 ( ( ) ( ))

Một phần của tài liệu Thiết kế hệ thống điều khiển robot thu hoạch dứa dựa trên công nghệ xử lý ảnh (Trang 46)

Tải bản đầy đủ (PDF)

(108 trang)