สารบัญ:

Zombie Detecting Smart Security Owl (การเรียนรู้เชิงลึก): 10 ขั้นตอน (พร้อมรูปภาพ)
Zombie Detecting Smart Security Owl (การเรียนรู้เชิงลึก): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Zombie Detecting Smart Security Owl (การเรียนรู้เชิงลึก): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Zombie Detecting Smart Security Owl (การเรียนรู้เชิงลึก): 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: [สปอยอนิเมะจีน] บัญญัติปีศาจ ตอนที่ 1-15 ⚔️🐉😈 2024, พฤศจิกายน
Anonim

สวัสดีทุกคน ยินดีต้อนรับสู่ T3chFlicks! ในบทช่วยสอนฮัลโลวีนนี้ เราจะแสดงให้คุณเห็นถึงวิธีที่เรานำความคลาสสิกในครัวเรือนมาสู่บ้านสุดหลอน: กล้องรักษาความปลอดภัย

ยังไง?! เราได้สร้างนกฮูกในตอนกลางคืนซึ่งใช้การประมวลผลภาพเพื่อติดตามผู้คน โอ้และมันก็บีบแตรเหมือนของจริง!

เราตื่นเต้นมากเกี่ยวกับโปรเจ็กต์นี้ และรอคอยที่จะทำมันตั้งแต่ที่ Raspberry Pi 4 ตัวใหม่หลุดออกมา มี RAM ขนาด 4GB ซึ่งเปิดประตูสู่ความเป็นไปได้ที่น่าตื่นเต้นมากมาย รวมถึงการประมวลผลภาพด้วยโมเดลการเรียนรู้เชิงลึกในแบบเรียลไทม์

หากคุณต้องการจับตาดูซอมบี้ที่กำลังใกล้เข้ามาในวันฮัลโลวีน หรือเพียงแค่สำรวจสวนของคุณตลอดทั้งปี นี่คือสิ่งที่คุณต้องการ ความปลอดภัยไม่จำเป็นต้องน่าเบื่อจึงจะได้ผล!

เสบียง

สำหรับงานสร้างนี้ คุณจะต้อง:

  • Raspberry Pi 4 (4GB Ram) อเมซอน
  • กล้องมองภาพกลางคืน Amazon
  • ไมโครเซอร์โวอเมซอน
  • นกฮูกปลอมอเมซอน
  • กาวอเมซอน
  • ทาสีอเมซอน
  • สกรูอเมซอน
  • ลำโพง USB อเมซอน
  • แหล่งจ่ายไฟแบบพกพาขนาดใหญ่ (5v+) Amazon
  • เครื่องพิมพ์ 3 มิติ Amazon

ขั้นตอนที่ 1: ขั้นตอนที่ 1: Decapitate

ขั้นตอนที่ 1: ตัดหัว
ขั้นตอนที่ 1: ตัดหัว
ขั้นตอนที่ 1: ตัดหัว
ขั้นตอนที่ 1: ตัดหัว
ขั้นตอนที่ 1: ตัดหัว
ขั้นตอนที่ 1: ตัดหัว

NS. ดึงหัวนกฮูกออก (บางครั้งคุณก็ต้องโหดมาก) โดยการดึงหัวอย่างแรงที่ติดกับสปริง

NS. หัวของนกเค้าแมวเชื่อมต่อกับร่างกายด้วยกระบอกสูบซึ่งวางอยู่บนสปริงขนาดใหญ่ ถอดกระบอกนี้โดยถอดสกรูออก

ค. กระบอกสูบที่คุณเพิ่งถอดออกนั้นประกอบด้วยสองส่วน คือ ถ้วยพลาสติกและลูกปืนซึ่งอยู่ข้างใน ถอดตลับลูกปืนออกจากกระบอกสูบโดยใช้ไขควง (หรือเครื่องมือที่คล้ายกัน)

NS. ใช้สกรูที่เชื่อมต่อกระบอกสูบกับสปริง ติดเซอร์โวเข้ากับกระบอกสูบ

อี ถอดสปริงโดยคลายเกลียวสกรูสามตัวที่ยึดเข้ากับตัวเครื่อง

NS. ทำรูที่ส่วนบนของตัวนกฮูกซึ่งใหญ่พอที่จะใส่สายไฟและสายเคเบิลของกล้องได้ เราใช้สว่านและไขควงร่วมกันอย่างไม่ลงตัวในการทำเช่นนี้

