جستجو برای:
سبد خرید 0
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما

ورود

گذرواژه خود را فراموش کرده اید؟

ثبت نام

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

هوش مصنوعی رضوان
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما
ورود / ثبت نام
0

وبلاگ

هوش مصنوعی رضوان > فایل های آموزشی رایگان > تشخیص اسکناس در متلب

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

فایل های آموزشی رایگان

توضیحات ویدئو

پروژه “تشخیص اسکناس با کمک متلب” یک پروژه جذاب و کاربردی در حوزه پردازش تصویر و هوش مصنوعی است. هدف اصلی این پروژه، توانایی تشخیص و شناسایی اسکناس‌های مختلف بر اساس تصاویر آن‌ها است. با استفاده از نرم‌افزار متلب و الگوریتم‌های ماشین بینایی، می‌توان اسکناس‌ها را به صورت خودکار تشخیص داده و اطلاعات مربوط به آن‌ها را استخراج کرد. برای انجام این پروژه، از تصاویر دیجیتالی اسکناس‌ها به عنوان داده ورودی استفاده می‌شود. این تصاویر می‌توانند از روی اسکنر یا دوربینی گرفته شده باشند. اسکناس‌ها معمولاً ویژگی‌های مشخصی دارند که با استفاده از الگوریتم‌های پردازش تصویر قابل استخراج هستند. این ویژگی‌ها می‌توانند شامل الگوهای ریاضی، نوشتاری، رنگی و سایر اطلاعات مربوط به اسکناس باشند.
این پروژه می‌تواند در بسیاری از زمینه‌ها کاربرد داشته باشد. به عنوان مثال، در صنعت بانکداری و ارزی، تشخیص خودکار اسکناس‌های جعلی می‌تواند به عنوان یک ابزار مهم در تشخیص تقلب و کنترل اعتبار استفاده شود. همچنین، در سیستم‌های خودپرداز بانکی، تشخیص اسکناس‌ها می‌تواند فرایند شمارش و تشخیص مبالغ مالی را سریعتر و دقیق‌تر کند.
کد این پروژه در ادامه قابل مشاهده است. به طور خلاصه این پروژه، ابتدا کدها و کتابخانه‌های مورد نیاز را فراخوانی می‌کند و مسیر تصاویر اسکناس‌ها را تعیین می‌کند. سپس ماتریس‌های مختلفی را از فایل‌های متنی خوانده و در متغیرهای مربوطه ذخیره می‌کند. سپس یک حلقه برای هر تصویر اسکناس اجرا می‌شود. در هر مرحله، تصویر خوانده می‌شود و ماتریس نتایج و ماتریس رای‌گیری صفر مقداردهی می‌شود. سپس مقدار کمینه فاصله را بین تصویر و ماتریس‌های گری اسکیل، RGB، HSV و HSM محاسبه می‌کند و در متغیر min_distance ذخیره می‌کند. سپس مقادیر مختلف ماتریس‌ها و فاصله کمینه در متغیر result ذخیره می‌شوند. همچنین، با توجه به مقدار کمینه فاصله، مقادیر متغیر result برای شناسایی اسکناس تنظیم می‌شوند. در ادامه، ماتریس رای‌گیری برای تعداد داده‌های آموزشی و نتایج حاصل از رای‌گیری (تعداد رای بیشتر) محاسبه می‌شوند و در نهایت تصاویر نمایش داده می‌شوند. نتیجه نهایی به یک فایل متنی ذخیره می‌شود و متغیر done برابر 1 قرار می‌گیرد تا نشان دهد که کد اجرا شده است.

کدهای پروژه

clc;

clear;

close all;







path    = 'img/test/';

images = dir(strcat(path, '*.jpg'));

count   = length(images);




GrayscaleMatris = ReadMatrix('GrayscaleMatris.txt');

HSMatris        = ReadMatrix('HSMatris.txt');

HSVMatris       = ReadMatrix('HSVMatris.txt');

RGBMatris       = ReadMatrix('RGBMatris.txt');




for i = 1 : count

    HSMatris(i, 4) = ( HSMatris(i, 4) / 2 ) * 255;

    

    HSVMatris(i, 5) = ( HSVMatris(i, 5) / 3 ) * 255;

    

    RGBMatris(i, 5) = RGBMatris(i, 5) / 3;

