<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های erfan akbarnezhad</title>
        <link>https://virgool.io/feed/@akbarnezhad1380</link>
        <description>عمیقا در حال یادگیری</description>
        <language>fa</language>
        <pubDate>2026-06-17 06:28:40</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1301333/avatar/aR6cVi.jpeg?height=120&amp;width=120</url>
            <title>erfan akbarnezhad</title>
            <link>https://virgool.io/@akbarnezhad1380</link>
        </image>

                    <item>
                <title>جست و جوی بصری (گوگل لنز) پارت 3 | visual search for fashion</title>
                <link>https://virgool.io/@akbarnezhad1380/%D8%AC%D8%B3%D8%AA-%D9%88-%D8%AC%D9%88%DB%8C-%D8%A8%D8%B5%D8%B1%DB%8C-%DA%AF%D9%88%DA%AF%D9%84-%D9%84%D9%86%D8%B2-%D9%BE%D8%A7%D8%B1%D8%AA-3-visual-search-for-fashion-qrxokuk8qbfj</link>
                <description>visual search for fashion | عرفان اکبرنژادبه پارت سوم مقاله ساخت موتور جست و جوگربصری رسیدیم، در پارت قبل به طور کامل در مورد دیتاست و پیش پردازش های تصاویر باهم صحبت کردیم؛ در این پارت قرار به فان ماجرا برسیم و مدل اصلی را اموزش بدیم.part 3 در یادگیری ماشین (machine learning) و یادگیری عمیق (deep learning) روش هایی وجود دارد که با دقت زیاد به مسائل کلاس بندی (classification), رگرسیون ( برای object detection) در پردازش تصویر به خوبی پاسخ میدهد.Prof. Laura Leal-Taixéنوع دیگری مسئله وجود دارد که در آن مدل ورودی دو تصویر چهره بگیرد و خروجی جواب سوال &quot; آیا این تصاویر یک شخص هست یا خیر؟ &quot;را بدهد.Prof. Laura Leal-Taixéدر یادگیری متریک (metric learning) ما به دنبال یادگیری شباهت بین دو تصویر یا چیز (موزیک و فیلم و …) هسیم.یادگیری متریک (metric learning)درک شباهت بین تصاویر یک مشکل کلیدی در بینایی کامپیوتر است. برای اندازه گیری شباهت بین تصاویر، معمولا تصاویر را در یک فضای ویژگی  به عنوان بردار تعبیه میکنیم(embedded in a feature vector space) که فاصله ی بردار ها نسبت به هم در این فضا، تشابه نسبی برقرار است.برگردیم به سوال &quot; آیا این تصاویر یک شخص هست یا خیر؟ &quot; برای جواب دادن به این سوال، ما میتوانیم هر  شخص را یک کلاس در نظر بیریم و مدل را اموزش بدیم.Prof. Laura Leal-Taixéولی این روش یه سری محدودیت هایی دارد، مهم ترینش این است که ما عکس همه ادم های روی کره زمین را نداریم تا با کلاس بندی آن ها و سپس تشخیص اون ادم بتوانیم قفل گوشی را باز کنیم.به جای کلاس بندی هر شخص از یه تابعه شباهت (similarity function) استفاده میکنیم، به این صورت که دو تا تصویر به تابع بدهیم و ازش امتیاز شباهت بین دو تصویر را بخواهیم.یادگیری تابع شباهت | Siamese Neural Networksچگونه شبکه را طوری اموزش بدهیم که شباهت را یاد بگیرد؟در پارت اول با استخراج ویژگی تصاویر در فضای n  بعدی اشنا شدیم، بعد از استخراج ویژگی در تصویر، ما یک بردار 128 بعدی( 128-dim) که نشون دهنده ی ویژگی های تصویر هست. هدف ما از این تابع این است که، فاصله بردار های تصاویر یک شخص تا حداقل (threshold) به هم نزدیک باشند تا مدل قفل صفحه را برایمان باز کنه.دو نوع تابع هزینه (loss function) برای این شبکه وجود دارد.  

 - Contrastive loss
 - Triplet lossتابع Contrastive lossدر تابع هزینه contrastive loss مدل یک جفت عکس میگیرد، اگر این جفت از یک شخص باشد(positive pair) که *y برابر با 1 خواهد بود و فقط نیمه اول تابع هزینه محاسبه میشود و در اینجا باید فاصله این جفت  عکس به هم نزدیک شود. اگر این جفت عکس از یک شخص نباشد(negative pair)، در اینجا باید فاصله دو تصویر نسبت به هم زیاد شود (در فرمول ما m(مارجین) قرار میدهیم که اگر فاصله ی دو تصویر اندازه مارجین بود دیگر عمل بکپروپگیشن (backpropagation) و تغییر وزن های مدل را انجام نده.).Contrastive lossتابع Triplet lossدر تابع هزینه triplet loss مدل سه تا عکس به عنوان ورودی میگیرد anchor, positive, negative؛anchor, positive, negativeدر این نوع از آموزش دادن، مدل یک تصویر(anchor) را میگیرد و هم زمان با positive pair و negative pair  مقایسه میکند؛ قطعا باید شباهت بین anchor و positive زیاد باشد (فاصله دو عکس نسبت به هم کم باشد) و شباهت  anchor و negative کم باشد (فاصله دو عکس نسبت به هم زیادباشد).برگردیم به موضوع اصلی مقاله که شباهت بین تی شرت های دیجی کالا بود، دیتا هارو طوری در یک فایل csv قرار میدهیم کهدر هر ردیف، ستون اول anchor، ستون دوم posetive و ستون سوم negative باشه؛ میتونیم برای قسمت posetive از طریق دیتا اگمنتیشن یک سری تغیرات(نویز،کراپ،تغییر سایز عکس و ... ) روی anchor انجام بدیم و برای قسمت negative هم به صورت رندوم یک تصویر دیگه از دیتاستون را انتخاب میکینم.بعد از حدود دو ساعت اموزش مدل یه خروجی نسبتا قابل قبولی دریافت کردم.ستون سمت چپ ورودی کاربر و ستون ها راست خروجی مدل (با توجه به دیتابیس)ستون سمت چپ ورودی کاربر و ستون ها راست خروجی مدل (با توجه به دیتابیس)تمام کد های siamese network به زبان پایتون (python) در گیت هابم موجود هست.بخش سوم و این سری از مقالات را تمام میکنم امیدوارم خوشتان آمده باشد من تازه شروع کردم به نوشتن پروژه ها، اگر پیشنهادی یا انتقادی به نوع نوشتاری و کلا همه چی داشتید خوش حال میشم نظرتون را برای من بنویسید.</description>
                <category>erfan akbarnezhad</category>
                <author>erfan akbarnezhad</author>
                <pubDate>Sun, 28 Aug 2022 21:23:38 +0430</pubDate>
            </item>
                    <item>
                <title>جست و جوی بصری (گوگل لنز) پارت 2 | visual search for fashion</title>
                <link>https://virgool.io/@akbarnezhad1380/%D8%AC%D8%B3%D8%AA-%D9%88-%D8%AC%D9%88%DB%8C-%D8%A8%D8%B5%D8%B1%DB%8C-%DA%AF%D9%88%DA%AF%D9%84-%D9%84%D9%86%D8%B2-%D9%BE%D8%A7%D8%B1%D8%AA-2-visual-search-for-fashion-sh9exwjmrh0f</link>
                <description>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</description>
                <category>erfan akbarnezhad</category>
                <author>erfan akbarnezhad</author>
                <pubDate>Fri, 19 Aug 2022 20:31:16 +0430</pubDate>
            </item>
                    <item>
                <title>جست و جوی بصری (گوگل لنز) پارت 1  | visual search for fashion</title>
                <link>https://virgool.io/@akbarnezhad1380/%D8%AC%D8%B3%D8%AA-%D9%88-%D8%AC%D9%88%DB%8C-%D8%A8%D8%B5%D8%B1%DB%8C-%DA%AF%D9%88%DA%AF%D9%84-%D9%84%D9%86%D8%B2-%D9%BE%D8%A7%D8%B1%D8%AA-1-visual-search-for-fashion-vdlczmwbjyyg</link>
                <description>visual search for fashion | عرفان اکبرنژادقطعا برای شما هم پیش آمده است که از لباسی در فیلم یا شبکه اجتماعی خوشتان آمده باشد و بخواهید آن را بخرید ولی هیچ کلمه ای  برای توصیف آن لباس یا شی به ذهنتان نرسد.انسان ها برای بدست اوردن اطلاعات داخل گوگل یا هر موتور جست و جو گری از کلمات استفاده میکنند؛ این کلمات در برگیرنده  ویژگی های اطلاعاتی است که میخواهیم از گوگل استخراج کنیم.حالا فرض کنیم از دیجی کالا قراراست تی شرت بخریم، در جست جوگر دیجی کالا کلمه تی شرت را تایپ می کنیم؛ دی جی کالا تیشرت های مردانه، بچه گانه، زنانه و … را در سایزها و اشکال مختلف نشان میدهد. ما میخواهیم خروجی را محدودتر کنیم این بار تی شرت مردانه سرچ میکنیم، این بار هم خروجی پر از کالاهایی است که ما نمی پسندیم. خروجی را باز محدود تر می کنیم تیشرت مردانه راه راه  را سرچ میکنیم این خروجی هم مورد پسند نیست، و دوباره تیشرت مردانه راه راه سفید و سیاه سرچ میکنیم بعد از کلی وقت گذاشتن بالاخره کالایی مورد نظر خود را پیدا می کنیم.با جست و جوی بصری، فقط لازم است عکس مورد نظر خود را اپلود کنید و موتور جست و جوی (دیجیکلا) موارد مشابه را برایتان پیدا کند؛ بنابراین، اگر تصویری از لباس عالی در سر دارید اما به نظر نمی رسد آن را در جایی پیدا کنید، یک جستجوی بصری می تواند به شما کمک کند آن را پیدا کنید.یک تصویر اندازه هزار کلمه ارزش دارد.محتوای پارت ها درست مانند گوگل لنز، در اینجا قصد دارم یک موتور جست و جو گر بصری با استفاده از هوش مصنوعی (دیپ لرنینگ) درست کنیم، توضیحات انجام این پروژه را در اینجا بنویسیم . Three parts of the articleقبل از شروع پارت اول، دموی نهایی پروژه در عکس زیر قرار دارد؛ این پروژه فقط بر روی دیتاست تیشرت اموزش دیده شده است. به این صورت است که کاربر عکسی از تیشرت مورد نظر خود را وا رد می کند (anchor) و مدل هوش مصنوعی چند مدل از تیشرت های داخل فروشگاه (دیتابیس) را به کاربر پیشنهاد می دهد. (recommended )ستون سمت چپ ورودی کاربر و ستون ها راست خروجی مدل (با توجه به دیتابیس) جست و جوی بصری در این پروژه، جست و جوی بصری یافتن شبیه ترین تصویر تی شرت (ورودی کاربر) در میان تصاویر تیشرت درون فروشگاه (دیتابیس) میتوان تعریف کرد.تعریف مسئله مسئله تا حدود زیادی تعریف شده است معلوم ما به دنبال مدلی هستیم که تصویری از یک کالا را بدهیم و خروجی مشابه به آن را به ما ارائه دهد.اصلا شباهت یعنی چی ؟چرا میگیم فلانی شبیه فلانی ؟ما یه سری از ویژگی های متغیر در آدم ها را باهم مقایسه میکنیم مثل رنگ چشم ، فرم صورت ،اندازه بینی ،فرم بینی و …. ، داشتن چشم سبب شباهت آدمها با هم نیست بلکه یکسان بودن رنگ بودن چشم، سبب شباهت آدمها می شود.بیایم به جای آدم از کرم استفاده کنیم ما ۳ نوع کرم داریم فقط ویژگی اندازه طول و قطر ها رو میدانیماولین نوع [۲۰ و ۰.۵ ]دومین نوع [۱۵ و ۱ ]سومین نوع [۱۰ و۰.۸]حالا یه کرم با ویژگی های [۱۹ و ۱]  به ما میدهند و می گویند  به کدام نوع شباهت دارد، کمی سخت شد ولی ریاضی برایمان آسانش می کند.ما چون دو ویژگی کرم ها را میدانیم در فضای دو بعدی  تعبیه (embedded space) می کنیم و بعد فاصله ی کرمی که میخواهیم پیدا کنیم را با کرم های دیگر مقایسه میکنیم.هر نوع کرم را به دلیل اینکه دو ویژگی اش مشخص بود، به یک نقطه در فضای دو بعدی تعمیم داد که x ویژگی اول و y  ویژگی دوم.اگر سه ویژگی مشخص بود به بردار در فضای سه بعدی تعمیم می دادیماگر n ویژگی داشت به بردار در فضای n بعدی تعمیم می دادیم. حال چون هر نوع کرم رو به نقطه تعمیم دادیم میریم سراغ فاصله ی دو نقطه که نشان دهنده ی شباهت کرم ها نسبت بهم هستفاصله ی دونقطه را میتوانیم از روش (اقلیدوسی و منهاتن و شباهت کسینوسی و …) انتخاب کنیم و فاصله را بدست بیاوریم هرچی فاصله بین دو نقطه بیشتر باشد در نتیجه دو کرم باهم تفاوت زیادی دارند و هرچی فاصله بین دو کرم کم تر باشد شباهت دو کرم به هم بیشتر استاندازه گیری فاصله دونقطه استخراج ویژگی |  feature extractionابتدا یک فضای ویژگی که تصاویر در آن تعبیه (embedded space) می شوند را تعریف می کنیم. در این فضا می‌توانیم تصاویر را به‌عنوان بردار مقادیر پیکسلی آن‌ها که ویژگی‌های بصری تصاویر هستند، نشان دهیم. برای مثال اگر پیکسل های عکس به صورت 224 و224 و3 (ارتفاع و عرض و  کانال RGB ) باشد ما با استفاده از استخراج ویژگی(feature extraction) ابعاد تصاویر به یه بردار(vector) n بعدی تبدیل میکنیم؛ بعد از تبدیل کردن تصاویر به بردار به دنبال شباهت بردارها (شباهت کسینوسی) که درواقع شباهت به تصاویر است می گردیم.این کار برای ساده‌سازی تصویر برای پردازش بیشتر یا کاهش حجم داده‌هایی که باید ذخیره شوند انجام می‌شود.مشکلی که بعد از بدست آوردن بردار ویژگی ها داریم این است که چگونه ویژگی های تصاویر را تعبیه کنیم که فاصله بردارهای تصاویر مشابه به هم کمتر و فاصله بردارهای تصاویر متفاوت بیشتر باشد. در بخش سوم راه حل این مشکل پاسخ داده شده است.بردار n بعدی حاصل از استخراج ویژگی بخش اول را  تمام میکنم امیدوارم خوشتان آمده باشد من تازه شروع کردم به نوشتن پروژه ها، اگر پیشنهادی یا انتقادی به نوع نوشتاری و کلا همه چی داشتید خوش حال میشم نظرتون را برای من بنویسید .</description>
                <category>erfan akbarnezhad</category>
                <author>erfan akbarnezhad</author>
                <pubDate>Wed, 17 Aug 2022 15:54:02 +0430</pubDate>
            </item>
            </channel>
</rss>