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

BÁO cáo môn học PROJECT 1 đề tài NHẬN DIỆN CHỨNG MINH THƯ NHÂN dân

12 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

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 525,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Viện Công Nghệ Thông Tin và Truyền Thông BÁO CÁO MÔN HỌC PROJECT 1 ĐỀ TÀI: NHẬN DIỆN CHỨNG MINH THƯ NHÂN DÂN GVHD: Nguyễn Bình Minh Mã Lớp: 699556 Họ và t

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Viện Công Nghệ Thông Tin và Truyền Thông

BÁO CÁO MÔN HỌC PROJECT 1

ĐỀ TÀI: NHẬN DIỆN CHỨNG MINH THƯ NHÂN DÂN

GVHD: Nguyễn Bình Minh

Mã Lớp: 699556

Họ và tên: Đỗ Hoàng Việt MSSV: 20183665

Trang 2

NỘI DUNG

Chương I: Nhiệm vụ môn học, giới thiệu bài toán

Chương II: Công cụ sử dụng

I Ngôn ngữ lập trình Python

1 Đơn giản và phù hợp

2 Có nhiều Frameworks và thư viện hỗ trợ

3 Cộng đồng hỗ trợ lớn

II Pytorch

1 Khái niệm

2 Ưu điểm

3 Nhược điểm

CHƯƠNG III: Cơ sở lý thuyết

1 Cropper

2 Single Shot Detection

3 VGG16

CHƯƠNG IV: Kết quả và đánh giá

Trang 3

CHƯƠNG I Nhiệm vụ môn học, giới thiệu bài toán

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một nghành khoa học mới mẻ so với nhiều nghành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, 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ên dụng riêng cho nó Xử lý ảnh được ứng dụng rộng rãi trong nhiễu lĩnh vực khoa học và công nghệ, chẳng hạn như thị giác máy tính, rô bốt, tìm kiếm tài liệu ảnh, hỗ trợ chẩn đoán hình ảnh y học, giải trí, …

Nhiệm vụ của em trong môn project 1 này là nhận diện và trích xuất thông tin từ

ảnh chụp chứng minh nhân dân một cách dễ dàng theo các trường như tên, ngày tháng năm sinh, quê quán, số CMT, giới tính, ngày cấp… giúp việc khai thác thông tin nhanh chóng, chính xác, tiết kiệm thời gian Ở đây phần việc em thực hiện gồm:

cropper chứng minh thư nhân dân từ 1 bức ảnh

Nhiệm vụ của cropper là từ input (image) sẽ xác định 4 góc của chứng minh nhân dân rồi sau đó sẽ cắt chứng minh nhân dân ra khỏi image Mục đích là làm cho việc xác định các trường thông tin ở phần Detector trở nên dễ dàng hơn.Ở đây, phương pháp em sử dụng là detection model SSD (Singel Shot Detection), với feature extractor VGG-16.

Trang 4

CHƯƠNG II: Công cụ sử dụng

I. Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao Python hỗ trợ các module và gói( packages), khuyến khích chương trình module hóa và tái sử dụng mã Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn mở miễn phí cho tất cả các nền

tảng chính và có thể được phân phối tự do.

Một số ưu điểm của python:

1 Đơn giản và phù hợp

- Python cung cấp mã ngắn gọn và dễ đọc: cú pháp đơn giản, rõ ràng sử dụng không nhiều từ khóa, ý nghĩa câu lệnh dễ hiểu, có thể suy đoán được ý nghĩa kể cả khi chưa biết gì về Python.

- Python vừa có thể lập trình theo hướng thủ tục, vừa có thể lập trình hướng đối tượng Hỗ trợ module và hỗ trợ gói.

- Python có tương thích cao: chương trình phần mềm viết bằng python có thể chạy được trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, MAC OS và Linux.

2 Có nhiều Frameworks và thư viện hỗ trợ

Nhắc đến xử lý ảnh là không thể không nhắc đến thư viện opencv với rất nhiều hàm hỗ trợ Và thật may mắn, opencv có hỗ trợ Python với những cú pháp

Trang 5

