فهرست مطالب:

سیستم امنیتی تشخیص چهره یخچال با رزبری پای: 7 مرحله (همراه با تصاویر)
سیستم امنیتی تشخیص چهره یخچال با رزبری پای: 7 مرحله (همراه با تصاویر)

تصویری: سیستم امنیتی تشخیص چهره یخچال با رزبری پای: 7 مرحله (همراه با تصاویر)

تصویری: سیستم امنیتی تشخیص چهره یخچال با رزبری پای: 7 مرحله (همراه با تصاویر)
تصویری: FACE DETECTION یا تشخیص چهره چیست ؟ 2024, جولای
Anonim
Image
Image
سیستم امنیتی تشخیص چهره یخچال با رزبری پای
سیستم امنیتی تشخیص چهره یخچال با رزبری پای
سیستم امنیتی تشخیص چهره یخچال با رزبری پای
سیستم امنیتی تشخیص چهره یخچال با رزبری پای

در حال مرور اینترنت متوجه شده ام که قیمت سیستم های امنیتی از 150 تا 600 دلار و بالاتر متغیر است ، اما همه راه حل ها (حتی راه حل های بسیار گران قیمت) را نمی توان با سایر ابزارهای هوشمند در خانه شما ادغام کرد! به عنوان مثال ، شما نمی توانید یک دوربین امنیتی در درب ورودی خود تنظیم کنید تا به طور خودکار در را برای شما یا دوستان شما باز کند!

من تصمیم گرفتم یک راه حل ساده ، ارزان و قدرتمند تهیه کنم ، که می توانید در هر مکانی از آن استفاده کنید! راهنمای زیادی در مورد چگونگی ایجاد سیستم های امنیتی ارزان قیمت و خانگی وجود دارد ، با این حال من می خواهم کاربرد واقعاً بی اهمیت آن ها را نشان دهم - سیستم امنیتی برای یخچال با تشخیص چهره!

چگونه کار می کند؟ دوربین IP که در بالای یخچال قرار گرفته است ، سنسورها (دو دکمه) هنگامی که فردی در یخچال را باز می کند تشخیص می دهند ، پس از آن رزبری پای از آن شخص عکس می گیرد (با دوربین IP) ، سپس آن را به Microsoft Face API ارسال می کند. برای تجزیه و تحلیل تصویر و دریافت نام شخص. با این اطلاعات ، رزبری پای "لیست دسترسی" را اسکن می کند: اگر فرد اجازه دسترسی به یخچال را نداشته باشد ، تمشک از طریق ایمیل ، پیام متنی و توییتر به مالک اطلاع می دهد! (تصاویر بالا را ببینید)

چرا؟ این سیستم به شما این امکان را می دهد که اعضای خانواده خود را کنترل کنید ، به ویژه هنگامی که آنها رژیم دارند ، یا بعد از نیمه شب با غذا نخوردن مشکل دارند! یا فقط از آن برای سرگرمی استفاده کنید!

علاوه بر این ، در واقع می توانید دوربین را در درب ورودی خود تنظیم کرده و سیستم را طوری تنظیم کنید که در هنگام باز شدن شما ، اعضای خانواده یا دوستان درب را باز کند. و این پایان کار نیست! امکانات برنامه بی پایان است!

شروع کنیم!

مرحله 1: آماده سازی

آماده سازی
آماده سازی

شما نیاز خواهید داشت:

  • رزبری پای 3 (می توانید از نسخه های قدیمی استفاده کنید ، اما نسل سوم دارای Wi-Fi است ، بنابراین بسیار راحت است)
  • دکمه ها
  • سیم ها
  • تلفن هوشمند قدیمی یا دوربین رزبری پای

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

  1. Win32 DiskImager را از اینجا بارگیری کنید (اگر از Windows استفاده می کنید)
  2. فرمت SD را از اینجا بارگیری کنید
  3. کارت SD را در رایانه خود وارد کرده و با SD Formatter قالب بندی کنید
  4. تصویر Raspbian را از اینجا بارگیری کنید ("Raspbian Jessie with pixel" را انتخاب کنید)
  5. Win32 DiskImager را اجرا کنید ، کارت SD خود را انتخاب کنید ، مسیر تصویر Raspbian را مشخص کنید ، روی "نوشتن" کلیک کنید
  6. کارت SD را در رزبری پای خود وارد کرده و برق را روشن کنید!

