AI

YOLO

You Only Look Once (You Only Live Once)

三個重要步驟

Resize輸入圖片尺寸至448*448

執行卷積神經網路CNN

基於模型所建立的信心程度Confidence,依據閥值、Non-max suppression得到偵測結果。

1.Resize image.

更新pip: python -m pip install --upgrade pip

安裝pillow程式庫: pip install pillow

resize_image.py 程式碼

from PIL import Image

import os

import tkinter as tk

from tkinter import filedialog


def resize_images(input_dir, output_dir, size=(448, 448)):

    if not os.path.exists(output_dir):

        os.makedirs(output_dir)

    

    for filename in os.listdir(input_dir):

        if filename.endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif')):

            img = Image.open(os.path.join(input_dir, filename))

            img_resized = img.resize(size, Image.LANCZOS)

            img_resized.save(os.path.join(output_dir, filename))

            print(f"Resized {filename} and saved to {output_dir}")


def select_directories():

    root = tk.Tk()

    root.withdraw()  # Hide the root window


    print("請選擇輸入資料夾") #Please select the input directory.

    input_dir = filedialog.askdirectory(title="Select Input Directory")

    if not input_dir:

        print("No input directory selected. Exiting...")

        return


    print("選擇寫入資料夾") # Please select the output directory.

    output_dir = filedialog.askdirectory(title="Select Output Directory")

    if not output_dir:

        print("No output directory selected. Exiting...")

        return


    resize_images(input_dir, output_dir)


if __name__ == "__main__":

    select_directories()


2.Run convolutional netwoek.

3.Non-max suppression.


參考文獻

https://chih-sheng-huang821.medium.com/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-%E7%89%A9%E4%BB%B6%E5%81%B5%E6%B8%AC-you-only-look-once-yolo-4fb9cf49453c

YT: https://www.youtube.com/watch?v=LNwODJXcvt4