ติดตั้ง YOLO ให้เรียบร้อยก่อน หากยังไม่ได้ติดตั้ง YOLO ให้ไปอ่านบทความนี้
https://maimemory.blogspot.com/2025/11/yolov8-on-recomputer-jetson.html
นำข้อมูลคลิปวิดีโอหรือรูปภาพที่ต้องการ Train ไปทำ dataset ใน roboflow ก่อน ตามคลิปนี้
ย้าย dataset เข้าไปโฟลเดอร์โปรเจคใน Jetson ซึ่งอาจย้ายโดยใช้คำสั่ง scp ใน cmd
scp <dataset folder> <username>@<ip address>:<jetson project folder path>
เชื่อมต่อการแสดงผลภาพจากใน Docker Container กับ X11 Display ด้วยคำสั่ง
xhost +local:docker
ในกรณีที่ยังไม่ได้สร้าง Docker Container ต้องสร้างก่อนโดยสร้างตัวแปร $t และ Pull Docker Container สำหรับ Run GPU จาก Ultralytics และ Run Container โดย map volume ของโฟลเดอร์โปรเจคใน Jetson ด้วย -v พร้อมเชื่อมต่อกล้อง USB /dev/video0 และ X11 Display สำหรับแสดงผลภาพจากใน Container ด้วยคำสั่ง
t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --name <container name> -v <jetson project folder>:<container project folder> --ipc=host --runtime=nvidia --device /dev/video0:/dev/video0 --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" $t
ในการแสดงผลภาพจากใน Container ตัวแปร DISPLAY จะต้องมีค่า default คือ DISPLAY=:0 ด้วย สามารถตรวจสอบได้ด้วยคำสั่ง
echo $DISPLAY
ทดสอบการเชื่อมต่อระหว่าง 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
เตรียมไฟล์ train.py (device=0, imgsz=160) ไฟล์ detect.py (best.engine,device=0) ไฟล์ engine.py (สำหรับแปลงไฟล์ .pt เป็น .engine) และสร้าง venv สำหรับ Run ใน Docker Container จากนั้น Run Docker Container และ Copy โปรเจคโฟลเดอร์เข้าไปใน Docker Container ด้วยคำสั่ง
Start Container และตรวจสอบสถานะของ Container ด้วยคำสั่ง
sudo docker start <container name>
sudo docker ps -a
sudo docker cp <project folder including all files and venv> <container name>:/home
Exec เข้าไปใน Container และ Activate venv ด้วยคำสั่ง
sudo docker exec -it <container name> bash
cd ../home/<project folder>
source venv/bin/activate
pip list
ติดตั้ง Ultralytics ภายใน Docker Container ภายใต้ venv ด้วยคำสั่ง
python3 -m pip install pip --upgrade
pip install ultralytics
ติดตั้ง nano สำหรับแก้ไขไฟล์ใน Container ด้วยคำสั่ง
apt update
apt install nano -y
Run ไฟล์ train.py เพื่อเริ่มทำการเทรน model ด้วยคำสั่ง
รอจนกระทั่งเทรน model สำเร็จ จะได้ไฟล์ best.pt ต้องแปลงไฟล์ best.pt เป็น best.engine ด้วยการ Run ไฟล์ engine.py ด้วยคำสั่ง
python3 engine.py
ไฟล์ engine.py
from ultralytics import YOLO
model = YOLO("best.pt")
model.export(format="engine")
ทดสอบ model ที่ได้จากการเทรน ด้วยการ Run ไฟล์ detect.py ด้วยคำสั่ง
python3 detect.py
ไฟล์ detect.py
from ultralytics import YOLO
import cv2
print(cv2.__version__)
model = YOLO("best.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

