علاوه بر این ، شما باید Raspberry Pi خود را پیکربندی کنید تا از طریق SSH به سیستم دسترسی داشته باشید. در اینترنت دستورالعمل های زیادی وجود دارد ، برای مثال می توانید از این برنامه استفاده کنید ، یا می توانید مانیتور و صفحه کلید را وصل کنید.

اکنون Pi شما پیکربندی شده است و شما آماده ادامه کار هستید!

مرحله 2: ایجاد سنسور

ساخت سنسور
ساخت سنسور
ساخت سنسور
ساخت سنسور
ساخت سنسور
ساخت سنسور

توضیحات مرحله: در این مرحله ما یک سنسور ایجاد می کنیم که تشخیص می دهد چه کسی درب یخچال را باز می کند و رزبری پای را فعال می کند.

برای راه اندازی آن به 2 دکمه ای که در ابتدا آماده کرده اید نیاز دارید. دکمه اول هنگام باز شدن درب تشخیص داده می شود ، دکمه دوم هنگام باز شدن درب تا نقطه ای که در حال عکس گرفتن از یک فرد هستیم ، تشخیص داده می شود.

  1. سیم را به دکمه ها لحیم کنید.
  2. اولین دکمه را به درب یخچال وصل کنید تا هنگام بسته شدن در فشار داده شود (تصویر بالا را ببینید)
  3. مطابق تصویر بالا دکمه دوم را به درب یخچال وصل کنید. این دکمه باید همیشه آزاد شود ، مگر زمانی که درب به نقطه ای برسد که سیستم عکس می گیرد. برای راه اندازی آن باید چیزی را به یخچال خود وصل کنید تا این دکمه هنگام باز شدن درب به میزان دلخواه فشار داده شود (به عکسهای بالا مراجعه کنید).
  4. سیم ها را از دکمه ها به Raspberry Pi متصل کنید: دکمه اول را به GPIO 23 و زمین ، دکمه دوم را به GPIO 24 و زمین (نمودار سرریز را ببینید).

توجه: من از BCM pinout (نه Board) استفاده می کنم ، بیشتر در مورد تفاوت اینجا بخوانید.

پس از اتصال به Raspberry Pi از طریق SSH ، برای اجرای پوسته پایتون ، ترمینال را وارد کنید:

پایتون 3

اگر مانیتور و صفحه کلید را به رزبری پای متصل می کنید ، فقط "Python 3 IDLE" را از منو اجرا کنید.

گام بعدی این است که رزبری پای را با دکمه ها کار کنید. ما شنوندگان خاصی را به پین های GPIO 23 و 24 متصل می کنیم ، که به رویداد "افزایش لبه" و رویداد "لبه سقوط" در آن پین ها گوش می دهند. در صورت رویداد ، شنوندگان توابعی را که ما تعریف کرده ایم ، فراخوانی می کنند. "افزایش لبه" به این معنی است که دکمه فشار داده شده و اکنون آزاد شده است (دکمه اول - درب باز می شود) ، "لبه سقوط" به این معنی است که دکمه آزاد شده و اکنون فشار داده شده است (دکمه دوم - در به نقطه خاصی رسیده است). بیشتر در مورد عملکرد دکمه ها - اینجا.

ابتدا کتابخانه ای را وارد کنید که به ما دسترسی به پین ها را می دهد:

RPi. GPIO را به عنوان GPIO وارد کنید

اکنون توابع خاصی را تعریف کنید که هنگام فعال شدن رویداد فراخوانی می شوند:

