Em được sự giúp đỡ và hỗ trợ tận tình của các anh tạo ra kỷ niệm đáng nhớ trong quá trình thực tập của em.. Cuối cùng cho em xin gửi lời cảm ơn cho cán bộ hướng dẫn là anh Hồ Quốc An đã
Trang 1ĐẠI HỌC CẦN THƠ TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO KẾT QUẢ THỰC TẬP THỰC TẾ
ĐỀ TÀI:
“WEBSITE NHẬN DẠNG ĐỒ VẬT”
Cán bộ hướng dẫn
Anh: HỒ QUỐC AN
Sinh viên thực hiện: Trầm Thành Đạt – B1906647
Học phần: Thực Tập Thực Tế - KTPM
(CT474-Nhóm 03) Học kỳ Hè: 2022 - 2023
Trang 2Lời cảm ơn
Em xin gửi lời cảm ơn chân thành đến quý công ty và toàn thể nhân viên đã cho em cơ hội thực tập thực tế tại Công ty TNHH PASSAGE OF STUDY Kỳ thực tập đã trở thành một hành trình đáng nhớ và mang lại cho em nhiều kiến thức và kinh nghiệm thực tiễn.
Trong thời gian thực tập, em được cho cơ hội làm việc cùng với các anh trong công ty có kinh nghiệm trong từng lĩnh vực công nghệ thông tin Sự hướng dẫn và hỗ trợ nhiệt tình từ các anh giúp em phát triển kỹ năng và nhận thức được rõ hơn về qui trình phát triển phần mềm Cùng với một dự án nhỏ liên quan đến lĩnh vực thị giác máy tính (Computer vision)
đã mở rộng tầm nhìn của em và trang bị cho em những kỹ năng thực tế cần thiết phục vụ cho công việc sau này.
Em cũng xin cảm ơn đến tất cả các nhân viên trong công ty đã chia sẽ kiến thức và kinh nghiệm cá nhân cho em, cùng với đó là các trao đổi và những lời khuyên để giúp em nắm bắt được các khía cạnh quan trọng trong công việc và phát triển năng lực cá nhân Các anh trong công ty đã tạo cho các em môi trường làm việc thân thiện, đoàn kết Em được sự giúp
đỡ và hỗ trợ tận tình của các anh tạo ra kỷ niệm đáng nhớ trong quá trình thực tập của em Cuối cùng cho em xin gửi lời cảm ơn cho cán bộ hướng dẫn là anh Hồ Quốc An đã truyền đạt cho em cũng như các bạn trong nhóm các kiến thức về xử lý ảnh, cách sử dụng mô hình YOLO, cài đặt môi trường các thư viện hỗ trợ việc nhận dạng vật thể Đây là kiến thức mới giúp em có được những trải nghiệm thực tế về một lĩnh vực mới mẻ.
Em xin chân thành cảm ơn và hy vọng sẽ có cơ hội để được hợp tác làm việc với tất cả các anh trong tương lai.
Trân trọng !
Trầm Thành Đạt
Trang 3MỤC LỤC
CHƯƠNG 1: Tìm hiểu về tổ chức công ty 1
1 Tổ chức hành chính: 1
2 Tổ chức nhân sự: 1
CHƯƠNG 2: Hoạt động chuyên ngành và môi trường thực tập 2
1 Hoạt động chuyên ngành: 2
2 Môi trường thực tập: 2
CHƯƠNG 3: Mô tả công việc được phân công 3
1 Tìm hiểu môi trường và các thư viện liên quan: 3
1.1 Tìm hiểu về thị giác máy tính (Computer Vision): 3
1.2 Tìm hiểu về mô hình YOLOv4 (You Only Look Once): 4
1.3 Tìm hiểu về Flask và Python và các thư viện xử lý ảnh: 5
2 Xây dựng mô hình Website Client – Server (Tích hợp mô hình nhận dạng yolov4): 6
2.1 Mô hình YOLOv4 sử dụng TensorFlow: 6
2.2 Xây dựng Server (Tích hợp mô hình YOLOv4): 6
2.3 Xây dựng Client: 11
3 Cài đặt môi trường: 13
3.1 Cài đặt Pycharm và các thư viện hỗ trợ xử lý ảnh: 13
3.2 Cài đặt CUDA và cuDNN: 13
4 Phương pháp thực hiện: 13
CHƯƠNG 4: Kết quả thực tập 14
1 Kiến thức lý thuyết: 14
2 Kỹ năng thực hành: 14
3 Kinh nghiệm thực tiễn: 14
4 Công việc đóng góp: 14
4.1 Xây dựng mô hình Client – Server (Bằng Flask): 14
Trang 4PHIẾU ĐÁNH GIÁ BÁO CÁO KẾT QUẢ THỰC TẬP
HỌC KỲ 2 – 2022-2023 (Dùng cho giáo viên chấm báo cáo thực tập)
Họ và tên cán bộ chấm báo cáo: Võ Huỳnh Trâm
Họ tên sinh viên thực tập: Trầm Thành Đạt - Mã số SV: B1906647
tối đa Điểm chấm
I.1 Đúng format của khoa (Trang bìa, trang lời cảm ơn, trang đánh
giá thực tập của khoa, trang mục lục và các nội dung báo cáo) Sử
dụng đúng mã và font tiếng Việt (Unicode Times New Roman,
Size 13)
0.25
I.2 Trình bày mạch lạc, súc tích, không có lỗi chính tả 0.25
II.2 Số buổi thực tập tại cơ quan trong 1 tuần >=6; ít hơn 6 buổi
0.0 điểm
0.25
Cách tính điểm = (Điểm cộng của cán bộ hướng dẫn/100) x 8.0 8.0
- Có được sự hiểu biết tốt về cơ quan nơi thực tập
- Phương pháp thực hiện phù hợp với nội dung công việc được
giao
- Kết quả củng cố lý thuyết
- Kết quả rèn luyện kỹ năng thực hành
- Kinh nghiệm thực tiễn thu nhận được
- Kết quả công việc có đóng góp cho cơ quan nơi thực tập
0.5
Điểm trừ
Điểm còn lại
………… , ngày….tháng….năm 2023 GIÁO VIÊN CHẤM BÁO CÁO
(ký tên)
M-TT-04
Trang 5CHƯƠNG 1: TÌM HIỂU VỀ TỔ CHỨC CÔNG TY
1 TỔ CHỨC HÀNH CHÍNH:
2 TỔ CHỨC NHÂN SỰ:
Văn phòng CSE – Cần Thơ:
1 Ông: Lê Quyết Thắng – Chức vụ: Trưởng Văn phòng – Học hàm/học vị: Tiến Sĩ
2 Ông: Lê Tuấn Kiệt – Chức vụ: Trưởng nhóm – Học hàm/học vị: Cao học
3 Ông: Lê Hoàng Nhí – Chức vụ: Trưởng nhóm – Học hàm/học vị: Thạc Sĩ
4 Ông: Trần Bảo Toàn – Chức vụ: Trưởng nhóm – Học hàm/học vị: Cao học
5 Ông: Trương Tuấn Anh – Chức vụ: Trưởng nhóm – Học hàm/học vị: Kỹ sư
6 Ông: Huỳnh Thành Nhựt – Chức vụ: Chuyên viên/Developer – Học hàm/học vị:
Kỹ sư
7 Ông: Hồ Quốc An – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Cao học
8 Ông: Lê Minh Hiếu – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
9 Ông: Phạm Thừa Khang – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
10 Ông: Lê Hoàng Dũng – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
11 Ông: Phạm Văn Hưởng – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
12 Ông: Trương Hoàng Gia Bảo – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
13 Ông: Trần Phú Nhuận – Chức vụ: Chuyên viên/Developer – Học hàm/học vị: Kỹ sư
14 Bà: Trần Thị Thiên Kim – Chức vụ: Chuyên viên/Designer – Học hàm/học vị: Kỹ sư
15 Ông: Trần Minh Tiến – Chức vụ: Chuyên viên/Designer – Học hàm/học vị: Kỹ sư.
Trang 6CHƯƠNG 2: HOẠT ĐỘNG CHUYÊN NGÀNH VÀ MÔI TRƯỜNG
THỰC TẬP
1 HOẠT ĐỘNG CHUYÊN NGÀNH:
Trung tâm CSE – Cần Thơ hoạt động trong các lĩnh vực sau:
Nghiên cứu, phát triển, sản xuất, cung cấp các sản phẩm và dịch vụ phần mềm phục vụ nhiệm vụ đẩy mạnh ứng dụng công nghệ thông tin vào mọi hoạt động quản lý và đào tạo của Trường theo từng giai đoạn phát triển của nhà Trường tiến tới xây dựng thành công hệ thống Đại học Điện tử
Tư vấn các giải pháp xây dựng và ứng dụng Công nghệ thông tin
Phát triển ứng dụng mảng bán lẻ (POS, Quản lí sản phẩm, Nhà cung cấp, Coupon)
Cung cấp giải pháp eCommerce (thanh toán trực tuyến, thanh toán Mobile, SEO)
Xây dựng các hệ thống, phần mềm hỗ trợ công tác quản lý và đào tạo
Thiết kế, phát triển REST API(Phần mềm hướng dịch vụ SAAS)
Thiết kế phát triển ứng dụng Desktop, Web, Website
Xây dựng các ứng dụng, trò chơi trên Điện thoại di động
Cung cấp các giải pháp phần mềm ứng dụng GIS và dịch vụ GIS
Tư vấn triển khai hệ thống ERP cho doanh nghiệp
Tư vấn, tùy chỉnh và triển khai các ứng dụng mã nguồn mở
Thiết kế, phát triển các dự án về Phân tích Dữ liệu (Data Analytics), Học máy (Machine Learning), Xử lý Ngôn ngữ Tự nhiên (NLP), Xử lý Hình ảnh/Âm
thanh/Video, Dự đoán/Chẩn đoán,
2 MÔI TRƯỜNG THỰC TẬP:
1 Áp dụng kiến thức học được: Nhóm em có thể áp dụng những kiến thức từ lĩnh vực thị giác máy tính (Computer Vision) vào đề tài này Điều này giúp củng cố và mở rộng hiểu biết, kỹ năng và kinh nghiệm cho nhóm chúng em
2 Tiếp cận với công nghệ và công cụ thực tế: Môi trường thực tập cho phép nhóm chúng làm việc với các công nghệ, ngôn ngữ lập trình, công cụ và phần mềm thực tế được sử dụng trong ngành Điều này giúp nhóm làm quen với môi trường làm việc thực tế và nắm bắt được những yêu cầu và thách thức của lĩnh vực đó
3 Xây dựng mạng lưới chuyên nghiệp: Nhóm có cơ hội làm việc và giao tiếp với các anh là chuyên gia ở nhiều lĩnh vực trong môi trường thực tập Điều này giúp nhóm xây dựng và mở rộng quan hệ và có cơ hội tương tác với các người có kinh nghiệm trong ngành
4 Rèn kỹ năng mềm: Ngoài kiến thức chuyên môn, nhóm cũng có cơ hội rèn kỹ năng mềm như làm việc nhóm, giao tiếp, quản lý thời gian và giải quyết vấn đề trong môi trường thực tập Giúp nhóm tạo được tinh thần trách khi làm việc nhóm cùng với các anh trong công ty Điều này rất quan trọng để phát triển sự nghiệp và thành công trong lĩnh vực làm việc
2
Trang 7CHƯƠNG 3: MÔ TẢ CÔNG VIỆC ĐƯỢC PHÂN CÔNG
1 TÌM HIỂU MÔI TRƯỜNG VÀ CÁC THƯ VIỆN LIÊN QUAN:
1.1 Tìm hiểu về thị giác máy tính (Computer Vision):
Thị giác máy tính (Computer Vision) là một trong những lĩnh vực hot nhất của khoa học máy tính và nghiên cứu trí tuệ nhân tạo Dù chúng vẫn chưa thể cạnh tranh với sức mạnh thị giác của mắt người, đã có rất nhiều ứng dụng hữu ích được tạo ra khai thác tiềm năng của chúng
Khi bạn nhìn vào hình ảnh sau đây, bạn sẽ thấy người, vật thể và các tòa nhà Nó mang đến những ký ức về những trải nghiệm trong quá khứ, những tình huống tương tự bạn gặp phải Đám đông đang đối mặt cùng hướng và giơ điện thoại lên, điều này cho bạn biết rằng đây là một loại sự kiện Người đứng gần máy ảnh đang mặc áo thun gợi ý về sự kiện có thể xảy ra Khi bạn nhìn vào các chi tiết nhỏ khác, bạn có thể suy ra nhiều thông tin hơn từ hình ảnh Nhưng đối với máy tính, hình ảnh này giống như tất cả các hình ảnh khác, đó là một mảng các pixel, các giá trị số đại diện cho các sắc độ của màu đỏ, xanh lá cây và xanh dương Một trong những thách thức mà các nhà khoa học máy tính phải vật lộn từ những năm 1950s là tạo ra những cỗ máy có thể hiểu được hình ảnh và video như con người Lĩnh vực thị giác máy tính từ đó đã trở thành một trong những lĩnh vực nghiên cứu hot nhất về khoa học máy tính và trí tuệ nhân tạo
Nhiều thập kỷ sau, chúng ta đã đạt được tiến bộ lớn trong việc tạo ra các phần mềm có thể hiểu và mô tả nội dung của dữ liệu một cách trực quan Nhưng chúng ta cũng đã nhận ra rằng cần phải đi xa đến mức nào trước khi có thể hiểu và tái tạo một trong những chức năng cơ bản của bộ não con người
Trang 81.2 Tìm hiểu về mô hình YOLOv4 (You Only Look Once):
YOLOv4 là một mô hình nhận dạng đối tượng và phát hiện đối tượng trong ảnh và video
Nó là phiên bản tiếp theo của mô hình YOLOv3 và được phát triển bởi Alexey Bochkovskiy, Chien-Yao Wang và Hong-Yuan Mark Liao Mô hình YOLOv4 kết hợp các cải tiến từ các phiên bản trước và đạt được hiệu suất cao trong việc phát hiện đối tượng chính xác và nhanh chóng Dưới đây là một số đặc điểm chính của YOLOv4:
1 Kiến trúc: YOLOv4 sử dụng một kiến trúc mạng neural convolutional được gọi là CSPDarknet53 Kiến trúc này cải tiến trên Darknet-53 trong YOLOv3 bằng cách sử dụng các khối kết nối thông qua kiến trúc Cross Stage Partial (CSP), giúp tăng cường khả năng học và tăng tốc độ xử lý
2 Điểm nổi bật (Backbone): Mô hình sử dụng CSPDarknet53 làm điểm nổi bật để trích xuất đặc trưng từ ảnh đầu vào
3 Đặc trưng lớp: YOLOv4 sử dụng các lớp đặc trưng để trích xuất thông tin từ các tầng trung gian trong kiến trúc mạng Điều này giúp mô hình phát hiện các đối tượng ở nhiều tỷ
lệ và kích thước khác nhau
4 Cải tiến hộp giới hạn (Bounding Box): Mô hình YOLOv4 sử dụng một thuật toán cải tiến
để tạo ra các hộp giới hạn chính xác hơn cho các đối tượng Nó sử dụng các phương pháp như IoU (Intersection over Union) và kỹ thuật Non-Maximum Suppression (NMS) để lọc
và giảm thiểu sự trùng lặp của các hộp giới hạn
5 Các cải tiến khác: YOLOv4 còn có nhiều cải tiến khác như hỗ trợ học không giám sát (unsupervised learning), thêm các phương pháp tăng cường dữ liệu (data augmentation), tăng cường độ tin cậy của dự đoán và cải thiện độ chính xác trong việc nhận dạng đối tượng
4
Trang 9Tóm lại, YOLOv4 là một mô hình phát hiện đối tượng nhanh chóng và chính xác trong ảnh
và video, với nhiều cải tiến từ các phiên bản trước đó Nó đã đạt được sự chú ý và sử dụng rộng rãi trong cộng đồng nghiên cứu và ứng dụng thị giác máy tính Trong đề tài chúng em
sử dụng một mô hình YOLOv4 đã được huấn luyện để phát hiện vật thể (Object Detection) trong thời gian thực
1.3 Tìm hiểu về Flask và Python và các thư viện xử lý ảnh:
Flask là gì ?
Flask là một framework phát triển ứng dụng web dựa trên ngôn ngữ lập trình Python Nó được xây dựng nhằm cung cấp một cách đơn giản và linh hoạt để xây dựng ứng dụng web Flask không yêu cầu các công cụ hoặc thư viện ngoài phức tạp, điều này làm cho nó trở thành một lựa chọn phổ biến cho các dự án ứng dụng web nhỏ và trung bình
Flask cung cấp các tính năng cơ bản như routing (định tuyến), template rendering (hiển thị giao diện), session management (quản lý phiên), và integration with database (tích hợp với
cơ sở dữ liệu) Ngoài ra, Flask còn hỗ trợ viết API để xây dựng các ứng dụng web dựa trên kiến trúc RESTful
Flask được phát triển theo nguyên tắc KISS (Keep It Simple, Stupid) và rất dễ học và sử
dụng Nó có một cộng đồng lớn, với nhiều tài liệu, ví dụ và gói mở rộng hữu ích để hỗ trợ
việc phát triển ứng dụng web
Python là gì ?
Python là một ngôn ngữ lập trình thông dịch, dễ học và dễ sử dụng
Đơn giản: Python có cú pháp đơn giản và rõ ràng, giúp người lập trình dễ dàng đọc, hiểu và viết mã Nó giảm thiểu sự phức tạp và tăng tính nhất quán trong việc phát triển phần mềm.Đa năng: Python hỗ trợ nhiều phong cách lập trình, bao gồm lập trình hướng đối tượng, lập trình cấu trúc và lập trình hàm Điều này cho phép người lập trình sử dụng Python cho nhiều mục đích, từ phát triển ứng dụng web, phân tích
dữ liệu, trí tuệ nhân tạo cho đến xử lý văn bản và tự động hóa công việc
Hỗ trợ mạnh mẽ: Python có một cộng đồng phát triển lớn, cung cấp rất nhiều thư viện
và công cụ hữu ích Các thư viện như NumPy, Pandas và Matplotlib cho phép xử lý
dữ liệu và tính toán số học hiệu quả Thư viện TensorFlow và PyTorch hỗ trợ phát triển các mô hình trí tuệ nhân tạo Flask và Django là các framework phát triển ứng dụng web mạnh mẽ được sử dụng rộng rãi trong cộng đồng
Giao diện thân thiện: Python có thư viện đồ họa như Tkinter và PyQt cho phép xây dựng các giao diện người dùng đẹp mắt và tương tác với người dùng một cách dễ dàng
Di động và nhúng: Python cũng được sử dụng trong lĩnh vực di động và nhúng Có các framework như Kivy và BeeWare cho phép phát triển ứng dụng di động và desktop đa nền tảng bằng Python
Trang 10 Pycharm:
PyCharm là một môi trường phát triển tích hợp (IDE) dành cho việc phát triển ứng dụng Python Nó được phát triển bởi JetBrains, công ty nổi tiếng về các công cụ phát triển phần mềm PyCharm cung cấp một loạt các tính năng và công cụ để hỗ trợ người lập trình Python trong quá trình phát triển ứng dụng, bao gồm:
Gỡ lỗi và xem trước: PyCharm cho phép người dùng gỡ lỗi mã nguồn Python bằng cách đặt điểm dừng (breakpoint) và theo dõi giá trị biến, vị trí thực thi, và luồng chương trình Nó cũng cung cấp khả năng xem trước (debug) từng bước thực hiện của mã nguồn để phân tích và sửa lỗi
Code completion và tự động hoàn thành: PyCharm tự động đề xuất mã và hoàn thành
từ khóa, tên biến, phương thức và các đoạn mã khác để tăng tốc độ viết code Nó cũng cung cấp kiểm tra cú pháp và gợi ý lỗi để giúp người lập trình viết code chính xác và tránh lỗi
Quản lý môi trường và gói: PyCharm cho phép tạo và quản lý các môi trường ảo (virtual environment) để phát triển ứng dụng Python độc lập Nó cũng hỗ trợ quản lý các gói phụ thuộc và cài đặt gói từ kho lưu trữ PyPI (Python Package Index)
Tích hợp công cụ phát triển: PyCharm tích hợp với các công cụ phổ biến khác như Git, Mercurial và SVN để quản lý phiên bản mã nguồn Nó cũng hỗ trợ các công cụ kiểm thử và kiểm tra tự động, như pytest và unittest
Hỗ trợ cho các framework và thư viện Python: PyCharm cung cấp tích hợp sẵn cho các framework phổ biến như Django, Flask và PyTorch Nó cung cấp các công cụ và tính năng đặc biệt để hỗ trợ phát triển và gỡ lỗi trong các dự án sử dụng các framework này
PyCharm có phiên bản miễn phí (Community Edition) và phiên bản trả phí (Professional
Edition) với các tính năng mở rộng và hỗ trợ cho các công nghệ phát triển phức tạp hơn Nó
là một trong những IDE phổ biến và được ưa chuộng trong cộng đồng lập trình Python
2 XÂY DỰNG MÔ HÌNH WEBSITE CLIENT – SERVER (TÍCH HỢP MÔ HÌNH NHẬN DẠNG YOLOV4):
2.1 Mô hình YOLOv4 sử dụng TensorFlow:
- Sử dụng TensorFlow để cải thiện khả năng xử lý của mô hình YOLOv4 do TensorFlow được tối ưu hóa để tận dụng sức mạnh tính toán song song từ GPU và TPU Điều này giúp tăng hiệu suất và tốc độ tính toán của mô hình YOLO, đặc biệt khi xử lý ảnh và video trong thời gian thực TensorFlow hỗ trợ nhiều nền tảng như máy tính cá nhân, điện thoại di động, máy tính nhúng và các cụm máy tính phân tán Điều này cho phép mô hình YOLO chạy trên nhiều loại thiết bị và hệ thống khác nhau
2.2 Xây dựng Server (Tích hợp mô hình YOLOv4):
- Cài đặt và import các thư viện như hình bên dưới:
6