在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用命令行界面和Python對(duì)實(shí)時(shí)網(wǎng)絡(luò)攝像頭中的物體進(jìn)行檢測(cè)

新機(jī)器視覺(jué) ? 來(lái)源:小白玩轉(zhuǎn)Python ? 2023-05-15 09:15 ? 次閱讀

介紹

目標(biāo)檢測(cè)計(jì)算機(jī)視覺(jué)的一個(gè)子領(lǐng)域,主要涉及在圖像或視頻中以一定的置信度識(shí)別和定位物體。識(shí)別出的物體通常帶有一個(gè)邊界框,提供了關(guān)于物體在場(chǎng)景中的性質(zhì)和位置的信息。

自2015年YOLO(You Only Look Once)問(wèn)世以來(lái),它的系統(tǒng)以驚人的準(zhǔn)確性和速度實(shí)現(xiàn)了實(shí)時(shí)目標(biāo)檢測(cè),震驚了計(jì)算機(jī)視覺(jué)領(lǐng)域。自那時(shí)以來(lái),YOLO已經(jīng)進(jìn)行了多次改進(jìn),提高了預(yù)測(cè)準(zhǔn)確性和效率,最終推出了最新的成員:Ultralytics的YOLOv8。

YOLOv8有五個(gè)版本:nano(n)、small(s)、medium(m)、large(l)和extra large(x)。它們的改進(jìn)分別可以通過(guò)它們?cè)贑OCO val2017數(shù)據(jù)集上的平均精度(mAP)和延遲進(jìn)行評(píng)估。

b7d3a29e-f2b5-11ed-90ce-dac502259ad0.png

與以前的版本相比,YOLOv8不僅更快、更準(zhǔn)確,而且實(shí)現(xiàn)這一性能所需的參數(shù)更少,而且還配備了直觀易用的命令行界面(CLI)和Python軟件包,為用戶和開(kāi)發(fā)人員提供更無(wú)縫的體驗(yàn)。

在本文中,我將演示如何使用CLI和Python來(lái)應(yīng)用YOLOv8來(lái)檢測(cè)靜態(tài)圖像、視頻和實(shí)時(shí)網(wǎng)絡(luò)攝像頭中的物體。

安裝

要開(kāi)始使用YOLOv8,您只需要在終端中運(yùn)行以下命令即可:

pip install ultralytics

這將通過(guò)ultralytics pip包安裝YOLOv8。

圖像檢測(cè)

靜態(tài)圖像中的目標(biāo)檢測(cè)在各種領(lǐng)域(如監(jiān)控、醫(yī)學(xué)成像或零售分析)中已被證明是有用的。無(wú)論您選擇在哪個(gè)領(lǐng)域應(yīng)用您的檢測(cè)系統(tǒng),YOLOv8都使您可以輕松實(shí)現(xiàn)。下面是我們要對(duì)其進(jìn)行目標(biāo)檢測(cè)的原始圖像:一張擁擠城市中的交通照片。

為了運(yùn)行YOLOv8,我們將研究CLI和Python兩種實(shí)現(xiàn)方式。雖然在這種特定情況下我們將使用jpg圖像,但YOLOv8支持各種不同的圖像格式。

CLI

假設(shè)我們想在一張圖片上運(yùn)行超大型的YOLOv8x(我們將其命名為img.jpg),則可以在CLI中輸入以下命令:

yolo detect predict model=yolov8x.pt source="img.jpg" save=True

在這里,我們指定以下參數(shù):detect用于物體檢測(cè),predict用于執(zhí)行預(yù)測(cè)任務(wù),model用于選擇模型版本,source用于提供我們圖片的文件路徑,save用于保存處理過(guò)的圖片及其對(duì)象的邊界框以及它們的預(yù)測(cè)類別和類別概率。

Python

在Python中,可以使用以下直觀且低代碼的解決方案實(shí)現(xiàn)完全相同的任務(wù):

from ultralytics import YOLO


model = YOLO('yolov8x.pt')
results = model('img.jpg', save=True)

無(wú)論是使用CLI還是Python,

我們可以清楚地看到它檢測(cè)到的每個(gè)對(duì)象周圍的邊界框,以及它們對(duì)應(yīng)的類標(biāo)簽和概率。

視頻檢測(cè)

在視頻文件上執(zhí)行對(duì)象檢測(cè)與圖像文件幾乎相同,唯一的區(qū)別是源文件格式。與圖像一樣,YOLOv8支持各種不同的視頻格式,可以作為模型的輸入進(jìn)行處理。在我們的情況下,我們將使用mp4文件。

