kiến thức Hướng dẫn build yolo26 để chạy với Frigate, nhẹ hơn, chính xác hơn các model hiện tại, thích hợp để chạy trên chục cam trên máy yếu như n150

  • Người tạo chủ đề Người tạo chủ đề Ln28909
  • Ngày bắt đầu Ngày bắt đầu

Ln28909

Senior Member
Ultralytics có ra mắt model mới yolo26 vào đầu năm nay, với độ chính xác cao hơn và nhẹ hơn các model hiện tại official support bởi Frigate như yolov9 và mobilenet.

1 chút background tại sao frigate lại ko thể official support model mới này khi nó gần như tốt hơn toàn diện các model cũ trong object detection. Hiện tại Frigate đang dùng MIT license có thể giữ 1 vài tính năng của frigate closed source (Frigate+) và điều này có vấn đề pháp lý với các model mới như yolo26 vì các model này có AGPL 3.0 và yêu cầu tất cả mọi tính năng phải dc open source.

So sánh giữa Yolo26n-320 và mobilnetv2:
  • mobilenetv2 là model nhẹ nhất official support bởi Frigate và là model dc recommend cho các máy cấu hình thấp và ko dùng egpu/coral tpu như n150
  • Tốc độ: 2 model có tốc độ inference khá tương đương (~11.5ms)
  • Chính xác: yolo26 là vượt trội, mobilenet thường hay có false positive, ví dụ: mobilenet có thể nhầm xe máy là con người, ko thể nhận diện dc cái vật nhỏ như chim sẻ, còn yolo26 thì mình thấy chính xác gần như 100% ko có false positive với các object phổ biến như chim, người, xe máy, xe hơi
mobilenetv2
mobilenetv2.webp

yolo26n
yolo26n-320.webp


So sánh giữa Yolo26n-320 vs yolov9-t-320:
  • yolov9-t-320 là model chính xác nhất official support bởi frigate và dc recommend cho các máy cấu hình thấp ko egpu/coral tpu
  • Tốc độ: yolov9-t-320 có tốc độ inference ~ 15ms, chậm hơn khoảng 30% với yolo26n-320
  • Chính xác: theo thông số từ Ultralytics, thì yolo26n chính xác hơn khoảng 7% so với yolov9t, khi dùng thực tế thì mình cũng chưa thấy sự khác biệt gì quá rõ rệt
yolov9t
yolov9t.webp


Kết luận:
So với 2 model official support bởi Frigate thì yolo26 sẽ có chính xác hơn với tốc độ tương đương hoặc là chính xác tương đương với tốc độ nhanh hơn. Với tốc độ inference 11.5ms tương đương có thể detect 87 fps, tương đương 17 camera ở detect fps:5 / 43 camera ở detect fps:2.

Nên theo lý thuyết 1 con n150 khá yếu có thể chạy trơn tru trên 40 camera nếu nhu cầu chỉ là record và detect các object cơ bản, nếu ai có sẵn 40 cam thì có thể test thử xem đúng ko vì mình chỉ có 8 cam thôi:)


Hướng dẫn build model yolo26 trên debian 13:

Cài các phần mềm cần thiết:
sudo apt update
sudo apt install -y libgl1 libglib2.0-0 curl wget
Cài uv và env để build tool mà ko ảnh hưởng đến các phần mềm khác của máy
mkdir -p ~/yolo26build
cd ~/yolo26build
uv venv --python 3.11
source .venv/bin/activate
Kiểm tra đã active env và python 3.11.x
(yolo26build) username@pc: ~/yolo26build$
python --version
Python 3.11.x
Cài các phần mềm cần thiết trong env
python -m ensurepip --upgrade
python -m pip install --upgrade pip
python -m pip install \
ultralytics==8.4.60 \
onnx==1.17.0 \
onnxsim \
openvino==2025.0.0
Tải yolo26n.pt từ github
Tạo script để export .pt thành .onnx cho Frigate
Python:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

model.export(
    format="onnx",
    imgsz=320,
    opset=12,
    simplify=True,
    dynamic=False,
    half=True,
    nms=False,
    end2end=False
)
python export.py
Kiểm tra folder bằng ls sẽ thấy file yolo26n.onnx
Kiểm tra xem .onnx có tương thích với Frigate ko
Python:
python - <<'PY'
import onnx
m = onnx.load("yolo26n.onnx")
for o in m.graph.output:
    print(o.name, [d.dim_value for d in o.type.tensor_type.shape.dim])
PY
Output mong muốn
Output [1, 84, xxxx]
Output [1,300,xxxx] là sẽ ko dùng dc với Frigate

Đổi tên và chuyển vào folder Frigate
mv yolo26s.onnx yolo26n-320.onnx
mv yolo26n-320.onnx /path-to-frigate/config/model_cache/
Trong frigate config.yml
Mã:
model:
  path: /config/model_cache/yolo26n-320.onnx
  width: 320
  height: 320
  model_type: yolo-generic
  input_tensor: nchw
  input_dtype: float
  labelmap_path: /labelmap/coco-80.txt
 
Sửa lần cuối:
Thế có phải tự build file onnx 26 ko b? Không thì b cho m xin file của b luôn với
 