ขั้นตอนที่ 2: ขั้นตอนที่ 2: เพิ่ม Smart

ขั้นตอนที่ 2: เพิ่ม Smart
ขั้นตอนที่ 2: เพิ่ม Smart
ขั้นตอนที่ 2: เพิ่ม Smart
ขั้นตอนที่ 2: เพิ่ม Smart
ขั้นตอนที่ 2: เพิ่ม Smart
ขั้นตอนที่ 2: เพิ่ม Smart

NS. พิมพ์เคสกล้อง 3 มิติแล้วทาสีให้เข้ากับนกฮูก - เราใช้สีอะครีลิคราคาถูก การวาดภาพไม่ใช่ขั้นตอนสำคัญ แต่ช่วยปรับปรุงรูปลักษณ์โดยรวมได้อย่างมาก!

NS. โดยให้หัวนกฮูกคว่ำลง ขันสกรูส่วนบนของเคสกล้องเข้าไปด้านในของศีรษะ โดยให้ปากนกยื่นออกมา

ค. ใส่กล้องลงในเคสแล้วต่อสายกล้อง

NS. กาวเซอร์โวไปที่แผงด้านบนของสปริง

อี ต่อสายไฟยาวเข้ากับหมุดเซอร์โว (5V, Gnd, สัญญาณ)

NS. ป้อนสายเคเบิลและสายไฟของกล้องสำหรับเซอร์โวผ่านสปริงและผ่านรูที่คุณทำที่ส่วนบนของร่างกาย เพื่อให้พวกมันอยู่ภายในตัวกลวงของนกฮูก

ขั้นตอนที่ 3: ขั้นตอนที่ 3: เติมเธอให้เต็ม

ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ
ขั้นตอนที่ 3: เติมเต็มเธอ

NS. ถอดปลั๊กออกจากด้านล่างของนกฮูกและเพิ่มขนาดของรูนี้โดยการตัดพลาสติก เพิ่มขนาดต่อไปจนกว่า Raspberry Pi และลำโพงจะสอดเข้าไปในร่างของนกฮูกได้

NS. เมื่อรูมีขนาดใหญ่พอที่จะใส่ส่วนประกอบทั้งหมดเข้าไปข้างในแล้ว ให้ดึงสายกล้องที่คุณป้อนผ่านด้านบนของนกฮูกออกจากฐานแล้วเสียบเข้ากับ Raspberry Pi

ค. ในทำนองเดียวกัน ดึงสายเซอร์โวผ่านแล้วเสียบเข้ากับ Raspberry Pi:

  • +5v บนเซอร์โว => +5V บน Pi
  • Gnd เซอร์โว => gnd Pi
  • เซอร์โวสัญญาณ => พิน 12 Pi

NS. เสียบลำโพง USB เข้ากับ Pi

อี ใส่การ์ด SD ลงใน Pi

NS. Power Pi โดยใช้แหล่งจ่ายไฟแบบพกพา

NS. ใส่ Pi, พาวเวอร์ซัพพลาย และลำโพงเข้าไปในนกฮูกผ่านรูที่ฐาน

ขั้นตอนที่ 4: ขั้นตอนที่ 4: ตั้งค่า Pi

ขั้นตอนที่ 4: ตั้งค่า Pi
ขั้นตอนที่ 4: ตั้งค่า Pi

รหัสทั้งหมดสามารถพบได้ที่ https://github.com/sk-t3ch/cctv-owl !

NS. ดาวน์โหลด Raspian และอัปโหลดไปยังการ์ด SD ของคุณโดยใช้ Balena Etcher

NS. ในการเข้าถึง pi ของคุณจากระยะไกล

  • เพิ่มไฟล์ชื่อ ssh ลงใน sd card บูตของคุณ
  • เพิ่มไฟล์ชื่อ wpa_supplicant.conf และใส่ข้อมูลรับรอง wifi ของคุณใน

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1

    เครือข่าย={ ssid="MySSID" psk="MyPassword" }

ค. ใส่การ์ด SD ใน pi แล้วลองเข้าถึงผ่าน ssh

ขั้นตอนที่ 5: ขั้นตอนที่ 5: ขยับศีรษะ

ขั้นตอนที่ 5: ขยับศีรษะ
ขั้นตอนที่ 5: ขยับศีรษะ