end




result = zeros(count, 10);




train_names = trainData();

train_size = size(train_names);

train_size = train_size(2);




figure;

for i = 1 : count

    image_file          = images(i).name;

    image               = imread(strcat(path, image_file));

    

    voteMatris = zeros(train_size + 1, 1);

    

    min_distance = min( min( GrayscaleMatris(i, 3), RGBMatris(i, 5) ), min( HSMatris(i, 4), HSVMatris(i, 5) ) );

    

    result(i, 1) = GrayscaleMatris(i, 3);

    result(i, 2) = RGBMatris(i, 5);

    result(i, 3) = HSMatris(i, 4);

    result(i, 4) = HSVMatris(i, 5);

    

    result(i, 6) = min_distance;

    

    if(min_distance == GrayscaleMatris(i, 3))

        result(i, 7) = GrayscaleMatris(i, 2);

        result(i, 8) = 1;

    end

    if(min_distance == RGBMatris(i, 5))

        result(i, 7) = RGBMatris(i, 4);  

        result(i, 8) = 2;

    end

    if(min_distance == HSMatris(i, 4))

        result(i, 7) = HSMatris(i, 3);

        result(i, 8) = 3;

    end

    if(min_distance == HSVMatris(i, 5))        

        result(i, 7) = HSVMatris(i, 4);

        result(i, 8) = 4;

    end

    

    voteMatris( GrayscaleMatris(i, 2) + 1, 1 )  = voteMatris( GrayscaleMatris(i, 2) + 1, 1 ) + 1;

    voteMatris( RGBMatris(i, 4) + 1, 1 )        = voteMatris( RGBMatris(i, 4) + 1, 1 ) + 1;

    voteMatris( HSMatris(i, 3) + 1, 1 )         = voteMatris( HSMatris(i, 3) + 1, 1 ) + 1;

    voteMatris( HSVMatris(i, 4) + 1, 1 )        = voteMatris( HSVMatris(i, 4) + 1, 1 ) + 1;

    voteMatris( result(i, 7) + 1, 1 )           = voteMatris( result(i, 7) + 1, 1 ) + 1;

    

    maxVote = max(voteMatris);

    

    result(i, 5) = NaN;

    result(i, 9) = NaN;

    

    if(maxVote > 1)

        for j = 1 : train_size() + 1

            if(voteMatris(j) == maxVote)

               break; 

            end

        end

        

        if(j == 1)

            result(i, 10) = 0;

        else

            result(i, 10) = j - 1;

        end

    else

        result(i, 10) = result(i, 7);

    end

    

    subplot(round(count / 4), round(count / 4),i),imshow(image);

    

    if(result(i, 10) == 0)

        title('no money');

    else

        title(train_names(result(i, 10)));

    end

end




SaveMatrix(result, 'mainResultMatris.txt');