Ultralytics có ra mắt model mới yolo26 vào đầu năm nay, với độ chính xác cao hơn và nhẹ hơn các model hiện tại official support bởi Frigate như yolov9 và mobilenet.

1 chút background tại sao frigate lại ko thể official support model mới này khi nó gần như tốt hơn toàn diện các model cũ trong object detection. Hiện tại Frigate đang dùng MIT license có thể giữ 1 vài tính năng của frigate closed source (Frigate+) và điều này có vấn đề pháp lý với các model mới như yolo26 vì các model này có AGPL 3.0 và yêu cầu tất cả mọi tính năng phải dc open source.

So sánh giữa Yolo26n-320 và mobilnetv2:
  • mobilenetv2 là model nhẹ nhất official support bởi Frigate và là model dc recommend cho các máy cấu hình thấp và ko dùng egpu/coral tpu như n150
  • Tốc độ: 2 model có tốc độ inference khá tương đương (~11.5ms)
  • Chính xác: yolo26 là vượt trội, mobilenet thường hay có false positive, ví dụ: mobilenet có thể nhầm xe máy là con người, ko thể nhận diện dc cái vật nhỏ như chim sẻ, còn yolo26 thì mình thấy chính xác gần như 100% ko có false positive với các object phổ biến như chim, người, xe máy, xe hơi
mobilenetv2
Xem tệp đính kèm 3645872
yolo26n
Xem tệp đính kèm 3645874

So sánh giữa Yolo26n-320 vs yolov9-t-320:
  • yolov9-t-320 là model chính xác nhất official support bởi frigate và dc recommend cho các máy cấu hình thấp ko egpu/coral tpu
  • Tốc độ: yolov9-t-320 có tốc độ inference ~ 15ms, chậm hơn khoảng 30% với yolo26n-320
  • Chính xác: theo thông số từ Ultralytics, thì yolo26n chính xác hơn khoảng 7% so với yolov9t, khi dùng thực tế thì mình cũng chưa thấy sự khác biệt gì quá rõ rệt
yolov9t
Xem tệp đính kèm 3645879

Kết luận:
So với 2 model official support bởi Frigate thì yolo26 sẽ có chính xác hơn với tốc độ tương đương hoặc là chính xác tương đương với tốc độ nhanh hơn. Với tốc độ inference 11.5ms tương đương có thể detect 87 fps, tương đương 17 camera ở detect fps:5 / 43 camera ở detect fps:2.

Nên theo lý thuyết 1 con n150 khá yếu có thể chạy trơn tru trên 40 camera nếu nhu cầu chỉ là record và detect các object cơ bản, nếu ai có sẵn 40 cam thì có thể test thử xem đúng ko vì mình chỉ có 8 cam thôi:)


Hướng dẫn build model yolo26 trên debian 13:

Cài các phần mềm cần thiết:


Cài uv và env để build tool mà ko ảnh hưởng đến các phần mềm khác của máy


Kiểm tra đã active env và python 3.11.x


Cài các phần mềm cần thiết trong env

Tải yolo26n.pt từ github

Tạo script để export .pt thành .onnx cho Frigate

Python:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

model.export(
    format="onnx",
    imgsz=320,
    opset=12,
    simplify=True,
    dynamic=False,
    half=True,
    nms=False,
    end2end=False
)

Kiểm tra folder bằng ls sẽ thấy file yolo26n.onnx

Kiểm tra xem .onnx có tương thích với Frigate ko
Python:
python - <<'PY'
import onnx
m = onnx.load("yolo26n.onnx")
for o in m.graph.output:
    print(o.name, [d.dim_value for d in o.type.tensor_type.shape.dim])
PY
Output mong muốn

Output [1,300,xxxx] là sẽ ko dùng dc với Frigate

Đổi tên và chuyển vào folder Frigate

Trong frigate config.yml
Mã:
model:
  path: /config/model_cache/yolo26n-320.onnx
  width: 320
  height: 320
  model_type: yolo-generic
  input_tensor: nchw
  input_dtype: float
  labelmap_path: /labelmap/coco-80.txt
không nhất thiết phải kéo về chạy tay đâu thím, vứt lên github tạo cái actions cho nó tự release là được
ZJqL4rW.png
. Có version mới tự kéo về buildfile mới luôn
 
tốc độ inference là tùy vào chip và igpu của chip à bạn, mình cài theo mô hình này cho 8 cam trên i3 6100 thì được 15ms
 
tốc độ inference là tùy vào chip và igpu của chip à bạn, mình cài theo mô hình này cho 8 cam trên i3 6100 thì được 15ms
tốc độ inference là tùy thuộc vào tốc độ igpu/cpu/npu fen, và số lượng cam thường sẽ ko ảnh hưởng đến tốc độ inference

ví dụ với inference 15ms, nghĩa là máy có thể inference 66 frame/s, ở cấu hình mặc định thì 1 cam sẽ feed 5 frame/s, thì fen có thể inference tầm 12-13 cam với tốc độ inference này, và có 1 cam đi chăng nữa thì inference vẫn sẽ là 15ms
 