โค้ดสอนการเคลื่อนหัว (การควบคุมเซอร์โวด้วย raspberry pi)

ในการควบคุมเซอร์โวที่ทำงานบน Pi เราจะสร้างสคริปต์ที่ควบคุมพิน GPIO ที่เซอร์โวเชื่อมต่ออยู่

NS. เชื่อมต่อเซอร์โวกับ Pi:

  • +5v บนเซอร์โว => +5V บน Pi
  • Gnd servo => gnd บน Pi
  • เซอร์โวสัญญาณ => พิน 12 บน Pi

NS. คุณต้องตั้งค่าพิน gpio ก่อนเพื่อใช้ PWM บนพินสัญญาณของเซอร์โว

ค. จากนั้นจึงง่ายเหมือนการเลือกรอบการทำงาน (อธิบายไว้ที่นี่) ของขาสัญญาณเพื่อย้ายเซอร์โวจาก 90 องศาโดยมีรอบการทำงาน 7.5 ถึง 0 องศาเมื่อรอบการทำงาน 2.5 และ 180 องศาโดยมีรอบการทำงานเท่ากับ 12.5

นำเข้า RPi. GPIO เป็น GPIO

เวลานำเข้า GPIO.setmode(GPIO. BOARD) GPIO.setwarnings(False) GPIO.setup(12, GPIO. OUT) p = GPIO. PWM(12, 50) p.start(7.5) try: while True: p. ChangeDutyCycle (7.5) # 90 องศา time.sleep(1) p. ChangeDutyCycle(2.5) # 0 องศา time.sleep(1) p. ChangeDutyCycle(12.5) # 180 องศา time.sleep(1) ยกเว้น KeyboardInterrupt: p.stop() GPIO. การล้างข้อมูล ()

ขั้นตอนที่ 6: ขั้นตอนที่ 6: ทำให้มัน Hoot

ขั้นตอนที่ 6: ทำให้มัน Hoot
ขั้นตอนที่ 6: ทำให้มัน Hoot
ขั้นตอนที่ 6: ทำให้มัน Hoot
ขั้นตอนที่ 6: ทำให้มัน Hoot

โค้ดสอนการทำนกฮูกบีบแตร (เล่นเสียงด้วย Raspberry Pi)

NS. เสียบลำโพง USB

NS. ดาวน์โหลดเสียง - เราเลือกบีบแตรเหมือนผี

ค. เล่นเสียงโดยใช้คำสั่งนี้: omxplayer -o alsa:hw:1, 0 owl_sound.mp3

[NS. หากไม่ได้ผล ให้ตรวจสอบว่า Pi ของคุณใช้เอาต์พุตใดและระดับเสียงใดโดยใช้คำสั่ง alsamixer คุณจะได้รับการต้อนรับด้วยหน้าจอมิกเซอร์ที่คุณสามารถเปลี่ยนระดับเสียงและเลือกอุปกรณ์สื่อของคุณได้ หากต้องการเพิ่มระดับเสียง ให้ทำคำสั่งเช่นนี้ omxplayer -o alsa:hw:1, 0 owl_sound.mp3 --vol 500 หากต้องการเล่นเสียงนี้โดยใช้ Python ให้ดูสคริปต์ทดสอบของเรา]

นำเข้ากระบวนการย่อย

command = "omxplayer -o alsa:hw:1, 0 owl_sound.mp3 --vol 500" player = subprocess. Popen(command.split(' '), stdin=subprocess. PIPE, stdout=subprocess. PIPE, stderr=subprocess.ท่อ)

ขั้นตอนที่ 7: ขั้นตอนที่ 7: สตรีมวิดีโอจาก Pi

ขั้นตอนที่ 7: สตรีมวิดีโอจาก Pi
ขั้นตอนที่ 7: สตรีมวิดีโอจาก Pi
ขั้นตอนที่ 7: สตรีมวิดีโอจาก Pi
ขั้นตอนที่ 7: สตรีมวิดีโอจาก Pi

โค้ดสอนการสร้างสตรีมกล้องราสเบอร์รี่ pi

NS. เรียกใช้ python app.py และดูบนเครือข่ายท้องถิ่นของคุณที่

