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

سرور مجازی NVMe

تشخیص اشیا با ImageAI در پایتون

0 148
زمان لازم برای مطالعه: 4 دقیقه


معرفی

تشخیص اشیا یک فناوری است که در حوزه وسیع تری قرار می گیرد کامپیوتر ویژن. با شناسایی و ردیابی اشیاء موجود در تصاویر و ویدئوها سروکار دارد. تشخیص اشیا دارای کاربردهای متعددی مانند تشخیص چهره، تشخیص وسیله نقلیه، شمارش عابر پیاده، خودروهای خودران، سیستم های امنیتی و غیره است.

دو هدف اصلی تشخیص اشیا عبارتند از:

  • برای شناسایی تمام اشیاء موجود در یک تصویر
  • شی مورد توجه را فیلتر کنید

در این مقاله روش تشخیص اشیاء در پایتون را با کمک ImageAI کتابخانه

یادگیری عمیق برای تشخیص اشیا

تکنیک‌های یادگیری عمیق برای مشکلات مختلف تشخیص اشیا به اثبات رسیده‌اند. در زیر برخی از رویکردهای رایج یادگیری عمیق برای تشخیص اشیا آورده شده است:

در ادامه این مقاله، خواهیم دید که ImageAI دقیقا چیست و چگونه از آن برای انجام تشخیص اشیا استفاده کنیم.

ImageAI

ImageAI یک کتابخانه Python است که برای توانمندسازی توسعه دهندگان برای ساختن برنامه ها و سیستم هایی با قابلیت های یادگیری عمیق و Computer Vision با استفاده از چند خط کد مستقیم ساخته شده است. ImageAI شامل پیاده سازی Python تقریباً همه الگوریتم های پیشرفته یادگیری عمیق است. رتینا نت، YOLOv3و TinyYOLOv3.

ImageAI از چندین API استفاده می کند که به صورت آفلاین کار می کنند – دارای API های تشخیص شی، تشخیص ویدیو و ردیابی شی است که می توان آنها را بدون دسترسی به اینترنت فراخوانی کرد. ImageAI از یک مدل از پیش آموزش دیده استفاده می کند و به راحتی می توان آن را سفارشی کرد.

این ObjectDetection کلاس کتابخانه ImageAI شامل توابعی برای انجام تشخیص اشیا است روی هر تصویر یا مجموعه ای از تصاویر، با استفاده از مدل های از پیش آموزش دیده. با ImageAI می توانید 80 نوع شیء معمولی و روزمره را شناسایی و تشخیص دهید.

تنظیم محیط خود

در این قسمت از آموزش به نصب ImageAI خواهیم پرداخت.

برای استفاده از ImageAI باید چند وابستگی نصب کنید. اولین قدم این است که پایتون را نصب کنید روی کامپیوتر شما. پایتون 3 را دانلود و نصب کنید وب سایت رسمی پایتون.

زمانی که پایتون را نصب کردید روی کامپیوتر خود را با استفاده از وابستگی های زیر نصب کنید pip:

TensorFlow

$ pip install tensorflow

OpenCV

$ pip install opencv-python

کراس

$ pip install keras

ImageAI

$ pip install imageAI

اکنون دانلود کنید TinyYOLOv3 فایل مدل که حاوی مدل طبقه بندی است که برای تشخیص اشیا استفاده می شود.

انجام تشخیص اشیا با ImageAI

حالا بیایید ببینیم چگونه از کتابخانه ImageAI واقعاً استفاده کنیم. من گام به گام توضیح خواهم داد که چگونه می توانید اولین مدل تشخیص شی خود را با ImageAI بسازید.

مرحله 1

اولین وظیفه ما در اینجا ایجاد پوشه های لازم است. برای این آموزش به پوشه های زیر نیاز داریم:

  • تشخیص اشیا: root پوشه
  • مدل ها: فروشگاه مدل از پیش آموزش دیده
  • ورودی: فایل تصویر را ذخیره می کند روی که می خواهیم تشخیص شی را انجام دهیم
  • خروجی: فایل تصویر را با اشیاء شناسایی شده ذخیره می کند

پس از اینکه پوشه های خود را ایجاد کردید، Object detection پوشه باید زیر پوشه های زیر را داشته باشد:

├── input
├── models
└── output

3 directories, 0 files

گام 2

ویرایشگر متن دلخواه خود را برای نوشتن کد پایتون باز کنید و یک فایل جدید ایجاد کنید detector.py.