tốc độ inference là tùy thuộc vào tốc độ igpu/cpu/npu fen, và số lượng cam thường sẽ ko ảnh hưởng đến tốc độ inference

ví dụ với inference 15ms, nghĩa là máy có thể inference 66 frame/s, ở cấu hình mặc định thì 1 cam sẽ feed 5 frame/s, thì fen có thể inference tầm 12-13 cam với tốc độ inference này, và có 1 cam đi chăng nữa thì inference vẫn sẽ là 15ms
đa tạ thím thông não, hôm giờ cài cũng k hiểu chỉ số này lắm kkkk
 
Ultralytics có ra mắt model mới yolo26 vào đầu năm nay, với độ chính xác cao hơn và nhẹ hơn các model hiện tại official support bởi Frigate như yolov9 và mobilenet.

1 chút background tại sao frigate lại ko thể official support model mới này khi nó gần như tốt hơn toàn diện các model cũ trong object detection. Hiện tại Frigate đang dùng MIT license có thể giữ 1 vài tính năng của frigate closed source (Frigate+) và điều này có vấn đề pháp lý với các model mới như yolo26 vì các model này có AGPL 3.0 và yêu cầu tất cả mọi tính năng phải dc open source.

So sánh giữa Yolo26n-320 và mobilnetv2:
  • mobilenetv2 là model nhẹ nhất official support bởi Frigate và là model dc recommend cho các máy cấu hình thấp và ko dùng egpu/coral tpu như n150
  • Tốc độ: 2 model có tốc độ inference khá tương đương (~11.5ms)
  • Chính xác: yolo26 là vượt trội, mobilenet thường hay có false positive, ví dụ: mobilenet có thể nhầm xe máy là con người, ko thể nhận diện dc cái vật nhỏ như chim sẻ, còn yolo26 thì mình thấy chính xác gần như 100% ko có false positive với các object phổ biến như chim, người, xe máy, xe hơi
mobilenetv2
Xem tệp đính kèm 3645872
yolo26n
Xem tệp đính kèm 3645874

So sánh giữa Yolo26n-320 vs yolov9-t-320:
  • yolov9-t-320 là model chính xác nhất official support bởi frigate và dc recommend cho các máy cấu hình thấp ko egpu/coral tpu
  • Tốc độ: yolov9-t-320 có tốc độ inference ~ 15ms, chậm hơn khoảng 30% với yolo26n-320
  • Chính xác: theo thông số từ Ultralytics, thì yolo26n chính xác hơn khoảng 7% so với yolov9t, khi dùng thực tế thì mình cũng chưa thấy sự khác biệt gì quá rõ rệt
yolov9t
Xem tệp đính kèm 3645879

Kết luận:
So với 2 model official support bởi Frigate thì yolo26 sẽ có chính xác hơn với tốc độ tương đương hoặc là chính xác tương đương với tốc độ nhanh hơn. Với tốc độ inference 11.5ms tương đương có thể detect 87 fps, tương đương 17 camera ở detect fps:5 / 43 camera ở detect fps:2.

Nên theo lý thuyết 1 con n150 khá yếu có thể chạy trơn tru trên 40 camera nếu nhu cầu chỉ là record và detect các object cơ bản, nếu ai có sẵn 40 cam thì có thể test thử xem đúng ko vì mình chỉ có 8 cam thôi:)


Hướng dẫn build model yolo26 trên debian 13:

Cài các phần mềm cần thiết:


Cài uv và env để build tool mà ko ảnh hưởng đến các phần mềm khác của máy


Kiểm tra đã active env và python 3.11.x


Cài các phần mềm cần thiết trong env

Tải yolo26n.pt từ github

Tạo script để export .pt thành .onnx cho Frigate

Python:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

model.export(
    format="onnx",
    imgsz=320,
    opset=12,
    simplify=True,
    dynamic=False,
    half=True,
    nms=False,
    end2end=False
)

Kiểm tra folder bằng ls sẽ thấy file yolo26n.onnx

Kiểm tra xem .onnx có tương thích với Frigate ko
Python:
python - <<'PY'
import onnx
m = onnx.load("yolo26n.onnx")
for o in m.graph.output:
    print(o.name, [d.dim_value for d in o.type.tensor_type.shape.dim])
PY
Output mong muốn

Output [1,300,xxxx] là sẽ ko dùng dc với Frigate

Đổi tên và chuyển vào folder Frigate

Trong frigate config.yml
Mã:
model:
  path: /config/model_cache/yolo26n-320.onnx
  width: 320
  height: 320
  model_type: yolo-generic
  input_tensor: nchw
  input_dtype: float
  labelmap_path: /labelmap/coco-80.txt
Cho mình hỏi file coco-80.txt lấy đâu cho mình xin
Cảm ơn
 
Bản này có nhận diện dc face không bác? Vừa đọc lại thấy bảo là Frigate+ mới hỗ trợ nhận face á.
 

Thống kê chủ đề

Ngày tạo
Ln28909,
Người trả lời cuối
Counter-Strike,
Trả lời
23
Lượt xem
6.154
Quay lại
Lên đầu trang