Coral Edge TPU
และ Ultralytics
รวมอยู่ในที่เดียว: edge-tpu-silva
edge-tpu-silva ของเราเป็นแพ็คเกจ Python ที่ทำให้การติดตั้งการพึ่งพา Coral TPU USB ง่ายขึ้น และรับประกันความเข้ากันได้กับ PyCoral และ Ultralytics แพ็คเกจนี้เพิ่มขีดความสามารถ detection
วัตถุ segmentation
และ classification
หมู่บนอุปกรณ์ Edge ต่างๆ เพื่อให้ได้ FPS
(ความเร็วโปรเซสเซอร์แบบเรียลไทม์) ที่สูงขึ้น
Coral USB Accelerator Exclusivity
:
ไลบรารี edge-tpu-silva สร้างขึ้นโดยมีจุดประสงค์เพื่อการใช้งานร่วมกับ Coral USB Accelerator ได้อย่างราบรื่น ตัวเร่งฮาร์ดแวร์อันทรงพลังนี้ไม่ได้เป็นเพียงข้อกำหนดเท่านั้น แต่ยังเป็นตัวเลือกเชิงกลยุทธ์ ซึ่งจะช่วยปลดล็อกศักยภาพสูงสุดของไลบรารีใน detection
วัตถุ segmentation
และ classification
ที่เหนือกว่า
ค้นพบ Coral USB Accelerator และสัมผัสประสบการณ์การประมวลผลที่ขอบโดยเฉพาะด้วยไลบรารี edge-tpu-silva
แพ็คเกจ edge-tpu-silva
สามารถบีบอัดได้เฉพาะกับ python versions <3.10
เท่านั้น ติดตั้งเวอร์ชัน Python เฉพาะหากเวอร์ชัน Python ของคุณเข้ากันไม่ได้
ตัวอย่าง: สำหรับ
Raspberry Pi
คุณสามารถคลิกเพื่อดูคำแนะนำเกี่ยวกับวิธีการติดตั้งเวอร์ชัน Python เฉพาะโดยใช้ pyenv
หมายเหตุ: แนะนำให้ใช้ Python 3.6 ถึง 3.9 คลิกลิงก์ด้านบนเพื่อดูวิธีติดตั้งเวอร์ชัน Python เฉพาะ
หมายเหตุ: ตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณทันสมัยอยู่เสมอ โดยรันคำสั่งด้านล่างในเทอร์มินัล
sudo apt-get updatesudo apt-get upgrade
เรียกใช้โค้ดทุบตีด้านล่างในเทอร์มินัลของคุณเพื่อสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนใหม่ชื่อ .venv
ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเร็กทอรีเฉพาะที่คุณต้องการให้ติดตั้งสภาพแวดล้อมนี้
python3 -m venv .venv
source .venv/bin/activate
หากต้องการติดตั้ง edge-tpu-silva ให้ใช้คำสั่ง pip ต่อไปนี้ในสภาพแวดล้อมหลามที่ระบุ:
pip install edge-tpu-silva
ตารางนี้แสดงภาพรวมของความเข้ากันได้ของระบบกับอุปกรณ์และระบบปฏิบัติการต่างๆ
ความเข้ากันได้ | คำสั่งตั้งค่า | |
---|---|---|
ราสเบอร์รี่ Pi 5 | silvatpu-linux-setup.php | |
ราสเบอร์รี่ Pi 4 | silvatpu-linux-setup.php | |
ราสเบอร์รี่ Pi 3 | silvatpu-linux-setup.php | |
เจ็ตสัน นาโน | silvatpu-linux-setup.php | |
หน้าต่าง | ||
ระบบปฏิบัติการ macOS |
เพื่อกำหนดค่าเครื่องมือการตั้งค่าสำหรับระบบของคุณ ให้รันคำสั่งการตั้งค่าในเทอร์มินัลหลังจากขั้นตอนที่ 1 เสร็จสิ้น
ตัวอย่าง: หากคุณใช้ Raspberry Pi 5 ให้รันคำสั่งด้านล่างในเทอร์มินัลโดยทำตามขั้นตอนที่ 1
silvatpu-linux-setup
คำสั่งจะติดตั้งรันไทม์ Edge TPU มาตรฐานสำหรับ Linux โดยใช้งานอุปกรณ์ด้วยความถี่สัญญาณนาฬิกาที่ลดลง หรือคุณสามารถติดตั้งเวอร์ชันสำหรับความเร็วสูงสุดได้ แต่ต้องระวังการใช้พลังงานและความร้อนของอุปกรณ์ที่เพิ่มขึ้น หากไม่แน่ใจ ให้ใช้ความถี่ที่ลดลงเพื่อความปลอดภัย หากต้องการติดตั้งรันไทม์ความถี่สูงสุด ให้ระบุความเร็วของคำสั่งการตั้งค่าเป็น max
silvatpu-linux-setup --speed max
คุณไม่สามารถติดตั้งรันไทม์ทั้งสองเวอร์ชันพร้อมกันได้ แต่คุณสามารถสลับได้โดยเพียงแค่ติดตั้งรันไทม์สำรองตามที่แสดงด้านบน
ข้อควรระวัง: การใช้ตัวเร่งความเร็ว USB ที่ความถี่สัญญาณนาฬิกาสูงสุดอาจทำให้เครื่องร้อนจนเป็นอันตรายได้ เพื่อป้องกันการบาดเจ็บจากไฟไหม้ ให้เก็บให้พ้นมือหรือใช้งานโดยใช้ความถี่สัญญาณนาฬิกาลดลง
หมายเหตุ: โปรดตรวจสอบให้แน่ใจว่าคุณได้เชื่อมต่อ
Coral USB Accelerator
ผ่านusb 3.0 port (for faster speed)
หากมีการเชื่อมต่อ Coral USB Accelerator ระหว่างการติดตั้งและการตั้งค่า โปรดยกเลิกการเชื่อมต่อและเชื่อมต่อใหม่เพื่อให้แน่ใจว่าproper configuration.
หากต้องการปลดปล่อยพลังของ detection
วัตถุ segmentation
และ classification
ด้วยไลบรารีนี้ คุณจะต้องมีโมเดล .tflite ที่เข้ากันได้กับ Edge TPU ควรส่งออกโมเดลเหล่านี้โดยใช้ Ultralytics
เพื่อให้มั่นใจว่าสามารถผสานรวมกับไลบรารี edge-tpu-silva ได้อย่างราบรื่น
หมายเหตุ: โปรดทราบว่าค่า
imgsz
ที่ระบุระหว่างการส่งออก YOLO ควรสอดคล้องกับค่าเดียวกับที่ใช้เมื่อกำหนดimgsz
สำหรับกระบวนการใดๆ ความสม่ำเสมอในการตั้งค่าเหล่านี้เป็นสิ่งสำคัญสำหรับประสิทธิภาพสูงสุด
รุ่นเล็กจะทำงานเร็วกว่าแต่อาจมีความแม่นยำต่ำกว่า ในขณะที่รุ่นใหญ่จะทำงานช้ากว่าแต่โดยทั่วไปจะมีความแม่นยำสูงกว่า สำรวจความสามารถของ Edge Computing ด้วยรุ่นด้านล่างโดยใช้ไลบรารี Edge-tpu-silva
ลิงค์ดาวน์โหลด | กระบวนการ | โมเดลพื้นฐาน | imgsz | คลาสออบเจ็กต์ |
---|---|---|---|---|
ดาวน์โหลดโมเดล | การตรวจจับ | yolov8n.pt | 240 | โคโค่128 |
ดาวน์โหลดโมเดล | การแบ่งส่วน | yolov8n-seg.pt | 240 | โคโค่128 |
ดาวน์โหลดโมเดล | การตรวจจับ | yolov8n.pt | 192 | โคโค่128 |
ดาวน์โหลดโมเดล | การแบ่งส่วน | yolov8n-seg.pt | 192 | โคโค่128 |
ดาวน์โหลดโมเดล | การจำแนกประเภท | yolov8n-cls.pt | 640 | อิมเมจเน็ต |
ดาวน์โหลดโมเดล | การตรวจจับ | yolov9c.pt | 240 | โคโค่128 |
หมายเหตุ: รุ่น YOLOv9 โดยเฉพาะรุ่น YOLOv9c.pt มีขนาดใหญ่มาก ซึ่งทำให้รุ่น TensorFlow Lite มีขนาดค่อนข้างใหญ่เช่นกัน ส่งผลให้ความเร็วในการประมวลผลบน Edge TPU ค่อนข้างช้ากว่า
หากต้องการดำเนินการตรวจจับวัตถุโดยใช้ฟังก์ชัน process_detection
คุณสามารถทำตามตัวอย่างนี้:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
ใน Terminal: การใช้จุดเริ่มต้น "silvatpu" หากต้องการดำเนินการตรวจจับอ็อบเจ็กต์ด้วยฟังก์ชัน process_detection
จากบรรทัดคำสั่ง คุณสามารถใช้ entry point silvatpu
ที่ใช้งานง่าย นี่คือคำสั่งตัวอย่าง:
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
หากต้องการดำเนินการแบ่งส่วนออบเจ็กต์โดยใช้ฟังก์ชัน process_segmentation
คุณสามารถทำตามตัวอย่างนี้:
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
ใน Terminal: การใช้จุดเริ่มต้น "silvatpu" หากต้องการดำเนินการแบ่งส่วนอ็อบเจ็กต์ด้วยฟังก์ชัน process_segmentation
จากบรรทัดรับคำสั่ง คุณสามารถใช้ entry point silvatpu
ที่ใช้งานง่าย นี่คือคำสั่งตัวอย่าง:
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
กระบวนการ segmentation
และ classification
ฟังก์ชัน พารามิเตอร์อินพุตพารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
model_path | เส้นทางไปยังโมเดลการแบ่งส่วนออบเจ็กต์ | - |
input_path | เส้นทางไฟล์ของรูปภาพ/วิดีโอที่จะประมวลผล (กล้อง(0|1|2)) | - |
imgsz | กำหนดขนาดภาพสำหรับการอนุมาน | - |
threshold | เกณฑ์สำหรับวัตถุที่ตรวจพบ | 0.4 |
verbose | แสดงการพิมพ์ไปยังเครื่องเทอร์มินัล | True |
show | กรอบแสดงผลแบบแบ่งส่วน | False |
classes | กรองการทำนายไปยังชุดรหัสคลาส | None |
detection
กระบวนการ segmentation
และ classification
ฟังก์ชันเอาท์พุตแต่ละฟังก์ชันกระบวนการให้ผลลัพธ์ต่อไปนี้:
พารามิเตอร์เอาท์พุต | คำอธิบาย |
---|---|
objs_lst | รายการวัตถุที่ตรวจพบในเฟรม |
fps | เฟรมต่อวินาที (fps) ของเฟรมที่ประมวลผล |
ตัวอย่างการใช้งาน:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
ยินดีบริจาค! หากคุณพบปัญหาใดๆ หรือมีข้อเสนอแนะในการปรับปรุง โปรดเปิดปัญหาหรือส่งคำขอดึง
ผู้ดูแลดัชนีแพ็คเกจ Python (c) [2024] David Nyarko