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

visual search for fashion | عرفان اکبرنژادبه پارت دوم مقاله ساخت موتور جست و جوگربصری رسیدیم، در مقاله قبل به خوبی با تعریف شباهت و استخراج ویژگی در تصاویر اشنا شدیم (حتما ابتدا مقاله پارت اول را مطالعه کنید) . و در نهایت باید مدل هوش مصنوعی طراحی کنیم که بعد ازاستراج ویژگی؛ فاصله بردار تصاویر شبیه به هم کم باشد و فاصله تصاویر متفاوت زیاد باشد؛ کل فرآیند گرفتن تصاویر از کاربر و تبدیل آنها به بردار است. سپس شباهت بین این بردارها را پیدا کرده و آن را در پایگاه داده (دیتابیس) خود مقایسه می کنیم.part 2دیتاستدر این بخش، دیتاست خود و نحوه تکنیک های پیش پردازش برای ساخت موتور جستجوی بصری برای تی شرت را توضیح خواهم داد.برای اینکه یک مدل هوش مصنوعی خوب اموزش ببینه؛ به دیتای خوب نیاز دارید. نقش دیتا در هوش مصنوعی، نقش سوخت در ماشین است. هر چه سوخت زیاد باشد، ماشین بیشتر حرکت میکند؛ هر چی دیتا بیشتر و تمیز باشد مدل بیشتر و بهتر یاد میگیرد.مجموعه دیتاست :دیتاست (تصاویر تیشرت) جمع اوری شده از گیت هابوب اسکرپینگ (Web Scraping) از دیجی کالا6500 تصویر تیشرت در دیتاستمون قرار دارد؛ از این تعداد حدود 70 درصد تصاویر تیشرت بر تن یک انسان هست و 30 درصد باقی مانده تنها از تی شرت عکس برداری شده است.70 درصد با انسان 30 درصد بدون انسان برای تمیز کردن دیتاستمون، ابتدا یه مدل دتکشن ( object detection ) لباس های بالا تنه درست میکنیم و سپس از طریق سگمنتیشن ( segmentation) پیکسل های تصویر که حاوی تیشرت را استخراج میکنیم. detect -- segment -- maskوظایف مختلف در کامپیوتر ویژن | Computer Vision Tasks1- کلاسیفیکیشن (Image Classification)2- تشخیص اشیا (Object Detection)3- تقسیم بندی (Image Segmentation)سه تا کاربرد های مهم کامپیوتر ویژن؛ به طور خلاصه در کلاسیفیکیشن تصاویر (Image Classification) به سوال چه چیزی؟ (موجود زنده و اشیا و ….) در تصاویر هست پاسخ میدهد، در تشخیص اشیا Object) Detection) کجای تصاویر اون چیز (موجود زنده و اشیا و ….) وجود دارد و در تقسیم بندی تصویر (Image 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در تک مرحه ای استخراج مکان ها (region proposal) حذف شده و مدل فقط پیشبینی رگرسیون (x, y, h, w) برای (bounding boxes) و احتمال کلاس هارا میکند.one-stageدر مدل های تک مرحله ای (one-stage) چون محاسبات کم تری نسبت به دو مرحله ای (two-stage) دارد، سریع تر پیشبینی و محاسبه میکند، ولی ممکن است عملکرد شبکه کاهش یابد.مقایسه منصفانه بین تشخیص اشیاهای مختلف بسیار سخت است. هیچ پاسخ دقیقی در مورد اینکه کدام مدل بهترین است وجود ندارد.هر مدل ممکن است در یک موقعیت خاص، عملکرد بهتری داشته باشد.FPSmAPزیاد وارد نکات ریز تشخیص اشیا (Object Detection) و سگمنتیشن (Image Segmentation) نمیشم، در این پروژه چون ملاکمون دقت، و زمان زیاد اهمیتی برای ما ندارد از مدل EfficientDet و برای سگمنتیشن هم از مدل U-NET استفاده میکنم.تمام کد های object detection و segmentation به زبان پایتون (python) در گیت هابم موجود هست.بخش دوم را تمام میکنم امیدوارم خوشتان آمده باشد من تازه شروع کردم به نوشتن پروژه ها، اگر پیشنهادی یا انتقادی به نوع نوشتاری و کلا همه چی داشتید خوش حال میشم نظرتون را برای من بنویسید. منابع Train EfficientDet in TensorFlow 2 Object DetectionCreate Dataset in RoboflowTensorflow Object Detection in 5 Hours with PythonEfficientDet: Scalable and Efficient Object DetectionEfficient Methods and Hardware for Deep LearningU-Net: Convolutional Networks for Biomedical Image SegmentationImplementing original U-Net from scratch using PyTorch