ระบบรักษาความปลอดภัยเว็บแคม Pizero Motion Detect: 3 ขั้นตอน
ระบบรักษาความปลอดภัยเว็บแคม Pizero Motion Detect: 3 ขั้นตอน
Anonim
ระบบรักษาความปลอดภัยเว็บแคม Pizero Motion Detect
ระบบรักษาความปลอดภัยเว็บแคม Pizero Motion Detect

ระบบนี้ใช้ pizero, wifi dongle และเว็บแคมเก่าในกล่องไม้ขีดไฟที่ปรับแต่งได้ มันบันทึกวิดีโอการตรวจจับการเคลื่อนไหวที่ 27fps ของการเคลื่อนไหวที่สำคัญบนถนนรถแล่นของฉัน จากนั้นจะอัปโหลดคลิปไปยังบัญชีดรอปบ็อกซ์ นอกจากนี้ยังสามารถดูบันทึกและเปลี่ยนการกำหนดค่าผ่านดรอปบ็อกซ์

ขั้นตอนที่ 1: การตั้งค่าข้อกำหนดเบื้องต้น

Image
Image

ขั้นแรกให้อัปเดตระบบปฏิบัติการเป็นเวอร์ชันล่าสุดตามที่อธิบายไว้ที่นี่

จากนั้นตั้งค่า wifi ตามที่อธิบายไว้ที่นี่

จากนั้นคุณจะต้องตั้งค่า OpenCv มีคำแนะนำที่ดีเกี่ยวกับวิธีการทำเช่นนี้ใน pyimagesearch หากคุณกำลังจะใช้เวอร์ชัน 3.0 คาดว่าจะใช้เวลานาน ขั้นตอนหนึ่งใช้เวลา 9 ชั่วโมงในการทำ คุณจะต้องมีการเชื่อมโยงหลามซึ่งอธิบายไว้ในหน้านั้น

เมื่อคุณเตรียมข้อมูลทั้งหมดนี้แล้ว คุณก็พร้อมที่จะดาวน์โหลดซอฟต์แวร์ตรวจจับการเคลื่อนไหว

ขั้นตอนที่ 2: การตั้งค่าซอฟต์แวร์ตรวจจับการเคลื่อนไหว

การเข้าถึงวิดีโอและการกำหนดค่าผ่าน Dropbox
การเข้าถึงวิดีโอและการกำหนดค่าผ่าน Dropbox

รหัสสามารถพบได้บน bitbucket คัดลอกไฟล์เหล่านี้โดยใช้

โคลน git

หรือหากคุณต้องการดาวน์โหลดทีละรายการ

ส่วนหลักของระบบนี้คือ multiMotionDetect.py ใช้คิวและเหตุการณ์หลายการประมวลผลจำนวนมาก

ก่อนอื่น คุณต้องตัดสินใจว่าคุณต้องการเก็บภาพวิดีโอไว้ที่ไหน MotionVideos และตั้งค่านี้ในไฟล์ globalConfig.json จากนั้นคัดลอก config.json.txt และ maskedAreas.json.txt ไปที่รูทของโฟลเดอร์นี้ config.json.txt มีการตั้งค่าต่อไปนี้ซึ่งสามารถแก้ไขได้จากระยะไกล

{ "frameThreshold": "4", "staticThreshold": "100", "min_area":"650", "postSeconds":"7", "readCamNice": "-6", "checkMotionNice":"5", "writeCamNice": "5", "ขนาดสูงสุด": "6"

}

FrameThreshold: คือจำนวนเฟรมที่มีนัยสำคัญก่อนที่จะตรวจพบการเคลื่อนไหว

staticThreshold: คือจำนวนเฟรมคงที่ก่อนที่เราจะปิดการถ่ายทำ

minArea: คือขนาดต่ำสุดของพื้นที่เพื่อนับเป็นนัยสำคัญ

postSeconds: นี่คือจำนวนวินาทีนับจากสิ้นสุดการถ่ายทำเพื่อให้การเคลื่อนไหวผ่านคิว readCamNice: นี่คือลำดับความสำคัญที่จะให้ความสำคัญกับ

กระบวนการ readCam ซึ่งอยู่ระหว่าง -20 ถึง +20 (ตัวเลขยิ่งต่ำยิ่งมีลำดับความสำคัญสูง) แต่อย่าหักโหมจนเกินไป มิฉะนั้น ระบบปฏิบัติการจะขัดข้อง

