成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解決方案:結合 YOLO 和 TensorFlow 做目標檢測和圖像分類

開發 人工智能
在本文中,我將向你解釋什么是目標檢測和圖像分類,如何訓練模型,最后,我將同時使用目標檢測和圖像分類模型來分類和檢測狗的品種。

目標檢測和圖像分類是兩個不同的任務,每個任務都有其特定的用途。在本文中,我將向你解釋什么是目標檢測和圖像分類,如何訓練模型,最后,我將同時使用目標檢測和圖像分類模型來分類和檢測狗的品種。

目標檢測 + 圖像分類

目標檢測

目標檢測是一項基本的計算機視覺任務,用于檢測和定位物體。簡而言之,目標檢測模型接受圖像作為輸入,并輸出坐標和標簽。

目標檢測示例

如果你需要知道物體的坐標,那么你需要使用目標檢測模型,因為圖像分類模型不會輸出坐標,它們只返回標簽。

圖像分類

圖像分類只輸出標簽。你將圖像作為輸入提供給模型,它將標簽作為輸出返回。它更適合分類相同類型的物體。例如,如果你想分類海洋動物,你需要訓練一個圖像分類模型。

海洋動物分類

為什么不只使用目標檢測模型?

你可能已經注意到,目標檢測模型同時提供坐標和標簽作為輸出,你可能會對自己說,為什么不直接使用目標檢測模型來處理所有事情呢?畢竟,它們理論上同時給出坐標和標簽,所以不需要分類模型。你可能一開始會這樣想,但有一些不同的因素你可能沒有意識到:

目標檢測模型非常適合識別和定位場景中的各種物體。但當涉及到區分幾乎相同的物體時,圖像分類模型通常表現更好(一般來說,并非總是如此)。

你并不總能找到合適的數據集,創建數據集可能既耗時又無聊。如果你決定創建自己的數據集,創建圖像分類數據集比創建目標檢測數據集要容易得多。

目標檢測 + 圖像分類

工作流程

首先,我們將使用yolov8目標檢測模型檢測物體,然后從檢測到的物體中,我們將嘗試使用圖像分類模型對它們進行分類。請注意,圖像分類模型將僅對檢測到的物體進行操作,而不是對整個圖像進行操作。

1. 用于檢測狗的目標檢測模型

首先,可以參考文章《定制YOLOv8模型 - 檢測棋盤棋子》訓練一個YOLO目標檢測模型。現在,我將使用一個預訓練的YOLOv8模型,因為它包含狗類,我將直接使用這個預訓練模型。我將使用YOLO模型進行檢測,如果它檢測到狗,我將使用圖像分類模型繼續處理。一般來說,最好為特定任務使用特定數據集訓練模型。

2. 用于狗品種的圖像分類模型

我將使用TensorFlow來訓練圖像分類模型。訓練模型可能需要時間,具體取決于數據集和參數。有關狗品種分類模型的詳細代碼可以查看鏈接:https://www.kaggle.com/code/merfarukgnaydn/dog-species-classification

使用TensorFlow Keras訓練圖像分類模型

3. 結合目標檢測 + 圖像分類模型

正如我之前向你解釋的那樣,這個過程非常簡單。首先,目標檢測模型執行,然后是圖像分類模型。下面是代碼和相關注釋:


# 導入庫
import cv2
import numpy as np
from ultralytics import YOLO
from tensorflow.keras.models import load_model
import matplotlib.pyplot as plt

# 加載YOLO檢測模型
yolo_model = YOLO("yolov8s.pt")  # 替換為你的YOLO模型路徑

# 加載分類模型,你可以運行notebook并保存模型并使用它(查看步驟2)
classification_model = load_model('dog_classification_model.h5')

# 分類標簽
species_list = ['afghan_hound', 'african_hunting_dog', 'airedale', 'basenji', 'basset', 'beagle', 
                'bedlington_terrier', 'bernese_mountain_dog', 'black-and-tan_coonhound', 
                'blenheim_spaniel', 'bloodhound', 'bluetick', 'border_collie', 'border_terrier', 
                'borzoi', 'boston_bull', 'bouvier_des_flandres', 'brabancon_griffon', 'bull_mastiff', 
                'cairn', 'cardigan', 'chesapeake_bay_retriever', 'chow', 'clumber', 'cocker_spaniel', 
                'collie', 'curly-coated_retriever', 'dhole', 'dingo', 'doberman', 'english_foxhound', 
                'english_setter', 'entlebucher', 'flat-coated_retriever', 'german_shepherd', 
                'german_short-haired_pointer', 'golden_retriever', 'gordon_setter', 'great_dane', 
                'great_pyrenees', 'groenendael', 'ibizan_hound', 'irish_setter', 'irish_terrier', 
                'irish_water_spaniel', 'irish_wolfhound', 'japanese_spaniel', 'keeshond', 
                'kerry_blue_terrier', 'komondor', 'kuvasz', 'labrador_retriever', 'leonberg', 
                'lhasa', 'malamute', 'malinois', 'maltese_dog', 'mexican_hairless', 'miniature_pinscher', 
                'miniature_schnauzer', 'newfoundland', 'norfolk_terrier', 'norwegian_elkhound', 
                'norwich_terrier', 'old_english_sheepdog', 'otterhound', 'papillon', 'pekinese', 
                'pembroke', 'pomeranian', 'pug', 'redbone', 'rhodesian_ridgeback', 'rottweiler', 
                'saint_bernard', 'saluki', 'samoyed', 'schipperke', 'scotch_terrier', 
                'scottish_deerhound', 'sealyham_terrier', 'shetland_sheepdog', 'standard_poodle', 
                'standard_schnauzer', 'sussex_spaniel', 'tibetan_mastiff', 'tibetan_terrier', 
                'toy_terrier', 'vizsla', 'weimaraner', 'whippet', 'wire-haired_fox_terrier', 
                'yorkshire_terrier']
    