讓我們?cè)俅慰匆幌翪LI和Python實(shí)現(xiàn)。為了更快的計(jì)算,我們現(xiàn)在將使用YOLOv8m模型,而不是特別大的版本。

CLI

yolo detect predict model=yolov8m.pt source="vid.mp4" save=True

python

from ultralytics import YOLO


model = YOLO('yolov8m.pt')
results = model('vid.mp4', save=True)

首先,在進(jìn)行物體檢測(cè)之前,讓我們檢查一下我們的原始 vid.mp4 文件:

視頻顯示了一個(gè)繁忙的城市場(chǎng)景,包括汽車、公交車、卡車和騎自行車的人,以及右側(cè)的一些人顯然在等公交車。在使用 YOLOv8 的中等版本處理此文件后,我們得到了以下結(jié)果。

b90570ac-f2b5-11ed-90ce-dac502259ad0.png

同樣,我們可以看到 YOLOv8m 在準(zhǔn)確捕捉場(chǎng)景中的對(duì)象方面做得非常好。它甚至可以檢測(cè)到作為較大整體的一部分的較小的物體,例如騎自行車的人佩戴的背包。

實(shí)時(shí)檢測(cè)

最后,讓我們看一下在實(shí)時(shí)網(wǎng)絡(luò)攝像頭視頻中檢測(cè)對(duì)象所需的內(nèi)容。為此,我將使用我的個(gè)人網(wǎng)絡(luò)攝像頭,就像之前一樣,既有 CLI 方法,也有 Python 方法。為了減少延遲并減少視頻中的滯后,我將使用輕量級(jí)的 YOLOv8 的納米版本。

CLI

yolo detect predict model=yolov8n.pt source=0 show=True

這些參數(shù)大部分與我們上面看到的用于圖像和視頻文件的參數(shù)相同,唯一不同的是source參數(shù),它允許我們指定要使用哪個(gè)視頻源。在我的情況下,它是內(nèi)置網(wǎng)絡(luò)攝像頭(0)。

python

from ultralytics import YOLO


model = YOLO('yolov8n.pt')
model.predict(source="0", show=True)

同樣,我們可以使用超低代碼的Python解決方案執(zhí)行相同的任務(wù)。

這里有一張 YOLOv8n 在實(shí)時(shí)網(wǎng)絡(luò)攝像頭源上的示例圖。

ba85079e-f2b5-11ed-90ce-dac502259ad0.png

太棒了!盡管視頻質(zhì)量較低,光照條件不佳,YOLOv8仍然能夠很好地捕捉到對(duì)象,甚至還能檢測(cè)到背景中的一些物體,例如左側(cè)的橄欖油和醋瓶以及右側(cè)的水槽。

值得注意的是,盡管這些直觀的CLI命令和低代碼Python解決方案是快速開(kāi)始對(duì)象檢測(cè)任務(wù)的好方法,但它們?cè)谶M(jìn)行自定義配置時(shí)存在一定的局限性。例如,如果我們想要配置邊界框的美學(xué)效果或執(zhí)行簡(jiǎn)單的任務(wù),例如計(jì)算和顯示在任何給定時(shí)間檢測(cè)到的對(duì)象數(shù)量,我們將不得不使用諸如cv2或supervision等包來(lái)編寫(xiě)自己的自定義實(shí)現(xiàn)。

實(shí)際上,上面的網(wǎng)絡(luò)攝像頭錄像是使用以下Python代碼記錄的,以調(diào)整網(wǎng)絡(luò)攝像頭的分辨率和自定義定義邊界框及其注釋。(注:這主要是為了使上面的GIF更具表現(xiàn)力。上面顯示的CLI和Python實(shí)現(xiàn)足以產(chǎn)生類似的結(jié)果。)

import cv2
import supervision as sv
from ultralytics import YOLO




def main():
    
    # to save the video
    writer= cv2.VideoWriter('webcam_yolo.mp4', 
                            cv2.VideoWriter_fourcc(*'DIVX'), 
                            7, 
                            (1280, 720))
    
    # define resolution
    cap = cv2.VideoCapture(0)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)


    # specify the model
    model = YOLO("yolov8n.pt")


    # customize the bounding box
    box_annotator = sv.BoxAnnotator(
        thickness=2,
        text_thickness=2,
        text_scale=1
    )




    while True:
        ret, frame = cap.read()
        result = model(frame, agnostic_nms=True)[0]
        detections = sv.Detections.from_yolov8(result)
        labels = [
            f"{model.model.names[class_id]} {confidence:0.2f}"
            for _, confidence, class_id, _
            in detections
        ]
        frame = box_annotator.annotate(
            scene=frame, 
            detections=detections, 
            labels=labels
        ) 
        
        writer.write(frame)
        
        cv2.imshow("yolov8", frame)


        if (cv2.waitKey(30) == 27): # break with escape key
            break
            
    cap.release()
    writer.release()
    cv2.destroyAllWindows()
    
