Giới thiệu về Webcam USB

Một phần của tài liệu Báo cáo Đồ án Đề tài nhận diện biển báo giao thông trên kit rasperry pi (Trang 27 - 33)

Webcam viét tắt của cụm từ Website camera, day la thiét bi ki thuat ghi hinh anh cua

vat thé/ đối tượng đối diện. Sau đó kết nối với máy tính để truyền tải hình ảnh đã ghi

được lên website, hoặc tải lên một máy tính khác nhờ vào mạng internet.

Hình 1. 15 Webcam USB

USB viet tat cua Universal Serial Bus, là thiết bị kết nỗi với máy tính. USB chứa dữ

liệu đã ghi nhận, lưu trữ được truyền từ máy tính này qua máy tính khác. Thông qua

dau cam USB, USB có chức năng kết nối các thiết bị.

Như vậy Webcam USB có thể được hiểu là thiết bị kỹ thuật thu lại hình ảnh của đối

tượng/ vật thể và nhờ USB làm công cụ hỗ trợ giao tiếp kết nối. Webcam USB có chức năng như máy ảnh, thu và lưu trữ hình ảnh nhờ USB hỗ trợ và chịu sự điều khiển của máy tính.

26

Webcam USB với những tính năng hiện đại còn có thê quay phim, chụp ảnh, hỗ trợ an ninh, bảo an rất tốt. Ngoài ra, Webcam USB còn có thê truyền hình ảnh và kiểm soát từ Xa.

Trong đề tài này, ta sẽ sử dụng Webcam USB của hãng Dahua như hình I.15. Với các thông số kỹ thuật sau:

Thương hiệu Dahua

Model Dahua Z2

Độ phân giải 1280x720(720P)

Két noi USB 2.0

Mic tich hop

Cap 1.5m

Hệ điều hành tương thích | Windows

1.6 Ngôn ngữ Python

Python được hình thành vào cuối những năm L980, bởi Guido van Rossum. Python 2.0 được phát hành vào ngày 16/10/2000 và có nhiều tính năng mới bao gồm bộ thu gom rác theo chu kỳ và hỗ trợ Unicode. Python 3.0 được phát hành năm 2008, sau một thời gian dài thử nghiệm. Cho đến tháng 10/2020, Python đã có phiên bản 3.9.

1.6.1 Tính năng

Ngôn ngữ lập trình nhập môn: Do mục đích của Guido Van Rossum hướng đến sự đơn giản, dễ hiểu nên so với các ngôn ngữ khác như lava, C©+,... Python được nhiều lập trình viên mới ưa thích hơn.

Ngôn ngữ thông dịch cấp cao: Không cần quản lý bộ nhớ, dọn dẹp đữ liệu, Python tự đông chuyền đôi code thành dạng ngôn ngữ máy tính có thê hiểu.

Ngôn ngữ lập trình hướng đối tượng: Giải quyết vấn đề một cách trực quan bang phương pháp tạo ra các đối tượng. Có thê được sử dụng trên nhiều nén tang.

Miễn phí, mã nguồn mở: Có một số ngôn ngữ lập trình buộc lòng phải chỉ trả một mức phí nhất định dé học tập và cài đặt, nhưng với Python thì hoàn toàn miễn phí. Bên cạnh đó, vì là ngôn ngữ mã nguồn mở nên những lập trình viên có thể thay đổi mã nguôn của nó. Python có một cộng đồng lớn, không ngừng cải thiện mỗi lân cập nhật.

Khả năng mở rộng và có thê nhúng: Có thê dễ đàng kết hợp Python với một ngôn ngữ nhúng khác. Điều này đảm bảo cho ứng dụng có tính năng tốt như scripting,... mà các ngôn ngữ khác không làm được.

Thư viện tiêu chuân lớn: Việc sở hữu sô lượng thư viện chuãn lớn giúp hỗ trợ một cách triệt đê cho vân đê công việc cũng như học tập.

Khả năng di chuyển: Các chương trình ngôn ngữ Python có thế di chuyên được từ nền tảng này sang nên tảng khác như Windows, Macos hay Linux.

1.6.2 Lĩnh vực sử dụng

Python là ngôn ngữ được ứng dụng trong đa lĩnh vực vi các tính năng tiện lợi, nó đã

trở thành sự lựa chọn được ưu tiên của lập trình viên trong nhiều ứng dụng khác nhau.

Một số lĩnh vực áp dụng Python như sau:

— Lap trinh tng dung Web (Web development): Tao ra các web app có khả năng mở rộng (scalable) được bằng cách sử dụng các framework va CMS (hé thong quản trị nội dung).

— Khoa học và số liệu ứng dụng: Nhờ vào việc được thiết kế để phân tích thong ké va phan tich số liệu mà Python luôn được các nhà khoa học dữ liệu lựa chọn” để sử dụng.

—_ Trí tuệ nhân tạo va hoc may (Artificial Intelligent and Machine Learning): Cac dự án liên quan đến AI hoặc ML yêu cầu các công cụ có thể xử lý ngôn ngữ ôn định, bảo mật, linh hoạt và được trang bị các công cụ có thể xử lý các yêu cầu riêng biệt khác nhau. Một số package Python tốt nhất cho AI/ML là:

+ Scipy: danh cho máy tính nâng cao.

+ Pandas: phan tích dữ liệu mục đích chung.

25