# 執行推理
def classify_region(image, model, target_size=(180, 180)):  # 尺寸必須與分類模型的輸入匹配
    input_image = preprocess_image(image, target_size)
    predictions = model.predict(input_image)
    predicted_index = np.argmax(predictions[0])
    predicted_label = species_list[predicted_index]
    return predicted_label

# 加載圖像
image_path = r"test-images/dog12.jpg"  # 圖像路徑
image = cv2.imread(image_path)

# YOLO推理 --> 目標檢測模型
results = yolo_model(image)
detections = results[0].boxes  # 獲取檢測結果

# 檢查YOLO的標簽是否為"dog"并處理邊界框
for detection in detections:
    x1, y1, x2, y2 = map(int, detection.xyxy[0].tolist())  # 獲取邊界框坐標
    conf = float(detection.conf[0])  # 獲取置信度
    cls_label = yolo_model.names[int(detection.cls[0])]  # 直接從YOLO獲取標簽名稱

    # 檢查標簽是否為"dog"
    if cls_label == "dog":

        """
        提取用于分類的感興趣區域(ROI)。
        記住,圖像分類模型只會對檢測到的對象進行處理,
        而不是對整個圖像進行處理。
        """
        roi = image[y1:y2, x1:x2]

        # 如果ROI足夠大,則對其進行分類
        if roi.shape[0] > 0 and roi.shape[1] > 0:
            # 圖像分類模型
            label = classify_region(roi, classification_model)

            bbox_height = y2 - y1
            font_scale = bbox_height / 200.0  # 比例因子,可根據需要調整
            font_thickness = max(1, int(bbox_height / 100))  # 確保厚度至少為1

            # 繪制邊界框和標簽
            cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 0), 4)
            cv2.putText(image, label, (x1+100, y1-20), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0, 0, 255), font_thickness)
            print(f"檢測到的狗品種: {label}")

cv2.imwrite("dog2-result.jpg", image)
# 顯示結果圖像
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis("off")
plt.show()
責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2022-06-29 09:00:00

前端圖像分類模型SQL

2022-12-13 10:13:09

智能駕駛

2025-04-02 00:42:39

2018-04-09 10:20:32

深度學習

2020-10-27 09:37:43

PyTorchTensorFlow機器學習

2009-12-23 21:06:47

統一通信多媒體聯絡中心平臺華為

2011-02-23 17:13:19

FileZilla

2024-10-09 17:02:34

2024-03-07 12:31:07

2023-09-13 10:52:56

2009-07-17 09:17:41

IT運維SiteView游龍科技

2013-03-01 14:38:01

2019-03-13 08:43:32

邊緣計算物聯網IoT

2024-09-02 09:48:08

API編排GraphQL

2022-06-28 07:28:43

遠程醫療IT監測

2025-01-22 11:10:34

2024-11-29 16:10:31

2017-10-14 21:24:33

TensorFlow目標檢測模型

2025-01-02 10:30:00

無人機目標檢測AI

2025-02-18 08:00:00

C++YOLO目標檢測
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费看国产一级特黄aaaa大片 | 色综合久久久 | 国产精品一区二区不卡 | 成人免费小视频 | 中文字幕动漫成人 | 久草在线中文888 | 国产精品亚洲一区二区三区在线 | 日韩av在线一区 | 久久精品久久久 | 成人黄色电影在线播放 | 国产成人精品免费视频大全最热 | 中文字幕一区在线 | 国产探花在线精品一区二区 | 福利片在线观看 | 一级免费看 | av中文字幕在线播放 | 亚洲国产高清高潮精品美女 | 国产精品久久久久一区二区三区 | 国内精品久久久久久久影视简单 | 亚洲人人 | 最近最新中文字幕 | 99免费视频 | 色在线视频网站 | 午夜av电影院 | 一级毛毛片| 亚洲a一区二区 | 国产欧美日韩精品一区 | 久久高清 | 九九综合九九 | 成人深夜福利网站 | 91性高湖久久久久久久久_久久99 | 在线免费观看黄色 | 精品国产乱码久久久久久久久 | 中文字幕av在线播放 | 久久久久国产一区二区三区 | 中文字幕国产在线 | 国产精品视频免费观看 | 精品一区二区免费视频 | 一区二区三区欧美在线 | 国产成人精品综合 | 国产精品一区在线播放 |