سنسور def1 (کانال): چاپ ("سنسور 1 فعال شد") def sensor2 (کانال): چاپ ("سنسور 2 فعال شد)

تنظیم نوع pinout:

GPIO.setmode (GPIO. BCM)

پیکربندی پین ها:

GPIO.setup (23 ، GPIO. IN ، pull_up_down = GPIO. PUD_UP) GPIO.setup (24 ، GPIO. IN ، pull_up_down = GPIO. PUD_UP)

ضمیمه کردن شنوندگان:

GPIO.add_event_detect (23 ، GPIO. RISING ، فراخوان = سنسور 1 ، زمان bouncetime = 300) GPIO.add_event_detect (24 ، GPIO. FALLING ، فراخوانی = sensor2 ، زمان bouncetime = 300)

حالا می توانید آن را آزمایش کنید! اگر دکمه 1 را فشار دهید پیامی در ترمینال "حسگر 1 فعال شد" مشاهده می کنید ، دکمه 2 به شما پیام "حسگر 2 فعال شده" را می دهد.

توجه: پس از اتمام آزمایش ، فراموش نکنید که تابع زیر را فراخوانی کنید: GPIO.cleanup ().

بیایید یک تابع دیگر تنظیم کنیم که وقتی در به نقطه ای می رسد که ما عکس می گیریم ، نامیده می شود! می توانید خودتان این کار را انجام دهید یا از پیاده سازی من که در اینجا ضمیمه کرده ام استفاده کنید (sensor.py)

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

مرحله 3: دوربین IP را پیکربندی کنید

پیکربندی دوربین IP
پیکربندی دوربین IP
پیکربندی دوربین IP
پیکربندی دوربین IP
پیکربندی دوربین IP
پیکربندی دوربین IP

توضیحات مرحله: اکنون ما قصد داریم تلفن هوشمند قدیمی خود را به عنوان دوربین IP پیکربندی کنیم.

استفاده از تلفن هوشمند به عنوان دوربین IP از طریق برنامه انجام می شود. برنامه های مختلفی برای Android ، iOS ، Windows Phone وجود دارد که می توانید از آنها استفاده کنید. من یکی را با عنوان "IP Webcam" برای Android انتخاب کردم. این یک برنامه رایگان است و پیکربندی آن آسان است.

برنامه را اجرا کنید ، برای تنظیم وضوح عکسهایی که برنامه ارائه می دهد ، به "تنظیمات برگزیده ویدیو" بروید. سپس روی "شروع سرور" (اولین تصویر در بالا) ضربه بزنید. در پایین صفحه باید آدرس ip دوربین را مشاهده کنید (تصویر دوم را در بالا ببینید). در مرورگر می توانید https://cam_ip_address/photo-j.webp

در نهایت ، دوربین را به یخچال وصل کنید (آخرین تصویر در بالا).

مرحله 4: Face API

API چهره
API چهره

توضیحات مرحله: در این مرحله ما در مورد API چهره مایکروسافت صحبت می کنیم که تشخیص چهره و شناسایی افراد را انجام می دهد.

Microsoft API Face یک سرویس تشخیص چهره است که از طریق آن می توانیم عکس ها را تجزیه و تحلیل کرده و افراد روی آنها را شناسایی کنیم.

ابتدا به حساب Microsoft Azure نیاز دارید. اگر یکی ندارید ، می توانید آن را به صورت رایگان در اینجا ایجاد کنید.

دوم ، به https://portal.azure.com بروید ، روی "جدید" در سمت چپ کلیک کنید ، فرم "API های خدمات شناختی" را وارد کنید ، آن را انتخاب کرده و روی "ایجاد" کلیک کنید. یا می توانید این پیوند را باز کنید. اکنون باید نام سرویس خود را وارد کنید ، نوع اشتراک ، نوع API مورد نیاز خود را انتخاب کنید (در مورد ما Face API است) ، مکان ، سطح قیمت گذاری ، گروه منابع و شرایط حقوقی موافقت کنید (به تصویر اضافه شده به این مرحله مراجعه کنید).

سوم ، روی "همه منابع" کلیک کنید ، سرویس Face API خود را انتخاب کنید و آمار استفاده ، اعتبارنامه و غیره را مشاهده کنید.

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

بیایید به ساختار کار با Face API برویم. برای استفاده از قابلیت "Identification" باید کتابخانه ای از افراد ایجاد کنیم که از طریق آن Face API عکس های گرفته شده توسط برنامه را تشخیص دهد. برای راه اندازی آن ، لطفاً مراحل زیر را دنبال کنید:

  1. ایجاد یک گروه
  2. افراد را به این گروه اضافه کنید
  3. به این افراد چهره اضافه کنید
  4. گروه قطار
  5. ارسال عکس با شخصی که می خواهید او را شناسایی کنید (باید عکس و شناسه گروهی را که در آن سرویس به دنبال نامزدها است ارائه دهید)
  6. نتیجه: در پاسخ لیستی از نامزدها دریافت خواهید کرد که می توانند در عکسی که ارسال کرده اید حضور داشته باشند.

من سه فایل با عملکرد خاص ایجاد کرده ام که امکان کار با گروه ها ، افراد مجرد و عکس های تک را ایجاد می کند:

  • PersonGroup.py - شامل ویژگی هایی است که اجازه می دهد: ایجاد گروه ، دریافت اطلاعات در مورد گروه ، دریافت لیست همه گروه های خود ، آموزش گروه و دریافت وضعیت آموزش
  • Person.py - شامل ویژگی هایی است که اجازه می دهد: ایجاد شخص ، دریافت اطلاعات افراد ، لیست همه افراد در گروه مشخص شده ، افزودن چهره به فرد مشخص شده
  • Face.py - شامل ویژگی هایی است که اجازه می دهد: تشخیص چهره روی تصویر ، شناسایی شخص ، دریافت نام شخص شناسایی شده

در فایلی به نام "ճանաչطی.پای" من ویژگی هایی را ارائه می دهم که به شما امکان می دهد بررسی کنید آیا تصویر دارای چهره است یا به افراد مشخص شده چهره اضافه می کند (به طور خودکار صورت را از بسیاری از تصاویر از پوشه مشخص اضافه می کند).

فایل پیوست شده به این مرحله را بارگیری کنید ، آن را باز کنید ، متغیر جهانی "KEY" را در این سه فایل تغییر دهید: PersonGroup.py ، Person.py و Face.py برای خود کلیدی که می توانید پیدا کنید: portal.azure.com> همه منابع > سرویس api چهره (یا نحوه تماس با آن)> برگه کلیدها. می توانید از هر دو کلید استفاده کنید.

توجه: در اینجا ما قصد داریم خدمات Face API را برای تشخیص افراد آموزش دهیم ، بنابراین اقدامات زیر را می توان از هر رایانه ای انجام داد (رزبری پای برای این کار لازم نیست) - تغییرات در سرور مایکروسافت ذخیره می شوند.

پس از تغییر KEY ، ճանաչ را اجرا کنید و دستور زیر را در پوسته python وارد کنید:

PersonGroup.create ("family"، "fff-fff")) // می توانید از نام و شناسه خود برای

