نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
محمدرضا اسلامی

تشخیص خواب آلودگی-پروژه رزبری پای با dlib library

403

به نام خدایی که حسین ع را کشتی نجات قرار داد : تشخیص خواب آلودگی-پروژه رزبری پای با dlib library

پروژه رزبری پای تشخیص خواب آلودگی با dlib library

پروژه رزبری پای تشخیص خواب آلودگی با dlib library

فرق کتابخانه dlib با کتابخانه opencv

کتابخانه dlib یه چیزی تو مایه های opencv هست؛ که برای بحث پردازش تصویر و شبکه های عصبی و… ازش استفاده میشه؛ حالا چرا  یه کتابخونه جدید؟!!! با همون opencv کارمون نمیشد؟!!! همونطور که در مطلب بازشناسی چهره دیدیم، از تشخیص چهره opencv استفاده کردیم ولی کتابخانه dlib، کمی سریعتر و دقیق تره و یه مزیت دیگه که نسبت به opencv داره، اینه که محل دقیق اجزای صورت رو میشه به دست آورد ( مثل عکس زیر ) :

پروژه رزبری پای تشخیص خواب آلودگی با dlib library
خب وقتی محل دقیق اجزای صورت رو داشته باشیم،خیلی کارا میشه باهاش کرد؛ مثلا تشخیص باز و بسته بودن چشم ها، خمیازه، انحراف صورت به پایین و…

آموزش نصب کتابخانه dlib

اول باید روی رزبری پای، کتابخونه dlib رو نصب کنیم؛ آموزش نصبش تو لینک زیر هست : Install dlib on the Raspberry Pi
از لینک بالا، کلیه نکات #step1 رو انجام بدید؛ #step1 شامل موارد زیره : ( اعداد و ارقامی که تغییر می دید رو به یاد داشته باشید تا بعد از اتمام کار،دوباره به حالت اولیه اش برگردونید_به خصوص swap size )
Increase swap file size
Change your boot options
Update your memory split
خب حالا باید کتابخونه رو از dlib.net دانلود کنید ( پایین نوار سمت چپ سایت،درحال حاضر، نسخه 19.7 جدیدترینه )
بعد از دانلود، از حالت فشرده خارجش کنید و در ترمینال رزبری،به پوشه dlib-19.7 برید ( با دستور cd dlib-19.7 )
بعدش به ترتیب کدهای زیر رو در ترمینال وارد کنید :

بعدش یه فایل با دستور زیر باز کنید :

و درش وارد می کنیم :

فایل رو ذخیره می کنیم و می بندیم ( با Ctrl + x بعدش کلید y و در آخر هم اینتر )
بعد در ترمینال وارد می کنیم :

بعدش دستور زیر :

و در خط آخر فایل، دو خط کد زیر رو اضافه می کنیم :

