吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

執行高性能目標檢測的編碼教程

8g3K_AI_Thinker ? 來源:未知 ? 作者:胡薇 ? 2018-06-22 10:07 ? 次閱讀

作為人工智能的一個重要領域,計算機視覺是一門可以識別并理解圖像和場景的計算機及軟件系統科學。該領域主要包括圖像識別,目標檢測,圖像生成,圖像超分辨率等多個方向。由于現實中存在眾多的實際案例,目標檢測應該是計算機視覺中最令人深刻的一個方向。在本教程中,我們將簡要介紹包括當前目標檢測的概念,軟件開發人員所面臨的挑戰,相應的解決方案以及執行高性能目標檢測的編碼教程等內容。

目標檢測是指計算機和軟件系統在圖像/場景中定位并識別出每個目標的能力,已廣泛應用于人臉檢測,車輛檢測,行人計數,網絡圖像,安全系統和無人駕駛汽車等領域。當前有很多目標檢測方法能夠在實踐中應用。像其他任何計算機技術一樣,各種創造性和效果驚人的目標檢測方法都是來自計算機程序員和軟件開發人員的努力。

在應用程序和系統中使用目標檢測方法,并基于這些方法構建新的應用并不是一項直接的任務。在早期,目標檢測的實現包括一些經典算法的使用,如在受歡迎的計算機視覺庫OpenCV中支持的算法。然而,這些經典算法無法在不同條件下達到同等優秀的工作性能。

2012 年之后,深度學習技術的突破性及其快速應用,帶來了諸如 R-CNN,Fast-RCNN,Faster-RCNN,RetinaNet等諸多高精度目標檢測方法,以及以 SSD和YOLO為代表的等快而準的目標檢測算法。想要使用這些基于深度學習的目標檢測方法,我們需要對數學知識及深度學習框架的深刻理解。數百萬的專業計算機程序員和軟件開發人員想要集成和創建用于目標檢測的新產品。但是,理解并在實際中使用目標檢測產品需要額外且復雜的方法,這種技術超出了一般程序員的能力范圍。

在幾個月前,我的團隊就意識到了這個問題,這就是為什么我和John Olafenwa構建ImageAI的原因。這是一個基于 Python程序庫,它允許程序員和軟件開發人員輕松地將最先進的計算機視覺技術集成到他們現有的或新的應用程序中。

想要使用ImageAI實現目標檢測任務,你需要做的就是:

1.在計算機系統上安裝Python

2.安裝ImageAI及其依賴庫

3.下目標象檢測的模型文件

4.運行示例代碼(只有10行)

現在讓我們開始吧~

1)從Python官網上下載并安裝 Python 3:

https://python.org

2)通過 pip 安裝以下依賴庫:

Ⅰ. Tensorflow:pipinstall tensorflow

II. NumPy:pip install numpy

III. SciPy:pipinstall scipy

IV. OpenCV:pipinstall opencv-python

Ⅴ. Pillow:pip install pillow

Ⅵ. Matplotlib:pipinstall matplotlib

Ⅶ. H5py:pipinstall h5py

Ⅷ. Keras:pip install keras

Ⅸ. ImageAI:pipinstall

https://github.com/OlafenwaMoses/ImageAI/releases

/download/2.0.1/imageai-2.0.1-py3-none-any.whl

3)通過此鏈接下載用于目標檢測的RetinaNet模型文件。

https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5

現在,你已經安裝了需要的依賴庫。接下來,你就可以編寫第一段目標檢測代碼了。創建一個Python文件并為其命名(例如,FirstDetection.py),然后寫入下面的 10 行代碼,并將RetinaNet模型文件和需要檢測的圖像復制到包含這個 python 文件的文件夾中。

FirstDetection.py

fromimageai.DetectionimportObjectDetectionimportosexecution_path=os.getcwd()detector=ObjectDetection()detector.setModelTypeAsRetinaNet()detector.setModelPath(os.path.join(execution_path,"resnet50_coco_best_v2.0.1.h5"))detector.loadModel()detections=detector.detectObjectsFromImage(input_image=os.path.join(execution_path,"image.jpg"),output_image_path=os.path.join(execution_path,"imagenew.jpg"))foreachObjectindetections:print(eachObject["name"]+":"+eachObject["percentage_probability"])

然后運行代碼,稍等片刻結果將顯示在控制臺中。一旦控制臺打印出結果后,轉到FirstDetection.py所在的文件夾,你將找到所保存的新圖像。如下是兩個原圖像樣本,檢測后將保存新圖像。

Before Detection:

Image Credit: alzheimers.co.uk

Image Credit: Wikicommons

After Detection:

控制臺打印的檢測結果:

person: 55.8402955532074

person: 53.21805477142334

person: 69.25139427185059

person: 76.41745209693909

bicycle: 80.30363917350769

person: 83.58567953109741

person: 89.06581997871399

truck: 63.10953497886658

person: 69.82483863830566

person: 77.11606621742249

bus: 98.00949096679688

truck: 84.02870297431946