rất ngắn gọn và dễ hiểu mà vẫn chứa đầy đủ tính năng sẵn có Ngoài ra Python còn hỗ trợ một số thư viện có ích như sau:

 NumPy: một thư viện tính toán hiệu năng cao, đặc biệt là tính toán trên các ma trận 2D hay các tensor nhiều chiều

 Matplotlib: một thư viện hỗ trợ trực quan hóa dữ liệu mạnh mẽ

 Math: thư viện cung cấp đầy đủ các công thức toán học như hàm mũ, hàm logarit, …

3 Cộng đồng hỗ trợ lớn

Trong khảo sát dành cho nhà phát triển 2018 của Stack Overflow, Python nằm trong top 10 ngôn ngữ lập trình phổ biến nhất, điều đó có nghĩa là bạn có thể dễ dàng tìm kiếm được sự trợ giúp từ cộng đồng khi gặp vấn đề trong việc

Thực tế cộng đồng Python đang phát triển rất nhanh trên toàn cầu Có các diễn đàn Python và trao đổi tích cực kinh nghiệm lập trình

II Pytorch

1 Khái niệm

PyTorch là một framework được xây dựng dựa trên python cung cấp nền tảng tính toán khoa học phục vụ lĩnh vực Deep learning Pytorch tập trung vào 2 khả năng chính:

 Một sự thay thế cho bộ thư viện numpy để tận dụng sức mạnh tính toán của GPU

 Một platform Deep learning phục vụ trong nghiên cứu, mang lại sự linh hoạt và tốc độ

2 Ưu điểm:

 Mang lại khả năng debug dễ dàng hơn theo hướng interactively, rất nhiều nhà nghiên cứu và engineer đã dùng cả pytorch và tensorflow đều đánh giá cáo pytorch hơn trong vấn đề debug và visualize

 Hỗ trợ tốt dynamic graphs

 Được phát triển bởi đội ngũ Facebook

Trang 6

 Kết hợp cả các API cấp cao và cấp thấp.

3 Nhược điểm:

 Vẫn chưa được hoàn thiện trong việc deploy, áp dụng cho các hệ thống lớn, được như framework ra đời trước nó như tensorflow

 Ngoài document chính từ pytorch thì vẫn còn khá hạn chế các nguồn tài liệu bên ngoài như các tutorials hay các câu hỏi trên stackoverflow

Trang 7

CHƯƠNG III: Cơ sở lý thuyết

Cấu trúc của một bài toán nhận diện và trích xuất thông tin từ ảnh chụp chứng minh nhân dân gồm 3 components:

- Cropper

- Detector

- Reader

1 Cropper

Nhiệm vụ của cropper là từ input (image) sẽ xác định 4 góc của chứng minh nhân dân rồi sau đó sẽ cắt chứng minh nhân dân ra khỏi image Mục đích là làm cho việc xác định các trường thông tin ở phần Detector trở nên dễ dàng hơn.Ở đây, phương pháp em sử dụng là detection model SSD (Single Shot Detection), với feature extractor VGG-16

2 Single Shot Detection:

- Là 1 kiến trúc thuộc bài toán Object Detection

- Kiến trúc mô hình:

- SSD nhận đầu vào là 1 bức ảnh và các ground truth boxes ( là offsets và label của các bounding boxes) trong suốt quá trình huấn luyện

Trang 8

- SSD dựa trên một tiến trình lan truyền thuận của 1 kiến trúc chuẩn (VGG16 : pre-trained model) để tạo ra một khối feature map output 3 chiều ở giai đoạn sớm

- Sau đó, chúng ta sẽ thêm vào các lớp để tiến hành nhận diện vật thể như phần Extra Feature Layer

- Các layer của mô hình SSD:

+ Input layer: là bức ảnh có kích thước 300*300*3

+ Conv5_3 layer: sử dụng kiến trúc VGG16 cho ra output là conv4_3 layer là 1 feature map có kích thước 38*38*512

- Ở mỗi feature map, ta sẽ áp dụng 2 phép biến đổi:

Áp dụng một convolutional layer để thu được output layer tiếp theo đầu

ra thu được Conv6 có kích thước là 19*19*1024

Áp dụng một classifier để nhận diện vật thể trên feature map