group printResJson (PersonGroup.getPersonGroup ('fff-fff'))

شما باید داده های مربوط به گروهی را که ایجاد کرده اید مشاهده کنید. حالا وارد کنید:

printResJson (Person.createPerson ('fff-fff' ، 'name of person'))

حالا شما شناسنامه شخص را دریافت می کنید. پوشه ای با تصاویر این شخص ایجاد کنید تا همه تصاویر حاوی چهره این شخص باشند. شما می توانید از تابع deteFaceOnImages در nas.py استفاده کنید که به شما نشان می دهد چهره در کدام عکس ها تشخیص داده شده است. حالا دستور را اجرا کنید:

addFacesToPerson ("پوشه با تصاویر" ، "شناسه شخص که پس از فرمان قبلی دریافت کرده اید" ، "fff-fff")

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

PersonGroup.trainPersonGroup ('fff-fff') printResJson (PersonGroup.getPersonGroupTrainingStatus ('fff-fff'))

در حال حاضر گروه ما آموزش دیده است و آماده شناسایی یک فرد است.

برای بررسی شخص روی تصویر می توانید:

Face.checkPerson (تصویر ، 'fff-fff')

در پاسخ ، لیستی از نامزدها و احتمال افرادی که روی عکس هستند را دریافت خواهید کرد.

