Giới thiệu về Smart Contract

Một phần của tài liệu Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng ứng dụng quản lý chuỗi cung ứng trên nền tảng blockchain và hệ hỗ trợ quyết định bằng phương pháp máy học và học sâu (Trang 28 - 43)

CÁU TRÚC KHOÁ LUẬN

CHƯƠNG 3: CƠ SỞ LÝ THUYÉT

1. Giới thiệu về công nghệ Blockchain

1.6 Giới thiệu về Smart Contract

19

Smart Contract hay hợp đồng thông minh, là một giao thức giao dịch được xây dựng trên nền tảng công nghệ Blockchain. Mục đích của hợp đồng thông minh là tự động hóa quá trình thực hiện các điều khoản của hợp đồng giữa các bên mà không cần thông qua bên trung gian. Hợp đồng thông minh sẽ tự động thực hiện các hành động pháp lý được ghi nhớ vào Blockchain, giúp cho việc truy xuất và xác thực

thông tin trở nên dễ dàng hơn.

Smart Contract được dùng để tự động hóa việc thực hiện một thỏa thuận. Đồng thời nó cũng được sử dụng để kích hoạt các hành động tiếp theo khi điều kiện được đáp ứng. Các điều khoản trên hợp đồng thông minh tương đương với một hợp đồng

pháp lý sử dụng ngôn ngữ máy tinh.[5]

Hiểu một cách đơn giản, Smart Contract hoạt động tương tự như máy bán nước

tự động. Khi bạn bỏ tiền vào và lựa chọn đồ uống, nó sẽ tự động đưa cho bạn món

bạn cần. Hay nếu món đó đã hết, máy có thể báo bạn thay đổi lựa chọn hoặc nhận lại tiền. Có thé thấy việc mua hang từ máy bán nước này hoàn toàn tự động mà không cần đến sự can thiệp của bên thứ ba.

Hình 3.4 Cách thức hoạt động của Smart Contract

Smart Contract cũng vậy, nó giúp việc thực thi một hợp đồng diễn ra tự động.

Dé viết một hợp đồng thông minh có thé sử dụng nhiều loại ngôn ngữ lập trình. Chăng hạn như Solidity, Web Assembly hay Michelson.

20

Dựa trên những câu lệnh “if/ when ... then ...” và được mã hóa trên Blockchain,

Smart Contract sẽ thực hiện các hành động khi đáp ứng đủ các điều kiện cho trước.

Đó có thê là hành động gửi thông báo, đăng ký phương tiện, thanh toán tiền... Sau

cùng, nó sẽ cập nhật dữ liệu về việc giao dịch đã hoàn tat.

Khi thực hiện Smart Contract, các bên sẽ không thê tự ý thay đổi giao dịch. Đồng thời chỉ những bên được cấp quyền mới có thé xem được kết quả. Vì vậy, những điều khoản phải được cân nhắc kỹ càng và tính đến tất cả các ngoại lệ và tranh chấp

có thể xảy ra. [5]

Giới thiệu các thuật toán hoc sâu

2.1 Tong quan về phát hiện đối tượng (Object Detection)

Một trong những lĩnh vực quan trọng cua Trí tuệ nhân tạo (Artificial

Intelligence) là thị giác máy (Computer Vision). Computer Vision là một lĩnh vực

bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy. Object Detection có lẽ là khía cạnh sâu sắc nhất của thị giác máy do số lần sử dụng trong thực tế.

Object Detection đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng. Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái. Có nhiều cách dé nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành. Các thuật toán phát hiện đối tượng có thé được chia thành hai loại chính:

