از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تشخیص اشیا با ImageAI در پایتون
سرفصلهای مطلب
معرفی
تشخیص اشیا یک فناوری است که در حوزه وسیع تری قرار می گیرد کامپیوتر ویژن. با شناسایی و ردیابی اشیاء موجود در تصاویر و ویدئوها سروکار دارد. تشخیص اشیا دارای کاربردهای متعددی مانند تشخیص چهره، تشخیص وسیله نقلیه، شمارش عابر پیاده، خودروهای خودران، سیستم های امنیتی و غیره است.
دو هدف اصلی تشخیص اشیا عبارتند از:
- برای شناسایی تمام اشیاء موجود در یک تصویر
- شی مورد توجه را فیلتر کنید
در این مقاله روش تشخیص اشیاء در پایتون را با کمک 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 با کمک یک مثال توضیح می دهد.
منابع
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-20 14:17:05