وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

طبقه بندی تصاویر با مدل از پیش آموزش دیده با استفاده از Keras

0 9

سرفصلهای مطلب

زمان لازم برای مطالعه: 2 دقیقه


مدل‌های Computer Vision راه درازی را پیموده‌اند – و شما می‌توانید از مدل‌های موجود، از قبل آموزش دیده، استفاده کنید روی مجموعه بزرگی از داده ها، و فقط آنها را به خط لوله پیش بینی خود وصل کنید.

در حالی که تنظیم دقیق یک شبکه بهترین راه است – وارد کردن یک مدل موجود و اجرای پیش‌بینی‌ها از همان ابتدا یک مورد استفاده معتبر در مراحل اولیه نمونه‌سازی یا صرفاً به خاطر آزمایش یک مدل است. برای یک راهنمای عمیق و دقیق روی تنظیم دقیق از طریق آموزش انتقال – درس رایگان ما را بخوانید روی “انتقال آموزش برای کامپیوتر ویژن با کراس”!

همانطور که گفته شد – متغیر اصلی است چگونه شما یک تصویر را بارگذاری می کنید، قابل توجه ترین روش ها استفاده از OpenCV، PIL و روش های کمکی پیش پردازش Keras است.

OpenCV

OpenCV برای Computer Vision است، همان چیزی که Scikit-Learn برای یادگیری ماشین است. این یک کتابخانه محبوب و کامل است که به طور گسترده در صنعت استفاده می شود، با منحنی یادگیری کمی تندتر از کتابخانه های پردازش تصویر مانند PIL.

ما یک تابع کمکی اختصاصی ایجاد می کنیم تا تصویری را از طریق URL به آرایه NumPy به دست آوریم و تبدیل کنیم و سپس آن را با استفاده از یک مدل از پیش آموزش دیده طبقه بندی کنیم. keras.applications:

from tensorflow import keras

from keras.applications.efficientnet import preprocess_input, decode_predictions

import urllib
import cv2
import numpy as np

def url_to_array(url):
    req = urllib.request.urlopen(url)
    arr = np.array(bytearray(req.read()), dtype=np.int8)
    arr = cv2.imdecode(arr, -1)
    arr = cv2.cvtColor(arr, cv2.COLOR_BGR2RGB)
    arr = cv2.resize(arr, (224, 224))
    return arr

url = 'https://upload.wikimedia.org/wikipedia/commons/0/02/Black_bear_large.jpg'
img = url_to_array(url)
img_batch = np.expand_dims(img, 0)

effnet = keras.applications.EfficientNetV2B0(weights='imagenet', include_top=True)
pred = effnet.predict(img_batch)
print(decode_predictions(pred))

بیایید تصویر را با پیش بینی تجسم کنیم:

plt.imshow(img)
plt.title(f'Class: {decode_predictions(pred)(0)(0)(1)}\nConfidence: {decode_predictions(pred)(0)(0)(2)*100}%')
plt.show()

طبقه بندی تصاویر با cnn keras از قبل آموزش دیده

پیش پردازش Keras

Keras توابع و کلاس های کمکی پیش پردازش را ارائه می دهد که به ما امکان می دهد تصاویر را به عنوان آرایه های NumPy بارگیری و آماده کنیم:

from tensorflow import keras

from keras.applications.efficientnet import preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image

import urllib.request
import matplotlib.pyplot as plt
import numpy as np


url = 'https://upload.wikimedia.org/wikipedia/commons/0/02/Black_bear_large.jpg'
urllib.request.urlretrieve(url, 'bear.jpg')


img = image.load_img('bear.jpg', target_size=(224, 224))

img = image.img_to_array(img)

img_batch = np.expand_dims(img, 0)




effnet = keras.applications.EfficientNetV2B0(weights='imagenet', include_top=True)
pred = effnet.predict(img_batch)
print(decode_predictions(pred))

بیایید آن را طرح کنیم:

plt.imshow(img.astype('int'))
plt.title(f'Class: {decode_predictions(pred)(0)(0)(1)}\nConfidence: {decode_predictions(pred)(0)(0)(2)*100}%')
plt.show()

طبقه بندی تصاویر با کراس مدل از پیش آموزش دیده

PIL

در نهایت، PIL یک کتابخانه پردازش تصویر عموماً محبوب است و به طور طبیعی می تواند برای بارگذاری تصاویر به عنوان آرایه های NumPy استفاده شود:

from tensorflow import keras

from keras.applications.efficientnet import preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image

import PIL

import urllib.request
import matplotlib.pyplot as plt
import numpy as np


url = 'https://upload.wikimedia.org/wikipedia/commons/0/02/Black_bear_large.jpg'
img = PIL.Image.open(urllib.request.urlopen(url))
img = img.resize((224, 224))
img_batch = np.expand_dims(img, 0)


effnet = keras.applications.EfficientNetV2B0(weights='imagenet', include_top=True)
pred = effnet.predict(img_batch)
print(decode_predictions(pred))

بیایید آن را طرح کنیم:

plt.imshow(img)
plt.title(f'Class: {decode_predictions(pred)(0)(0)(1)}\nConfidence: {decode_predictions(pred)(0)(0)(2)*100}%')
plt.show()

کلاس تصویر را با کراس و مدل از پیش آموزش دیده پیش بینی کنید

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-05 06:05:08

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید