תוכן עניינים:
- שלב 1: חומרים
- שלב 2: חיווט
- שלב 3: בניית המארז
- שלב 4: הגדרת המצלמה
- שלב 5: הגדרת Docker
- שלב 6: הפעלת התסריטים של פעמון הדלת
- שלב 7: שימוש בפעמון הדלת
וִידֵאוֹ: פעמון דלת עם זיהוי פנים: 7 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
מוֹטִיבָצִיָה
לאחרונה התרחש גל שוד בארצי אשר מכוון לקשישים בבתיהם. בדרך כלל, הגישה ניתנת על ידי הדיירים עצמם מכיוון שהמבקרים משכנעים אותם שהם מטפלים/אחיות. זה פשוט מעבר למילים, כמה כעסים ועצובים הסיפורים האלה גורמים לי להרגיש. הבית צריך להיות המקלט הבטוח הראשון שלך ואף יותר מכך אם אתה כבר במצב פגיע כשאתה בחוץ. עם זאת בחשבון, התחלתי את הפרויקט הזה.
מידע כללי
מערכת הפעמון מיועדת בעיקר לאנשים מבוגרים או לקויי ראייה והיא די פשוטה בפעולותיה. בקיצור, מתג פעמון הדלת מפעיל את המצלמה להשיג צילומים. לאחר מכן, פרצופים בצילומים מזוהים ומתואמים לרשימה לבנה ורשימה שחורה. הנוסע מקבל משוב ויזואלי ברור על ידי תצוגת רמזור ברורה. בזאת, האור הירוק, הצהוב או האדום מצביעים על כך שהאדם (ים) נמצא ברשימה הלבנה, לא ידוע למערכת או לרשימה השחורה בהתאמה. אם האור הצהוב או האדום מופעל, התמונה נשלחת על ידי בוט טלגרם כדי להודיע/להזהיר קרוב משפחה או מטפל.
רמת מומחיות
הפרויקט הוקם לחובבים הסקרנים במיוחד לגבי שימוש בראייה ממוחשבת ובינה מלאכותית. המדריך הזה נכתב לקהל של מתחילים, אז אל תדאג אם אין לך ניסיון! יתר על כן, הפרויקט יכול להיות מעניין גם ליצרנים מנוסים יותר מכיוון שהצינור מאורגן באופן שתוכל להרחיב אותו עם ראיית מחשב משלך ורעיונות לזיהוי פנים ללא הרבה טרחה.
שלב 1: חומרים
רשימת מוצרים עם דרישות מינימום:
מוצר | קישור | תגובה |
---|---|---|
פטל פי 3b | RPi | הקישור מציג את RPi 4 מכיוון שיש לו ביצועים טובים יותר ומחירו כמעט שווה ל- RPi 3b. |
מיקרו SD | אֲמָזוֹנָה | כרטיס מיקרו SD בגודל 16 GB או יותר יעשה את העבודה. אבל הכרטיסים של 16 ג'יגה -בייט באמזון הם בערך אותו מחיר כמו כרטיסי ה -32 ג'יגה -בתים. |
מצלמת פטל פי | אֲמָזוֹנָה | מצלמה v1 זולה יותר, אך v2 טובה יותר ויתמוך יותר. |
כבל FPC 15 פינים | אֲמָזוֹנָה | האורך למעשה תלוי בנסיבות ביצוע הפרויקט הזה. אם אתה רק רוצה לבנות אב טיפוס, כבל הגמישה המקורי יעשה את העבודה. |
ספק כוח 5V מיקרו USB | אדפרוט | זה מעולם לא איכזב! איכות נהדרת. (לא בתמונה) |
כפתורי ארקייד עם LED מובנה | אֲמָזוֹנָה | בחר את הגודל הרצוי, אך עיצוב CAD מבוסס על כפתורים של 60 מ"מ |
נגדים | אֲמָזוֹנָה | אתה רק צריך כמה נגדים של 1k ו -100 אוהם. רגיל של 1/4W זה בסדר. |
קבלים 0.1 uF | אֲמָזוֹנָה | יש צורך בשלושה קבלים. (לא בתמונה) |
חוטי מגשר / כבל סרט | אמזון אמזון | אם אתה רוצה לחסוך לעצמך כמה דולרים, תוכל גם להשתמש בכבל סרט כונן תקליטון ישן (ראה תמונה). |
צינור מתכווץ / סרט חשמלי | אמזון אמזון |
כלים הדרושים:
כְּלִי | חִיוּנִי? | תגובה |
---|---|---|
מלחם | כן | |
מולטימטר | כן | |
חשפן חוטים | כן | או שאתה יכול להשתמש בסכין/מספריים. |
חותך לייזר | לא | |
מדפסת תלת מימד | לא | |
מהדקים | לא | שימושי לשמירה על הקופסה בשלב הבדיקה. |
הערות:
כדי להגדיל את הנגישות של הפרויקט, החלטתי לפתח אותו באמצעות פטל פי 3b. למרות שהוא מגביר את הנגישות, הוא מפחית את יכולות האפליקציה מכיוון שה- RPi אינם מהירים כל כך. אם אתם מחפשים מחשב לוח אחד המהיר יותר, אולי כדאי שתסתכלו על NVIDIA Jetson Nano
שלב 2: חיווט
התרשים הסכימטי הוא האינפורמטיבי ביותר לשלב זה והוא די מסביר את עצמו. אם אתה חדש בתחום האלקטרוניקה, תוכל להשתמש בתמונת המקרא. ערך הרכיב (אם חל) מופיע בתרשים הסכימטי. התמונות עשויות לעזור לראות כיצד אני בונה את המעגל. ביסודו של דבר, חיברתי את כל הרכיבים קרוב ככל האפשר לכפתור הארקייד, מה שמביא סקירה ברורה של המתרחש.
הערות:
- אני מאוד אוהב להשתמש במחברי כבלי סרט, מכיוון שהם הרבה יותר יציבים מאשר שימוש בחוטי מגשר בודדים.
- כפי שהציע, השתמשתי בכבל סרט שנמחק ממחשב ישן. זה קצת מסובך, כיוון שתצטרך לטעון ידנית את תצורת הכבל. בפרויקט זה למשל, גיליתי שחורים אחדים מחוברים זה לזה (כנראה שימשו כקרקע ליישום המקורי). לכן, הייתי צריך לקבל כבל אחר מאוחר יותר כפי שאתה יכול לראות בתמונות.
שלב 3: בניית המארז
מעטפת מצלמה
מעטפות רבות לפיקמרה ניתנות להורדה בחינם מהאינטרנט. לכן, אני בוחר לא להמציא את הגלגל מחדש ולבחור מעטפת בסיסית אך נחמדה מהאינטרנט: thingiverse.com - מארז מצלמה/מארז פטל. (צעק למעצב VGer.)
מעטפת רמזור
עבור מעטפת הרמזור, עיצבתי קופסה קטנה ב- Autodesk Fusion 360 (להורדה בחינם, ראה הערות) המתאימה לכל החומרה. בקובץ המצורף תוכל למצוא את הקובץ ששלחתי לחברת חיתוך הלייזר המקומית שלי. בזאת, העיצוב מבוסס על עובי צלחת 6 מ מ. עם זאת, אם אתה רוצה להתאים דברים, תוכל לגשת לכל מיני פורמטים של קבצים באמצעות קישור זה. כפי שמוצג בתמונות, תוכל גם להשתמש בקופסת קרטון אם אין לך גישה לחותך לייזר. השתמשתי בקופסת הקרטון שבתמונה לאב טיפוס וזה עובד כמו קסם.
ההרכבה די פשוטה קדימה:
- הר את מתגי ארקייד.
- הקפד לשמור על החוטים לפעמון הדלת פנוי.
- חבר את כבל הסרט ל- RPi.
- הברג את ה- RPi על הלוח התחתון.
- חבר את חוטי פעמון הדלת למחבר חוט והרכיב אותו גם על הלוח התחתון.
- חבר את ה- Picamera ל- RPi.
- לקדוח חור באחד הלוחות הצדדיים לחוט המיתוג של פעמון הדלת ולחוט החשמל RPi.
מחבר החוט משמש כנקודת הרכבה לחוטי מתג פעמון הדלת, כך שניתן יהיה לתקן אותו בפעמון קיים אחר כך. הכל נמצא כעת במקום ואפשר להדביק אותו. עם זאת, תחילה כדאי לסיים את השלבים הבאים, כדי לוודא שהכל פועל כפי שהוא אמור להיות.
הערות:
Autodesk Fusion 360 זמין באופן חופשי לחובבים! אם אתה רוצה להשיג את העותק שלך, בקר בקישור הזה: autodesk.com - Fusion 360 לחובבי חובבים. יש כמה מונחים, לכן הקפד לקרוא וליישם אותם. זה היה הפרויקט הראשון שלי עם Fusion 360 ואין לי הרבה ניסיון בשימוש בתוכנות CAD, אבל אני חייב לומר שאני מאוד אוהב את התוכנה ואת כל הכלים הנוספים שמגיעים עם Fusion 360
שלב 4: הגדרת המצלמה
ההנחה היא שיש לך Raspbian מותקן וכי הוא פועל במצב GUI. אם עדיין אין לך Raspbian מותקן, תוכל לעקוב אחר מאמר זה: raspberrypi.org - התקנת תמונות מערכת הפעלה. אם אתה מפעיל את Raspbian, אתה אמור לראות שולחן עבודה כפי שמוצג בתמונות.
בואו להגדיר את המצלמה ב- RPi ולראות אם היא עובדת! השיטה המתוארת כאן היא ישירות מתוך raspberrypi.org - תיעוד. ראשית, בואו נעדכן לחבילות העדכניות ביותר (כולל קושחת מצלמה) על ידי ביצוע הפקודות הבאות בחלון מסוף (ראו תמונות):
עדכון sudo apt
sudo apt שדרוג מלא
לאחר מכן, יש להפעיל את המצלמה באמצעות הפקודה הבאה:
sudo raspi-config
בתפריט, עבור אל 5. אפשרויות ממשק -> מצלמת P1. בחר להפעיל את המצלמה ולהפעיל מחדש את ה- RPi על ידי ביצוע:
לְאַתחֵל
כעת יש להגדיר את המצלמה כהלכה. ניתן לבדוק זאת על ידי פתיחת חלון מסוף ולבצע:
raspistill -v -o /home/pi/test.jpg
התמונה נשמרת ב: /home /pi.
שלב 5: הגדרת Docker
כדי להימנע מהתלות ושגיאות ההתקנה, החלטתי לבנות תמונת Docker מותאמת אישית לפרויקט זה (ראה wikipedia.org - Docker). אם מעולם לא השתמשת או שמעת על Docker, אל תדאג, אני אסביר שלב אחר שלב כיצד להשתמש בו בפרויקט זה. למעשה, זה סופר קל! אם אתה רוצה להפעיל את הפרויקט הזה בהתקנה מקומית (במקום בכלי Docker), אני אתן לך כמה טיפים. אך מומלץ מאוד להשתמש בתמונת Docker. אחרי הכל, אני בונה אותו בכדי שיהיה לך קל לנהל את הפרויקט הזה!
מהו Docker?
הערה: חלק זה מספק קצת מידע רקע על Docker, שניתן לדלג עליו אם ברצונך רק להריץ את הקוד.
הפרויקט הזה הוא הפעם הראשונה שהשתמשתי ב- Docker והוא פשוט מדהים! אולי שמעת על virtualenv או אנקונדה לפייתון? ובכן, Docker די דומה במובן זה שאתה יכול לנהל בקלות גרסאות חבילה ולהריץ גירסאות פייתון שונות במערכת מארחת אחת באמצעות סביבה אחרת (או מיכל כפי שהוא נקרא ב- Docker). אבל, בהשוואה ל- virtualenv ו- Anaconda, Docker הוא הרבה יותר חזק מכיוון שהוא אינו מוגבל להכיל חבילות Python בלבד. ואכן, בכלי Docker אתה יכול להתקין ולנהל גם את החבילות של מערכת הפעלה רצויה. לדוגמה, שקול אתר שאתה רוצה להעביר שמריץ מסגרת אינטרנט של פייתון (למשל ג'אנגו) עם מסד נתונים (למשל MySQL). ללא מיכל Docker, יהיה עליך להתקין את כל החבילות בשרת החדש, תהליך המועד מאוד לשגיאות ובאגים. מצד שני, כאשר האתר שלך נבנה ב- Docker, ההגירה היא בעצם פשוטה כמו העברת קובץ/קבצי התמונה לשרת החדש והפעלתו/אותם. כפי שאתה יכול לדמיין, Docker שימושי מאוד גם לפרויקטים במדריכים;)! אם אתה רוצה לדעת יותר על Docker, עיין באתר האינטרנט שלהם: docker.org - Docker: Enterprise Container Platform. עכשיו, בואו נצא לדרך עם Docker!
התקנת Docker
התקן את Docker על ידי ביצוע:
curl -sSL https://get.docker.com | ש
לאחר מכן, המשתמש נוסף לקבוצת המשתמשים 'docker', המספקת את הזכויות להפעלת Docker. הדבר נעשה על ידי:
sudo usermod -aG docker $ USER
כעת, אתה אמור להיות מסוגל להריץ את Docker. ניתן לאמת זאת על ידי הפעלת התמונה של עולם שלום:
docker run שלום עולם
לבסוף, בואו נמשוך את תמונת Docker המכילה את כל התלות הדרושה להפעלת סקריפטים של פייתון פעמון הדלת. תהליך זה עשוי להימשך זמן מה מכיוון שהתמונה גדולה למדי (~ 1.5 GB). לבצע:
פעמון משיכה/פעמון דלת
הערה: ניתן למצוא את ה- Dockerfile במאגר פעמון הדלת ב- Github. כעת, הכל מוכן להפעלת התסריטים של פעמון הדלת, עליהם יידונו בשלב הבא.
התקנה מקומית
שוב, אני ממליץ בחום להשתמש בתמונת Docker במקום בהתקנה מקומית. אך בכדי להשלים את המדריך הזה, אתאר כעת כמה מהשלבים שנקטתי בהתקנה המקומית.
כדי להיות מסוגל להריץ את הקוד, גרסת הפייתון צריכה להיות> = 3.5 (השתמשתי בפייתון 3.5.3) ויש להתקין את החבילות הבאות:
- זיהוי פנים
- פיקמרה
- ערמומי
- כרית
- פיתון-מברק-בוט
- RPi. GPIO
הקישור הזה די מועיל: Github - התקן dlib ו- face_recognition ב- Raspberry Pi. עם זאת, ישנם כמה אזהרות כאן: 1) הכרית זקוקה לפחות ל- Python 3.5, שלא תתקין אותה בשיטה זו. 2) כמו כן, לא כל החבילות הדרושות בפרויקט פעמון הדלת יותקנו בשיטה זו. עם זאת, אתה אמור להיות מסוגל להתקין אותו פשוט באמצעות pip3.
שלב 6: הפעלת התסריטים של פעמון הדלת
קבל את התסריטים
ניתן להוריד את הסקריפטים באופן ידני מ: github.com - Erientes/bell. או אם התקנת את Git, בצע:
שיבוט git
צור כינויים
כעת, כדי להקל על חיינו, בואו ניצור כמה כינויים להפעלת התסריטים. לבצע:
כרית עלה ~/.bashrc
הוסף את השורות הבאות ושמור את הקובץ:
כינוי doorbell_run = 'docker run --privileged -v/home/pi/bell:/bell -w/bell -it erientes/python bell $ 1'
כינוי doorbell_login = 'docker run --privileged -v/home/pi/bell:/bell -w/bell -it erientes/bash bash'
בדיקת סקריפטים
כדי לבדוק אם הכל מותקן נכון, פתח מסוף חדש ובצע:
doorbell_run דוגמאות/0_test_installation.py
התוצאה פשוט צריכה להיות הודעה בחלון המסוף שאומרת 'התקנת פעמון הדלת הסתיימה בהצלחה!'. כדי לבדוק אם ניתן לגשת למצלמה באמצעות מיכל הדוקר, הפעל:
doorbell_run דוגמאות/1_test_camera.py
על ידי הפעלת 1_test_camera.py התמונה תצלם ותשמור כ- 'test.jpg', שניתן למצוא ב-/home/pi/bell. לבסוף, ניתן לבדוק את מנהלי ההתקנים של LED על ידי ביצוע:
doorbell_run דוגמאות/2_test_voicehat_drivers.py
כאשר תסריט זה פועל, נורית ה- LED במתג הארקייד אמורה להגיב בעת לחיצה על הכפתור.
הפעלת תסריטים של פעמון דלת
כדי להריץ את התסריטים של פעמון הדלת, קודם כל יש להשיג את אישורי הבוט של טלגרם. התקן את טלגרם בטלפון שלך ועבור אל telegram.me - Botfather. התחל שיחה והזן:
/newbot
מלא שם ושם משתמש לבוט. לאחר מכן, תינתן לך אסימון הגישה. העתק ערך זה לקובץ 'credentials_telegram_template.py' ב-/home/pi/doorbell ושמור אותו לקובץ חדש בשם 'credentials_telegram.py'. לבסוף, התחל שיחה עם הבוט שיצרת זה עתה על ידי לחיצה על הקישור ש- Botfather מספק לך.
לבסוף, בואו נפעיל את פעמון הדלת עם זיהוי פנים:
doorbell_run main.py
הערות:
אם אתה רוצה לדעת יותר על אופן הפעולה של הקוד, בדוק את ההערות בתסריטים עצמם. אם יש לך שאלה לגבי הקוד, צור איתי קשר באמצעות Github
שלב 7: שימוש בפעמון הדלת
בואו נריץ את תסריט פעמון הדלת על ידי ביצוע:
doorbell_run main.py לאחר טעינת החבילות התסריטים הופכים לא פעילים. בעצם יש 2 דברים שיכולים לקרות:
- מישהו מצלצל בפעמון הדלת.
- מישהו נוסף לרשימת ההיתרים.
מישהו מצלצל בפעמון הדלת
במקרה זה, התסריט יתחיל לצלם עד שיצלם תמונה שבה מזוהים פנים. לאחר הזיהוי, כמה שיטות מחבילת פייתון 'face_recognition' נקראות לחישוב קידוד 128 של הפנים. לאחר מכן, הקידוד המתקבל מושווה לקידודים ב- whitelist.csv ו- blacklist.csv. התוצאות האפשריות מביאות לתגובה הבאה:
ברשימת ההיתרים? | ברשימה השחורה? | תְגוּבָה |
---|---|---|
כן | לא | אור ירוק נדלק. |
כן | כן | אור צהוב נדלק. מצלמת פעמון הדלת שולחת תמונות לבוט הטלגרם עם אייקון כתום. מצב זה יכול לקרות אם מישהו נוסף לשתי הרשימות. לדוגמה, כאשר מישהו התקבל בברכה בהתחלה, אך הוא הופיע ברשימה השחורה מאוחר יותר. |
לא | לא | אור צהוב נדלק. מצלמת פעמון הדלת שולחת תמונות לבוט הטלגרם עם אייקון כתום. |
לא | כן | נורה אדומה נדלקת. מצלמת פעמון הדלת שולחת תמונות לבוט הטלגרם עם אייקון אדום. |
מישהו נוסף לרשימת ההיתרים
כדי להוסיף מישהו לרשימת ההיתרים, לחץ על הכפתור הצהוב של הרמזור כאשר פעמון הדלת במצב סרק. ראשית, האור הצהוב נדלק. אם האור הירוק מהבהב 3 פעמים, פניו של האדם יתווספו בהצלחה לרשימת ההיתרים. אם הנורה הירוקה לא מהבהבת 3 פעמים, הניסיון לא הצליח. במקרה זה, לחץ שוב על הכפתור הצהוב. תוכל לוודא בקלות אם הוא הצליח על ידי צלצול בפעמון הדלת ובדיקה אם האור הירוק עובר.
איך להוסיף מישהו לרשימה השחורה?
ברור שאנשים עם כוונות רעות לא יעברו כדי לתת לנו תמונה של הפנים שלהם. אז במקום זאת, אתה יכול להוסיף תמונות של אנשים ידועים לשמצה ש (למשל) המשטרה פרסמה לתיקייה img/רשימה שחורה. בכל שעה, התיקיה הזו נבדקת לאיתור תמונות חדשות. אם יש תמונה חדשה, קידוד הפנים מחושב ומתווסף לרשימה השחורה. Csv. לאחר מכן שמו של התמונה שונה והועבר לתיקייה/img/רשימה שחורה/מקודד.
הערות:
- הפעלת הסקריפטים על ידי כניסה ל- RPi מספקת הרבה יותר שליטה ומידע, אך ניתן להשיג את הבקרה והמידע הבסיסי על ידי שימוש אך ורק בתצוגת הרמזור.
- זיהוי פנים מיושם באמצעות חבילת פייתון 'face_recognition'. חבילה זו מבוססת על Dlib המכיל אלגוריתם חדשני לזיהוי פנים, המבצע דיוק של 99.38% במדד התוויות Faces in the Wild (מקור: dlib.net-זיהוי פנים באיכות גבוהה עם למידה מטרית עמוקה)).
פרס ראשון בתחרות הטכנולוגיה המסייעת
מוּמלָץ:
כיצד לבצע פעמון דלת ללא מגע, זיהוי טמפרטורת הגוף, GY-906, 433MHz באמצעות Arduino: 3 שלבים
כיצד להכין פעמון דלת ללא מגע, זיהוי טמפרטורת הגוף, GY-906, 433MHz באמצעות Arduino: היום נכין פעמון ללא מגע, הוא יזהה את טמפרטורת הגוף שלך. במצב הנוכחי, חשוב מאוד לדעת אם טמפרטורת הגוף של מישהו גבוהה מהרגיל, כאשר מישהו צוחק. פרויקט זה יראה אור אדום אם יזהה
פעמון דלת מותאם אישית המופעל באמצעות פעמון: 6 שלבים
פעמון דלת מותאם אישית המופעל בפעמון: שלום! שמי ג'סטין, אני ג'וניור בתיכון, ומדריך זה יראה לך כיצד להכין פעמון דלת המופעל כאשר מישהו דורך על מחצלת הדלת שלך, והוא יכול להיות כל מנגינה או שיר שתרצה! מכיוון שמחצלת הדלת מפעילה את הדלת
נעילת דלת זיהוי פנים: 8 שלבים
מנעול דלת זיהוי פנים: כחודש בתהליך, אני מציג את מנעול הדלת לזיהוי פנים! ניסיתי לגרום לזה להיראות הכי מסודר שאני יכול, אבל אני יכול לעשות רק כילד בן 13. מנעול דלת זיהוי פנים זה מנוהל על ידי Raspberry Pi 4, עם חבטה ניידת מיוחדת
זיהוי פנים וזיהוי - מזהה פנים Arduino באמצעות OpenCV Python ו- Arduino .: 6 שלבים
זיהוי פנים וזיהוי | מזהה פנים Arduino באמצעות OpenCV Python ו- Arduino .: זיהוי פנים AKA זיהוי פנים הוא אחת התכונות החשובות ביותר בטלפונים ניידים בימינו. אז הייתה לי שאלה " האם אפשר לקבל מזהה פנים לפרוייקט Arduino שלי " והתשובה היא כן … המסע שלי התחיל כדלקמן: שלב 1: גישה אלינו
זיהוי פנים+זיהוי: 8 שלבים (עם תמונות)
זיהוי פנים+זיהוי: זוהי דוגמה פשוטה לריצת זיהוי פנים וזיהוי באמצעות OpenCV ממצלמה. הערה: הכנתי את הפרויקט הזה לתחרות חיישנים והשתמשתי במצלמה כחיישן לאיתור מעקב והכרה. אז, המטרה שלנו בפגישה זו, 1. התקן את אנקונדה