توجه: هر بار که به یک شخص یا شخص به گروهی چهره اضافه می کنید ، باید گروه را آموزش دهید!

مرحله 5: پیکربندی Node-Red

پیکربندی Node-Red
پیکربندی Node-Red

شرح مرحله: در این مرحله ، ما Node-Red flow را ایجاد خواهیم کرد که به شما در مورد نقض دسترسی به یخچال شما اطلاع می دهد =)

اگر Raspberry Pi شما در Raspbian Jessie نوامبر 2015 یا نسخه بعدی اجرا می شود ، نیازی به نصب Node-Red ندارید ، زیرا قبلاً از قبل نصب شده است. فقط باید آن را به روز کنید. لطفاً از راهنمای اینجا استفاده کنید.

اکنون ، ما باید گره Twilio را در Node-Red نصب کنیم ، بنابراین می توانیم یک پیام متنی را فعال کنیم. ترمینال را باز کرده و تایپ کنید:

cd ~/.node-rednpm node-red-node-twilio را نصب کنید

اطلاعات بیشتر در مورد گره Twilio در اینجا. پس از آن ، Node-Red را با تایپ کردن در ترمینال اجرا کنید:

گره قرمز

سپس به آدرس: https://127.0.0.1:1880/ بروید - اگر مرورگر خود را روی رزبری پایپت باز می کنید

برای اطلاع از آدرس IP تمشک pi از این دستورالعمل استفاده کنید.

اکنون باید گره Twilio را در لیست گره های ویرایشگر Node-Red خود پیدا کنید (معمولاً بعد از گروه "اجتماعی" ظاهر می شود).

زمان ایجاد جریان است!

توجه: می توانید از جریان من متصل به این مرحله استفاده کنید ، اما پیکربندی گره ها را فراموش نکنید: ایمیل ، توییتر و twilio. بعداً در مورد آن بخوانید.

جریان ما با گره "اطلاع" شروع می شود که درخواست POST را از برنامه اصلی ما با برخی داده ها در مورد نقض دسترسی می پذیرد (مثال داده ها را می توان در گره نظر "در مورد دریافت اشیا" یافت). این گره بلافاصله با پیام "Ok" پاسخ می دهد ، بنابراین برنامه اصلی می داند که داده ها دریافت شده است (جریان: /اطلاع> پاسخ با Ok> پاسخ). گره سبز در پایین با نام msg.payload برای اشکال زدایی وجود دارد: اگر چیزی کار نمی کند می توانید از آن استفاده کنید.

از گره مشت ((اطلاع)) داده های منتشر شده به "موضوع داده" و "موضوع تصویر" که موضوعات "داده" و "تصویر" به ترتیب اضافه شده است.