e Phat hiện một giai đoạn (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.

e Phát hiện hai giai đoạn (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 va vi trí của đôi tượng.

21

Lượt đầu tiên được sử dụng dé tạo một tậ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ác hơn Single-shot object detection nhưng cũng tốn kém hơn về mặt tính toán.

Việc áp dụng đột phá và nhanh chóng của deep learning vào năm 2012 đã đưa

vào sự tôn tại các thuật toán và phương pháp phát hiện đối tượng hiện đại và chính

xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet và nhanh hơn nhưng

rất chính xác như SSD và YOLO. Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán

học và việc học sâu.

2.2 Giới thiệu thuật toán YOLO

YOLO (You Only Look Once) là một mô hình mang CNN cho việc phát hiện,

nhận dạng, phân loại đối tượng. YOLO được tạo ra từ việc kết hợp giữa các

convolutional layers va connected layers. Trong đó 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. YOLO là thuật toán object detection nên mục tiêu của mô hình

không chỉ là dự báo nhãn cho vật thé như các bài toán classification mà nó còn xác định location của vật thé. Do đó YOLO có thé phát hiện được nhiều vật thé có nhãn khác nhau trong một bức ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức

ảnh.

fully : ‘

N jew ican an eer woes connected x B times x C times

Ma |W -‹<‹-<--- N \ - —

Image DarkNet x x (x, y, w, h, obj score)

ị Architecture length: 5B+C

7x7x1024 4096 7x7x30 448x448x3

Hình 3.5 So do kiến trúc mạng YOLO

22

YOLO xây dựng một mang CNN dé dự đoán các tensor kích thước (7,7,30). Mạng CNN này có tác dụng làm giảm kích thước không gian mỗi vị trí thành 7x7 với 1024 một kênh đầu ra. Hình 1 minh họa kiến trúc một mạng YOLO. Kiến trúc mạng CNN trong YOLO có 24 lớp tích chập kết hợp với các lớp max pooling và 2 lớp fully connected. Lần lượt mỗi lớp tích chập sẽ giảm kích thước không gian đặc trưng từ lớp trước đó. Một mạng CNN trong một hệ thống YOLO không nhất thiết phải đầy đủ 24 lớp mà tùy từng đối tượng có thê điều chỉnh giảm

số lớp cho phù hợp vi số lớp càng ít, tốc độ YOLO càng nhanh.

Scaled YOLOv4 DAMO YOLO

PP-YOLO PP-YOLOE

YOLOv5

YOLOv7

YOLO 9000 (v2) YOLOv4 YOLOvé

YOLOX

YOLOR YOLOS PP-YOLOv2

Hình 3.6 Các phiên bản phát hành của YOLO

2.3 Cách hoạt động của thuật toán YOLO

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh. YOLO dé xuất

sử dụng mạng thần kinh đầu cuối dé đưa ra dự đoán về các hộp giới hạn (bounding box) và xác suất của đối tượng cùng một lúc. Nó khác với cách tiếp cận của các thuật toán phát hiện đối tượng trước đó, vốn sử dụng lại các trình phân loại để thực

hiện phát hiện.

Y tưởng chính cua YOLO là chia ảnh thành một lưới các 6 (grid cell) với kích

thước SxS (mặc định là 7x7). Với mỗi grid cell, mô hình sẽ đưa ra dự đoán cho B

23

bounding box. Ứng với mỗi box trong B bounding box này sẽ là 5 tham số x, y, w,

h, confidence, lần lượt là tọa độ tâm (x, y), chiéu rong, chiều cao va độ tự tin của dự đoán. Với grid cell trong lưới SxS kia, mô hình cũng dự đoán xác suất rơi vào mỗi class. Nếu tâm của một đối tượng rơi vào một ô lưới thì ô lưới đó có nhiệm vụ phát hiện đối tượng đó. Mỗi ô lưới dự đoán các hộp giới hạn B và điểm tin cậy cho các hộp đó. Các điểm tin cậy này phản ánh mức độ tin cậy của mô hình rằng hộp chứa

một đôi tượng và mức độ chính xác mà mô hình cho răng hộp được dự đoán.

YOLO dự đoán nhiều hộp giới hạn trên mỗi ô lưới. Tại thời điểm đảo tạo, ta chỉ muốn một bộ dự đoán hộp giới hạn thể hiện cho từng đối tượng. YOLO chỉ định bộ

dự đoán dua trên chỉ số JOU hiện tại cao nhất với thực tế. Điều này dẫn đến sự chuyên môn hóa giữa các bộ dự đoán hộp giới hạn. Mỗi công cụ dự đoán trở nên tốt hơn trong việc dự báo các kích thước, tỷ lệ khung hình hoặc loại đối tượng nhất định, cải thiện tông thé recall score.

YOLO dự đoán nhiều hộp giới hạn trên mỗi ô lưới. Tại thời điểm dao tạo, ta chỉ muốn một bộ dự đoán hộp giới hạn thể hiện cho từng đối tượng. IOU

(INTERSECTION OVER UNION) là ham đánh giá độ chính xác cua object

detector trên tập dữ liệu cụ thé, YOLO chỉ định bộ dự đoán dựa trên chỉ số IOU hiện tại cao nhất với thực tế. Điều này dẫn đến sự chuyên môn hóa giữa các bộ dự đoán hộp giới hạn. Chỉ số IOU được tính bằng công thức:

Area of Overlap loU =

Area of Union

Hình 3.7 Công thức loU

24

Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted bounding

box với grouth-truth bouding box , còn Area of Union là điện tích phần hợp giữa

predicted 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.

2.4 Các phiên bản của YOLO

e YOLO v5

YOLO v5 được giới thiệu vào năm 2020 bởi cùng một nhóm đã phát triển thuật toán YOLO ban đầu dưới dạng một dự án mã nguồn mở và được duy trì bởi

Ultralytics. YOLO v5 được xây dựng dựa trên sự thành công của các phiên bản

trước và bé sung một số tính năng và cải tiền mới.

Không giống như YOLO, YOLO v5 sử dụng một kiến trúc phức tạp hơn gọi là EfficientDet (kiến trúc hiển thị bên dưới), dựa trên kiến trúc mạng EfficientNet. Việc sử dụng một kiến trúc phức tạp hơn trong YOLO v5 cho phép nó đạt được độ chính xác cao hơn và khả năng khái quát hóa tốt hơn cho nhiều loại đối tượng hơn.

it ieH LJ

yt aie no il nan

Input Images EfficientNet Backbone n BIFPN Layers Prediction net

Hình 3.8 Kiến trúc mạng YOLO v5

Một điểm khác biệt nữa giữa YOLO và YOLO v5 là dữ liệu đào tao được sử dụng để học mô hình phát hiện đối tượng. YOLO được đảo tạo trên bộ dữ liệu PASCAL VOC, bao gồm 20 danh mục đối tượng. Mặt khác, YOLO v5 được đào

25

tạo trên tập dữ liệu lớn hơn và đa dạng hơn có tên là D5, bao gồm tổng cộng 600 danh mục đối tượng.

e YOLO v7

YOLO v7 là phiên ban gan đây nhất của YOLO, có một số cải tiến so với các phiên bản trước. Một trong những cải tiến chính là việc sử dụng các anchor box.

Các anchor box là một tập hợp các hộp được xác định trước với các tỷ lệ khung hình

khác nhau được sử dụng dé phat hién cac đối tượng có hình dạng khác nhau. YOLO

v7 sử dụng chin anchor box, cho phép YOLO phát hiện phạm vi hình dạng và kích

thước đối tượng rộng hơn so với các phiên bản trước, do đó giúp giảm số lượng xác

định sai.

Một cải tiến quan trọng trong YOLO v7 là việc sử dụng một loss function mới

gọi là “focal loss”. Các phiên bản trước của YOLO đã sử dụng cross-entropy loss

function tiêu chuẩn, được biết là kém hiệu quả hơn trong việc phát hiện các đối tượng nhỏ. Focal loss giải quyết van dé này bang cách giảm trọng số mat mát cho các ví dụ được phân loại tốt và tập trung vào các ví dụ khó——các đối tượng khó phát

hiện.

YOLO v7 cũng có độ phân giải cao hơn so với các phiên bản trước. Nó xử ly hình ảnh ở độ phân giải 608 x 608 pixel, cao hơn độ phân giải 416 x 416 được sử

dụng trong YOLO v3. Độ phân giải cao hơn này cho phép YOLO v7 phát hiện các

đối tượng nhỏ hơn và có độ chính xác tổng thể cao hơn.

26

Backbone Feature Pyramid

Hình 3.9 Kiến trúc mang YOLO v7

:

© pal

© partial c

táo

1 Expand

cardinality

(aie) E | D=ael Ề ẵ ì i

(teal r 6 0): | mm | lŠ ww

[s8 ee] [se] qe] [—— h2 ——]

| 1 Merge cardinality

L ———m s— mm _ Ixl,đc,c =—— el

€ e _ e

(a) VoVNet [39] (b) CSPVoVNet {79} (c) ELAN (1] (d) E-ELAN

Figure 2: Extended efficient layer aggregation networks. The proposed extended ELAN (E-ELAN) does not change the gradient transmis-

sion path of the original architecture at all, but use group convolution to increase the cardinality of the added features, and combine the

features of different groups in a shuffle and merge cardinality manner. This way of operation can enhance the features learned by different

feature maps and improve the use of parameters and calculations.

Hình 3.10 Sơ đồ tong hợp lớp cia YOLO v7

Một trong những ưu điểm chính của YOLO v7 là tốc độ. Nó có thể xử lý hình ảnh với tốc độ 155 khung hình mỗi giây, nhanh hơn nhiều so với các thuật toán phát

hiện đối tượng hiện đại khác. Về độ chính xác, YOLO v7 thể hiện tốt so với các

thuật toán phát hiện đối tượng khác. Nó đạt được độ chính xác trung bình là 37,2%

ở ngưỡng IoU (giao điểm trên hợp nhất) là 0,5 trên bộ dir liệu COCO phổ biến, có thé so sánh với các thuật toán phát hiện đối tượng hiện đại khác. [14]

27

YOLO v7 là một thuật toán phát hiện đối tượng mạnh mẽ và hiệu quả, nhưng

nó có một số hạn chế:

e YOLO v7, giống như nhiều thuật toán phát hiện đối tượng, gặp khó khăn

trong việc phát hiện các đối tượng nhỏ. Nó có thé không phát hiện chính xác các đối tượng trong các cảnh đông đúc hoặc khi các đối tượng ở xa máy

ảnh.

e YOLO v7 cũng không hoàn hảo trong việc phát hiện các đối tượng ở các tỷ

lệ khác nhau. Điều này có thé gây khó khăn cho việc phát hiện các đối tượng rất lớn hoặc rất nhỏ so với các đối tượng khác trong cảnh.

e YOLO v7 có thé nhạy cảm với những thay đổi về ánh sáng hoặc các điều

kiện môi trường khác, vì vậy có thé bat tiện khi sử dụng trong các ứng dụng thực, nơi điều kiện ánh sáng có thể thay đôi.

e YOLO v7 có thé đòi hỏi nhiều tính toán, điều này gây khó khăn khi chạy

trong thời gian thực trên các thiết bị hạn chế về tài nguyên như điện thoại thông minh hoặc các thiết bị biên khác.

e YOLO v8

YOLOvs8 là phiên ban YOLO mới nhất của mô hình phân đoạn hình ảnh va phát hiện đối tượng thời gian thực nổi tiếng của Ultralytics, được phát hành vào tháng 3/2023. Là một mô hình tiên tiến, hiện đại (SOTA), YOLOv8 được xây dựng dựa trên sự thành công của các phiên bản trước, giới thiệu các tính năng và cải tién mới

dé nang cao hiéu suat, tinh linh hoat va hiéu qua. YOLOv§ hỗ trợ đầy đủ các tác vụ

AI về thị giác, bao gồm phát hiện , phân đoạn , ước tính tư thế , theo dõi và phân

loại . Tính linh hoạt này cho phép người dùng tận dụng các khả năng của YOLOv8

trên nhiều ứng dụng và miền khác nhau. Thiết kế hợp lý của nó giúp nó phủ hợp với nhiều ứng dụng khác nhau và dễ dàng thích ứng với các nền tảng phần cứng khác nhau, từ thiết bị biên cho đến API đám mây. [9]

28

v Detection

Speed Speed

size mAPval params FLOPs

Model (pixels) 50-95 ory re (M) (B)

(ms) (ms)

YOLOv8n 640 373 - - 3:2 8.7

YOLOv8s 640 44.9 - - T1.2 28.6

YOLOv8m 640 50.2 - - 25.9 78.9

YOLOv8l 640 52.9 - - 43.7 165.2

YOLOv8x 640 53.9 - - 68.2 257.8

ô mAP*^l values are for single-model single-scale on COCO val2017 dataset.

Reproduce by yolo mode=val task=detect data=coco.yaml device=0

¢ Speed averaged over COCO val images using an Amazon EC2 P4d instance.

Reproduce by yolo mode=val task=detect data=coco128.yamL batch=1 device=@/cpu

Hình 3.11 Độ chính xác Coco của YOLOv8

0.8Ƒ 1

0.6Ƒ 4

mAP

0.27 œ% OO

0.0L —— ;

yolov5 yolov7 yolov8

Hình 3.12 YOLOs mAp@.50 so với RF100

So với đánh giá YOLOv5 và YOLOv7 mô hình YOLOv§ tạo ra kết quả tương

tự trên mỗi tập dit liệu hoặc cải thiện đáng ké kết quả.

29

2.5 Giới thiệu thuật toán SSD

Single Shot Multibox Detector (SSD) là một thuật toán rat phức tap, có nhiều layers va các phases xử lý khác nhau. Cũng giống như hau hết các kiến trúc object detection khác, đầu vào của SSD là tọa độ bounding box của vật thê (hay còn gọi là offsets của bounding box) và nhãn của vật thể chứa trong bounding box. Điểm đặc biệt làm nên tốc độ của SSD model là mô hình sử dụng một mạng neural duy nhất. Cách tiếp cận của nó dựa trên việc nhận diện vật thé trong các features map (là một

output shape 3D của một mạng deep CNN sau khi bỏ các fully connected layers

cuối) có độ phân giải khác nhau. Mô hình sẽ tạo ra một lưới các ô vuông gọi là grid

cells trên các feature map, mỗi ô được gọi là một cell và từ tâm của mỗi cell xác

định một tợp hợp các boxes mặc định (default boxes) đề dự đoán khung hình có khả năng bao quanh vật thể. Tại thời điểm dự báo, mạng neural sẽ trả về 2 giá trị đó là: phân phối xác suất nhãn của vật thê chứa trong bounding box và một tọa độ gọi là offsets của bounding box. Quá trình huấn luyện cũng là quá trình tinh chỉnh xác suất nhãn và bounding box về đúng với các giá trị ground truth input của mô hình (gồm

nhãn và offsets bounding box).

Extra Feature Layers

VGG-16

through CorvS, 3 layer Cassie Conv. 3x3w[4xfCesses^4,

74.3mAP S9FPS

SSD i¥ Í

t t Detections:8732 per Class Non-Maximum Suppression

MS Come txtx128 Conv: x1X12B Cow 1xiw128

12-82 Conv.33x256-s2 Conv.3x3x256-31 Cow: 3x3x256-31

Hình 3.13 Sơ đỗ kiến trúc mạng SSD

Kiến trúc của SSD được xây dựng trên VGG-16 được loại bỏ tầng fully- connected. Lí do ma VGG-16 được sử dụng như tầng cơ sở là vì sự hiệu quả của nó trong bài toán phân loại ảnh với các ảnh có độ phân giải cao. Thay vì sử dụng tầng fully-connected của VGG, một tập các tầng convolution phụ trợ (cụ thê là 6 trong

30

Một phần của tài liệu Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng ứng dụng quản lý chuỗi cung ứng trên nền tảng blockchain và hệ hỗ trợ quyết định bằng phương pháp máy học và học sâu (Trang 28 - 43)

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

(71 trang)