深度学习和目标检测系列教程 2-300:小试牛刀,使用 ImageAI 进行对象检测
@Author:Runsen
對象檢測是一種屬于更廣泛的計算機視覺領域的技術。它處理識別和跟蹤圖像和視頻中存在的對象。目標檢測有多種應用,如人臉檢測、車輛檢測、行人計數、自動駕駛汽車、安全系統等。ImageAI提供了非常方便和強大的方法來對圖像進行對象檢測并從圖像中提取每個對象。
ImageAI
ImageAI 包含幾乎所有最先進的深度學習算法的 Python 實現,如RetinaNet、YOLOv3和 TinyYOLOv3。
ImageAI 使用了對象檢測、視頻檢測和對象跟蹤 API,無需訪問網絡即可調用。ImageAI 使用預先訓練的模型并且可以輕松定制。
ImageAI 中的ObjectDetectionImageAI 庫的類包含使用預訓練模型對任何圖像或圖像集執行對象檢測的函數。借助 ImageAI,可以檢測和識別 80 種不同的常見日常物品。
具體官方教程:https://imageai.readthedocs.io/en/latest/detection/index.html
下載鏈接:https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl
安裝ImageAI 成功后,下載包含將用于對象檢測的分類模型的TinyYOLOv3模型文件。
下載地址:https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo-tiny.h5
下面,我們小試牛刀,使用 ImageAI 進行對象檢測
我們先創建必要的文件夾。
- Object-detection:根文件夾
- models:存儲預先訓練的模型
- input : 存儲我們要執行對象檢測的圖像文件
- output:存儲檢測到對象的圖像文件
創建文件夾后,Object-detection文件夾應具有以下子文件夾:
├── input ├── models └── output下面創建一個新文件detector.py.,從 ImageAI 庫導入ObjectDetection類。
from imageai.Detection import ObjectDetection接下來是創建 class 的實例ObjectDetection,如下所示:
detector = ObjectDetection()指定輸入圖像、輸出圖像和模型的路徑。
model_path = "./models/yolo-tiny.h5" input_path = "./input/image.jpg" output_path = "./output/newimage.jpg"實例化ObjectDetection類后,我們現在可以從類中調用各種函數。該類包含以下功能調用預先訓練模式:setModelTypeAsRetinaNet(),setModelTypeAsYOLOv3(),和setModelTypeAsTinyYOLOv3()。
我使用預訓練TinyYOLOv3模型,因此我們將使用該setModelTypeAsTinyYOLOv3()函數加載我們的模型。
接下來,將調用函數setModelPath()。此函數接受一個包含預訓練模型路徑的字符串:
detector.setModelPath(model_path)從detector實例調用函數loadModel()。它使用setModelPath()類方法從上面指定的路徑加載模型
detector.loadModel()要檢測圖像中的對象,我們需要detectObjectsFromImage使用detector創建的對象。
下面是完整代碼
from imageai.Detection import ObjectDetectiondetector = ObjectDetection()model_path = "./models/yolo-tiny.h5" input_path = "./input/img.png" output_path = "./output/img.png"detector.setModelTypeAsTinyYOLOv3() detector.setModelPath(model_path) detector.loadModel() detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)for eachItem in detection:print(eachItem["name"] , " : ", eachItem["percentage_probability"])
總結
以上是生活随笔為你收集整理的深度学习和目标检测系列教程 2-300:小试牛刀,使用 ImageAI 进行对象检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习和目标检测系列教程 1-300:
- 下一篇: 深度学习和目标检测系列教程 3-300: