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