if __name__ == "__main__":
    main()

結(jié)論

YOLOv8不僅在準(zhǔn)確性和速度方面優(yōu)于其前身,而且還通過(guò)極易使用的CLI和低代碼Python解決方案大大提高了用戶體驗(yàn)。它還提供五種不同的模型版本,使用戶有機(jī)會(huì)根據(jù)其個(gè)人需求和對(duì)延遲和準(zhǔn)確性的容忍度進(jìn)行選擇。

無(wú)論您的目標(biāo)是在靜態(tài)圖像、視頻或現(xiàn)場(chǎng)網(wǎng)絡(luò)攝像頭上執(zhí)行對(duì)象檢測(cè),YOLOv8都能夠以無(wú)縫的方式完成。但是,如果您的應(yīng)用程序需要自定義配置,則可能需要使用其他計(jì)算機(jī)視覺(jué)包,例如cv2和supervision。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 計(jì)算機(jī)視覺(jué)

    關(guān)注

    8

    文章

    1700

    瀏覽量

    46131
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040
  • CLI
    CLI
    +關(guān)注

    關(guān)注

    1

    文章

    79

    瀏覽量

    8600

原文標(biāo)題:目標(biāo)檢測(cè):如何有效實(shí)現(xiàn)YOLOv8

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何從攝像頭中獲取圖像并保存和實(shí)時(shí)顯示

    開(kāi)發(fā)環(huán)境,包括相關(guān)源的更新,庫(kù)的安裝,按照上次blog中的介紹,安裝好Python-opencv和導(dǎo)入cv2庫(kù)后,就可以進(jìn)行接下來(lái)我們今天的學(xué)習(xí)了,今天將叫大家進(jìn)一步實(shí)現(xiàn)如何從攝像頭中獲取圖像,同時(shí)
    發(fā)表于 09-25 15:15

    labview 調(diào)用命令行燒錄時(shí)如何實(shí)時(shí)顯示過(guò)程和進(jìn)度?

    例如使用命令行進(jìn)行自動(dòng)燒錄時(shí),利用系統(tǒng)命令VI可以實(shí)現(xiàn)控制燒錄器自動(dòng)燒錄,但是命令行運(yùn)行后會(huì)跳出命令提示符但是不會(huì)顯示燒錄的過(guò)程和進(jìn)度,只有當(dāng)燒錄結(jié)束后才會(huì)在輸出端子出輸出整個(gè)燒錄的過(guò)
    發(fā)表于 08-29 11:54

    cmd網(wǎng)絡(luò)經(jīng)典命令行

    cmd網(wǎng)絡(luò)經(jīng)典命令行:
    發(fā)表于 06-11 15:17 ?36次下載
    cmd<b class='flag-5'>網(wǎng)絡(luò)</b>經(jīng)典<b class='flag-5'>命令行</b>

    用命令行管理IIS的FTP站點(diǎn)

    用命令行管理IIS的FTP站點(diǎn)   為了實(shí)現(xiàn)在Internet中快速共享網(wǎng)絡(luò)資源的目的,很多用戶使用IIS服務(wù)器內(nèi)置的FTP組件架設(shè)FTP服務(wù)器。
    發(fā)表于 01-30 17:25 ?963次閱讀

    如何使用命令行在Linux中查找文件?

    對(duì)于Linux新用戶來(lái)說(shuō),在Linux中查找文件可能有點(diǎn)困難。但是,在適當(dāng)?shù)闹笇?dǎo)下,任何人都可以創(chuàng)建文件快捷方式或找到其Linux系統(tǒng)中有多少文件。 我們必須使用命令行來(lái)查找文件或特定文件名。也稱為
    的頭像 發(fā)表于 03-23 14:55 ?4327次閱讀

    如何在Linux命令行中運(yùn)行Python腳本

    Python 是一種高級(jí)編程語(yǔ)言,被廣泛應(yīng)用于數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、Web 開(kāi)發(fā)等領(lǐng)域。在 Linux 操作系統(tǒng)中,Python 是一個(gè)默認(rèn)安裝的解釋器,用戶可以通過(guò)命令行界面(CLI)
    的頭像 發(fā)表于 05-12 14:49 ?1758次閱讀

    OneCommand Manager命令行界面用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《OneCommand Manager命令行界面用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 08-22 11:09 ?0次下載
    OneCommand Manager<b class='flag-5'>命令行</b><b class='flag-5'>界面</b>用戶手冊(cè)

    OneCommand ManagerCommand命令行界面 版本10.6

    電子發(fā)燒友網(wǎng)站提供《OneCommand ManagerCommand命令行界面 版本10.6.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 10:52 ?0次下載
    OneCommand ManagerCommand<b class='flag-5'>命令行</b><b class='flag-5'>界面</b> 版本10.6

    用命令行工具ADB(Android Debug Bridge)常見(jiàn)的ADB命令

    ADB(Android Debug Bridge)是一種通用命令行工具,可以讓您通過(guò)計(jì)算機(jī)與設(shè)備通信。
    的頭像 發(fā)表于 11-05 11:26 ?1640次閱讀

    linux命令行與shell編程實(shí)戰(zhàn)

    Linux命令行與Shell編程實(shí)戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行的基本操作,如文件管理、進(jìn)程管理、網(wǎng)絡(luò)配置等。熟悉使
    的頭像 發(fā)表于 11-08 10:57 ?842次閱讀

    linux虛擬機(jī)怎么調(diào)出命令行

    快捷鍵組合Ctrl+Alt+F1 6來(lái)切換到命令行界面。如果系統(tǒng)在虛擬機(jī)中,則可以使用Ctrl+Alt+shift+F1 6組合鍵來(lái)切換到命令行界面。在
    的頭像 發(fā)表于 11-08 11:28 ?3202次閱讀

    linux虛擬機(jī)命令行界面如何操作

    Linux虛擬機(jī)是一種運(yùn)行在虛擬化環(huán)境下的操作系統(tǒng),與物理機(jī)器相似,它也有一個(gè)命令行界面,也稱為終端或控制臺(tái)。通過(guò)命令行界面,您可以使用命令
    的頭像 發(fā)表于 11-17 09:57 ?1789次閱讀

    pycharm命令行終端運(yùn)行代碼

    Python是一種非常流行的編程語(yǔ)言,許多開(kāi)發(fā)者使用它來(lái)編寫(xiě)各種應(yīng)用程序和腳本。為了方便開(kāi)發(fā)者編寫(xiě)和測(cè)試代碼,PyCharm是一種集成開(kāi)發(fā)環(huán)境(IDE),它提供了許多功能和工具,其中包括命令行終端
    的頭像 發(fā)表于 11-22 11:20 ?5067次閱讀

    eclipse怎么使用命令行

    命令行中使用Eclipse來(lái)完成一些特定的任務(wù)。本文將詳細(xì)介紹如何在命令行中使用Eclipse。 首先,我們需要確保已經(jīng)正確安裝了JDK(Java Development Kit)和Eclipse
    的頭像 發(fā)表于 12-06 11:26 ?2857次閱讀

    HarmonyOS開(kāi)發(fā):【基于命令行(安裝庫(kù)和工具集)】

    使用命令行進(jìn)行設(shè)備開(kāi)發(fā)時(shí),可以通過(guò)以下步驟安裝編譯OpenHarmony需要的庫(kù)和工具。
    的頭像 發(fā)表于 04-25 21:03 ?484次閱讀
    HarmonyOS開(kāi)發(fā):【基于<b class='flag-5'>命令行</b>(安裝庫(kù)和工具集)】
    主站蜘蛛池模板: 国产性色视频 | 国产精品青草久久久久福利99 | 日本五十交尾在线观看 | 九九热在线免费视频 | 天天干在线免费视频 | 欧美午夜视频在线 | 久久777国产线看观看精品卜 | 久久影院午夜伦手机不四虎卡 | 国产中文字幕一区 | 玖玖在线国产精品 | aaa级片| 亚州三级视频 | 五月欧美激激激综合网色播 | 天堂网在线资源 | 久久婷婷综合中文字幕 | 日韩毛片免费视频 | 黄色三级视频在线观看 | 国产三级日本三级在线播放 | 久精品视频村上里沙 | 国产乱辈通伦影片在线播放亚洲 | 在线免费观看毛片网站 | 日本在线不卡免 | 91久久婷婷国产综合精品青草 | 天天在线精品视频在线观看 | 午夜宅男视频 | 国模视频在线 | 久久久久久久久久久观看 | 性欧美激情在线观看 | 夜夜五月天 | 国产精品资源在线 | 在线永久免费播放视频 | 一区二区三区在线观看视频 | 国产成人无精品久久久久国语 | 精品成人在线观看 | 久久99久久精品国产99热 | 1024视频在线观看国产成人 | 婷婷视频网 | 国产精品伦理久久久久 | 国产成人精品日本亚洲语音1 | 乱码中文字幕人成在线 | 伊人玖玖 |