car: 71.98476791381836

控制臺打印的檢測結果:

person: 71.10445499420166

person: 59.28672552108765

person: 59.61582064628601

person: 75.86382627487183

motorcycle: 60.1050078868866

bus: 99.39600229263306

car: 74.05484318733215

person: 67.31776595115662

person: 63.53200078010559

person: 78.2265305519104

person: 62.880998849868774

person: 72.93365597724915

person: 60.01397967338562

person: 81.05944991111755

motorcycle: 50.591760873794556

motorcycle: 58.719027042388916

person: 71.69321775436401

bicycle: 91.86570048332214

motorcycle: 85.38855314254761

現在,我們來解釋下這 10 行代碼是如何工作的。

fromimageai.DetectionimportObjectDetectionimportosexecution_path=os.getcwd()

在上面 3 行代碼種,第一行我們導入了ImageAI目標檢測類,第二行導入了 python 的 os 類,第三行定義了一個變量用來保存我們的python文件,其中 RetinaNet模型文件和圖像都將存放在該文件夾路徑下。

detector=ObjectDetection()detector.setModelTypeAsRetinaNet()detector.setModelPath(os.path.join(execution_path,"resnet50_coco_best_v2.0.1.h5"))detector.loadModel()detections=detector.detectObjectsFromImage(input_image=os.path.join(execution_path,"image.jpg"),output_image_path=os.path.join(execution_path,"imagenew.jpg"))

在上面的 5 行代碼中,第一行定義了目標檢測類,第二行將模型的類型設置為RetinaNet,并在第三行將模型路徑設置為RetinaNet模型的路徑,第四行將模型加載到的目標檢測類,第五行調用目標檢測函數,解析輸入的和輸出的圖像路徑。

foreachObjectindetections:print(eachObject["name"]+":"+eachObject["percentage_probability"])

在上面的2行代碼中,第一行迭代執行 detector.detectObjectsFromImage函數并返回所有的結果,然后在第二行打印出所檢測到的每個目標的名稱及其概率值。

ImageAI支持許多強大的目標檢測過程。其中之一就是能夠提取圖像中檢測到的每個目標。如下所示,通過簡單地解析將extra_detected_objects = True變為 detectObjectsFromImage函數,目標檢測類將為圖像目標創建一個新的文件夾,提取每張圖像,并將每張圖像保存到新創建的文件夾中,同時返回一個包含每張圖像路徑的額外數組。

detections,extracted_images=detector.detectObjectsFromImage(input_image=os.path.join(execution_path,"image.jpg"),output_image_path=os.path.join(execution_path,"imagenew.jpg"),extract_detected_objects=True)

下面我們來看看在第一張圖像上取得的目標檢測結果:

所有包含行人的圖像都能被提取出來了,我沒有保存所有的目標,因為它們會占用太多不必要的空間。

ImageAI還提供了更多功能,可用于定制和生產功能部署所需的目標檢測任務。一些支持的功能如下:

Adjusting Minimum Probability:默認情況下,檢測概率低于 50% 的對象將不會顯示或報告。你可以增加高確定性目標的檢測概率,或者在需要檢測所有可能對象的情況下降低該概率值。

Custom Objects Detection:使用所提供的CustomObject類,如此檢測類函數將打印出一個或幾個唯一目標的檢測結果。

Detection Speed:通過將檢測速度設置為“fast”、“faster”和“fastest”,以便縮短目標檢測所需的時間。

Input Types:你可以指定并解析圖像的文件路徑,Numpy數組或圖像文件流作為輸入圖像

Output Types:你可以指定detectObjectsFromImage函數所返回的圖像格式,可以是以文件或Numpy數組的形式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1796

    文章

    47678

    瀏覽量

    240297
  • 計算機視覺
    +關注

    關注

    8

    文章

    1700

    瀏覽量

    46128

原文標題:10行代碼實現目標檢測,請收下這份教程

