1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bản báo cáo ứng dụng computer vision trong nhận diện các loại phương tiện giao thông trên đường

23 7 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

lOMoARcPSD|278 270 34 lOMoARcPSD|278 270 34 HỌC VIỆN NGÂN HÀNG PHÂN VIỆN PHÚ YÊN Học phần: TRÍ TUỆ NHÂN TẠO BẢN BÁO CÁO: ỨNG DỤNG COMPUTER VISION TRONG NHẬN DIỆN CÁC LOẠI PHƯƠNG TIỆN GIAO THÔNG TRÊN ĐƯỜNG Giảng viên hướng dẫn: Trần Thị Huế Sinh viên thực hiện: Đặng Thùy Linh Đỗ Thị Thùy Trang Bùi Thị Bích Loan Trần Thị Kim Lam Nguyễn Phúc Đại Phú Yên - 2022 lOMoARcPSD|278 270 34 Đề tài: ỨNG DỤNG COMPUTER VISION TRONG NHẬN DIỆN CÁC LOẠI PHƯƠNG TIỆN GIAO THÔNG TRÊN ĐƯỜNG THÀNH VIÊN NHÓM VÀ ĐÓNG GÓP (các bạn làm bảng đóng góp vào đây) ➢ Video trình chạy code: https://drive.google.com/file/d/172zJbT7vxmKHCfUVJbDwgqCCszc4I Xlr/view?fbclid ➢ Mơ hình xây dựng: https://drive.google.com/file/d/1ROOu5x5E9OO3yI8eB2gshN7zKoEfaSLv/view? usp=sharing ➢ File hình ảnh: - Tệp Data (Train Validation): https://drive.google.com/drive/folders/18o4m2Y6NxdXx2aFiahammv3otMQbZJi?usp=sharing - Tệp Test: https://drive.google.com/drive/folders/1r9703adma6wvMwQMUdFoW-Zy8OsAVWV?usp=sharing lOMoARcPSD|278 270 34 MỤC LỤC MỞ ĐẦU NỘI DUNG CHƯƠNG 1: Giới thiệu đơn vị sử dụng, phát biểu toán, lý chọn toán 1.1 Giới thiệu đơn vị sử dụng 1.2 Phát biểu toán 1.3 Lý chọn toán CHƯƠNG II: Giới thiệu kiểu liệu ảnh cần thu thập cách thu thập liệu CHƯƠNG III: Giới thiệu tổng quan thuật toán sử dụng 3.1 Mạng nơron tích chập khái niệm liên quan 3.2 Các lớp mạng nơron tích chập 3.3 Cách chọn tham số cho CNN CHƯƠNG IV: Mã lệnh chương trình 4.1 Khai báo thư viện sử dụng 4.2 Kết nối với Google Drive đọc lưu liệu 4.3 Khai báo đường dẫn thư mục chứa liệu ảnh 4.4 Gán nhãn liệu 4.5 Tiền xử lý liệu ảnh với ImageDataGenerator 4.6 Đọc liệu Train Validation 4.7 Xây dựng mơ hình 4.8 Huấn luyện mơ hình 11 4.9 Sử dụng mơ hình để test ảnh 16 4.10 Chạy thử mơ hình để đánh giá tính xác mơ hình 16 KẾT LUẬN 19 TÀI LIỆU THAM KHẢO 20 lOMoARcPSD|278 270 34 MỞ ĐẦU Trong cách mạng cơng nghệ 4.0 nay, trí tuệ nhân tạo trở thành công cụ đắc lực giúp người quản lý cơng việc nhanh xác Rất nhiều ứng dụng trí tuệ nhân tạo áp dụng vào thực tiễn để tăng suất làm việc, điển hình ứng dụng thị giác máy tính Thị giác máy tính (Computer Vision) lĩnh vực bao gồm phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích nhận dạng hình ảnh và, nói chung liệu đa chiều từ giới thực thơng tin số biểu tượng, ví dụ dạng định Thị giác máy tính lĩnh vực phát triển mạnh mẽ giới Và thị giác máy tính ứng dụng nhiều lĩnh vực khác như: kinh doanh, tài chính, ngân hàng, cơng nghiệp, y tế… Hơn thế, việc nghiên cứu phát triển ứng dụng thị giác máy tính mở nhiều tiềm khả ứng dụng thực tiễn mạnh mẽ cho chặng đường nghiên cứu Việt Nam Chính thế, nhóm chúng em lựa chọn đề tài nghiên cứu là: “Ứng dụng Computer Vision nhận diện loại phương tiện giao thông đường.” để khẳng định lại vai trị sức mạnh cơng nghệ thị giác máy tính lOMoARcPSD|278 270 34 NỘI DUNG CHƯƠNG 1: Giới thiệu đơn vị sử dụng, phát biểu toán, lý chọn toán 1.1 Giới thiệu đơn vị sử dụng Qua ứng dụng Computer Vision nhận diện loại phương tiện giao thông đường, đơn vị sử dụng mà nhóm hướng đến ban ngành, lực lượng chức kiểm sốt an tồn giao thơng 1.2 Phát biểu tốn Ứng dụng Computer Vision nhận diện loại phương tiện giao thơng đường Input: hình ảnh phương tiện giao thông bao gồm: Moto, ô tô, trực thăng, xe đạp, xe tải Output: nhận diện phương tiện di chuyển đường 1.3 Lý chọn toán Xã hội ngày phát triển, dân số ngày đông, vấn đề giao thông tai nạn giao thông ùn tắc giao thông, đặc biệt giao thông đường bộ, số vụ giao thông không ngừng tăng quy mô số lượng vấn đề đáng quan tâm hàng đầu Do đó, kỷ ngun cơng nghiệp 4.0, cần thiết việc giám sát giao thông lớn hết Đề tài nhóm nghiên cứu phần quan trọng việc điều phối giao thông, qua giúp cảnh báo vấn đề ùn tắc giao thông, phát phương tiện sai làn, lấn để từ giúp lực lượng cảnh sát kịp thời có biện pháp xử lý trường hợp cụ thể CHƯƠNG II: Giới thiệu kiểu liệu ảnh cần thu thập cách thu thập liệu Bộ liệu nhóm dựa data mẫu cung cấp nhận diện hình ảnh AmazonGo Nhóm nâng cấp từ lớp thành lớp để tiến hành nhận dạng hình ảnh phương tiện di chuyển, bao gồm: Moto, ô tô, trực thăng, xe đạp, xe tải Và để dễ dàng chạy mô hình Google Colab thành viên nhóm lên Google tập trung tải ảnh tập liệu với định dạng JPG phân chia nhóm tải thư mục lên Google Drive Số lượng tập liệu Train cho lớp tổng 500 ảnh, với tập liệu Validation 125 ảnh Trong lớp bao gồm 100 ảnh Train 25 ảnh Validation tương đương với tỉ lệ 80:20 lOMoARcPSD|278 270 34 CHƯƠNG III: Giới thiệu tổng quan thuật toán sử dụng Trong toán “Ứng dụng Computer Vision nhận diện loại phương tiện giao thơng đường”, nhóm sử dụng thuật tốn Mạng nơron tích chập (CNN) để áp dụng cho báo cáo 3.1 Mạng nơron tích chập khái niệm liên quan Mạng nơron tích chập (ConvNet/CNN) thuật tốn Deep Learning tiên tiến lấy hình ảnh đầu vào, gán độ quan trọng cho đặc trưng/đối tượng khác hình ảnh phân biệt đặc trưng/đối tượng với Nó giúp cho xây dựng hệ thống thơng minh với độ xác cao Hiểu đơn giản, CNN lớp mạng nơ-ron sâu, áp dụng phổ biến để phân tích hình ảnh trực quan CNN mơ hình mạng Học sâu phổ biến nay, có khả nhận dạng phân loại hình ảnh với độ xác cao, chí cịn tốt người nhiều trường hợp Mơ hình phát triển, ứng dụng vào hệ thống xử lý ảnh lớn Facebook, Google hay Amazon… cho mục đích khác nhau, thuật tốn gắn thẻ tự động, tìm kiếm ảnh gợi ý sản phẩm cho người tiêu dùng Feature (Đặc điểm): Khi sử dụng thuật tốn CNN so sánh hình ảnh theo mảnh, mảnh gọi Feature Mỗi Feature xem hình ảnh mini hay gọi mảng hai chiều nhỏ Các Feature khớp với khía cạnh chung ảnh Nghĩa Feature tương ứng với khía cạnh hình ảnh chúng khớp lại với Convolutional (Tích chập): Xét bản, xem hình ảnh mới, thuật tốn CNN khơng nhận biết vị trí nào, Feature khớp với đâu? Chính vậy, Convolutional thử chúng với tất vị trí khác tạo thành lọc gọi Filter Quá trình thực thơng qua phần tốn nơron tích chập 3.2 Các lớp mạng nơron tích chập lOMoARcPSD|278 270 34 ❖ Convolutional Layer Đây xem lớp có vai trị quan trọng đại diện CNN thực phép tốn Khi nhắc đến lớp Convolutional Layer, cần làm rõ số khái niệm là: Filter Map, Stride, Padding, Feature Map - Filter Map: Nếu ANN kết nối với Pixel hình ảnh đầu vào CNN sử dụng Filter để áp vào vùng hình ảnh Những Filter Map xem ma trận chiều, bao gồm số số Parameter - Stride: Được hiểu dịch chuyển Filter Map theo Pixel dựa vào giá trị từ trái sang phải Stride đơn giản biểu thị dịch chuyển - Padding: Là giá trị thêm vào lớp Input - Feature Map: Đây kết hiển thị sau lần Filter Map quét qua Input Cứ lần quét vậy, bạn thấy xuất q trình tính tốn xảy ❖ Pooling Layer Khi đầu vào lớn, lớp Pooling Layer dịch chuyển vào lớp Convolutional Layer nhằm giảm Parameter Pooling Layer biết đến với hai loại phổ biến là: Max Pooling Average Pooling Tại Pooling Layer, sử dụng lớp Max Pooling số lượng Parameter giảm Vì vậy, CNN xuất nhiều lớp Filter Map, Filter Map cho Max Pooling khác ❖ Relu Layer Đây hàm kích hoạt Neural Network Chúng ta biết đến hàm kích hoạt với tên gọi khác Activation Function Nhiệm vụ hàm kích hoạt mơ lại Neuron có tỷ lệ truyền xung qua Axon Trong đó, hàm kích hoạt bao gồm hàm như: Sigmoid, Tanh, Relu, Leaky Relu, Maxout Hiện nay, hàm Relu sử dụng phổ biến thông dụng Relu sở hữu ưu điểm bật nên ưa chuộng sử dụng việc huấn luyện mạng Neuron ❖ Fully Connected Layer Fully Connected Layer thường sử dụng để đưa kết Bên cạnh đó, có liệu hình ảnh, Fully Connected Layer chuyển đổi chúng thành mục có phân chia chất lượng Tương tự kiểu chia chúng thành phiếu bầu đánh giá để chọn hình ảnh đạt chất lượng tốt Dù vậy, trình khơng coi q trình dân chủ nên sử dụng lOMoARcPSD|278 270 34 3.3 Cách chọn tham số cho CNN - Số convolution layer: nhiều convolution layer performance cải thiện Sau khoảng layer, tác động giảm cách đáng kể - Filter size: thường filter theo size 5×5 3×3 - Pooling size: thường 2×2 4×4 cho ảnh đầu vào lớn - Cách cuối thực nhiều lần việc train test để chọn param tốt CHƯƠNG IV: Mã lệnh chương trình 4.1 Khai báo thư viện sử dụng Trong đó: - - - 4.2 - import: Dùng để cài đặt thư viện as: Dùng để đặt tên viết tắt cho thư viện Tensorflow: Là thư viện phần mềm mã nguồn mở dành cho máy học nhiều loại hình tác vụ nhận thức hiểu ngơn ngữ Tensorflow chương trình hỗ trợ tính tốn cách tiếp cận mạnh mẽ phép tính tốn phức tạp, đơn giản hóa tốn học thơng qua đồ thị luồng liệu tổng hợp Numpy (Numeric Python): Là thư viện toán học phổ biến mạnh mẽ Python Cho phép làm việc hiệu với ma trận mảng, đặc biệt liệu ma trận mảng lớn với tốc độ xử lý nhanh nhiều lần sử dụng “core Python” đơn Keras: Là open source cho Neural Network viết ngơn ngữ Python Keras sử dụng chung với thư viện tiếng Tensorflow, CNTK, Theano Matplotli.pylot: Là thư viện sử dụng để vẽ đồ thị Python phần mở rộng toán học số Numpy, thư viện cực phổ biến Python Pyplot: Là module Matplotlib cung cấp hàm đơn giản để thêm thành phần plot lines, images, text,… vào axes figure Kết nối với Google Drive đọc lưu liệu Chạy code: lOMoARcPSD|278 270 34 - Kết sau, chọn Kết nối với Google Drive phép Google colab truy cập vào Drive: - Chọn tài khoản gmail bạn muốn đăng nhập: - Sau chọn gmail, tiếp tục Chọn cho phép, kết xuất thông báo: Mounted at /content/drive/ 4.3 Khai báo đường dẫn thư mục chứa liệu ảnh Khai báo đường dẫn đến thư mục “Train” “ Validation” để huấn luyện kiểm định mơ hình 4.4 Gán nhãn liệu Phân loại ảnh toán học có giám sát, liệu huấn luyện kiểm định phải gán nhãn Ảnh gán nhãn dựa theo tên thư mục chứa nó, ta có tên thứ tự nhãn tương ứng với tên thứ tự thư mục chứa ảnh huấn luyện kiểm định 4.5 Tiền xử lý liệu ảnh với ImageDataGenerator lOMoARcPSD|278 270 34 Tiền xử lý liệu bước đầu xử lý liệu ảnh đưa dạng số ImageDataGenerator lớp học Keras để tổng hợp liệu hình ảnh cho học sâu Nó cho phép dễ dàng truy cập vào hệ thống tệp cục nhiều phương pháp khác để tải liệu từ cấu trúc khác Nó có số khả xử lý trước tăng cường liệu mạnh mẽ #rescale: Một nhiều thông số tăng cường, điều chỉnh giá trị pixel hình ảnh Cài đặt rescale=1/255 điều chỉnh giá trị pixel nhóm em khoảng từ [0;1] Một file ảnh JPG lưu máy tính dạng ma trận liệu số có giá trị khoảng [0, 255] Để biểu diễn ảnh 256x256 pixel máy tính ta cần ma trận có kích thước 256x256 chiều, phần tử ma trận có giá trị nằm khoảng từ đến 255 Tùy thuộc vào ảnh màu hay ảnh xám ma trận có số kênh tương ứng Ví dụ với ảnh 256x256 nhóm, có ma trận 256x256 để biểu diễn 4.6 Đọc liệu Train Validation #target_size: size ảnh input (đầu vào), ảnh resized (biến đổi) theo kích thước để từ máy tính đọc liệu ảnh Ở đây, kích thước biến đổi [100;100] Sau ảnh biến đổi kích thước ta tiến hành phân loại ảnh lớp tương ứng Với liệu ảnh phân thành lớp tương ứng với liệu ảnh gán nhãn lOMoARcPSD|278 270 34 Sau đọc liệu Train Validation, ta nhận kết 500 ảnh train 125 ảnh validation từ lớp khác 4.7 Xây dựng mơ hình Mơ hình gồm tầng: Input Image  CNN1  CNN2 CNN3 Fully connected layer  Output Kỹ thuật sử dụng cho toán Convolution nhân tương ứng giá trị ma trận đầu vào với ma trận kenel (bộ lọc) cộng tổng lại, đưa qua activation function (các hàm kích hoạt) cho kết số cụ thể, tập hợp số ma trận nữa, feature map (đầu ảnh) ❖ Tầng CNN1: - Conv2D: sử dụng tịch chập 2D đầu vào ma trận chiều - Conv2D(32(3,3)): convolution dùng để lấy feature từ ảnh với tham số: + F = 32: số filter (bộ lọc) convulution 32 Với filter (bộ lọc) khác đưa feature (đặc điểm) khác ảnh Do tầng CNN1 sử dụng 32 bộc lọc để học nhiều đặc trưng hình ảnh + k = 3: kích thước ma trận kenel (kenel_size) 3x3 Một số nguyên tuple / danh sách số nguyên, định chiều cao chiều rộng cửa sổ tích chập 2D Có thể số nguyên để định giá trị cho tất kích thước khơng gian lOMoARcPSD|278 270 34 + s = 1: bước trượt kenel quét Một số nguyên tuple / danh sách gồm số nguyên, xác định bước tích chập dọc theo chiều cao chiều rộng Có thể số nguyên để định giá trị cho tất kích thước khơng gian Việc định giá trị bước = khơng tương thích với việc định dilation_rate giá trị = - activation=’relu’: Hàm kích hoạt ReLU (rectified linear unit): relu(x) = max(0,x) Hàm kích hoạt ReLU đơn giản lọc giá trị nhỏ Tức ma trận kernel quét qua ma trận đầu vào, nhân tương ứng giá trị ma trận đầu vào với ma trận kernel cộng tổng lại, đưa kết qua hàm kích hoạt ReLu ta thu giá trị feature map Với ReLU chức linh hoạt, hàm trả nhận đầu vào âm nào, với giá trị dương x, trả giá trị trở lại Do đó, cung cấp đầu có phạm vi từ đến vơ - input_shape=(100,100,3): tầng CNN1 kết nối với đầu vào nên phải mô tả rõ thông tin đầu vào Các ảnh huấn luyện có kích thước ban đầu 100x100 pixel kênh, có hình dạng đầu vào (100,100,3) Vì hình dạng đầu vào hình dạng bạn cần xác định, Keras yêu cầu lớp Nhưng định nghĩa này, Keras bỏ qua kích thước đầu tiên, kích thước lơ Mơ hình bạn xử lý kích thước lơ nào, bạn xác định kích thước khác  Tầng CNN1: lọc (3x3) trượt ma trận đầu vào (100x100x1) output feature map (100x100x1) Vì 32 lọc cho output conv1 feature - maps có size (100x100x32) MaxPooling2D (2,2): Hoạt động tổng hợp tối đa cho liệu không gian 2D Làm giảm giá trị đầu vào dọc theo kích thước khơng gian (chiều cao chiều rộng) cách lấy giá trị lớn cửa sổ đầu vào (có kích thước xác định pool_size) cho kênh đầu vào Cửa sổ dịch chuyển strides dọc theo chiều + k = 2: kích thước Pooling window 2x2 + s = 2: với kích thước Pooling window 2x2, stride=2 để đảm bảo cửa sổ không trùng lOMoARcPSD|278 270 34 Qua lớp MaxPooling kích thước liệu giảm nửa Từ input conv1 feature maps (100x100x32), output pool1 feature maps (50x50x32) ❖ Tầng CNN2: - Conv2D (64, (3, 3): Các tham số cần làm rõ giống tầng CNN1: + F=64: số kernel (bộ lọc) convolution 64 + k=3: kích thước ma trận kernel (bộ lọc) 3x3 + s=1: khoảng cách kernel quét padding = “SAME”  Tầng CNN2: lọc (3x3) trượt pool1 feature maps (50x50x32) output feature map (50x50x1) Vì 64 lọc cho output conv2 - feature maps có size (50x50x64) MaxPooling2D (2,2): tương tự lớp CNN1  Qua lớp MaxPooling kích thước liệu giảm nửa Từ input conv2 feature maps (25x25x64), output pool2 feature maps (13x13x64) ❖ Tầng CNN3: - Conv2D (64, (5,5)): input lớp pool2 feature maps (50x50x64) Các tham số thay đổi so với lớp CNN1 CNN2 sau: + F=64: số kernel (bộ lọc) convolution 64 + k=5: kích thước ma trận kernel (bộ lọc) 5x5 +s=1: khoảng cách kernel quét padding = “SAME”  Mỗi lọc (5x5) trượt pool2 feature maps (50x50x64) output feature map (50x50x1) Vì 64 lọc cho output conv3 feature maps có size (50x50x64) - MaxPooling2D (2,2): tương tự lớp CNN1 Flatten: sử dụng để làm phẳng tất đầu vào thành chiều Ở tốn này, Flatten chuyển liệu CNN từ mảng chiều thành mảng chiều lOMoARcPSD|278 270 34 ❖ Lớp ẩn: Dense layer hay Fully-connected layer lớp cổ điển mạng nơron nhân tạo Mỗi nơron nhận đầu vào từ tất nơron lớp trước Tức là, tồn unit layer kết nối với tồn unit layer trước Dense 512 ❖ Lớp output: Sử dụng hàm softmax lớp cuối phân loại dựa mạng Nơron Softmax sử dụng để đa phân loại mô hình hồi quy logistic 4.8 Huấn luyện mơ hình 4.8.1 Thiết lập tham số để huấn luyện mơ hình - Hàm Compile: Thiết lập tham số để huấn luyện mơ hình - Optimizers: Thuật tốn tối ưu Về bản, thuật toán tối ưu sở để xây dựng mơ hình neural network với mục đích "học" features (hay pattern) liệu đầu vào, từ tìm cặp weights bias phù hợp để tối ưu hóa model  Thuật tốn tối ưu Optimizers đời với mục đích cải thiện weight bias, tránh tình trạng khơng khả thi lãng phí tài nguyên sử dụng để huấn luyện mơ hình - Thuật tốn tối ưu sử dụng – Adam Nhóm sử dụng thuật tốn tối ưu Adam – thuật toán tối ưu kết hợp thuật tốn Momentum với RMSprop Nếu giải thích theo tượng vật lí Adam cầu nặng có ma sát, dễ dàng vượt qua local minimum tới global minimum tới global minimum khơng nhiều thời gian dao động qua lại quanh đích có ma sát nên dễ dừng lại Nhờ việc sử dụng optimizer “Adam”, mơ hình “học” features nhanh từ mơ hình tối ưu hóa, tránh việc lãng phí tài ngun - Learning rate (lr): lOMoARcPSD|278 270 34 Tốc độ học siêu tham số sử dụng việc huấn luyện mạng nơ ron Giá trị số dương, thường nằm khoảng Tốc độ học kiểm sốt tốc độ mơ hình thay đổi trọng số để phù hợp với toán Tốc độ học lớn giúp mạng nơron huấn luyện nhanh làm giảm độ xác Tỷ lệ học tập số nhỏ, thường nằm khoảng từ 0,01 đến 0,0001, giá trị thực tế khác giá trị nhận cho gradient, trở nên nhỏ nhân với tốc độ học tập Tốc độ học tập siêu tham số mà phải kiểm tra điều chỉnh với mơ hình trước biết xác giá trị mà muốn đặt cho nó, đề cập trước đó, hướng dẫn điển hình đặt khoảng 0,01 đến 0,0001 Khi đặt tỷ lệ học tập cao khoảng trên, xảy số nguy Quá cáo thuật tốn khơng hội tụ bước nhảy q lớn, khiến quẩn quanh đích Tham số learning_rate tùy chọn Nếu không đặt cách rõ ràng, tốc độ học tập mặc định mà Keras định cho trình tối ưu hóa cụ thể đặt Ở thấy đặt thành 0,001 Bây giờ, in giá trị tốc độ học tập mình, thấy thay đổi từ 0,0001 thành 0,01 - Loss function: Hàm Loss thành phần quan trọng q trình huấn luyện mơ hình học máy Huấn luyện mạng nơ ron nhân tạo giống với cách người học tập Chúng ta đưa mơ hình liệu, đưa dự đốn phản hồi xem dự đốn có xác hay khơng Dựa phản hồi, mơ hình sửa lỗi sai trước Q trình lặp lặp lại mơ hình đạt đến độ xác định Việc mơ hình đốn sai vơ quan trọng để học tri thức từ liệu Và nguyên nhân hàm loss thiết kế Hàm loss mơ hình đốn sai so với giá trị thực tế Hàm loss: “Categorical_crossentropy” dùng classifier nhiều class (để dự đoán nhiều lớp) - Metrics: Đánh giá mơ hình Trong q trình xây dựng mơ hình machine learning, phần khơng thể thiếu để biết chất lượng mơ đánh giá mơ hình lOMoARcPSD|278 270 34 Hiệu mơ hình thường đánh giá dựa tập liệu kiểm thử (test data) Cụ thể, giả sử đầu mơ hình đầu vào tập kiểm thử mô tả vector y_pred - vector dự đoán đầu với phần tử class dự đoán điểm liệu tập kiểm thử Ta cần so sánh vector dự đoán y_pred với vector class thật liệu, mơ tả vector y_true Có nhiều phương pháp để đánh giá độ xác mơ hình Trong tốn nhóm sử dụng phương pháp accuracy Acuracy of model phương pháp đơn giản sử dụng nhiều để tính tỷ lệ số liệu tập dự đoán tổng số điểm tập liệu kiểm thử 4.8.2 Huấn luyện mơ hình - Epoch: Trong học máy, tồn q trình truyền liệu đào tạo thơng qua thuật toán gọi epoch Epoch siêu tham số quan trọng cho thuật tốn Nó định số epoch số lần vượt qua toàn tập liệu đào tạo thơng qua q trình đào tạo học tập thuật tốn Các thơng số mơ hình nội tập liệu cập nhật theo epoch Kết là, thuật toán học gradient đặt tên theo batch epoch Kích thước batch epoch thường ln giá trị số nguyên Trường hợp số epoch nhỏ dễ dẫn đến underfitting (như hình bên dưới) model khơng “học” nhiều từ GD để cập nhật biến nội Đối với trường hợp giải pháp chia nhỏ training dataset thành batches cho epoch hội model học từ GD nhiều tốc độ tính tốn tối ưu lOMoARcPSD|278 270 34 Khi số lần lặp tăng dần, trạng thái mơ hình chuyển dần từ underfitting sang optimal sau overfitting (thơng thường vậy, trừ mơ hình huấn luyện sử dụng đơn giản, trọng số chúng khơng thể overfitting nổi) Chọn số epoch nào? Thường cần số lượng lớn epoch để training cho ANN (10, 50, 80, 100, 500,…) nhiên tùy thuộc vào tốn tài ngun máy tính Ở tốn này, nhóm 10 chúng em chọn epoch 80 - Hàm Fit (): + Model.fit (_generator) yêu cầu trình tạo liệu đầu vào để chạy mơ hình Bao gồm: Train generator Validation generator + Steps_per_epoch: Tổng số bước (lơ mẫu) để tạo từ trình tạo trước khai báo Epoch kết thúc bắt đầu Epoch Nó thường phải số lượng mẫu liệu bạn chia cho kích thước lơ Hay nói cách khác, sử dụng để tạo toàn tập liệu lần cách gọi steps_per_epoch lần tạo  Kết quả: Sau 80 epoch, thấy số epoch tăng lên thì: - Train Acc Val Acc tăng, epoch 80/80 cho kết train_acc = val_acc = 0.8906, tức tỷ lệ xác mơ hình tập Train Validation cải thiện mức cao - Train Loss Val Loss giảm, epoch 80/80 cho kết train_loss ≈ val_loss = 0.3940 tức mơ hình dự đốn sát với giá trị thực tập Train Validation lOMoARcPSD|278 270 34 => Mơ hình cho tỷ lệ xác tập Validation cao (≈ 89%) dự đoán sát với giá trị thực so với mơ hình ban đầu, chứng tỏ mơ hình tối ưu cho kết khả quan thử nghiệm tập Test Sử dụng mơ hình để test ảnh 4.9 Target_size: size ảnh input đầu vào, ảnh resized theo kích thước - (100,100) Batch_size: Số lượng ảnh yielded từ generator cho lô batch - Chạy thử nghiệm mơ hình với ảnh nằm ngồi liệu: Nhấn chạy đoạn mã code trên, sau chạy thành công xuất yêu cầu chọn ảnh, kích chọn nút “ Chọn tệp”  Open  Chọn ảnh nhóm ảnh cần phân loại  Chờ kết 4.10 Chạy thử mơ hình để đánh giá tính xác mơ hình Nhóm thực chạy thử lớp, lớp 10 ảnh, kết sau: - Ô Tô: Nhận diện 10/10, tương ứng tỷ lệ 100 % lOMoARcPSD|278 270 34 - Trực Thăng: Nhận diện 8/10 ảnh, tương ứng tỷ lệ 80% - Xe Đạp: Nhận diện 10/10 ảnh, tương ứng tỷ lệ 100% lOMoARcPSD|278 270 34 lOMoARcPSD|278 270 34 - Moto: Nhận diện 9/10 ảnh, tương ứng tỷ lệ 90% - Xe Tải: Nhận diện 10/10 ảnh, tương ứng tỷ lệ 100% => Tỷ lệ xác dự đốn 50 ảnh 94% lOMoARcPSD|278 270 34 KẾT LUẬN Qua nghiên cứu, nhóm nhận thấy rằng, sau nhiều lần thay đổi thơng số chạy lại mơ hình nhiều lần, tính xác mơ hình cải thiện đáng kể, độ xác cao (94%) Mặc dù vậy, kết chưa xác hồn tồn làm nhóm cịn nhiều thiếu sót, khiếm khuyết, chúng em mong nhận góp ý lời dạy để làm hoàn thiện Chúng em xin chân thành cảm ơn! lOMoARcPSD|278 270 34 TÀI LIỆU THAM KHẢO [1] Giảng viên Slide Chương 6: Hướng dẫn thực hành Nhận diện ảnh CNN Học viện Ngân hàng [2] Pham Van Chung [12-2020] [Deep Learning] Tìm hiểu mạng tích chập (CNN) https://viblo.asia/p/deep-learning-tim-hieu-ve-mang-tich-chap-cnn-maGK73bOKj2 [3] Lê Trọng Đại Convolutional Neural Network gì? Những thơng tin cấu trúc mạng CNN gì? https://letrongdai.vn/convolutional-neural-network-la-gi/ [4] Minh Đạo [03/07/2021] Module OS Python https://hocz.net/lap-trinhpython/module-os-trong-python_219414.html [5] Huỳnh Thanh Việt.[8-2020] Tìm hiểu mạng nơron tích chập (convolutional neural networks) https://thanhvie.com/tim-hieu-ve-mang-no-ron-tich-chap-convolutionalneural-networks/ [6] HueDiemHue [10-2020] Thị giác máy tính gì? Các vấn đề liên quan tới thị giác máy tính https://viblo.asia/p/thi-giac-may-tinh-la-gi-cac-van-de-lien-quan-toi-thi-giac-maytinh-Az45b4M6ZxY [7] Nguyễn Trung Trực [2020] Optimizer- Hiểu sâu thuật toán tối ưu (GD, SGD, Aadam, ), Viblo https://viblo.asia/p/optimizer-hieu-sau-ve-cac-thuat-toan-toi-uugdsgdadamQbq5QQ9E5D8 [8] Phạm Duy Tùng [2018] Phân biệt Epoch - Batch size Iterations https://www.phamduytung.com/blog/2018-10-02-understanding-epoch-batchsize-iterations/ [9] Nttuan8 [6-4-2019] Bài 7: Giới thiệu keras tốn phân loại ảnh https://nttuan8.com/bai-7-gioi-thieu-keras-va-bai-toan-phan-loai-anh/ [10] [21-8-2020] Keras ? Giới thiệu tổng quan keras https://trituenhantao.github.io/2020/08/21/keras-la-gi-gioi-thieu-ve-keras/ [11] [13-10-2019] Learning rate https://trituenhantao.io/tu-dien-thuat-ngu/learningrate/ [12].Cách đặt batch_size, step_per epoch bước xác thực, QA Stack, https://qastack.vn/datascience/29719/how-to-set-batch-size-steps-per-epoch-and-validationstep [13] [9-4-2020] Hàm loss pytorch https://indainam.com/wiki/ham-loss-trongpytorch/ 19

Ngày đăng: 13/07/2023, 08:00

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w