checkMotionNice: ลำดับความสำคัญสำหรับกระบวนการตรวจจับการเคลื่อนไหว

writeCamNice: ลำดับความสำคัญของกระบวนการเขียนกล้อง

maxqsize: นี่คือจำนวนวินาทีที่คูณด้วยเฟรมต่อวินาที

ส่วนใหญ่ฉันจะเปลี่ยนเฉพาะ min_area เพื่อพิจารณาสภาพลมเท่านั้น

หากคุณต้องการใช้ตัวบันทึกธรรมดามากกว่าตัวบันทึกซ็อกเก็ต (ด้านล่าง) ให้เปลี่ยนการนำเข้า miaLogging เป็น

นำเข้าการบันทึก

logging.basicConfig(filename='example.log', level=logging. DEBUG)

และลบตัวรับบันทึกออกจากไฟล์ motionDetect และทุกอย่างจะทำงานได้ดี

หากคุณต้องการเรียกใช้การตรวจจับการเคลื่อนไหวโดยอัตโนมัติเมื่อเริ่มต้น

ก่อนอื่นให้แก้ไขสคริปต์และตรวจสอบว่า homedir ชี้ไปยังตำแหน่งที่คุณมี multiMotionDetect.py จากนั้นคัดลอกไฟล์ motionDetect ไปที่ /etc/init.d เช่น

cp motionDetect /etc/init.d/motionDetect

น่าจะใช้งานได้แล้ว แต่

chmod +x /etc/init.d/motionDetect

สุดท้ายลงทะเบียนสคริปต์กับ

sudo update-rc.d motionDetect defaults

คุณยังสามารถเริ่ม หยุด และรีสตาร์ทระบบด้วย

sudo /etc/init.d/motionDetect เริ่ม|หยุด|เริ่มใหม่

โดยค่าเริ่มต้น การบันทึกซ็อกเก็ต miaLogReceiver จะเริ่มต้นพร้อมกัน อีกสามโปรแกรมเป็นอิสระ แต่ใช้ซ็อกเก็ตล็อกเกอร์เดียวกัน (แต่สามารถแปลงได้ง่าย) ฉันเรียกสิ่งเหล่านี้โดยใช้สคริปต์ cron ที่มีช่วงเวลาต่างกัน ดูคำแนะนำได้ที่นี่

CheckRunning.py ตรวจสอบว่า multiMotionDetect.py กำลังทำงานอยู่และจะรีสตาร์ทหรือไม่ ถ้าไม่

fileMaint.py ดำเนินการดูแลทำความสะอาดในโฟลเดอร์วิดีโอเพื่อลบสิ่งเหล่านี้หลังจากผ่านไปตามจำนวนวันที่กำหนด จะลบไดเรกทอรีย่อยของโฟลเดอร์วิดีโอเคลื่อนไหวที่ตั้งไว้ในย่อหน้าแรก จะตรวจสอบว่ามันขึ้นต้นด้วย "MV" ดังนั้นตรวจสอบให้แน่ใจว่าคุณไม่มีไดเร็กทอรีสำคัญอื่นที่ขึ้นต้นด้วยอักขระเดียวกันภายในโฟลเดอร์นั้น

ขั้นตอนที่ 3: การเข้าถึงวิดีโอและการกำหนดค่าผ่าน Dropbox

สุดท้าย หากคุณต้องการดูวิดีโอ บันทึก และไฟล์กำหนดค่าจากระยะไกล คุณจะต้องตั้งค่าดรอปบ็อกซ์

ขั้นแรกให้รับบัญชีดรอปบ็อกซ์ซึ่งฟรี จากนั้นตั้งค่า API สำหรับ python -https://www.dropbox.com/developers/documentation/… ซึ่งรวมถึงการดาวน์โหลด sdk และการลงทะเบียนแอปเพื่อเข้าถึง API

เมื่อคุณมีคีย์แล้ว ให้ป้อนสิ่งนั้นในไฟล์ globalConfig.json ข้อมูลเพิ่มเติมเกี่ยวกับระบบสามารถพบได้ในบล็อกของฉัน dani cymru - cyber renegade หากคุณพบสิ่งที่น่าสนใจหรือคำถามใด ๆ โปรดแสดงความคิดเห็นในบล็อก