در گره "کامپایل" داده هایی را دریافت می کنیم (که در مرحله اول دریافت می کنیم) با موضوع "داده" و تصویری با موضوع "تصویر" (تصویر از /home/pi/image-j.webp

گام بعدی این است که بررسی کنیم آیا شخص موجود در لیست دسترسی ما غریبه است یا خیر (checkConditions node). در داده هایی که دریافت می کنیم یک فیلد "شخص مورد اعتماد" وجود دارد: "true" به این معنی است که ما این شخص را می شناسیم ، اما وی مجوز دسترسی را نقض کرده است ، "false" به این معنی است که فرد بیگانه است.

هنگامی که نتیجه "واقعی" است ، ما به Twitter ، twilio و ایمیل اعلان می دهیم. هنگامی که نتیجه "کاذب" است - فقط ایمیل و twilio. ما یک شی برای ایمیل با یک پیام ، تصویر پیوست شده و موضوع ایمیل ، یک شی برای twilio با یک پیام ایجاد می کنیم. در صورتی که "trustedPerson" درست باشد ، برای توییتر داده ها را به یک شی اضافه می کنیم. سپس این سه شی را به سه گره مختلف ارسال کنید.

توجه: اگر گره زیر نباید پیامی دریافت کند ما فقط "null" را برای آن ارسال می کنیم.

زمان پیکربندی گره ها برای اطلاع رسانی رسیده است!

توییتر گره "توییتر" را به جریان اضافه کنید. آن را با دوبار کلیک باز کنید. روی مداد کنار "شناسه توییتر" کلیک کنید. سپس روی "برای تأیید اعتبار با Twitter اینجا کلیک کنید" کلیک کنید. وارد حساب توییتر خود شوید و مجوزهای لازم را به Node-Red بدهید.

EmailAdd گره "ایمیل" را به جریان اضافه کنید. اگر از Gmail استفاده نمی کنید ، باید داده ها را در زمینه های زیر تغییر دهید - "Server" و "Port" (می توانید پیدا کنید که از کدام سرور و پورت باید در صفحات راهنمای نماینده ایمیل خود استفاده کنید) در غیر این صورت این موارد را تغییر ندهید زمینه های.

  • به> آدرس ایمیل که پیام ها به آن ارسال می شوند
  • Userid> ورود از ایمیل خود (شاید همان فیلد "به")
  • رمز عبور> رمز عبور از حساب ایمیل خود
  • نام> نام این گره

Twilio به https://www.twilio.com/try-twilio بروید و یک حساب کاربری ثبت کنید. آن را تأیید کنید. به https://www.twilio.com/console بروید. روی "شماره تلفن" (نماد # بزرگ) کلیک کنید و شماره رایگان ایجاد کنید. اگر خارج از ایالات متحده هستید باید مجوزهای GEO را اضافه کنید ، به https://www.twilio.com/console/sms/settings/geo-pe… بروید و کشور خود را اضافه کنید.

حالا ، به ویرایشگر Node-Red بروید ، گره Twilio را اضافه کنید ، روی آن دوبار کلیک کنید تا همه فیلدها را پیکربندی و پر کنید:

  • اعتبارنامه> از اعتبارنامه محلی استفاده کنید
  • Twilio> ویرایش

    • SID حساب> از اینجا https://www.twilio.com/console را بگیرید
    • از> شماره مجازی را که ایجاد کرده اید تایپ کنید
    • نشانه> از اینجا https://www.twilio.com/console بگیرید
    • نام> Twilio
  • خروجی> پیامک
  • برای> شماره تلفن خود
  • نام> نام این گره.

روی استقرار کلیک کنید

اکنون جریان شما آماده است! می توانید با ارسال درخواست POST با شیء مشخص آن را آزمایش کنید!

مرحله ششم: گردآوری کل پروژه

گردآوری کل پروژه
گردآوری کل پروژه
گردآوری کل پروژه
گردآوری کل پروژه

توضیحات مرحله: در این مرحله ما تمام قطعات را کنار هم قرار می دهیم و آنها را به عنوان یک سیستم جداگانه کار می کنیم.

در این مرحله باید:

  1. تلفن هوشمند قدیمی را به عنوان دوربین ip پیکربندی کنید
  2. دارای سنسورهای کار
  3. API چهره مایکروسافت را آموزش داده است
  4. جریان Node-Red پیکربندی شده است

در حال حاضر ما باید کدی را که در مرحله 2 نوشتیم ، بهبود بخشیم. به طور خاص ، فرآیند عملکرد () که هنگام باز شدن درب فراخوانی می شود. در این تابع موارد زیر را انجام می دهیم:

  1. تصویر را از دوربین ip بگیرید و آن را در "/home/pi/" با نام "image.jpg" (عملکرد "fromIpCam" در فایل "getImage") ذخیره کنید
  2. نام شخص روی آن تصویر را دریافت کنید (عملکرد "checkPerson" در پرونده "تشخیص")
  3. بررسی مجوز دسترسی برای آن شخص (عملکرد "بررسی" در فایل "دسترسی")
  4. بر اساس نتیجه عملکرد "بررسی" پیام ایجاد کنید
  5. ارسال پیام ترکیبی به Node-Red (عملکرد "toNodeRed" در پرونده "sendData")

توجه: برای مشاهده کد کامل توابع ذکر شده لطفا فایل فشرده ضمیمه این مرحله را بارگیری کنید.

درباره عملکرد "fromIpCam". این عملکرد باعث می شود که درخواست GET به دوربین ip شما داده شود ، در نتیجه عکس متمرکز شده و آن را در مسیری که شما تعیین کرده اید ذخیره کنید. شما باید آدرس IP دوربین را برای این عملکرد ارائه دهید.

درباره تابع "checkPerson". عملکرد به تصویر و گروهی می رسد که در آن می خواهید شخص را از عکس به عنوان پارامترها جستجو کنید. در مرحله اول ، چهره ای را در تصویر ارائه شده تشخیص می دهد (فایل Face.py ، عملکرد "تشخیص"). در پاسخ اگر چهره ای که شناسایی شده بود شناسه می گیرد. سپس تابع "شناسایی" (فایل Face.py) را که افراد مشابه را در گروه مشخص شده پیدا می کند فرا می خواند. در پاسخ ، در صورت یافتن شخص ، شناسه شخص دریافت می کند. سپس تابع "person" (فایل Person.py) را با شناسه شخص به عنوان پارامتر فراخوانی کنید ، تابع "person" شخصی را با شناسه مشخص برمی گرداند ، نام شخص را دریافت می کنیم و آن را برمی گردانیم.

درباره عملکرد "بررسی". این تابع در فایل "access" قرار می گیرد که در آن "لیست دسترسی" را به عنوان یک متغیر جهانی قرار می دهد (می توانید آن را به دلخواه تغییر دهید). با به دست آوردن نام شخص از عملکرد قبلی ، عملکرد "بررسی" این شخص را با لیست دسترسی مقایسه کرده و نتیجه را برمی گردانید.

توجه: پروژه کامل به مرحله بعدی ضمیمه شده است.

مرحله 7: نتیجه گیری

در این مرحله من پروژه کامل را که باید از حالت فشرده خارج کرده و به رزبری پای خود اضافه کنید ضمیمه کردم.

برای کارکردن این پروژه فایل "main.py" را اجرا کنید.

اگر Raspberry Pi را از طریق SSH کنترل می کنید ، باید دو برنامه را از یک پوسته اجرا کنید: برنامه python و Node-Red. موارد زیر را در ترمینال وارد کنید:

گره قرمز

"Ctrl + Z" را وارد کرده و تایپ کنید:

شغل ها

شما روند Node-Red را مشاهده کرده اید. به شناسه فرآیند و نوع آن نگاه کنید:

bg

حالا Node-Red باید در پس زمینه شروع به کار کند. سپس با پروژه خود به فهرست بروید و برنامه اصلی را اجرا کنید:

python3 main.py

توجه: فراموش نکنید که KEY را در فایل های پایتون (مرحله 4) و اطلاعات کاربری را در Node-Red flow (مرحله 5) تغییر دهید.

انجام شده! یخچال شما سالم است!

امیدوارم از این کار سخت لذت برده باشید! با خیال راحت ذهن خود را در کامنت ها بنویسید.

اگر به پروژه من رای دهید =)

متشکرم!

توصیه شده: