יסודות בינה מלאכותית : 04-RB27 – זיהוי אובייקטים ואימון מודל
-
מוסיקה עם בינה מלאכותית – הקצה של הקצה
- תרגיל כיתה 1 יצירת מוסיקה עם בינה מלאכותית
-
קישור לתוכנה https://suno.com
כמה רחוק אפשר ללכת עם בינה מלאכותית ?
זכרו : בכל אימון מודל לזיהוי אובייקט יש לאמן את המודל \ הרשת לזהות גם אובייקטים דומים
למשל :
אם נרצה לאמן לזהות רחפן או קטב"ם צריך לאמן את הרשת לזהות עפיפון מסוק , מטוס ….
יש לאמן לזהות חלקי לגו דומים – בכך הרשת תוכל להבדיל
אם נרצה לאמן רשת לזהות חלק לגו – יש לאמן לזהות חלקי לגו דומים – בכך הרשת תוכל להבדיל
- תרגיל כיתה : אימון בינה מלאכותית שלב 1
1.1 קישור לתוכנה לסימון תוויות עבור YOLO מודל : https://www.makesense.ai/
תרגיל כיתה 2
YOLO מודל
- יש לעבוד לפי הסרטון שלב אחרי שלב .
- הסרטון הוא המשך של הרצאה RB23-09 RB23-08 שם מוספר שלב אחרי שלב של התקנת הסביבה פיתוח , תוספים
תרגיל כיתה 2
YOLO מודל
אימון רשת זיהוי טנק
2.1 נעבור על הקוד שלב אחרי שלב
סביבת קולאב COLAB : – YOLO מודל yolo
שלב 1 : התקנת הסיפריות (עושים פעם אחת בלבד בסביבת הפיתוח)
בסוף התקנת הספריות אם אין שגיעות נקבל הודעת DONE כלומר סיים להתקין
שימו לב : סיבבת הפיתוח הקבצים תראה כך לפני ההתקנה
אנחנו עובדים על ספריית CONTENT
שלב 2 : יצירת קובץ yaml
לאחר ההתקנה נקבל
ואפשר לראות את תוכן הקובץ – קליל כפול עם העכבר על שם הקובץ
חילוץ הקובץ מ RAR :
לאחר החילוץ RAR ולחיצה על TANK
שלב 3 : התקנת קבצי התמונות והתוויות – (labels) בסביבת – אימון
נתקין את התונות על יהיה העתקה או יבואו או הורדה לסביבית הפיתוח שנאמן את הבינה המלאכותית – חייב להיות מאוד מדוייק – טעות הכי קטנה וזה לא יעבוד . . סביבת האימון יכולה להיות COLAB או ANACONDA או אחר ?
………………………………………………………………………………………………
נוריד מ GOOGLE DRIVE קובץ RAR שמכיל תמונות ו LABELS במבנה הנכון – חובה מבנה נכון
חילוץ קובץ RAR
https://colab.research.google.com/gist/RoboWild/19deff31306d95d2e315a9e1d331f156/yolo-train.ipynb
שלב 4 : אימון בינה מלאכותית מודל YOLO
יבוא ספריות , ויבוא המודל
נקבל את הספריות הבאות שימו לב על קובץ YOLOV8M.PT
אימון הבינה מלאכותית לפי קובץ YAML – זה המקום שהבינה מלאכותית לומדת
בסוף האימון של הבינה מלאכותית נקבל את הפלט הבא :
פעולת האימון של הבינה מלאכותית הסתיימה
מודל שלנו מאומן
שלב 5: בדיקה איך הבינה שלנו למדה ניתוח הליך הלימוד – נילמד בהמשך
שלב 6 : הרצה של קובץ של המודל שאומן
נחפש בתוך ספריית RUN את ה DETECT האחרון אם נרית כמה פעמים המספר יכול להשתנות של DETECT
נגדיר אובייקט PRE לפי המיקום של הקובץ BEST.PT
שימו לב : המיקום עשוי להשתנות בנתיב לפי שינוי בשם DETECT
ואז ניטען אותו – אפשר להעביר למחשבים אחרים או מיקרו מעבדים שונים
הרצה של הבינה מלאכותית – שורת קוד אחת בלבד ! כל השאר קוד פייתון
את התוצאה נקבל לתוך ספריה
קוד מתקדם יותר
https://colab.research.google.com/drive/1Iim5HYrT0wGJyEc6SHFkiZtkRmlLiv70#scrollTo=PQXWhPmU5NBk
1 2 3 4 5 6 |
%pip install ultralytics import ultralytics ultralytics.checks() !pip install opencv-python-headless print (" **** done **** ") |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
!touch data.yaml # Open a new file called data.yaml in write mode with open('data.yaml', 'w') as file: # Write the specified content to the file file.write(""" train: /content/tanks/train val: /content/tanks/val nc: 4 names: ["tank", "car", "APC", "truck"] """) # Verify the content of the data.yaml file with open('data.yaml', 'r') as file: print(file.read()) |
1 |
!apt-get install -y unrar |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import os from google.colab import files # Upload the rar file uploaded = files.upload() # List the uploaded files uploaded_files = list(uploaded.keys()) print(f'Uploaded files: {uploaded_files}') # Assuming the rar file is the first (and only) uploaded file rar_file = uploaded_files[0] # Create a directory to extract the rar file extract_dir = rar_file.replace('.rar', '') os.makedirs(extract_dir, exist_ok=True) # Extract the rar file !unrar x {rar_file} {extract_dir} # List the contents of the extracted directory print(f'Contents of the extracted directory ({extract_dir}):') print(os.listdir(extract_dir)) |
1 2 3 4 5 |
from ultralytics import YOLO import ultralytics print(ultralytics.__version__) model=YOLO("yolov8m.pt") |
1 2 3 |
# train the a.i model to detect tanks model.train(data="/content/data.yaml",batch=16, epochs=10) |
1 |
pre=YOLO("/content/runs/detect/train3/weights/best.pt") |
1 |
pre.predict("/content/tanks/val/images/tanks-dessert-79.jpg",save=True, conf=0.3) |
תרגיל כיתה 3 :
1.מטרה היכרות ראשונית של סביבית לימוד סביבת אנאקונדה – גוביפטר נודבוק (מקבילה לקולאב – מתחרה שלה) – לא להתבלב
2. תרגול קוד פייטון
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Program to read two numbers from user input, calculate their average, and print the larger number # The result will be rounded to 2 decimal places # Taking input for two numbers and converting to float num1 = float(input("Enter the first number: ")) num2 = float(input("Enter the second number: ")) # Calculating the average and rounding to 2 decimal places average = round((num1 + num2) / 2, 2) # Printing the average print(f"The average of {num1} and {num2} is: {average}") # Checking which number is larger and rounding the comparison output if round(num1, 2) > round(num2, 2): print(f"The larger number is: {round(num1, 2)}") elif round(num2, 2) > round(num1, 2): print(f"The larger number is: {round(num2, 2)}") else: print("Both numbers are equal.") |
1 2 3 4 5 6 |
# List of items items = ["drone", "kite", "plane", "helicopter"] # Loop through each item in the list and print it for item in items: print(item) |
1 2 3 4 5 6 7 8 |
# List of items correctly defined items = ["drone", "kite", "plane", "uav", "helicopter"] # Loop through each item in the list and print it for item in items: if item == "drone": print("Alert: Drone found!") # Special message if the item is "drone" print(f"{item} - Target is O.K.") # Print this message for every item |
1 2 3 4 5 6 7 |
# List of items to loop through items = ["drone", "kite", "plane", "helicopter"] # Loop through the list and print the 2nd and 4th items for index, item in enumerate(items): if index == 1 or index == 3: # Python indexing starts at 0, so index 1 is the 2nd item, and index 3 is the 4th print(item) |
תרגיל 3 OPENCV
נעבוד על התמונה :
התקנה של הספריות בפייטון
1 2 3 4 |
!pip install opencv-python !pip install numpy !pip install matplotlib !pip install requests |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import cv2 import numpy as np import matplotlib.pyplot as plt import requests # URL of the image url = 'https://robotronix.co.il/wp-content/uploads/2024/06/Pasted-3-298x300.png' # Fetch the image from the URL resp = requests.get(url, stream=True).raw image_array = np.asarray(bytearray(resp.read()), dtype=np.uint8) # Decode the image as it's read in bytes img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) # Convert the image from BGR (OpenCV default) to RGB img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Convert the image to Grayscale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Display the images using Matplotlib plt.figure(figsize=(10, 5)) # Display RGB Image plt.subplot(1, 2, 1) plt.imshow(img_rgb) plt.title('RGB Image') plt.axis('off') # Display Grayscale Image plt.subplot(1, 2, 2) plt.imshow(img_gray, cmap='gray') plt.title('Grayscale Image') plt.axis('off') plt.show() |
פ
פילטרים :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import cv2 import numpy as np import matplotlib.pyplot as plt import requests # URL of the image url = 'https://robotronix.co.il/wp-content/uploads/2024/06/Pasted-3-298x300.png' # Fetch the image from the URL resp = requests.get(url, stream=True).raw image_array = np.asarray(bytearray(resp.read()), dtype=np.uint8) # Decode the image as it's read in bytes img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) # Convert the image from BGR (OpenCV default) to RGB img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Convert the image to Grayscale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Apply Gaussian Blur to smooth the image img_blur = cv2.GaussianBlur(img_gray, (5, 5), 0) # Apply the Canny filter to detect edges img_canny = cv2.Canny(img_blur, 50, 150) # Display the images using Matplotlib plt.figure(figsize=(15, 5)) # Display RGB Image plt.subplot(1, 3, 1) plt.imshow(img_rgb) plt.title('RGB Image') plt.axis('off') # Display Grayscale Image plt.subplot(1, 3, 2) plt.imshow(img_gray, cmap='gray') plt.title('Grayscale Image') plt.axis('off') # Display Canny Edge Image plt.subplot(1, 3, 3) plt.imshow(img_canny, cmap='gray') plt.title('Canny Edge Detection') plt.axis('off') plt.show() |