erfan akbarnezhad
erfan akbarnezhad
خواندن ۳ دقیقه·۲ سال پیش

جست و جوی بصری (گوگل لنز) پارت 2 | visual search for fashion

visual search for fashion | عرفان اکبرنژاد
visual search for fashion | عرفان اکبرنژاد

به پارت دوم مقاله ساخت موتور جست و جوگربصری رسیدیم، در مقاله قبل به خوبی با تعریف شباهت و استخراج ویژگی در تصاویر اشنا شدیم (حتما ابتدا مقاله پارت اول را مطالعه کنید) .

و در نهایت باید مدل هوش مصنوعی طراحی کنیم که بعد ازاستراج ویژگی؛ فاصله بردار تصاویر شبیه به هم کم باشد و فاصله تصاویر متفاوت زیاد باشد؛ کل فرآیند گرفتن تصاویر از کاربر و تبدیل آنها به بردار است. سپس شباهت بین این بردارها را پیدا کرده و آن را در پایگاه داده (دیتابیس) خود مقایسه می کنیم.


part 2
part 2



دیتاست


در این بخش، دیتاست خود و نحوه تکنیک های پیش پردازش برای ساخت موتور جستجوی بصری برای تی شرت را توضیح خواهم داد.

برای اینکه یک مدل هوش مصنوعی خوب اموزش ببینه؛ به دیتای خوب نیاز دارید. نقش دیتا در هوش مصنوعی، نقش سوخت در ماشین است. هر چه سوخت زیاد باشد، ماشین بیشتر حرکت میکند؛ هر چی دیتا بیشتر و تمیز باشد مدل بیشتر و بهتر یاد میگیرد.




مجموعه دیتاست :


6500 تصویر تیشرت در دیتاستمون قرار دارد؛ از این تعداد حدود 70 درصد تصاویر تیشرت بر تن یک انسان هست و 30 درصد باقی مانده تنها از تی شرت عکس برداری شده است.


70 درصد با انسان 30 درصد بدون انسان
70 درصد با انسان 30 درصد بدون انسان



برای تمیز کردن دیتاستمون، ابتدا یه مدل دتکشن ( object detection ) لباس های بالا تنه درست میکنیم و سپس از طریق سگمنتیشن ( segmentation) پیکسل های تصویر که حاوی تیشرت را استخراج میکنیم.


 detect -- segment -- mask
detect -- segment -- mask





وظایف مختلف در کامپیوتر ویژن | Computer Vision Tasks

  • 1- کلاسیفیکیشن (Image Classification)
  • 2- تشخیص اشیا (Object Detection)
  • 3- تقسیم بندی (Image Segmentation)

سه تا کاربرد های مهم کامپیوتر ویژن؛ به طور خلاصه در کلاسیفیکیشن تصاویر (Image Classification) به سوال چه چیزی؟ (موجود زنده و اشیا و ….) در تصاویر هست پاسخ میدهد، در تشخیص اشیا Object) Detection) کجای تصاویر اون چیز (موجود زنده و اشیا و ….) وجود دارد و در تقسیم بندی تصویر (Image Segmentation) کدام پیکسل های عکس حاوی اون چیز (موجود زنده و اشیا و ….) هست.


Classification-object detection-instance segmentation
Classification-object detection-instance segmentation



تشخیص اشیا (Object Detection)

تشخیص اشیا وظیفه مکان یابی و چارچوب (bounding box) اشیا را در تصاویر است. روش های تشخیص اشیا را می توان به دو دسته تک مرحله ای (one-stage) و دو مرحله ای (two-stage) تقسیم کرد.

در دو مرحله ای مدل ابتدا مکان های ای که احتمال وجود شی را دارد استخراج میکند ( region proposal ) و فقط اون مکان ها را کلاس بندی و رگرسیون (x, y, h, w) برای (bounding boxes ) میکنه. ( rcnn )

two-stage
two-stage


در تک مرحه ای استخراج مکان ها (region proposal) حذف شده و مدل فقط پیشبینی رگرسیون (x, y, h, w) برای (bounding boxes) و احتمال کلاس هارا میکند.


one-stage
one-stage


در مدل های تک مرحله ای (one-stage) چون محاسبات کم تری نسبت به دو مرحله ای (two-stage) دارد، سریع تر پیشبینی و محاسبه میکند، ولی ممکن است عملکرد شبکه کاهش یابد.

مقایسه منصفانه بین تشخیص اشیاهای مختلف بسیار سخت است. هیچ پاسخ دقیقی در مورد اینکه کدام مدل بهترین است وجود ندارد.هر مدل ممکن است در یک موقعیت خاص، عملکرد بهتری داشته باشد.

FPS
FPS
mAP
mAP



زیاد وارد نکات ریز تشخیص اشیا (Object Detection) و سگمنتیشن (Image Segmentation) نمیشم، در این پروژه چون ملاکمون دقت، و زمان زیاد اهمیتی برای ما ندارد از مدل EfficientDet و برای سگمنتیشن هم از مدل U-NET استفاده میکنم.

تمام کد های object detection و segmentation به زبان پایتون (python) در گیت هابم موجود هست.


بخش دوم را تمام میکنم امیدوارم خوشتان آمده باشد من تازه شروع کردم به نوشتن پروژه ها، اگر پیشنهادی یا انتقادی به نوع نوشتاری و کلا همه چی داشتید خوش حال میشم نظرتون را برای من بنویسید.


منابع


هوش مصنوعیگوگل لنزپردازش تصویرobject detection
عمیقا در حال یادگیری
شاید از این پست‌ها خوشتان بیاید