مرحله 3

وارد کردن ObjectDetection کلاس از کتابخانه ImageAI.

from imageai.Detection import ObjectDetection

مرحله 4

اکنون که کتابخانه imageAI و آن را وارد کرده اید ObjectDetection class، مورد بعدی ایجاد یک نمونه از کلاس است ObjectDetection، همانطور که در اینجا نشان داده شده است:

detector = ObjectDetection()

مرحله 5

بیایید مسیر را از تصویر ورودی، تصویر خروجی و مدل خود مشخص کنیم.

model_path = "./models/yolo-tiny.h5"
input_path = "./input/test45.jpg"
output_path = "./output/newimage.jpg"

مرحله 6

پس از نمونه سازی ObjectDetection کلاس اکنون می توانیم توابع مختلفی را از کلاس فراخوانی کنیم. کلاس شامل توابع زیر برای فراخوانی مدل های از پیش آموزش دیده است: setModelTypeAsRetinaNet()، setModelTypeAsYOLOv3()، و setModelTypeAsTinyYOLOv3().

برای هدف این آموزش، از آموزش از قبل آموزش داده شده استفاده خواهم کرد TinyYOLOv3 مدل، و از این رو ما از آن استفاده خواهیم کرد setModelTypeAsTinyYOLOv3() عملکرد برای بارگذاری مدل ما.

detector.setModelTypeAsTinyYOLOv3()

مرحله 7

در مرحله بعد، ما می خواهیم تابع را فراخوانی کنیم setModelPath(). این تابع رشته ای را می پذیرد که شامل مسیر مدل از پیش آموزش دیده می شود:

detector.setModelPath(model_path)

مرحله 8

این مرحله تابع را فراخوانی می کند loadModel() از detector نمونه، مثال. مدل را از مسیر مشخص شده در بالا با استفاده از بارگذاری می کند setModelPath() روش کلاس

detector.loadModel()

مرحله 9

برای تشخیص اشیاء در تصویر، باید شماره را فراخوانی کنیم detectObjectsFromImage عملکرد با استفاده از detector شی ای که در قسمت قبل ایجاد کردیم.

این تابع به دو آرگومان نیاز دارد: input_image و output_image_path. input_image مسیری است که تصویری که ما شناسایی می کنیم در آن قرار دارد، در حالی که output_image_path پارامتر مسیر ذخیره تصویر با اشیاء شناسایی شده است. این تابع یک فرهنگ لغت را برمی گرداند که حاوی نام ها و درصد احتمالات تمام اشیاء شناسایی شده در تصویر است.

detection = detector.detectObjectsFromImage(input_image=input_path, output_image_path=output_path)

مرحله 10

با پیمایش در هر مورد در فرهنگ لغت می توان به آیتم های فرهنگ لغت دسترسی داشت.

for eachItem in detection:
    print(eachItem("name") , " : ", eachItem("percentage_probability"))

کد کامل برای تشخیص اشیا

در اینجا کد کامل برای تشخیص تصویر آمده است:

from imageai.Detection import ObjectDetection

detector = ObjectDetection()

model_path = "./models/yolo-tiny.h5"
input_path = "./input/test45.jpg"
output_path = "./output/newimage.jpg"

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"))

در خروجی، می توانید نام هر شی شناسایی شده را به همراه درصد احتمال آن مانند شکل زیر مشاهده کنید:
خروجی

car  :  54.72719073295593
car  :  58.94589424133301
car  :  62.59384751319885
car  :  74.07448291778564
car  :  91.10507369041443
car  :  97.26507663726807
car  :  97.55765795707703
person  :  53.6459743976593
person  :  56.59831762313843
person  :  72.28181958198547

تصویر اصلی:

تصویر اصلی، یعنی “test45” به این شکل بود:

تشخیص اشیا با ImageAI در پایتون

تصویر با تشخیص شی:

پس از تشخیص شی، تصویر حاصل به صورت زیر است:

تشخیص اشیا با ImageAI در پایتون

می بینید که ImageAI با موفقیت ماشین ها و افراد را در تصویر شناسایی کرده است.

نتیجه

تشخیص اشیا یکی از رایج ترین کارهای بینایی کامپیوتری است. این مقاله روش انجام تشخیص شی در پایتون را با استفاده از کتابخانه ImageAI با کمک یک مثال توضیح می دهد.

منابع

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



منتشر شده در 1403-01-20 14:17:05

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

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

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