باز هم فایل رو ذخیره می کنیم و می بندیم ( با Ctrl + x بعدش کلید y و در آخر هم اینتر )؛ در انتها، تنظیمات swapsize رو به حالت اول برمیگردونیم ( همون #step1، بخش اولش )؛ و ریبوت کردن رزبری پای!

اگر قصد دارید از دوربین و یا فایل ویدئو برای پردازش استفاده کنید، باید کتابخونه opencv و raspicam رو نصب کنید ( آموزش نصب هر دوتاش تو لینک مقابل هست ) : نیازمندی های رزبری پای

دوتا کتابخونه بالا رو فقط برای این می خوایم که فریم جاری دوربین رو فراخوانی کنه چون خود کتابخونه dlib فقط تابع فراخواندن عکس داره!!! حالا بریم سراغ تست کتابخونه.
تو ترمینال دستورات زیر روتایپ کنید :

قطعه کد زیر رو تو فایلی که بازکردید، کپی کنید :

فایل برنامه رو میتونید از آخر مطلب بگیرید؛ خب یه فایل دیگه هم هست ( shape_predictor_68_face_landmarks.dat.bz2 ) که باید دانلود کنید و از حالت فشرده خارجش کنید و تو پوشه پروژه dlibtest اضافه کنید :

با دستور زیر هم کامپایل و بیلد میشه :

با دستور زیر هم اجراش کنید :

نتیجه باید به صورت فیلم مقابل باشه : https://www.aparat.com/v/6TEYF

داستانک ( این داستان برای بنده خیلی آموزنده بود... )
بعد از اینکه چند ماه از شروع جنگ ( صفین ) گذشته بود؛ عده ای به سرکردگی اشعث ابن قیس نزد فرمانده خود، علی ابن ابی طالب ع آمده و از طولانی شدن کارزار شکوه کردند؛ لب کلام اشعث این بود: من یمنی ام و اگر کسی با شامیان، سر جنگ داشته باشه،اون منم!!! ولی جنگ بی ثمر تا کی؟؟؟ جمعیت همراه اشعث، پس از تایید سخنان او، خیمه گاه فرمانده رو ترک کردند...
چند روز بعد...
قرآن ها بر سر نیزه رفت و یاران امام، حضرت رو مجبور به برگذاری حکمیت کردند؛ امام مخالفت می کرد ولی یاران مصمم به برگذاری حکمیت؛ پس از اجبار یاران، امام شروطی گذاشتند،که هیچ یک رعایت نشد!!! و شد آنچه نباید؛ پس از شکست حکمیت، همان یاران دور فرمانده جمع شدند و وی را بازخواست نموده که چرا جلو ما نایستادی!!! و اشعث بود که به امام گفت: باید بگویی که از گناه حکمیت، استغفار می کنی...؛ و اینگونه بود که گروهی به نام خوارج تشکیل شد...

کتاب "امام علی ع از خلافت،تا شهادت"و کتاب "داستان کوفه"

خب الان بریم سراغ ( فیلم ) تشریح کد : https://www.aparat.com/v/9lLpG

یه نسخه ویندوزی هم نوشتم که از لینک زیر می تونید دانلودش کنید ( موقع اجرا، وب کم فعال باشه!! )

فیلم نتیجه اجرا نسخه ویندوزی روی لپ تاپ : https://www.aparat.com/v/H7iUJ

منبع ( مثال های آماده کتابخونه dlib ) : سایت Dlib C++ Library

راه های افزایش سرعت پردازش ( که ازشون تو برنامه استفاده شده ) : Speeding up Dlib’s Facial Landmark Detector

اگه کسی هم دنبال برنامه پایتون می گرده، به این لینک بره : Eye blink detection with OpenCV, Python, and dlib

پیشنهاد : استفاده از پردازش موازی برای افزایش سرعت؛ برای دریافت بهترین نتیجه، توجه داشته باشید که شدت نور و جهت نور مناسب باشه.

تمرین : برنامه ای بنویسید که تعداد خمیازه رو بشماره.

 

هزینه این مطلب!!! :

در صورت امکان،یه فیلم 1 دقیقه ای از زوایای مختلف چهره تون بگیرید ( ترجیها با دوربین رزبری پای ) و جایی آپلودش کنید و به ایمیل بنده ارسال کنید!! می خوام چیکار؟؟؟!! می خوام یه پروژه بازشناسی چهره ی کار درست بسازم و آموزشش رو تو سایت بذارم؛ برای این کار،نیاز به چند صد چهره مختلف،از زوایای مختلف دارم... ( این فیلم ها رو در دسترس هیچ کسی قرار نخواهم داد؛ فقط ازشون برای ساخت یک شبکه عصبی استفاده میشه و این تصاویر، از درون شبکه عصبی، قابل بازیابی نیست. )؛ از هر زاویه چهره درچرخش دوربین، حداقل 2 فریم تهیه بفرمایید ( اگر دو ویدئو یکی از شب و یکی از روز بفرستید که دیگه عالی میشه )؛ برای ضبط ویدیو در رزبری پای ،میتونید از برنامه زیر استفاده کنید :

ایمیل بنده : mohammad_r_eslami@yahoo.com

با تشکر

 

جهت هر چه مستحکم تر شدن مقام ولایت فقیه و تعجیل درظهور بابای خوبمون مهدی(عج) صلوات

برای جاماندگان اربعین : https://www.aparat.com/v/uXOtF

تعداد مطالب : 30 تا
دانش آموخته (فارغ التحصیل سابق) کارشناسی الکترونیک هستم. سه سال اول دانشگاه رو به نحو احسن هدر دادم رفت!! تا پایان ترم هفتم داشتم فکر می کردم که چی کار کنم و چی کار نکنم؟ ترم هشتم اساتید خوبی داشتم و تصمیم گرفتم،یه تکونی به خودم بدم. الان هم در حال یاد گیری علایقم هستم...
بقیه جلسات :
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه
33
نظرات این مطلب بسته شده است.
  1. محمد

    مهمان

    محمد

    سلام لطفا کمک کنید خیلی ضروری هست من هر چی در opencv دستور make رو میزنم کتابخونه ها نصب نمیشن سه روز هست درگیر هستم نشد لطفا کمک کنید

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام چه اروری میده؟عکسش رو بگیرید و بذارید.

  2. مهدی

    مهمان

    مهدی

    خسته ام کرد این wacko این ارور چیه؟ چیکارش باید کرد؟
    g++:erorr: -iwiringpi: no such file or directory

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام.
      دردستور کامپایل به جای iwiringpi-باید بنویسید lwiringpi-
      اولشi نیست L هست

  3. مهدی

    مهمان

    مهدی

    خب حالا باید کتابخونه رو از dlib.net دانلود کنید ( پایین نوار سمت چپ سایت،درحال حاضر، نسخه 19.7 جدیدترینه )

    kojast ?

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام. سایت dlib.net
      قسمت پایین سمت چپ.اینم آدرس دانلودش:
      http://dlib.net/files/dlib-19.17.zip

  4. محمد

    مهمان

    محمد

    cmake –build . –config Release
    سلام توی اجرای دستور بالا بهم میگه پوشه release وجود نداره. این پوشه رو دستس ساختم ولی بازم ارور میده فایل makefile.txt رو نمیتونم پیدا کنم میشه راهنمایی بفرمایید

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      از ترمینالتون بعد از اجرای دستور بالا عکس بگیرید و آپلود کنید.

  5. احسان امینی

    مهمان

    احسان امینی

    سلام آقای اسلامی
    بنده هنگام نصب کتابخانه ی dlib با ارور های زیر مواجه شدم .لطفا بگید باید چیکار کنم؟باتشکر
    http://s8.picofile.com/file/8323037534/%DB%B2%DB%B0%DB%B1%DB%B8%DB%B0%DB%B4%DB%B0%DB%B5_%DB%B1%DB%B5%DB%B3%DB%B2%DB%B2%DB%B9.jpg

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      پوشه dlib رو در پوشه downloads بریزید.

  6. سجاد

    مهمان

    سجاد

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

    مشاهده پاسخ ها (3)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام.
      باید یه بیزر به رزبری وصل کنید و وقتی پلک بسته شد،یکی از پایه ها رو یک کنید تا بیزر بوق بزنه.

      • سجاد

        مهمان

        سجاد

        ببخشید ،میشه بگید کجای برنامه باید اضافه بشه و اگه ممکنه بگید برنامش چطوری میشه؟مرسی از شما

        • محمدرضا اسلامی

          نویسنده این مطلب

          محمدرضا اسلامی

          برنامه رو بررسی بفرمایید.
          خط 83 باید برای هدف شما تغییر کنه.
          اگر فاصله پلکها کمتر از 0.2 شد، پایه فلان،یک بشه.
          برای کار با پایه ها هم آموزش زیر رو مشاهده بفرمایید.
          آموزش کار با gpio رزبری پای

  7. احسان

    مهمان

    احسان

    باسلام و عرض تشکر از جناب اسلامی
    یک سوال دارم خدمتتون اینکه چه مدل دوربینی باید برای اتصال به رزبری خریداری کنیم و آیا در این برنامه راه اندازی خاصی برای دوربین باید انجام دهیم ؟
    ممنون از شما.

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      بنده از دوربین رزبری پای استفاده کردم(مخصوص رزبری هست_15 پایه)
      برای راه اندازیش هم نیاز به نصب کتابخونه کار با دوربین هست از لینک زیر:
      http://www.aparat.com/v/0GIdo

  8. احسان

    مهمان

    احسان

    سلام آقای اسلامی
    من سه تا سوال داشتم ازتون
    1- در قسمت نصب کتابخانه dlib فقط باید #step1 رو انجام بدیم؟
    2- وقتی کتابخانه رو از dlib.net دانلود کردیم فایل رو باید کجا بریزیم ؟
    3-پوشه dlibtest دقیقا کجاست وفایل ( shape_predictor_68_face_landmarks.dat.bz2 ) رو چطوری باید در پوشه dlibtest اضافه کنیم ؟
    من این سه مرحله رو اصلن متوجه نشدم لطفا راهنمایی بفرمایید با تشکر.

    مشاهده پاسخ ها (3)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      1.بله تو مطلب هم گفتم که فقط step1
      2.در پوشه اصلی رزبین.
      3.پوشه dlibtest وجود نداره!!!باید یکی بسازید با دستور زیر:
      mkdir dlibtest

      • احسان

        مهمان

        احسان

        سلام جناب اسلامی
        مشکل ۱و۲ حل شد ولی
        اگر ممکنه نحوه اضافه کردن Shape_predictor_68_face_landmarks.Dat.Bz2 ) رو در پوشه Dlibtest توضیح بدید
        من به مشکل خوردم.اصلن نمیدونم چطوری باید اضافش کنم لطفا راهنمایی کنید بعد از دانلود باید چیکار کنم؟

        • محمدرضا اسلامی

          نویسنده این مطلب

          محمدرضا اسلامی

          سلام
          دانلودش کنید
          کپیش کنید
          پیستش کنید تو پوشه مورد نظر!!!
          بعدش هم از حالت زیپ در بیاریدش.

  9. احسان

    مهمان

    احسان

    باسلام ودرود خدمت شما
    بنده در قسمت نصب dlib library در مرحله (Change your boot options) هنگامی که از قسمت تنظیمات بوت خارج میشوم و رزبری ریبوت میشود ،پس از راه اندازی دوباره رزبری صفحه سیاه نمایان میشود و اجازه هیچ کاری را به کاربر نمیدهد لطفا من را راهنمایی کنید که چگونه این مشکل را برطرف کنم .با تشکر فراوان از شما

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      نیازی به این تنظیم نبود.!!!
      چون باعث میشه مستقیما ترمینال باز بشه.بعد از اومدن این صفحه سیاه،
      دستور sudo raspi-config
      رو وارد کنید.
      و تنظیمات رو به desktop auto login تغییر بدید.
      گرچه با این وضعیت هم میتونید ادامه بدید و در آخر درستش کنید.

  10. حسین

    مهمان

    حسین

    سلام جناب اسلامی. بنده ایمیلی رو خدمت شما ارسال کردم لطفا بررسی کنید.
    سپاسگزارم

  11. نگین یزدانی

    مهمان

    نگین یزدانی

    سلام آقای اسلامی. من چجوری میتونم کدی که به زبان سی داخل ویندوز نوشتم رو با رزبری پیاده سازی کنم؟ میشه یک سایت بهم معرفی کنین؟
    و اینکه برای شناسایی شی دلخواد در محیط باید به کدوم آموزش مراجعه کنم؟ باتشکر

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      سلام
      1.باید کدی که در ویندوز نوشتید رو بیارید تو رزبری و کامپایلش کنید.
      2.سایتی نمی شناسم که کد رو تبدیل کنه
      3.تا حالا فقط شناسایی چهره کار کردم.شاید در آینده،شناسایی شکل هم تو سایت گذاشته بشه.

  12. یاسر

    مهمان

    یاسر

    سلام عالی بود من orange win plus تازه خریدم
    دوربین 2مگش تو بازار نیست دارم هی آزمایشی روش برنامه مینویسم.. که چجوری به webcamوصل میشه و چجوری opencvروش نصب میشه ..خیلی قویه ولی این مشکلات بد هم داره..ان شاالله تونستم درست کنم چشم هزینه مطلب روی چشمم..
    سلامت باشین ان شاالله..

  13. سید محمد

    مهمان

    سید محمد

    من قسمتایی از این پروژه رو دیدم. اشکال داره عکسمو نفرستم براتون؟

    مشاهده پاسخ ها (1)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      خیر نوشتم در صورت امکان…
      اگر دوست ندارید،نفرستید boast

  14. m

    مهمان

    m

    سلام لطفا سورس نرم افزار ویندوزی رو هم بذارید یا برای من ایمیل کنید . ممنون

    مشاهده پاسخ ها (3)
    • محمدرضا اسلامی

      نویسنده این مطلب

      محمدرضا اسلامی

      آخه باید آموزشش رو هم بذارم،حال ندارم laugh
      نصب dlib و opencv و …
      به امید خدا اگر تونستم میذارم.

      • M

        مهمان

        M

        سلام مجدد
        آقا آموزش رو نمیخواد بگید ، خودم کتابخونه هاشو اد میکنم laugh
        فقط سورسش باشه کفایت میکنه smile
        ممنون میشم اگه امکانش باشه برام ایمیلش کنین smile

  15. معین صابری

    مهمان

    معین صابری

    سلام، عالی بود