CHƯƠNG 1 TỒNG QUAN VỀ LĨNH vực NGHIÊN cứu 1.1 Khái quát vấn đề Trong thời đại số, danh thiếp vẫn là công cụ cơ bản để chia sẻ thông tin liên lạc và xây dựng mối quan hệ chuyên nghiệp. Tuy nhiên, quá trình truyền thông dữ liệu từ danh thiếp sang định dạng điện tử bằng cách thủ công là công việc đòi hỏi nhiều nhân lực, dễ mắc lỗi và không đáp úng đủ nhanh chóng với yêu cầu về hiệu suất trong các hoạt động kinh doanh hiện đại. Để giải quyết thách thức này, việc tích hợp các phương pháp học sâu mang lại một giải pháp hứa hẹn thông qua việc tự động hóa quá trình trích xuất thông tin từ danh thiếp.2 Tập dữ liệu đầu vào Tập dữ liệu đầu vào của luận văn: • Tập ảnh được thu thập đạt 1330 ảnh danh thiếp các loại. Một số hình ảnh ví dụ từ tập dữ liệu: WMt ĂN SÁNG-ĐẶC SÀN LÂU CUA SÔNG CẤC MÓN ĐỐNG OUÊ 9 Táng 1, tòa nhà C5, Nguyễn Cd Thạch K NamTỪLièm, Hà Nội l \\\.1 Ảnh danh thiếp 1 4 Hình 1.2 Ảnh danh thiếp 2 1.3 Phương hướng giải quyết Phương pháp nghiên cứu dựa trên tài liệu: • Nghiên cứu, tham khảo từ các bài báo khoa học và khai thác tài liệu khác trên Internet về các nội dung nghiên cứu liên quan.
• Nghiên cứu về các mô hình phát hiện đối tượng, các phương pháp trích xuất văn bản. • Nghiên cứu tài liệu về cấu trúc dữ liệu và cách thức thu thập dữ liệu. • Nghiên cứu tài liệu về ngôn ngữ lập trình Python. Phương pháp nghiên cứu dựa trên thực nghiệm: • Lập trình có kiểm chứng dựa trên các tập dữ liệu thu được.
• Sử dụng kết quả thu được từ V iệc lập trình mô phỏng, từ đó rút ra kết luận so sánh các phương pháp huấn luyện cho bài toán. • Xây dụng úng dụng tự động hóa trích xuất thông tin danh thếp. Thu thập dữ liệu: Dữ liệu thu thập thủ công từ các hình ảnh danh thiếp của các công ty, từ các hội chợ triển lãm, tờ rơi danh thiếp quảng cáo. 5 Xử lý và Phân tích dữ liệu: Bước 1: Từ tập dữ liệu thu được, tôi phằn loại danh thiếp đúng yêu cầu.
Ảnh phải rõ, được chụp chính diện. Bước 2: Lập trình xây dựng các mô hình chuẩn bị cho việc huấn luyện. Bước 3: Ảp các mô hình đã xây dựng vào tập dữ liệu và thực hiện việc huấn luyện. Bước 4: Đánh giá kết quả đạt được và thực hiện so sánh.
6 CHƯƠNG 2 Cơ SỞ LÝ THUYẾT 2.1 Mạng thần kinh tích chập 2.1 Mạng thẩn kinh Mạng thần kinh là một hệ thống tính toán lấy cảm hứng từ sự hoạt động của các thần kinh trong hệ thần kinh. Mạng thần kinh là một loại trí tuệ nhân tạo cố gắng mô phỏng cách mà não con người hoạt động thay vì sử dụng mô hình số, trong đó tất cả các phép tính điều khiển bằng các số 0 và 1, một mạng thần kinh hoạt động bằng cách tạo ra kết nối giữa các yếu tố xử lý với cấu trúc và trọng số của các kết nối quyết định kết quả đầu ra. [7] Mạng thần kinh thường rất hiệu quả trong việc dự đoán các sự kiện khi mạng có một cơ sở dữ liệu lớn về các ví dụ trước đó để tham chiếu. Nói một cách chính xác, mạng thần kinh đề cập đến một máy tính không phải là số, nhưng mạng thần kinh có thể được mô phỏng trên máy tính số.
Mạng thần kinh là một tập hợp các thuật toán, chúng giải mã dữ liệu giác quan thông qua một loại cảm nhận máy móc, đánh nhãn hoặc phân nhóm đầu vào thô. Những mô hình mà chúng nhận biết là số, được chứa trong các vector, trong đó tất cả dữ liệu thế giới thực, chẳng hạn như hình ảnh, âm thanh, văn bản hoặc dãy thời gian, phải được chuyển đổi. [8] Lấy cảm hứng từ não, một mạng thần kinh nhân tạo là một tập hợp các đơn vị kết nối, còn được gọi là thần kinh. Kết nối giữa các thần kinh có thể truyền tín hiệu giữa chúng.
Mỗi kết nối mang một giá trị số thực quyết định trọng số hay độ mạnh của tín hiệu. 7 Hidden layer 1 Hidden layer 2 Hình 2.1 Mạng thần kinh [9] Input layer: là lớp chứa các dữ liệu đầu vào. Hidden layer: là lớp ẩn, nhiệm vụ của nó là xử lý dữ liệu đầu vào và xuất ra dữ liệu mới, từ đó làm dữ liệu đầu ra cuối cùng (hoặc làm dữ liệu đầu vào cho lớp ần khác). Trong mạng thần kinh có thể chứa nhiều hoặc không chứa lớp ẫn.
Output layer: là lớp chứa các dữ liệu đầu ra. Mỗi hình tròn trong hình 2.1 là một node, mỗi node trong hidden layer và output layer thực hiện các nhiệm vụ sau: • Liên kết với tất cả các node ở layer trước đó V ới các hệ số w riêng. • Mỗi node có 1 hệ số bias b riêng. • Tính tổng Linear tại mỗi node bằng công thức: Tổng = ^(Wị + o + ồ (2-1) 8 • Sau đó, áp dụng hàm activation function (tùy vào truờng hợp sẽ có hàm kích hoạt khác nhau) để tạo ra đầu ra của node.2 Mạng thần kinh tích chập Mạng thần kinh tích chập (Convolutional Neural Networks - ConvNets hay CNNs) tương tụ nhu mạng thần kinh truyền thẳng (feedforward neural networks), trong đó các thần kinh có trọng số và độ lệch có thể học được, ứng dụng chủ yếu của chúng nằm trong xử lý tín hiệu và ảnh, thay thế cho OpenCV trong lĩnh vực thị giác máy tính.
Mạng thần kinh tích chập là một tập họp các lớp tí ch chập chàng lên nhau và sử dụng các hàm kích hoạt phi tuyến như ReLU và tanh đễ kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tuọng hon cho các lớp tiếp theo. Mỗi một lớp được sử dụng các bộ lọc khác nhau, thông thường có hàng trăm hàng nghìn bộ lọc như vậy và kết họp kết quả của chúng lậ. Kiến trúc mô hình mạng thần kinh tích chập như sau: Layer 1 Laye r 2 Classification Input Convolutional Pooling Convolutional Pooling Flatten FC Output Hlnh 2.2 Kiến trúc mạng CNN [10] Tầng tích chập Convolution: Tầng tích chập sử dụng các bộ lọc để thực hiện phép tích chập khi đưa chúng đi qua đầu vào I theo các chiều của nó.
Các siêu tham số của các bộ lọc này bao gồm kích thước bộ lọc F và độ trượt (stride) s. Kết quả đầu ra o dược gọi là feature map hay activation map. Dùng để trích xuất đặc trung cửa ảnh. 9 Tầng Pooling: thường được dùng sau tầng tích chập, giúp làm giảm số lượng tham số mà không làm thay đổi kiến trúc mạng và tăng tốc độ tính toán.
• Max pooling: bảo toàn các đặc trưng được phát hiện (được sử dụng thường xuyên). • Average pooling: giảm kích thước các feature map. Tầng Flatten: giúp chuyển đổi các đặc trưng ảnh từ tầng tích chập thành vector 1 chiều (phẳng) để đưa vào tầng Fully Connected để thực hiện phân loại. Tang Fully Connected: sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích trước đó.
Tầng này sẽ đưa ra xác suất của một đối tượng trong ảnh.2 Nhận diện đối tượng Nhận diện đối tượng (Object Detection) là một nhiệm vụ trong thị giác máy tính, trong đó mục tiêu là phát hiện và xác định vị trí của các đối tượng quan trọng trong một ảnh hoặc video. Nhiệm vụ này bao gồm việc xác định vị trí và ranh giới của các đối tượng trong ảnh, và phân loại các đối tượng vào các danh mục khác nhau. Nó tạo thành một phần quan trọng của việc nhận diện hình ảnh, cùng với phân loại và truy xuất hình ảnh. Phân loại thành hai loại chính: • Phưong pháp một giai đoạn (One-stage methods): ưu tiên tốc độ dự đoán, với một số mô hình như YOLO, SSD và RestinaNet.
• Phưong pháp hai giai đoạn (Two-stage methods): ưu tiên độ chính xác trong việc phát hiện đối tượng, với một số mô hình phổ biến như Fast R-CNN (Region-based Convolutional Neural Networks), Faster R-CNN.3 Giói thiệu một số lớp mô hình R-CNN 2.1 R-CNN R-CNN [11] được giới thiệu lần đầu vào năm 2014 bởi Ross Girshick và các cộng sự tại ƯC Berkeley, một trong những trung tâm nghiên cứu AI hàng đầu thế giói. 10 R-CNN là một trong những ứng dụng tiễn phong của mạng thần kinh tích chập trong việc định vị, phát hiện, và phân đoạn đối tượng. Phương pháp này đã đạt được kết quả ấn tưọng trên bộ dữ liệư VOC-2012 và bộ dữ liệu phát hiện đối tưọng ILSVRC- 2013 ỢmagebTet Large Scale Visual Recognition Challenge 2013). Kiến trúc R-CNN gồm ba thành phần là: * Vùng đề xuất ảnh (Region proposal): tạo và trích xuất các vùng đề xuất chứa vật thễ được bao bọc bởi bounding box.
* Trích xuất đặc trưng (Feature Extractor): Trích xuất các đặc trưng giúp nhận diện hình ảnh từ các region proposal thông qua các mạng thần kinh tích chập sâu. * Phân loại (classifer): Sử dụng các đặc trưng trích xuất đễ phân loại hình ảnh trong vùng đề xuất vào các nhãn tưong úng. phân loại vè đúng nhân Hình 2.3 Kiến trúc R-CW 11 Một kỹ thuật được sử dụng để đề xuất các region proposal hoặc các bounding box chứa các đối tượng tiềm năng trong hình ảnh được gọi là “selective search” [12], các region proposal có thể được phát hiện bởi đa dạng những thuật toán khác nhau. Đây là một ứng dụng tưong đối đon giản và dễ hiểu của CNN đối với vấn đề định vị và phát hiện đối tượng.
Một nhược điểm của phưong pháp này là chậm, đòi hỏi phải vượt qua nhiều module độc lập trong đó có trích xuất đặc trưng từ một mạng CNN học sâu trên từng region proposal được tạo bởi thuật toán đề xuất vùng chứa ảnh.2 Fast R-CNN Dựa trên thành công của R-CNN, Ross Girshick đề xuất một mở rộng để giải quyết vấn đề của R-CNN trong một bài báo vào năm 2015 với tiêu đề rất ngắn gọn Fast R- CNN. Fast R-CNN [13] ra đời để khắc phục hạn chế của R-CNN. Điểm đột phá của Fast R- CNN là sử dụng một single model thay vì pipeline để phát hiện region và classification cùng lúc. Kiến trúc của mô hình trích xuất từ bức ảnh một tập hợp các region proposals làm đầu vào được truyền qua mạng CNN sâu.
Mạng CNN sâu (ví dụ VGG-19) được sử dụng để trích xuất đặc trưng. Phần cuối của mạng là là một layer tùy chỉnh hay còn được gọi là layer vùng quan tâm (Region of Interest Pooling - Rol Pooling) có tác dụng trích xuất các features cho một vùng ảnh input nhất định. Sau đó các features được kết bởi một lớp fully connected.