文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 家里的音箱壞了,便制作了一個高性能的移動音箱

    音箱DIY高性能
    Mr_haohao
    發布于 :2022年10月20日 23:03:23

    PowerPC小目標檢測算法怎么實現?

    檢測系統在低功耗、輕小型化等方面提出了更高的要求。因此,完成小目標檢測任務不僅需要尋求合理的小目標檢測算法,在實現時還需要考慮處理
    發表于 08-09 07:07

    目標檢測和圖像語義分割領域性能評價指標

    目標檢測和圖像語義分割領域的性能評價指標
    發表于 05-13 09:57

    【HarmonyOS HiSpark AI Camera】基于HiSpark AI Camera的夜間目標檢測項目

    不良數據,經過gpu訓練后將訓練后的模型部署在Horizon x3開發板上(Sunrise3芯片),實現全國產邊緣目標檢測的demo,同時可以通過b站或51cto網站上韋東山老師的教學視頻學習harmony os所以想嘗試申請此款高性能
    發表于 11-19 20:49

    如何實現PMSM高性能控制

    速度環,內環為電流環。為了實現PMSM高性能控制,我們會采用各種復雜的算法來實現目標,這其中電流環相關算法又是重中之重。但是需要指出,電流環性能好壞除了與采用的算法有關之外,還與...
    發表于 08-27 06:45

    基于ADSP-TS101S的目標檢測系統

    微弱地低速運動目標信號,是一個頻率極低,準周期,低信噪比,多諧波組合的信號,如何更加有效準確地檢測目標信號是信號處理領域的難點和熱點。本文提出了基于ADI公司高性能的ADSP-T
    發表于 08-05 11:37 ?22次下載

    高性能紅外瓦斯檢測系統的硬件設計

    高性能紅外瓦斯檢測系統的硬件設計,有興趣的同學可以下載學習
    發表于 05-04 14:37 ?0次下載

    網絡雷達對Swerling_目標檢測性能分析

    網絡雷達對Swerling_目標檢測性能分析_劉月平
    發表于 01-07 16:06 ?0次下載

    目標特性對MIMO雷達檢測性能影響研究

    目標特性對MIMO雷達檢測性能影響研究_姜秋喜
    發表于 01-07 16:06 ?0次下載

    基于深度自編碼網絡的慢速移動目標檢測

    強雜波背景下的慢速目標檢測存在低多普勒頻移、雜波干擾嚴重、魯棒性不足、特征提取困難與信息利用不充分等問題。為此,提出一種基于深度自編碼網絡的寬帶信號目標
    發表于 03-29 11:29 ?0次下載
    基于深度自<b class='flag-5'>編碼</b>網絡的慢速移動<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>

    解析在目標檢測中怎么解決小目標的問題?

    的發展中,也出現了一些提高小目標檢測性能的解決方案。本文將對這些方法進行分析、整理和總結。 圖像金字塔和多尺度滑動窗口檢測 一開始,在深學習方法成為流行之前,對于不同尺度的
    的頭像 發表于 04-26 14:13 ?6323次閱讀
    解析在<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>中怎么解決小<b class='flag-5'>目標</b>的問題?

    自定義并自動執行Notes到Exchange的高性能遷移

    BinaryTree Migrator by Quest forNotes執行Notes至Exchange的高性能遷移,可將郵箱和存檔從內部部署和SmartCloud版本的Notes遷移至您所選的目標位置。
    的頭像 發表于 09-19 09:49 ?888次閱讀

    CCV 2023 | SparseBEV:高性能、全稀疏的純視覺3D目標檢測

    本文介紹在3D 目標檢測領域的新工作:SparseBEV。我們所處的 3D 世界是稀疏的,因此稀疏 3D 目標檢測是一個重要的發展方向。然而,現有的稀疏 3D
    的頭像 發表于 09-19 10:00 ?1079次閱讀
    CCV 2023 | SparseBEV:<b class='flag-5'>高性能</b>、全稀疏的純視覺3D<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>器

    基于深度學習的小目標檢測

    )的廣泛應用,小目標檢測性能得到了顯著提升。本文將詳細探討基于深度學習的小目標檢測技術,包括其定義、挑戰、常用方法以及未來發展方向。
    的頭像 發表于 07-04 17:25 ?1055次閱讀

    案例分享 ▏基于HZ-EVM-RK3576開發板實現YOLOv5目標檢測應用

    隨著人工智能技術的不斷進步,目標檢測已成為計算機視覺中的核心任務之一,廣泛應用于自動駕駛、安防監控、工業自動化等領域。與此同時,隨著硬件性能的提升和邊緣計算需求的激增,開發者愈加傾向于選擇高性
    的頭像 發表于 12-07 01:10 ?427次閱讀
    案例分享 ▏基于HZ-EVM-RK3576開發板實現YOLOv5<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>應用
    百家乐小路单图解| 百家乐赌的是心态吗| 新加坡百家乐官网的玩法技巧和规则| 百家乐官网真人游戏| 百家乐乐城皇冠| 百家乐赢足球博彩皇冠| 百家乐小钱赢钱| 大发888游戏充值50| 大赢家娱乐城| r百家乐官网娱乐下载| 线上百家乐官网赢钱| 凤凰百家乐娱乐城| 百家乐三国| 瑞博国际娱乐| 百家乐官网扎金花斗地主| 百家乐官网拍照看| LV百家乐赢钱LV| bet365提款| 百家乐官网优博u2bet | 女优百家乐官网的玩法技巧和规则| 博九网百家乐游戏| 大发888出纳柜台登入| 宜城市| 风水罗盘里的24山| 水果机8键遥控器| 百家乐官网桌14人| 申博百家乐有假吗| 屯门区| 去澳门百家乐官网娱乐城| 百家乐试玩网站| 大发888娱乐客户端真钱| 百家乐官网中B是什么| 百家乐官网庄闲桌| 德州扑克下载| 百家乐官网噢门棋牌| 鼎龙百家乐的玩法技巧和规则| 网上足球投注| 百家乐官网娱乐网送68元| 澳门百家乐娱乐城开户| 大发888官方网页| 百家乐官网规律和方法|