ติดตั้ง 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 ด้วยคำสั่ง
sudo docker cp <project folder including all files and venv> <container name>:/home
Start Container และตรวจสอบสถานะของ Container ด้วยคำสั่ง
sudo docker start <container name>
sudo docker ps -a
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

