NS. รหัสนี้ถ่ายและดัดแปลงเล็กน้อยจาก Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… เขาอธิบายอย่างดีว่ามันทำอย่างไรและบทช่วยสอนของเขายอดเยี่ยมมาก - deffo ลองดูเขาสิ! แนวคิดพื้นฐานคือเราใช้เธรดและตัวสร้างเพื่อปรับปรุงความเร็วในการสตรีม

ขั้นตอนที่ 8: ขั้นตอนที่ 8: การตรวจจับร่างกาย

ขั้นตอนที่ 8: การตรวจจับร่างกาย
ขั้นตอนที่ 8: การตรวจจับร่างกาย

รหัสสำหรับการตรวจจับร่างกาย (ImageNetSSD บนสตรีมวิดีโอที่มี raspberry pi)

NS. เนื่องจากเราใช้ Raspberry Pi 4 เราจึงคิดว่าควรลองใช้โมเดลการเรียนรู้เชิงลึกแทนวิธีการ HaarCascade พื้นฐานที่เราจำกัดไว้จนถึงตอนนี้

NS. เราได้ดูรุ่นก่อนการฝึกอบรมบางรุ่น เช่น YOLOv3 ซึ่งดูเท่มาก ตุ้มน้ำหนักขนาดเล็กของ YOLOv3 ซึ่งเหมาะสำหรับ Pi แต่เราไม่สามารถทำให้มันทำงานได้:(ค. แต่เราเลือกใช้โมเดล MobileSSD ซึ่งเราสามารถเรียกใช้โดยใช้โมดูล openCVs DNN (deep neural net) ตามที่เราเรียนรู้จากรหัสนี้: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 และจากบทแนะนำการประมวลผลภาพ Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- โอเพ่นซีวี/

NS. อย่างไรก็ตาม ขณะที่เรากำลังพยายามสตรีมเนื้อหานี้และเรียกใช้โมเดลในทุกเฟรม ส่งผลให้วิดีโอมีความล่าช้าและกระจัดกระจาย เราเรียนรู้อีกครั้งจาก Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ และใช้โมดูลการประมวลผลหลายตัวของ Python เพื่อวางรูปภาพของเราลงในคิว ซึ่งสามารถประมวลผลได้โดยไม่ปิดกั้นการสตรีมของกล้องอย่างมาก

อี ลองรันโค้ดด้วยตัวคุณเอง:)

ขั้นตอนที่ 9: ขั้นตอนที่ 9: ส่งการแจ้งเตือนซอมบี้

ขั้นตอนที่ 9: ส่งการแจ้งเตือนซอมบี้
ขั้นตอนที่ 9: ส่งการแจ้งเตือนซอมบี้
ขั้นตอนที่ 9: ส่งการแจ้งเตือนซอมบี้
ขั้นตอนที่ 9: ส่งการแจ้งเตือนซอมบี้

รหัสสำหรับส่งการแจ้งเตือน (หลามไปยังโทรศัพท์)

NS. เราตัดสินใจใช้บริการแจ้งเตือน

NS. คุณสามารถรับบัญชีฟรีและดาวน์โหลดแอป และตั้งค่าการแจ้งเตือนทางมือถือได้อย่างรวดเร็ว เราสร้างการแจ้งเตือนโดยใช้สคริปต์หลามเช่นนี้

คำขอนำเข้า

payload = { "app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Owl ตรวจพบซอมบี้" } r = request.post("https://api.push.co/1/push", data=payload)

มันง่ายมากและคุณสามารถปรับแต่งชื่อการแจ้งเตือนของคุณได้!

ขั้นตอนที่ 10: ช่างเป็นเสียงแตร

ช่างเป็นอะไร!
ช่างเป็นอะไร!

เราหวังว่าคุณจะสนุกกับโครงการ Smart Security Owl ของเรา! นี่เป็นการสร้างที่สนุกสุดๆ และฉันรู้สึกปลอดภัยขึ้นมากเมื่อรู้ว่าบ้านของฉันถูกนกเค้าแมวที่ไว้ใจได้คอยคุ้มกัน

หากคุณคิดว่านี่จะเป็นส่วนเสริมฮัลโลวีนที่ยอดเยี่ยมสำหรับบ้านอัจฉริยะของคุณ โปรดลงคะแนนให้เราในการประกวด Instructables Halloween และเช่นเคย โปรดอย่าลืมกดไลค์ แสดงความคิดเห็น และสมัครรับข้อมูล!

ลงชื่อสมัครใช้รายชื่อผู้รับจดหมายของเรา!

แนะนำ: