在 Termux 中使用手機攝像頭運行 YOLO 目標檢測,核心是調用手機攝像頭采集圖像/視頻流 + 部署 YOLO 模型推理 ,以下是可直接實踐的步驟:
1. 環(huán)境準備(Termux 內執(zhí)行)
升級 Termux 包并安裝依賴
pkg update && pkg upgrade -y pkg install python python-pip git ffmpeg libjpeg-turbo libopencv -y安裝 Python 核心庫
pip install numpy opencv-python ultralytics pillowultralytics是 YOLOv8 官方庫,支持一鍵調用模型;opencv-python用于攝像頭調用和圖像處理。
2. 授權手機攝像頭訪問
Termux 需獲取攝像頭權限,執(zhí)行以下命令:
termux-camera-photo test.jpg
- 首次執(zhí)行會彈出權限請求,選擇 允許 ;若命令生成
test.jpg文件,說明攝像頭授權成功。
3. 運行 YOLO 實時檢測代碼
創(chuàng)建 Python 腳本 yolo_camera.py:
nano yolo_camera.py
粘貼以下代碼(支持實時攝像頭流檢測):
from ultralytics import YOLO
import cv2
# 加載 YOLOv8n 輕量化模型(自動下載)
model = YOLO("yolov8n.pt")
# 調用手機攝像頭(Termux 中攝像頭索引通常為 0)
cap = cv2.VideoCapture(0)
# 設置分辨率(可選,根據手機性能調整)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# 模型推理(stream=True 提升實時性)
results = model(frame, stream=True)
# 繪制檢測框和標簽
for r in results:
boxes = r.boxes
for box in boxes:
x1, y1, x2, y2 = map(int, box.xyxy[0])
conf = box.conf[0].item()
cls = int(box.cls[0])
label = f"{model.names[cls]} {conf:.2f}"
# 畫框 + 標簽
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(frame, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 2)
# 顯示檢測結果
cv2.imshow("YOLO Camera Detection", frame)
# 按 q 退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
保存退出(Ctrl+O → 回車 → Ctrl+X)
4. 啟動檢測程序
python yolo_camera.py
- 首次運行會自動下載 YOLOv8n 模型(約 6MB);
- 若彈出實時畫面并顯示目標檢測框,說明運行成功。
常見問題排查
- 攝像頭無法調用 :
- 執(zhí)行
termux-setup-storage重新授權,或在手機設置 → 應用 → Termux → 權限 中手動開啟攝像頭權限。
- 執(zhí)行
- 推理卡頓 :
- 改用更小模型(如
yolov8n.pt),或降低分辨率(設為 480x320); - 關閉其他后臺程序,Termux 中可執(zhí)行
renice -n -10 -p $$提升進程優(yōu)先級。
- 改用更小模型(如
- 缺少依賴報錯 :
- 執(zhí)行
pip install --upgrade ultralytics opencv-python重裝庫。
- 執(zhí)行
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
模型
+關注
關注
1文章
3751瀏覽量
52093 -
目標檢測
+關注
關注
0文章
233瀏覽量
16490
發(fā)布評論請先 登錄
相關推薦
熱點推薦
YOLO5目標檢測方案-基于米爾RK3576開發(fā)板
實時性:完成從攝像頭采集→NPU推理→屏幕顯示的完整流程,耗時不超過攝像頭一幀的時間。
輸入/輸出:盡可能提高攝像頭
發(fā)表于 01-22 19:21
基于米爾MYC-LR3576開發(fā)板的實時視頻識別系統(tǒng)設計與實現
實時性視頻識別系統(tǒng)。重點解決了多路視頻流處理、NPU加速模型部署、低延遲推理等關鍵問題,在工業(yè)安
發(fā)表于 12-01 21:23
單板挑戰(zhàn)4路YOLOv8!米爾瑞芯微RK3576開發(fā)板性能實測
4.YOLOv8s-obb.float 旋轉目標檢測模型
上面已經看到了單獨解析視頻時,每一種模型效果,接下來演示MYD-LR3576通過4路攝像頭同時推導效果。
實現方式如下:MY
發(fā)表于 09-12 17:52
如何在大核rtt上把kd_mpi_vicap_start_stream三個攝像頭各自出的流拼成一個流呢?
我要3個攝像頭在同一個畫面,目前vi采集部分跑的配置攝像頭各自出的流就已經是960*540,最后啟動kd_mpi_vicap_start_stream。
四宮格排列剛好是1080p,就
發(fā)表于 09-09 07:20
【EASY EAI Orin Nano開發(fā)板試用體驗】使用stream推流代碼和WEB服務器代碼實現在客戶端網頁上查看攝像頭圖像
重點。在嵌入式系統(tǒng)中,對攝像頭圖像的推流可以用兩種方式,第一種是直接使用液晶顯示屏顯示攝像頭圖像,第二種就是在WEB服務器網頁上推
發(fā)表于 08-11 23:15
360環(huán)視技術推薦的硬件平臺:支持多攝像頭與三屏異顯的理想選擇
硬件平臺選型360環(huán)視的落地并不簡單。它不僅需要多個高清攝像頭的數據輸入,還需要穩(wěn)定的圖像處理能力、強大的AI推理能力,以及足夠多的視頻輸出接口支持顯示需求。很多開發(fā)者在選型時會遇到一
發(fā)表于 07-30 17:32
【正點原子STM32MP257開發(fā)板試用】基于 DeepLab 模型的圖像分割
== \'__main__\':
main()
效果
USB 攝像頭采集實時畫面的圖像分割推理效果
終端打印信息
動態(tài)識別效果見頂部視頻
發(fā)表于 06-21 21:11
K230micropython下能實現同時用USB攝像頭和板載攝像頭YOLO識別并顯示在IDE上嗎?
K230micropython下能實現同時用USB攝像頭和板載攝像頭YOLO識別并顯示在IDE上嗎?以及如何提高USB進行YOLO識別的幀數?
發(fā)表于 06-20 06:35
usb攝像頭輸入的圖像,哪種格式才能讓yolo正常檢測?
= yolo.run(img)這一步會導致系統(tǒng)卡死,應該是圖片格式不符合
yolo用的自訓練yolov11模型,使用默認的板載攝像頭沒有問題。
軟硬件版本信息
立創(chuàng)廬山派CANMV
發(fā)表于 06-13 07:55
請問K230D怎么將攝像頭采集的視頻數據通過串口輸出?
我連了個WiFi模塊,想要將攝像頭采集的視頻數據通過串口發(fā)送出去。之前都是用的STM32,不太會MicroPython,搞不懂對象的數據結構,求教。
發(fā)表于 04-28 06:16
K230模型同時給兩個攝像頭使用出現報錯怎么解決?
=240)。一個攝像頭rgb888p_img從它的通道2獲取用來AI推理的圖像,另一個rgb888p_img2從它的通道1獲取用來AI推理的圖像
發(fā)表于 03-11 06:14
Termux手機攝像頭采集圖像/視頻流 部署 YOLO 模型推理
評論