done = 1
توضیحات کدها:
  • مسیر تصاویر ورودی به متغیر path اختصاص داده می‌شود و تمام فایل‌های با پسوند jpg در این مسیر با استفاده از تابع dir و در متغیر images ذخیره می‌شوند. سپس تعداد تصاویر موجود در متغیر count ذخیره می‌شود.
  • ماتریس‌های مربوط به ویژگی‌های اسکناس‌ها (GrayscaleMatris، HSMatris، HSVMatris، RGBMatris) از فایل‌های متنی خوانده می‌شوند.
  • مقادیر مشخصی از ماتریس‌های HSMatris، HSVMatris و RGBMatris تغییر داده می‌شوند. این تغییرات شامل تبدیل برخی از مقادیر به مقیاس 255 و تقسیم بر عدد 3 است.
  • یک ماتریس نتیجه با ابعاد count × 10 با مقادیر صفر ایجاد می‌شود. این ماتریس برای ذخیره نتایج نهایی شناسایی اسکناس‌ها استفاده می‌شود.
  • نام‌های مربوط به دسته‌های آموزشی (اسکناس‌های مختلف) از تابع trainData خوانده می‌شوند و در متغیر train_names ذخیره می‌شوند. سپس اندازه این متغیر محاسبه و در متغیر train_size ذخیره می‌شود.
  • در حلقه for اصلی، برای هر تصویر ورودی، عملیات شناسایی اسکناس انجام می‌شود. برای هر تصویر، تصویر ورودی با استفاده از تابع imread خوانده می‌شود و در متغیر image ذخیره می‌شود.
  • یک ماتریس voteMatris با ابعاد (train_size + 1) × 1 ایجاد می‌شود. این ماتریس برای شمارش آراء در مورد هر دسته آموزشی استخدام می‌شود.
  • مقدار کمینه از بین مقادیر GrayscaleMatris(i, 3)، RGBMatris(i, 5)، HSMatris(i, 4) و HSVMatris(i, 5) به عنوان min_distance محاسبه می‌شود و در ماتریس result در ستون اول تا چهارم قرار می‌گیرد.
  • در بخش بعد، با استفاده از min_distance، دسته اسکناس متناظر با آن تشخیص داده می‌شود و در ماتریس result در ستون هفتم و هشتم ذخیره می‌شود. همچنین تعداد آراء هر دسته در ماتریس voteMatris ثبت می‌شود.
  • بزرگترین تعداد آراء در voteMatris بررسی می‌شود و در متغیر maxVote ذخیره می‌شود.
  • در بخش بعد، بررسی می‌شود که آیا بیش از یک دسته با بیشترین تعداد آراء وجود دارد یا خیر. در صورت وجود بیش از یک دسته با بیشترین تعداد آراء، دسته اصلی به عنوان دسته شناسایی شده تعیین می‌شود و در ماتریس result در ستون دهم ذخیره می‌شود.
  • سپس تصویر ورودی به همراه نتیجه شناسایی آن در یک نمودار نمایش داده می‌شود. اگر دسته شناسایی شده برابر با 0 باشد، عبارت “no money” به عنوان عنوان نمایش داده می‌شود، در غیر این صورت نام دسته اسکناس در عنوان نمایش داده می‌شود.
  • نتیجه نهایی شناسایی اسکناس‌ها در فایل متنی با نام txt ذخیره می‌شود.
  • متغیر done برابر با 1 قرار داده می‌شود تا نشان دهد که اجرای برنامه به پایان رسیده است.
امیدواریم این پروژه برای شما مفید و کاربردی واقع شده باشد. هدف آکادمی هوش مصنوعی رضوان، به اشتراک ‌گذاری تجربیاتی ارزشمند در زمینه پردازش تصویر و هوش مصنوعی با شما مخاطب ارجمند است. لطفا از سایر آموزش‌های رایگان و دوره‌های آموزشی ما دیدن و ما را در شبکه‌های اجتماعی دنبال فرمایید.
قبلی تخمین سن با الگوریتم لبه یابی کنی در متلب
بعدی تشخیص چهره با الگوریتم ویولاجونز در متلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • فایل های آموزشی رایگان
  • مقالات
دسته‌های محصولات
  • دوره ها
  • عمومی
نوشته‌های تازه
  • تحولی نوین در صنعت بیمه با هوش مصنوعی
  • سیستم‌های توصیه‌گر: راهنمای جامع
  • ربات هوش مصنوعی چیست؟ اشتراکات و کاربردهای رباتیک و هوش مصنوعی
  • تعریف هوش مصنوعی در زنجیره تأمین
  • هوش مصنوعی احساسی: درک و تحلیل احساسات انسانی
درباره ما

هدف ما آموزش هوش مصنوعی با استفاده از پایتون و متلب می باشد تا بتوانیم موارد کاربردی آن را به شما عزیزان آموزش دهیم.

دسترسی سریع
  • دوره ها
  • تماس با ما
    نماد ها
    کلیه حقوق مادی و معنوی این سایت متعلق به هوش مصنوعی رضوان می‌باشد.
    اشتراک گذاری در شبکه های اجتماعی
    ارسال به ایمیل
    https://airezvan.com/?p=9264
    دسته بندی دوره ها
    دسته بندی بلاگ
    دوره های من
    دسته بندی دوره ها

    دوره ها

    • 3 دوره
    دسته بندی بلاگ

    فایل های آموزشی رایگان

    • 32 نوشته

    مقالات

    • 56 نوشته
    دوره های من
    برای مشاهده خریدهای خود باید وارد حساب کاربری خود شوید
    Facebook Twitter Youtube Instagram Whatsapp
    مرورگر شما از HTML5 پشتیبانی نمی کند.