Mỗi feature map cell sẽ được gắn với một tập các bounding box mặc định với số chiều và tỉ lệ khác nhau Các Priors này được lựa chọn bằng tay Phương pháp này cho phép SSD tạo được bounding box cho bất kì kiểu đầu vào nào mà không yêu cầu một phase pre-trained nào cho việc tạo ra priors

Với mỗi tập b bounding box mặc định cho mỗi feature map cell và c classes cho việc phan loại Với một feature map có kích thước f = m x n, SSD sẽ tính

ra f x b x (4+c) giá trị cho feature map này

- Quá trình áp dụng classifier lên feature map cũng tương tự với các layer Conv7, Conv8_2, Conv_9, Conv10_2, Conv11_2

- SSD cần dự đoán 8732 bounding box ở output nên phần hậu xử lí, chúng ta cần sử dụng thêm thuật toán Non-Maximum Maxpression để loại bỏ các bounding box dư thừa

- Loss function là sự kết hợp của 2 thành phần tương ứng với 2 chức năng của SSD:

Trang 9

 Confidence Loss: thành phần này tính toán tỉ lệ rơi vào class mà bounding box được tính toán Độ đo cross-entropy được sử dụng để đo thành phần này

 Location Loss: Thành phần này ước lượng sự sai lêch thực tế của bounding box so với tập dữ liệu mẫu L2-Norm được sử dụng ở đây

- Multibox Prior và IoU:

Trong MultiBox, một khái niệm được sử dụng là priors , là những bounding box được tính toán trước với kích thước cố định tuân theo phân phối gần với phân phối của bounding box mẫu Trong thực tế, những priors này được lựa chọn khi tỉ lệ Intersection/Union (IoU) lớn hơn ngưỡng 0.5 Giá trị IoU tại 0.5 vẫn chưa đủ tốt nhưng nó sẽ là một điểm bắt đầu tương đối ổn cho thuật cho giải thuật bounding box regression (chính là việc học tham số của mạng) - điểu này thực sự sẽ tiết kiệm thời gian và đem lại kết quả tốt hơn rất nhiều so với việc bắt đầu tại một vị trí ngẫu nhiên

Do đó MultiBox bắt đầu với priors như một prediction khởi tạo với mục đích hồi quy gần hơn với bounding box thực sự

Trang 10

3 VGG-16

Trang 11

- VGG16 là một model CNN do K Simonyan và A Zisserman đề xuất Mô hình này đạt độ chính xác là 92,7% trong ImageNet, là tập dữ liệu của hơn 14 triệu hình ảnh thuộc 1000 lớp Đây là một trong những mô hình nổi tiếng được nộp cho

ILSVRC-2014 Nó cải tiến hơn AlexNet bằng cách thay thế các kernel-sized filters lớn (11 và 5 trong lớp chập đầu tiên và thứ hai, tương ứng) bằng nhiều kernel-sized filters 3 × 3.

- Kiến trúc của VGG16:

Đầu vào cho lớp cov1 là ảnh màu có kích thước 224 x 224 x 3 Hình ảnh được chuyển qua một chồng các lớp convolutional, trong đó các bộ lọc được sử dụng với trường tiếp nhận rất nhỏ: 3 × 3 (là kích thước nhỏ nhất để nắm bắt khái niệm trái / phải, lên / xuống, trung tâm ) Trong một trong các cấu hình, nó cũng

sử dụng 1 × 1 convolution filters Có 5 lớp max pooling được sử dụng theo sau một số lớp conv Max pooling được thực hiện có kích thước 2 × 2 pixel, với stride 2

Ba lớp Fully-connected được dùng sau các lớp conv (có độ sâu khác nhau trong các kiến trúc khác nhau): hai lớp đầu tiên có 4096 kênh mỗi lớp, lớp thứ

ba thực hiện phân loại ILSVRC 1000 chiều và do đó chứa 1000 kênh (một cho

Trang 12

mỗi lớp học) Lớp cuối cùng là lớp soft-max.Các lớp conv và FC sử dụng thêm ReLU activation

CHƯƠNG IV: Kết quả và đánh giá

*Nhận xét: do số lượng data quá ít nên model chưa học được nhiều, do đó việc

detect ra 4 label chưa thực sự tốt

Ngày đăng: 20/07/2022, 01:06

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w