+ Seaborn: truc quan héa dữ liệu.

+ Keras, TensorFlow va Scikit — learning cho ML.

+ NumPy: phân tích dữ liệu và tính toán khoa học hiệu suất cao.

Ngoài ra còn có một số thư viện khác hỗ trợ cho dự án.

— Phát triển ERP, phát triển phần mềm và hệ điều hành: Dùng trong việc phát triển phần mềm cho giải pháp cấp doanh nghiệp. Một số ERP phổ biến như Odoo, Tryton.

— Desktop GUI: Cé kiến trúc module và hoạt động trên nhiều hệ điều hành, kết hợp với các công cụ xử lý văn bản phong phú.

—_ Xử lý ảnh và thiết kế đồ họa: thiết kế và xây dựng phần mềm hình ảnh 2D như

Inkscape, GIMP, Paint Shop Pro và Scribus. Một số gói hoạt hinh 3D như Blender, Houdini, 3ds Max, Maya, Cinema 4D va Lightwave.

— Giáo dục: Ngôn ngữ lập trinh Python dang duoc dua vao chuong trinh giang dạy cho những người lần đầu tiếp cận ngôn ngữ lập trình tại nhiều quốc gia.

1.7 Pytorch

PyTorch là một thư viện machine learning mã nguồn mở miễn phí cho Python, dựa trên thư viện Torch. Nó được sử dụng cho các ứng dụng như thị giác máy va xu ly ngôn ngữ tự nhiên. Pytorch được phát triển chủ yếu bởi Meta AI.

Một số phan mềm học sâu dựa trên Pytorch: Testla Autopilot, Pytorch Lightning, Uber’s Pyro, Hugging Face 's Transformers,...

PyTorch duoc Hugh Perkins phát trién nhu mét trinh bao boc Python cho LusJTT dựa trên khuôn khổ Torch. Pytorch cung cấp tính toán Tensor với khả năng tăng tốc GPU mạnh mẽ và mạng nơ-rôn sâu (DNN) được xây dựng trên hệ thống Aufograd.

PyTorch thiết kế lại và triển khai thư viện Torch bằng Python trong khi chia sẻ cùng các thư viện C lõi cho code phụ trợ. Các nhà phát triển PyTorch đã điều chỉnh mã back-end này để chạy Python một cách hiệu quả. Họ cũng giữ nguyên khả năng tăng tốc phần cứng dựa trên GPU cũng như các tính năng mở rộng đã tạo nên Torch dựa trên Lua-based.

29

1.7.1 Tinh nang cua Pytorch Cac tinh nang chinh cua PyTorch

- Production Ready — Véi TorchScript, Pytorch cung cap su dé dang và linh hoạt trong chế độ eager, đồng thời chuyên đổi liền mạch sang chế độ biểu đồ để tăng tốc độ, tối ưu hóa trong môi trường chạy C++

- Torchserve - TorchServe là một công cụ dễ sử dụng để triển khai các mô hình PyTorch trên quy mô lớn. Hỗ trợ các tính năng như phân phát đa mô hỉnh, ghi nhận số liệu và tạo các điểm cuối RESTful dé tich hop wng dung.

- Distributed training — Téi wu héa hiệu suất trong cả nghiên cứu và sản xuất bằng cách tận dụng hỗ trợ tự nhiên để thực thí không đồng bộ các hoạt động chung và giao tiếp peer-to-peer có thê truy cập từ Python và C ++.

- Robust ecosystem — Pytorch có hệ thống phong phú các thư viện và công cụ để mở rộng và hỗ trợ phát triển trong các lĩnh vực từ thị giac may dén reinforcement learning.

- C++ Front end - Giao diện người dùng C++ là một giao diện C++ thuần túy cho PyTorch tuân theo thiết kế và kiến trúc của giao điện người dùng Python đã thiết lập.

Nó được thiết kế dé cho phép nghiên cứu trong các ứng dụng C++ độ trễ thấp và hiệu suât cao.

- Cloud Support - PyTorch được hỗ trợ tốt trên các nền tảng đám mây lớn, cung cấp khả năng phát triển đễ đàng và mở rộng quy mô thông qua hình ảnh dựng sẵn, đào tạo quy mô lớn về GPU, khả năng chạy mô hình trong môi trường quy mô sản xuắt,...

1.7.2 Ưu điểm của Pytorch - Dễ dàng đê gỡ lỗi và hiêu mã.

- Gồm rất nhiều hàm mắt mát (loss function).

- Có thé coi đây là phần mở rộng NumPy cho GPU.

- Cho phép xây dựng các mạng có cau trúc phụ thuộc vào chính tính toán.

30

Qua chương này, nhóm đã trình cơ bản về các lý thuyết Deep learning, mạng CNN, mô hình nhận điện YOLO. Đồng thời nhóm cũng đã trình bày về VNC và Python cũng như Pytorch các phương tiện để thực hiện quá trình nhận diện. Và cuối cùng đó là phần cứng của mô hình bao gồm máy tính nhúng Raspberry Pi và Webcam USB. Từ đó, nhóm có được nền tảng cơ bản dé thực hiện mô hình thực tế.

31

Một phần của tài liệu Báo cáo Đồ án Đề tài nhận diện biển báo giao thông trên kit rasperry pi (Trang 27 - 33)

Tải bản đầy đủ (PDF)

(75 trang)