https://maimemory.blogspot.com/2025/11/update-2025-flash-nvidia-jetson-nano.html
เปิด Terminal ตรวจสอบเวอร์ชั่นของ Python ด้วยคำสั่ง
python --version
python3 --version
จะพบว่า Jetpack 4.6.6 จะติดตั้ง Python3.6 มา แต่ Package Ultralytics รองรับการใช้งานร่วมกับ Python3.8 ขึ้นไป จึงต้อง Update Package และติดตั้ง Python3.8 ด้วยคำสั่ง
sudo apt update
sudo apt search python3
sudo apt install python3.8
ตรวจสอบเวอร์ชั่นของ Python3 ด้วยคำสั่ง
python3 --version
python3.8 --version
จะเห็นได้ว่า Default ของคำสั่ง python3 คือ python3.6 ต้องเปลี่ยนให้ Default ของคำสั่ง python3 เป็น python3.8 ด้วยคำสั่ง
echo alias python3="python3.8" >> ~/.bashrc
cat ~/.bashrc
python3 --version
source ~/.bashrc
python3 --version
ติดตั้ง pip (Package Installer for Python) ด้วยคำสั่ง
sudo apt search python3-pip
psudo apt install python3-pip
ตรวจสอบเวอร์ชั่นของ pip และอัพเกรด pip ด้วยคำสั่ง
sudo apt search python3-pip
sudo apt install python3-pip
pip3 --version
python3 -m pip --version
python3 -m pip install pip --upgrade
cd มาที่ Desktop จากนั้นสร้างโฟลเดอร์ YOLOv8 และติดตั้งโมดูล venv (Virtual Environment) สำหรับ Python3.8 เพื่อแยก Environment ของโปรเจคออกจาก Global Package
cd Desktop
mkdir YOLOv8
cd YOLOv8
sudo apt install python3.8-venv
ตรวจสอบการติดตั้งโมดูล venv และสร้าง Virtual Environment ภายในโปรเจคด้วยคำสั่ง
dpkg --list | grep venv
python3 -m venv venv
ls
ติดตั้ง jtop (Jetson Table of Processes) สำหรับมอนิเตอร์การทำงานของ Jetson และ Run ด้วยคำสั่ง
sudo python3 -m pip install jetson-stats
sudo jtop
เชื่อมต่อกล้อง USB จากนั้นตรวจสอบ Library V4L2 สำหรับใช้งานกล้องที่ติดตั้งมาพร้อม Jetpack ด้วยคำสั่ง
cat /lib/modules/$(uname -r)/modules.builtin | grep v4l2
ติดตั้ง v4l2-ctl (V4L Utils) สำหรับใช้งานร่วมกับกล้องและตรวจสอบ Device กล้องที่เชื่อมต่ออยู่ด้วยคำสั่ง
sudo apt install v4l-utils
v4l2-ctl --list-devices
เชื่อมต่อการแสดงผลภาพจากใน Docker Container กับ X11 Display ด้วยคำสั่ง
xhost +local:docker
สร้างตัวแปร $t และ Pull Docker Container สำหรับ Run GPU จาก Ultralytics และ Run Container โดยเชื่อมต่อกล้อง USB /dev/video0 และ X11 Display สำหรับแสดงผลภาพจากใน Container ด้วยคำสั่ง
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --name yolov8 --ipc=host --runtime=nvidia --device /dev/video0:/dev/video0 --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" $t
ทดสอบการเชื่อมต่อระหว่าง PyTorch กับ CUDA ภายใน GPU ด้วยการ Run Console ของ Python3 และใช้คำสั่ง
python3
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))
import torchvision
print(torchvision.__version__)
exit()
exit
เตรียมไฟล์ webcam.py (yolov8n.engine,device=0) และไฟล์ engine.py (สำหรับแปลงไฟล์ .pt เป็น .engine) สำหรับ Run ใน Docker Container จากนั้น Run Docker Container และ Copy โปรเจคโฟลเดอร์เข้าไปใน Docker Container ด้วยคำสั่ง
sudo docker start yolov8
sudo docker ps -a
sudo docker cp <project folder including all files and venv> yolov8:/home
Exec เข้าไปใน Container และ Activate Virtual Environment ด้วยคำสั่ง
sudo docker exec -it yolov8 bash
cd ../home/<project folder>
source venv/bin/activate
pip list
ติดตั้ง Ultralytics ภายใน Docker Container ภายใต้ Virtual Environment ด้วยคำสั่ง
python3 -m pip install pip --upgrade
pip install ultralytics
แปลงไฟล์ yolov8n.pt เป็น yolov8n.engine ด้วยการ Run ไฟล์ engine.py ด้วยคำสั่ง
python3 engine.py
ไฟล์ engine.py
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="engine")
ถอนการติดตั้ง opencv-python-headless และติดตั้ง opencv-python ด้วยคำสั่ง
pip list
pip uninstall opencv-python-headless
pip install opency-python
Run ไฟล์ webcam.py เพื่อ Detect Object ผ่านกล้อง USB ด้วยคำสั่ง
python3 webcam.py
ไฟล์ webcam.py
from ultralytics import YOLO
import cv2
print(cv2.__version__)
model = YOLO("yolov8n.engine")
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
results = model(source=frame, save=False, device=0, conf=0.7)
for r in results:
annotated = r.plot()
cv2.imshow("Live Camera", annotated)
if(cv2.waitKey(1) & 0xFF == ord('q')):
break
cap.release()
cv2.destroyAllWindows()
ออกจาก Virtual Environment และออกจาก Docker Container ด้วยคำสั่ง
deactivate
exit
ไม่มีความคิดเห็น:
แสดงความคิดเห็น