1 HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO Thực Tập Công Nghiệp Đề tài Nhận dạng và đọc giấy tờ và trích xuất thông tin giấy tờ tùy thân Sinh viên thực hiện Hồ Đắc Thắng Lớp Công Ngh.
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO Thực Tập Công Nghiệp
Đề tài Nhận dạng và đọc giấy tờ và trích xuất thông tin
Sinh viên thực hiện: Hồ Đắc Thắng Lớp: Công Nghệ Dữ Liệu 16-B
Mã sinh viên: 17150184
Trang 2Mục lục
LỜI CẢM ƠN 3
LỜI NÓI ĐẦU 4
I TÊN ĐỀ TÀI 5
II NƠI THỰC TẬP 5
III NỘI DUNG THỰC TẬP 5
1 Mục đích: 5
2 Các nội dung đã tham gia trong quá trình thực tập: 5
IV KẾT QUẢ ĐẠT ĐƯỢC 6
A.Nắm bắt các kiến thức cơ bản về học sâu và ứng dụng các mô hình học sâu vào giải quyết các bài toán thực tế 6
1 Nghiên cứu đề tài thu thập tài liệu 6
2 Nội dung tiến hành: 6
3 Kết quả: 9
4 Xây dựng chương tình 9
a Các chức năng dự kiến sẽ xây dựng: 9
b Các chức năng đã xây dựng : 9
c Các chức năng trong dự kiến nhưng chưa xây dựng được : 17
5 Những khó khắn trong quá trình thực tập 18
V Xác nhận kết quả thực tập và điểm của giáo viên phụ trách (của cơ sở thực tập), có thể viết thành văn bản riêng 18
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn tới anh Ngô Ngọc Thành, anh Lê Hữu Tôn, anh Nguyễn Minh Quỳnh, anh Nguyễn Bá Trung và tất cả các anh chị trong bộ phận sản xuất cũng như toàn thể các anh chị tại công ty cổ phần Beet Innovators đã góp phần cho
em trải nghiệm một môi trường làm việc chuyên nghiệp và với những dự án thực tế, đồng thời cũng hướng dẫn và tạo điều kiện cho em tiếp cận với những công nghệ mới
để em nâng cao trình độ của bản
Cuối cùng, em xin gửi lời cảm ơn tới tất cả thầy cô giáo khoa công nghệ thông tin đã tạo mọi điều kiện thuận lợi giúp em hoàn thành giai đoạn thực tập của mình
Trang 4LỜI NÓI ĐẦU
Xã hội càng phát triển nhu cầu con người ngày càng cao và đa dạng Theo sự phát triển xã hội thì việc ứng dụng AI vào đời sống thực tiễn để hỗ trợ con người làm việc ngày càng gia tăng Ưu điểm khi ứng dụng AI là thời gian
xử lí công việc nhanh chóng với độ chính xác cao Vì vậy đây đang là một thị trường đầy tiềm năng cho các lập trình viên
Bài báo cáo này là kết quả thực tập của tôi tại Công Ty cổ phần Beet Innovators về ứng dụng AI và sử dụng python để nhận dạng và đọc các loại giấy
tờ tùy thân Trong thời gian thực tập tôi được học củng cố kiến thức về Python , cách làm việc nhóm , có các sản phẩm ban đầu Em xin chân thành cảm ơn anh
Lê Hữu Tôn và anh Nguyễn Bá Trung -phụ trách hướng dẫn thực tập đã nhiệt tình hỗ trợ, cung cấp tài liệu và hướng dẫn cho bọn em trong đợt thực tập này Mặc dù đã cố gắng hoàn thành các nhiệm vụ được giao nhưng do kiến thức còn hạn chế nên còn nhiều thiếu sót Em mong nhận được những sự đóng
góp xây dựng của mọi người Em xin chân thành cảm ơn !
Trang 5I TÊN ĐỀ TÀI
Đề tài: Nhận dạng và đọc thông tin giấy tờ tùy thân
Mô tả: Nhận dạng và đọc thông tin các loại giấy tờ tùy thân như: Chứng minh
thư, bằng lái xe, đăng kí xe, …
II NƠI THỰC TẬP
Công ty thực tập: Công ty cổ phần Beet Innovators
Địa chỉ: số 11, ngõ 160/3, Đường Trần Bình - Phường Mai Dịch - Quận Cầu Giấy - Hà Nội
III NỘI DUNG THỰC TẬP
1 Mục đích:
- Tiếp xúc với môi trường làm viêc của 1 công ty công nghệ có môi trường làm việc chuyên nghiệp
- Rèn luyện khả năng làm việc, nghiên cứu, học tập, tự học và làm việc theo nhóm
- Quan sát, học hỏi, đúc kết kinh nghiệm từ các anh chị hướng dẫn và từ ngay nhóm của mình
- Hoàn thiện kỹ năng, trau dồi kiến thức bản thân
- Tiếp cận với ngôn ngữ lập trình cũng như framework và những công nghệ mới
- Xây dựng một sản phẩm có ý nghĩa giải quyết được nhu cầu đồng thời giúp ích cho xã hội
2 Các nội dung đã tham gia trong quá trình thực tập:
- Thuật toán ứng dụng
- Làm quen với Python và ứng dụng deep learning vào thực tế
- Các khái niệm cơ bản về deep learning
- Cách ứng dụng các mô hình học sâu vào những bài toán thực tế
- Triển khai các mô hình học sâu trên nền tảng x86 và ARM
Trang 6- Thảo luận và đưa ra những ý kiến của bản thân về những vấn đề liên quan đến hướng phát triển của sản phẩm cũng như nâng cao trải nghiệm người dùng
- Kỹ năng làm việc nhóm
- Kỹ năng giao tiếp trong công việc
- Biết thêm 1 số kỹ năng đến việc quản lý thành viên trong developer team
- Được tiếp xúc với môi trường server thực tế
IV KẾT QUẢ ĐẠT ĐƯỢC
A.Nắm bắt các kiến thức cơ bản về học sâu và ứng dụng các mô hình học sâu vào giải quyết bài toán thực tế
1 Nghiên cứu đề tài thu thập tài liệu :
Đề tài : Nhận dạng và đọc thông tin giấy tờ tùy thân
Tìm kiếm tài liệu: Các kiến thức cơ bản về Deeplearning và ứng dụng các model deeplearning vào công việc Ứng dụng các mô hình như yolo, unet, paddle,… để thực hiện train model và đánh giá kết quả
Nội dung: Học, làm quen với Python và các model deeplearning
Công cụ phát triển : Python
2 Nội dung tiến hành:
Object Detection - YOLOv4 )
- Tìm hiểu về Yolo
- Thu thập dữ liệu về giấy tờ tuỳ thân (CCCD, CMND, Đăng Ký Xe, Đăng Kiểm Xe, …)
- Gán nhãn dữ liệu cho từng ảnh
- Áp dụng những phương pháp Data Augmentation cho tập dữ liệu để gia tăng lượng dữ liệu đào tạo mô hình
2.2 Huấn luyện mô hình và kiểm thử, đánh giá độ chính xác của model Yolo
- Đào tạo mô hình trên server
Trang 7- Kiểm thử độ chính xác với tập dữ liệu mới để đánh giá chính xác được mô hình
Segmentation)
- Gán nhãn dữ liệu cho mô hình phân đoạn đối tượng
- Áp dụng những phương pháp Data Augmentation cho tập dữ liệu để gia tăng lượng dữ liệu đào tạo mô hình
- Huấn luyện mô hình phân đoạn đối tượng (Unet Segmentation)
- Đào tạo mô hình trên server
- Kiểm thử độ chính xác với tập dữ liệu mới để đánh giá chính xác được mô hình
- Thiết kế giải thuật trích xuất hình dạng đối tượng dựa trên ảnh nhị phân
- Sử dụng thuật toán HoughLine để tìm và phát hiện các đường thẳng
2.6 Gán nhãn và chuẩn bị dữ liệu huấn luyện phân lớp đối tượng
tượng
- Gán nhãn dữ liệu cho mô hình phân lớp đối tượng
- Áp dụng những phương pháp Data Augmentation cho tập dữ liệu để gia tăng lượng dữ liệu đào tạo mô hình
- Huấn luyện mô hình phân lớp đối tượng
- Đào tạo mô hình trên server
- Kiểm thử độ chính xác với tập dữ liệu mới để đánh giá chính xác được mô hình
- Gán nhãn dữ liệu cho cho từng đoạn văn bản
- Áp dụng những phương pháp Data Augmentation cho tập dữ liệu để gia tăng lượng dữ liệu đào tạo mô hình
Trang 8- Sử dụng pretrained-model của PaddleOCR để huấn luyện mô hình phát hiện văn bản
2.9 Huấn luyện mô hình và kiểm thử, đánh giá độ chính xác
- Đào tạo mô hình trên server
- Kiểm thử độ chính xác với tập dữ liệu mới để đánh giá chính xác được mô hình
2.10 Xử lý nối các hộp bao quanh vùng phát hiện chữ viết để thực hiện nhận dạng chữ viết
- Giải thuật được thiết kế dựa trên giải thuật tìm kiếm theo chiều sâu(DFS)
- Kết hợp những box thỏa mãn điều kiện đề ra sau khi nhận dạng được từng ô văn bản nhờ detect text thành các box lớn hơn phục vụ bài toán nhận dạng văn bản
2.11 Gán nhãn dữ liệu và huấn luyện mô hình cho bài toán nhận dạng chữ viết
- Gán nhãn dữ liệu cho từng đoạn văn bản
- Áp dụng những phương pháp Data Augmentation cho tập dữ liệu để gia tăng lượng dữ liệu đào tạo mô hình
- Sử dụng pretrained-model của PaddleOCR để huấn luyện mô hình nhận dạng văn bản(Text Recognition – PaddleOCR)
2.12 Huấn luyện mô hình và kiểm thử, đánh giá độ chính xác
- Đào tạo mô hình trên server
- Kiểm thử độ chính xác với tập dữ liệu mới để đánh giá chính xác được mô hình
2.13 Cài đặt môi trường và kiểm thử độ chính xác trên kiến trúc x86
- Chuẩn môi trường X86 chạy giả lập trên Linux
- Kiểm thử độ chính xác của mô hình
2.14 Ứng dụng Opencv để phát hiện khuôn mặt sử dụng C++
- Tìm hiểu về QT
Trang 9- Cài đặt môi trường và làm quen với QT
- Tìm hiểu về phát hiện khuôn mặt dùng opencv c++
2.15 Ứng dụng NCNN để phát hiện khuôn mặt
- Tìm hiểu về phát hiện khuôn mặt sử dụng NCNN
2.16 Kết hợp chạy đa luồng phát hiện khuôn mặt từ luồng livestream
- Tìm hiểu về Qthread
- Dùng QThread để tạo luồng phát hiện khuôn mặt real-time
3 Kết quả:
- Hoàn thiện sản phẩm với thời gian ngắn hơn so với thời gian tối đa
- Hòa thiện chức năng và độ chính xác của các mô hình học sâu > 98%
4 Xây dựng chương trình:
a Các chức năng dự kiến sẽ xây dựng
- Chức năng nhận diện và xác định vị trí của giấy tờ tùy thân
- Chức năng trích xuất hình dạng của đối tượng
- Chức năng phân loại giấy tờ tùy thân
- Chức năng phất hiện văn bản trên giấy tờ
- Chức năng xử lý nối các hộp bao quanh vùng phát hiện văn bản:
- Chức năng nhận dạng chữ viết
- Chức năng hậu xử lí nhận dạng chữ viết (đang phát triển)
- Chức năng xây dựng API cho phép ngươi (đang phát triển)
- Chức năng nhận dạng khuôn mặt
- Triển khai đa nền tảng (đang phát triển)
b Các chức năng đã xây dựng được
- Chức năng nhận diện và xác định vị trí của giấy tờ tùy thân:
Chức năng nhận diện và xác định vị trí của giấy tờ tùy thân đã và đang phát hiện được các loại giấy tờ tùy thân như : chứng minh thư, căn cước công dân, bằng lái xe, đăng kí xe, đăng kiểm xe(Sẽ mở rộng để có thể nhận diện và đọc
được nhiều loại giấy tờ tùy thân hơn như: hộ chiếu ,….)
Trang 10Phát hiện được chứng minh thư và đóng khung được đối tương
- Chức năng trích xuất hình dạng của đối tượng:
Trang 12Chuyển đổi từ ảnh 3 kênh màu(rgb) sang ảnh nhị phân sử dụng Unet Segmentation
Trang 13Từ ảnh nhị phân trích xuất ra đối tượng
- Chức năng phân loại giấy tờ tùy thân : Chức năng phân loại giấy tờ tùy
thân giúp phân loại mặt trước hay sau , xuôi hay ngược của các loại giấy tờ
Trang 14Nhận dạng ảnh thuộc lớp chứng minh thư nhân dân mặt trước xuôi
- Chức năng phất hiện văn bản trên giấy tờ: Chức năng phát hiện văn bản
giúp xác định các vùng chứa nội dung văn bản trên giấy tờ
Trang 15- Chức năng xử lý nối các hộp bao quanh vùng phát hiện văn bản:
Chức năng xử lý các hộp bao quanh vùng phát hiện văn bản giúp nối các từ
thuộc cùng 1 dòng và thuộc vùng có liên quan lại với nhau
Trang 16- Chức năng nhận dạng chữ viết: Chức năng nhận dạng chữ viết giúp chuyển
hình ảnh văn bản thành văn bản (text) để lấy thông tin của giấy tờ tùy thân
- Chức năng nhận dạng khuôn mặt: Phát hiện và xác định vị trí của khuôn
mặt real time(sử dụng C++ để ứng dụng nhúng vào các mạch độc lập)
Trang 17c Các chức năng trong dự kiến nhưng chưa xây dựng được
- Chức năng hậu xử lí nhận dạng chữ viết (đang phát triển): Chức năng hậu
xử lý chữ viết giúp chỉnh sửa những từ bị nhận dạng chữ viết nhận dạng sai sao cho hiệu suất chuyển từ ảnh thành văn bản đạt hiệu quả cao nhất chính xác nhất
- Chức năng xây dựng API cho phép ngươi (đang phát triển):
- Mở rông dự án cho nhiều loại giấy tờ tùy thân khác nhau như(đang phát triển): căn cước công dân, căn cước công dân gắn chip, hộ chiếu, đăng kí xe,
đăng kiểm xe,bằng lái xe,
- Triển khai đan nên tảng(đang phát triển) : chuyển đổi mô hình để phát
triển trên thiết bị di động hoặc nhúng vào các mạch độc lập mà không cần kết nối tới máy chủ
- Tối ưu các mô hình và thuật toán để tăng tốc độ xử lí của chương
trình(đang phát triển)
5 Những khó khan trong quá trình thực tập:
• Trong quá trình thực tập, thời gian đầu em gặp phải khó khăn về mặt
Trang 18• Ngoài kiến thức về mặt kiến thức, kỹ năng làm việc nhóm cũng là một
kỹ năng cần trau dồi để giao tiếp tốt với đồng nghiệp trong nhóm
• Những loại dữ liệu để đào tạo các mô hình học sâu không phải lúc nào cũng có sẵn và có đủ nên mất thời gian chuẩn bị và tìm kiếm
V Xác nhận kết quả thực tập và điểm của giáo viên phụ trách (của cơ
sở thực tập), có thể viết thành văn bản riêng
(Chú ý, điểm của GVHD có thang điểm 10 và được dùng để Bộ môn chuyên ngành tham khảo và cho điểm cuối cùng)
Giảng viên
(Ký và ghi rõ họ tên)
Chủ nhiệm Bộ môn
(Ký và ghi rõ họ tên)
Chủ nhiệm Khoa
(Ký và ghi rõ họ tên)