nay, CV đang được sử dụng khá phổ biến, rộng rãi và không thể phủ nhận rằng “Phát hiệnđối tượng” Object Detection là một trong những ứng dụng tuyệt vời và là khía cạnh sâusắc của CV.• Ca
Trang 1PHÁT HIỆN ĐỐI TƯỢNG
SỬ DỤNG THỊ GIÁC MÁY, CÓ CODE
Trang 2MỤC LỤC
Trang 3DANH MỤC HÌNH ẢNH
Trang 4DANH MỤC TỪ VIẾT TẮT
CV Computer Vision
AI Artificial Intelligence
IDE Integrated Development Environment
OpenCV Open Computer Vision
CPU Central Processing Unit
SSD Single Shot MultiBox Detector
R-CNN Region-based Convolutional Neural Networks)
VGG Visual Geometry Group
IP Internet Protocol
Conv Convolution
PC Personal Computer
LAN Local Area Network
HDMI High-Definition Multimedia Interface
RAM Random Access Memory
GPIO General Purpose Input Output
Trang 5nay, CV đang được sử dụng khá phổ biến, rộng rãi và không thể phủ nhận rằng “Phát hiệnđối tượng” (Object Detection) là một trong những ứng dụng tuyệt vời và là khía cạnh sâusắc của CV.
• Camera Raspberry Pi V2 IMX219 8MP
• Ngôn ngữ Python và phần mềm PyCharm
• Mô hình của Raspberry Pi 4 với Camera Raspberry Pi V2 và kết nối thông qua phần mềm VNC Viewer/Remote Desktop Connection
Trang 6CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ lập trình Python
2.1.1 Sơ lược về Python
Ngôn ngữ lập trình Python là ngôn ngữ lập trình được sử dụng trong đề tài, là ngônngữ được nhiều người sử dụng nhất hiện nay, nhất là những người mới bắt đầu học lậptrình Python là ngôn ngữ lập trình được tạo ra bởi Guido Van Rossum, được bắt đầu thiết
kế vào cuối những năm 1980 và cho ra mắt phiên bản đầu tiên vào năm 1994, đây là mộtngôn ngữ lập trình cực kỳ phổ biến được sử dụng để phát triển website và thiết kế nhiềuứng dụng, dự án khác nhau
Được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ, Python được sử dụngtrong việc lập trình từ những ứng dụng đơn giản nhất cho đến những thuật toán nâng caophức tạp Python là ngôn ngữ lập trình hướng đối tượng đa năng Ngoài ra ngôn ngữ nàycũng sở hữu cấu trúc dữ liệu cấp cao mạnh mẽ và hệ thống thư viện lớn Python sử dụng
cơ chế cấp phát bộ nhớ tự động với cú pháp đơn giản và rõ ràng, giúp người học dễ tiếpcận và làm quen, kể cả đối với những người mới bắt đầu học lập trình
Trang 72.1.2 Các tính năng của Python
- Ngôn ngữ lập trình đơn giản, dễ học:
Cú pháp của ngôn ngữ lập trình Python rất đơn giản và dễ học hơn so với các ngônngữ lập trình khác như C#, Java, C++, Chính vì vậy mà ngày càng nhiều lập trình viênyêu thích với ngôn ngữ này hơn Từ đó giúp các lập trình viên tập trung nhiều thời gianhơn vào những giải pháp hơn là cú pháp khi phát triển phần mềm bằng ngôn ngữ này
- Miễn phí, mã nguồn mở:
Có thể tự do sử dụng và phân phối Python, thậm chí là dùng nó cho mục đíchthương mại Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm, chươngtrình được viết trong Python mà còn có thể thay đổi mã nguồn của nó Python có mộtcộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập nhật
- Khả năng di chuyển:
Các chương trình Python có thể di chuyển từ nền tảng này sang nền tảng khác vàchạy nó mà không có bất kỳ thay đổi nào Nó chạy liền mạch trên hầu hết tất cả các nềntảng như Windows, macOS, Linux
- Khả năng mở rộng và có thể nhúng:
Đối với những ứng dụng được viết bằng ngôn ngữ lập trình Python nhưng lại đòi hỏi
sự phức tạp thì bạn có thể kết hợp các phần code của ngôn ngữ lập trình C, C++ vào phầncode của Python Như vậy sẽ giúp ứng dụng được tích hợp nhiều tính năng tốt hơn Đây
là một trong những tính năng nổi bật của Python mà các ngôn ngữ lập trình khác khôngthể làm được
- Ngôn ngữ thông dịch cấp cao:
Khi lập trình ứng dụng bằng ngôn ngữ Python bạn không cần phải quản lý bộ nhớhay dọn dẹp dữ liệu vô nghĩa,… Ngược lại, khi chạy code Python lên thì nó sẽ tự độngchuyển đổi sang ngôn ngữ mà máy tính có thể hiểu được Đây cũng là tính năng nổi bậtcủa Python mà ngôn ngữ lập trình như C hoặc C++ không làm được
Trang 8- Thư viện tiêu chuẩn lớn:
Python có một lượng thư viện tiêu chuẩn lớn có tác dụng giải quyết những tác vụphổ biến, giúp cho việc lập trình của các lập trình viên trở nên đơn giản và dễ dàng hơn.Thư viện tiêu chuẩn này đã được kiểm tra kỹ lưỡng và được sử dụng bởi hàng trăm người.Cho nên, bạn hoàn toàn có thể yên tâm rằng nó sẽ không gây ảnh hưởng đến phần codecũng như ứng dụng của bạn
- Hướng đối tượng:
Tất cả mọi thứ trong ngôn ngữ lập trình Python đều là hướng đối tượng, giúp bạngiải quyết được những vấn đề phức tạp một cách trực quan nhất Vì vậy, trong quá trình
sử dụng Python để lập trình ứng dụng bạn có thể chia những vấn đề phức tạp thành nhữngtập nhỏ hơn bằng các tạo ra các đối tượng
2.2 Phần mềm Pycharm
Pycharm là một môi trường phát triển tích hợp (IDE - Integrated DevelopmentEnvironment) được sử dụng trong lập trình máy tính, đặc biệt là cho ngôn ngữ lập trìnhPython Nó được phát triển bởi Công ty JetBrains của Séc Pycharm là công cụ hỗ trợ tốttrong việc cung cấp phân tích mã, trình gỡ rối đồ họa, trình kiểm tra đơn vị tích hợp, tíchhợp với hệ thống kiểm soát phiên bản (VCSes) và hỗ trợ phát triển web với Django cũngnhư khoa học dữ liệu với Anaconda
2.3 Thư viện OpenCV
OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử lý
về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++, vì vậy
có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gianthực và cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động real-time Nó còncung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính haycác learning machine khác
Trang 9OpenCV sở hữu giao diện thiên thiện với mọi loại ngôn ngữ lập trình, ví dụ như C++, C, Python hay Java… Ngoài ra, nó cũng dễ dàng tương thích với các hệ điều hành khácnhau, bao gồm từ Windows, Linux, Mac OS, iOS cho đến cả Android.
2.4 Thuật toán SSD - Single Shot MultiBox Detector
Ý nghĩa của tên thuật toán:
- Single Shot: Có nghĩa là việc định vị và phân loại đối tượng được thực hiệntrên 1 phase duy nhất từ đầu đến cuối
- MultiBox: Tên của kĩ thuật về bounding box được sử dụng bởi Szegedy et al
- Detector: Mạng này có khả năng nhận biết và phân loại được đối tượng
2.4.1 Giới thiệu về SSD
SSD được thiết kế để phát hiện đối tượng trong thời gian thực SSD tăng tốc quátrình bằng cách loại bỏ sự cần thiết của mạng đề xuất khu vực Để giải quyết về vấn đề độchính xác giảm, SSD áp dụng một vài cải tiến bao gồm các feature map đa kích thước và
sử dụng các hộp mặc định Những cải tiến này cho phép SSD tiến gần được với độ chínhxác của Faster R-CNN nhưng lại có thể sử dụng hình ảnh có độ phân giải thấp hơn, giúpđẩy tốc độ cao hơn
Mô hình SSD được chia làm 2 giai đoạn:
- Giai đoạn 1: Trích xuất feature map (dựa vào mạng cơ sở VGG16) để tănghiệu quả trong việc phát hiện => thì nên sử dụng ResNet, InceptionNet, hoặcMobileNet
- Giai đoạn 2: Áp dụng các bộ lọc tích chập để có thể phát hiện được các đốitượng
2.4.2 Giai đoạn 1: Sử dụng mạng cơ sở VGG16 để trích xuất feature map
SSD sử dụng VGG16 làm mạng cơ sở để trích xuất feature map:
- Đầu vào: image kích thước (300 * 300)
- Sau đó sử dụng VGG16 làm mạng cơ sở để trích xuất bản đồ tính năng Lưu ý,đối với VGG16, chúng ta sẽ sử dụng lớp Conv4_3 là một trong những lớp dự báo
Trang 10đối tượng của mạng, những lớp còn lại chỉ có tác dụng trích xuất các đặc trưngcủa hình ảnh đầu vào.
Mỗi dự đoán này bao gồm:
- 1 bounding box
- 21 score biểu thị cho độ tin cậy của mỗi lớp (bao gồm cả lớp background)
- Score: là xác suất xuất hiện đối tượng được dự đoán có trong bounding box, 20score là 20 xác suất phát hiện 20 loại đối tượng trong thực tế, 1 score còn lại làxác suất dự đoán trong bounding box là class background
2.4.3 Giai đoạn 2: Sử dụng trình dự đoán tích chập (Convolution preditors) cho phát hiện đối tượng:
Sau khi trích xuất feature maps dựa vào kiến trúc của mạng cơ sở (basenetwork), mô hình SSD sẽ tiếp tục tính toán cả hai giá trị: đối với từng location vàscore cho các class bằng việc sử dụng các bộ lọc tích chập nhỏ Sau khi extractfeature maps, SSD sử dụng một kernel 3 × 3 trên mỗi ô để tạo ra dự đoán Mỗi đầu
ra của bộ lọc là 25 channels: 21 scores đối với mỗi lớp + 1 bbx
Trang 11Áp dụng bộ lọc 3 × 3 để tạo ra các dự đoán đối với mỗi location và các class.Quá trình sử dụng các trình phát hiện tích chập đơn giản cũng chỉ là quá trình dựđoán ra các bbx dự đoán (với mỗi vị trí pixel sẽ là 4 bbx dự đoán giống nhưVGG16 đang làm) có điều nó khác bởi vì nó sử dụng các feature map có kíchthước khác nhau.
Đối với các feature maps có độ phân giải thấp ở bên phải sẽ có khả năng pháthiện được đối tượng có kích thước khác nhau Do đó, SSD thêm 6 lớp Convolutionlayer phụ trợ vào sau VGG16, 5 trong số chúng sẽ được thêm vào để detect object
Và trong 3 trong số 6 lớp này sẽ đưa ra dự đoán là 6 (bbx + score) thay vì 4 (bbx +score) Tổng cộng, SSD đưa ra 8732 dự đoán với việc sử dụng 6 layers
Trang 12CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG 3.1 Sơ đồ khối của hệ thống
Hình 3-1: Sơ đồ khối của hệ thống.
Khối nguồn
CameraRaspberry Pi 4
Laptop
Trang 133.2 Tổng quan về Raspberry Pi 4 Model B
Các tính năng của Raspberry Pi 4 bao gồm bộ vi xử lý lõi tứ 64-bit hiệu suất cao, hỗtrợ hiển thị kép ở độ phân giải lên đến 4K thông qua một cặp cổng micro-HDMI, giải mãvideo phần cứng lên đến 4Kp60, RAM lên đến 8GB, kép LAN không dây băng tần 2.4 /5.0 GHz, Bluetooth 5.0, Gigabit Ethernet, USB 3.0 và khả năng PoE (thông qua tiện ích
bổ sung PoE HAT riêng biệt)
Mạng LAN không dây băng tần kép và Bluetooth có chứng nhận tuân thủ theo đun, cho phép bo mạch được thiết kế thành các sản phẩm cuối với việc kiểm tra tuân thủgiảm đáng kể, cải thiện cả chi phí và thời gian đưa ra thị trường
Trang 15Hình 3-4: Sơ đồ các chân GPIO của Raspberry Pi 4 Model B.
Trong 40 chân GPIO bao gồm:
• 26 chân GPIO Khi thiết lập là input, GPIO có thể được sử dụng như chân interupt, GPIO 14 & 15 được thiết lập sẵn là chân input
• 1UART, 1 I2C, 2 SPI, 1 PWM (GPIO 4)
• 2 chân nguồn 5V, 2 chân nguồn 3.3V, 8 chân GND
• 2 chân ID EEPROM
- Video và âm thanh:
• 2 cổng micro HDMI (hỗ trợ lên đến 4Kp60)
• Cổng hiển thị MIPI DSI 2 làn
• Cổng camera MIPI CSI 2 làn
• Cổng video tổng hợp và âm thanh stereo 4 cực
- Đa phương tiện:
• H.265 (giải mã 4Kp60)
• H.264 (giải mã 1080p60, mã hóa 1080p30)
• Đồ họa OpenGL ES, 3.0
- Hỗ trợ thẻ SD:
Khe cắm thẻ nhớ Micro SD để tải hệ điều hành và lưu trữ dữ liệu
- Nguồn điện đầu vào:
• 5V DC qua đầu nối USB-C (tối thiểu 3A)
• 5V DC qua đầu cắm GPIO (tối thiểu 3A)
• Bật nguồn qua Ethernet (PoE) (yêu cầu PoE HAT riêng biệt)
Trang 16Hình 3-5: Thông số kỹ thuật vật lý của Raspberry Pi 4 Model B.
- Chỉ nên kết nối với nguồn điện bên ngoài được đánh giá ở mức 5V/ 3A DC hoặctối thiểu 5.1V/3A DC Bất kỳ nguồn điện bên ngoài nào được sử dụng vớiRaspberry Pi 4 Model B đều phải tuân thủ các quy định và tiêu chuẩn liên quan ápdụng tại quốc gia dự kiến sử dụng
- Phải được vận hành trong môi trường thông gió tốt và nếu sử dụng bên trong hộpthì không được đậy nắp
- Nên được đặt trên bề mặt ổn định, phẳng, không dẫn điện đang sử dụng và khôngđược tiếp xúc với các vật dụng dẫn điện
- Kết nối của các thiết bị không tương thích với kết nối GPIO có thể ảnh hưởng đếnviệc tuân thủ và dẫn đến hư hỏng thiết bị và làm mất hiệu lực bảo hành
- Tất cả các thiết bị ngoại vi được sử dụng với sản phẩm này phải tuân theo các tiêuchuẩn liên quan của quốc gia sử dụng và được đánh dấu phù hợp để đảm bảo đápứng các yêu cầu về an toàn và hiệu suất Các bài viết này bao gồm nhưng khônggiới hạn bàn phím, màn hình và chuột khi được sử dụng cùng với Raspberry Pi
Trang 17- Khi các thiết bị ngoại vi được kết nối không bao gồm cáp hoặc đầu nối, cáp hoặcđầu nối phải có cách điện và hoạt động thích hợp để đáp ứng các yêu cầu về tínhnăng và an toàn liên quan.
- Không tiếp xúc với nước, hơi ẩm hoặc đặt trên bề mặt dẫn điện khi đang hoạtđộng
- Không để nó tiếp xúc với nhiệt từ bất kỳ nguồn nào; Raspberry Pi 4 Model B đượcthiết kế để hoạt động đáng tin cậy ở nhiệt độ phòng bình thường
- Cẩn thận trong khi xử lý để tránh hư hỏng về cơ hoặc điện đối với bảng mạch in vàcác đầu nối
- Tránh xử lý bảng mạch in trong khi được cấp nguồn và chỉ xử lý các cạnh để giảmthiểu nguy cơ hư hỏng do phóng điện
3.3 Nguồn cấp cho Raspberry
Nguồn có công tắc cho máy tính nhúng Power Supply 5.1V 3A USB-C tích hợpcông tắc nguồn trên dây cắm tiện dụng được sử dụng để cấp nguồn cho các board mạchmáy tính nhúng, máy tính Mini sử dụng cổng USB-C có tốc độ xử lý và hiệu suất ngàycàng nâng cao hiện nay như: Raspberry Pi 4 Model B, Nguồn có chất lượng linh kiệntốt, độ bền cao
Hình 3-6: Nguồn có công tắc cho Raspberry Pi 4 Model B.
Thông số kỹ thuật:
Trang 18- Nguồn điện đầu vào: 100~240VAC 50/60Hz.
- Nguồn điện đầu ra: 5.1VDC
- Dòng đầu ra tối đa: 3A
- Công suất: 15.3W
- Chuẩn đầu ra: Cáp USB-C dài 1m
- Tích hợp công tắc nguồn trên dây tiện dụng
3.4 Thẻ nhớ SanDisk MicroSDHC Class 10 UHS-I 32GB
Hình 3-7: Thẻ nhớ SanDisk MicroSDHC Classs 10 UHS-I 32GB.
Thẻ nhớ SanDisk MicroSDHC Class 10 UHS-I 32GB là loại có tốc độ đọc ghi thuộcloại cao trên thị trường hiện, thẻ có chất lượng rất tốt, độ bền và độ ổn định cao, thích hợp
để chạy với máy tính nhúng: Raspberry Pi, Jetson Nano, Beaglebone, và các thiết bị cầntốc độ truy xuất cao
3.5 Camera Raspberry Pi V2 IMX219 8MP
Trang 19Hình 3-8: Camera Raspberry Pi V2 IMX219 8MP.
Camera Raspberry Pi V2 IMX219 8MP là phiên bản Camera Module dành choRaspberry Pi mới nhất sử dụng cảm biến ảnh IMX219 8-megapixel từ Sony thay cho cảmbiến cũ là OV5647 Với cảm biến IMX219 8-megapixel từ Sony, Camera Module choRaspberry Pi đã có được sự nâng cấp vượt trội về cả chất lượng hình ảnh, video cũng như
độ bền
Camera Raspberry Pi V2 IMX219 8MP có thể sử dụng với Raspberry Pi để chụphình, quay phim với chất lượng HD 1080p30, 720p60 hoặc VGA90, cách sử dụng cũngnhư lập trình với Camera Module trên Raspberry Pi cũng rất dễ dàng, chỉ cần cắm vàocổng Camera trên Raspberry Pi và qua 1 vài bước thiết lập là có thể dùng được
Camera Raspberry Pi V2 IMX219 8MP có thể điều khển thông qua MMAL và V4LAPIs, có rất nhiều bộ thư viện được cộng đồng Raspberry Pi phát triển trên Python giúpcho việc tìm hiểu và sử dụng trở nên dễ dàng hơn rất nhiều
Camera Raspberry Pi V2 IMX219 8MP có thể sử dụng được với tất cả các phiên bảnRaspberry Pi (Raspberry Pi Zero cần thêm cáp chuyển) và Jetson Nano
Thông số kỹ thuật:
- Camera Raspberry Pi V2 8MP dùng cho máy tính nhúng Raspberry Pi
- Cảm biến IMX219 từ Sony
- Số điểm ảnh: 8MP
- Lens: Fixed focus
Trang 20- Camera specifications:
• CCD size : 1/4inch
• Aperture (F) : 2.0
• Focal Length : 3.04mm
• Angle of View (diagonal) : 62.2 degree
- Camera Resolution: 3280 x 2464 pixel stills
- Video Resolution: HD 1080p30, 720p60 and 640x480p90 video
- Thẻ nhở SD có dung lượng 32GB Class10, tối thiểu là 16GB
- Máy tính cá nhân để điều khiển từ xa
- Nguồn cấp cho Raspberry: 5V, 3A DC
- Dây mạng (nếu sử dụng màn hình rời cho Raspberry)
Bước 1: Tải bản cài đặt cho máy tính về và giải nén.
Vào trang www.raspberrypi.org và tải phiên bản mới nhất là hệ điều hành Raspberry
Pi OS Sau đó giải nén và cài đặt phần mềm Raspberry Pi Imager v1.6.2
Trang 21Hình 3-9: Trang web download hệ điều hành cho Raspberry Pi 4 Model B.
Hình 3-10: Phần mềm Raspberry Pi Imager v1.6.2.
Trang 22Bước 2: Format Card và ghi hệ điều hành vào thẻ.
Cắm thẻ nhớ SD vào đầu lọc thẻ nhớ và cắm vào cổng USB của Laptop
Mở phần mềm Raspberry Pi Imager v1.6.2 vừa được cài đặt ở bước 1 và bắt đầuFormat thẻ SD Chọn Erase ở phần Operating System và chọn thẻ SD ở phần Storage vànhấn Write để bắt đầu Format thẻ
Hình 3-11: Format cho thẻ nhớ SD Card.
Sau khi Format thẻ xong thì sẽ bắt đầu cài hệ điều hành vào thẻ Chọn Raspberry Pi
OS (32-bit) ở phần Operating System và chọn thẻ SD ở phần Storage Nhấn tổ hợp phímCtrl+Shift+X để Enable SSH và đăng nhập Wifi Nhấn Write để bắt đầu ghi hệ điều hành
Hình 3-12: Thiết lập SSH và Wifi cho Raspberry Pi 4 Model B.
Trang 23Hình 3-13: Ghi hệ điều hành vào thẻ nhớ SD.
Bước 3: Gắn thẻ nhớ và camera vào Raspberry.
Sau khi quá trình cài hệ điều hành đã xong thì gắn thẻ nhớ vào khe cắm thẻ củaRaspberry Lưu ý: Nên gắn thẻ và camera vào trước rồi hãy bật nguồn và không rút thẻnhớ hoặc camera trong quá trình đang sử dụng để tránh thiết bị bị hư hỏng
Hình 3-14: Gắn thẻ nhớ SD và Camera vào Raspberry Pi 4.
Trang 243.6.3 Kết nối Raspberry Pi 4 từ xa bằng Remote Desktop Connection
Bước 1: Tải phần mềm Advanced IP Scanner để dò địa chỉ IP của Raspberry.
Mở phần mềm và nhấn Scan để bắt đầu dò IP
Trước khi bật nguồn Raspberry Pi
Sau khi bật nguồn Raspberry Pi Hình 3-15: Quá trình dò IP của Raspberry Pi 4 bằng phần mềm Advanced IP Scanner.
Lưu ý:
- Trước khi cắm nguồn vào Raspberry thì nên dò trước để xem địa chỉ IP của cácthiết bị xung quanh và chụp ảnh lại, sau đó hãy cắm nguồn cho Raspberry và
Trang 25dò địa chỉ IP So sánh trong hai lần dò thì sẽ phát hiện có thêm một địa chỉ mớitrong lần dò lúc sau, và đó là địa chỉ IP của Raspberry.
VD: Trong bài này, trước khi bật nguồn của Raspberry Pi thì ta dò được 4 địachỉ IP kết nối với wifi Sau khi bật nguồn lên và dò lại thì ta thấy có thêm 1 địachỉ IP mới, đó là địa chỉ IP của Raspberry (ta có thể đổi tên của địa chỉ IP đểcho dễ nhận biết)
- Hoặc có thể tự cài đặt địa chỉ IP bằng cách vào thư mục Boot của thẻ nhớ SD
mở file cmdline.text và thêm địa chỉ IP vào cuối dòng chữ và lưu lại
VD: “ip=192.168.137.2”
Bước 2: Tải phần mềm Putty và cài đặt.
Mở phần mềm Putty và nhập địa chỉ của Raspberry Pi, sau đó nhấn Open
Hình 3-16: Phần mềm Putty.
Bước 3: Cài đặt kết nối với Remote Desktop Connection.
Sau khi nhấn Open, ta sẽ truy cập được vào màn hình command line của Raspberry Pi,nhập username và password (mặc định là pi và raspberry)
Trang 26Hình 3-17: Màn hình Terminal của Raspberry Pi khi đăng nhập.
Sau đó cài đặt xrdp bằng lệnh: sudo apt-get install xrdp
Sau khi cài đặt xong thì nhập lệnh: sudo reboot để khởi động lại Raspberry.
Bước 4: Kết nối với với Remote Desktop Connection.
Sau khi cài đặt xong, chúng ta mở Remote Desktop Connection và nhập địa chỉ IP củaRaspberry và kết nối
Hình 3-18: Kết nối với phần mềm Remote Desktop Connection.
Nhập địa username và passwword
Trang 27Sau khi kết nối thành công, màn hình Raspberry hiện lên và có thể làm việc bìnhthường.
Hình 3-19: Màn hình làm việc của Raspberry Pi 4.
3.7 Cài đặt thư viện cho Raspberry Pi 4
$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge libreoffice*
Trang 28$ sudo apt-get clean
$ sudo apt-get autoremove
- Cập nhật các gói hiện có bằng cách nhập lần lượt 2 lệnh sau:
$ sudo apt-get update
$ sudo apt-get upgrade
- Cài đặt công cụ phát triển
$ sudo apt-get install build-essential cmake pkg-config
- Cài đặt một số gói I/O hình ảnh cho phép tải các định dạng hình ảnh khác nhau như JPEG, PNG, TIFF…
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
- Cài đặt gói video I/O cho phép tải các định dạng video khác nhau
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
- Cài đặt thư viện phát triển GTK (công cụ tạo giao diện đồ họa) để biên soạn module phụ của OpenCV, cho phép hiển thị hình ảnh trên màn hình và xây dựng các giao diện GUI đơn giản
$ sudo apt-get install libfontconfig1-dev libcairo2-dev
$ sudo apt-get install libgdk-pixbuf2.0-dev libpango1.0-dev
$ sudo apt-get install libgtk2.0-dev libgtk-3-dev
- Cài đặt thư viện HDF5 datasets và Qt GUIs
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
- Cài đặt python 3 và pip
$ sudo apt-get install python3-dev
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py
$ sudo rm -rf ~/.cache/pip