跳到主要内容

如何建立一个树莓派报警门廊海盗

树莓派警报,喷洒门廊海盗
(图片来源:Shutterstock, Tom’s Hardware)

如今,每个人都定期收到包裹,如果你没有立即注意到包裹的投递,“门廊海盗”可能会偷走你的东西。根据C + R的研究,43%的美国人至少有一个包裹在2020年被盗。

为了解决这个问题,我搭建了一个由树莓派(Raspberry-Pi)驱动的系统,利用摄像头和机器学习来确定你的包裹是否被偷了。当它检测到问题时,它可以拉响警报,打开洒水器把违法者淋湿,甚至向窃贼发射面粉。汤姆硬件公司用以前的新闻文章,但今天我要告诉你如何自己做。

如果您之前从未使用过机器学习则,这应该是一个容易足够的项目,让您的脚湿润。我们将使用一种称为图像分类的计算机视觉,以确定是否存在,或者不是前门的包裹。要培训它,我们将使用一个名为Google Cloud Automl的工具,该工具占用了大量的复杂性背后训练机器学习模型。

你需要这个项目

初始设置

首先,我们需要设置一些东西来为我们的机器学习模型收集数据。

1。设置覆盆子pi。如果您不知道如何执行此操作,请查看我们的故事,就如何设置您的故事第一次出现树莓派如何设置一个无头覆盆子pi(没有显示器或键盘)。

2.插入你的pi,安装基本依赖项,然后克隆存储库到你的覆盆子pi。

CD〜/ sudo apt-get更新&& sudo apt-get-met-met-min install git python3-pip&python3 -m pip安装virtumenenv git clone https://github.com/rydercalmdown/package_theft_preventor.git

3.进入培训目录设置虚拟环境

CD package_theft_preventor / training python3-m virtualenv -p python3 env

4.激活虚拟环境安装python需求

源env / bin / spectivate pip安装-r要求.txt

5。设置您的RTSP摄像机并指向你的前门。如果您使用的是Wyze Cam V2,请闪烁自定义RTSP固件(这里提供的说明)。

(图片信用:汤姆的硬件)

6。从相机设置中获取RTSP url将其设置为流url在培训/制作文件中。

Nano Makefile#使用Stream URL rtsp_url = rtsp://用户名:passwory@10.0.0.1/live

7。运行代码以测试图像集合。您应该开始查看数据目录中的图像。

制作无包图像

8。使用代码收集前门的图像在全天的各个点。代码每10秒拍摄照片,应考虑各种照明和天气条件。您需要大约1000张没有包装的照片。

#拍摄您的门的照片,没有包裹禁止包图像

(图片信用:汤姆的硬件)

9.一旦您收集了足够的图像而没有包裹,我们需要开始用各种包拍摄图像。使用各种不同尺寸的盒子和信封,在您的门周围的不同位置和方向。当您有很多套餐的照片,以及在整天各个点的没有包裹的相同数量的门,您就可以开始培训。

制作包 - 图像

(图片信用:汤姆的硬件)

10.浏览培训/数据目录删除可能未出发的任何照片,或者可能不利于训练。

11.创建谷歌云存储桶来存储您的图像。您将需要谷歌云帐户和GCLoud命令行工具安装在您的本地机器上。你也需要一个谷歌云项目如果这是您第一次使用Google Cloud。

#gsutil安装了gcloud gsutil mb gs:// your_bucket_name_hee -p您的项目名称 - 这里 - 美国 -  Central1

12.将桶名称设置为培训/ makefile文件中的gcs_base

nano makefile#编辑gcs_base = gs:// your_bucket_name_he

13。运行make generate-csv命令生成培训所需的CSV。

使生成-CSV

14。上传生成的CSV文件到你的新桶。

gsutil cp training_data.csv gs:// your_bucket_name_here

15.上传你的照片到你的新桶。

Gsutil cp -r data gs://your_bucket_name_here/data

16。导航到Google Cloud Automl Vision仪表板谷歌云控制台点击“开始”与AutoML愿景。

(图片信用:汤姆的硬件)

17。单击“新数据集”并为该数据集选择一个名称。选择“单标牌分类”作为模型目标,和单击“创建数据集”

(图片信用:汤姆的硬件)

18。选择“在云存储上选择CSV文件”,提供Google云存储路径,单击“继续”。

GS://your_bucket_name_here/tring_data.csv.

(图片信用:汤姆的硬件)

19. Google Cloud将返回导入屏幕。大约10分钟后,您将自动拍摄数据集的“图像”部分。验证您的所有图像是否已上传并正确标记为包或诺_Package

(图片信用:汤姆的硬件)

20.在“火车”标签中,单击“培训新型号”,然后选择一个名称。然后选择“边缘”所以模型一旦完成就可以从谷歌Cloud下载。然后点击继续。

(图片信用:汤姆的硬件)

21.点击“更快的预测”因为我们将在计算能力有限的树莓派上运行。然后点击继续

(图片信用:汤姆的硬件)

22.接受节点小时预算的默认建议,但请注意,您将收取这些机器培训您的模型的时间。在撰写本文时,每节点时刻的大致成本为3.15美元,因此该模型应花费超过12美元到培训。

23。单击“开始培训”按钮。当你的培训完成后,你会收到一封电子邮件。

24.培训完成后,导航到“测试和使用”选项卡,然后将模型作为TF Lite文件下载。作为目的地,选择桶中保存培训数据,并使用以下命令下载。它将下载dict.txt和model.tflite和tflite_metadata.json文件。您现在有机器学习模型培训,以识别您的门口是否有或不是包装。

(图片信用:汤姆的硬件)
Gsutil cp -r gs://your_bucket_name_here/model-export/ ./

设置覆盆子PI包报警系统

1。导航到存储库的根目录并运行安装命令安装项目的所有较低级别和基于Python的要求。

CD〜/ package_theft_preventor使安装

2.复制您下载的模型文件从您的电脑到树莓派并使用它们来替换SRC / Models目录中的现有文件。

#从桌面机MV培训/模型 - 导出/ dict.txt / home/pi/package_theft_preventor/src/models/dict.txt mv培训/ model-export / tflite_metadata.json / home / pi / package_theft_preventor / src /型号/tflite_metadata.json mv培训/ model-export / model.tflite / home/pi/package_theft_preventor/src/models/model.tflite

3.在Makefile中设置STREAM_URL到指向您的门的相机的RTSP流URL。这将是与您用于训练模型的URL相同的URL。

纳米Makefile #编辑STREAM_URL=rtsp://用户名:password@camera_host/端点

4.将继电器板的VCC和接地引脚连接到覆盆子PI,分别使用板引脚4 (VCC)和6(接地)。

(图片信用:汤姆的硬件)

5。将继电器上的数据引脚连接到以下覆盆子PI BCM引脚。您可以修改订单,只需跟踪每个引脚的通道连接到以供以后接线。

继电器引脚1 =覆盆子PI BCM引脚27(喷淋销)继电器引脚2 =覆盆子PI BCM引脚17(SIREN引脚)继电器引脚3 =覆盆子PI BCM引脚22(空气螺线管销)

(图片信用:汤姆的硬件)

注意:在我的项目中,我使用了一个12v的警报器,一个12v的洒水控制器和一个12v的空气螺线管来触发各种警报。就本教程的目的而言,我们将只连接一个警笛-我不建议连接其他任何东西,除了在现实生活中使用。如果您正在连接其他模块,请按照下面相同的三个步骤进行。

6。将12伏电源的正端连接到继电器通道2的公共端口中。

(图片信用:汤姆的硬件)

7。将12V警报器连接到常开口的继电器通​​道2。

(图片信用:汤姆的硬件)

8。将警笛的另一端直接连接到12V电源接地。

9.如果您连接洒水,电线在你的12v洒水控制器在以上使用的确切步骤中继电器1频道,将继电器通道1的公共端口连接到电源的正端,喷洒控制器的一端到继电器,并将喷水器控制器的另一端接地。代码独立地控制洒水喷头和警报器。

(图片信用:汤姆的硬件)

10.如果连接洒水,将电源端连接到加压水源然后打开水龙头。将另一端连接到导致喷水隆的软管。

(图片信用:汤姆的硬件)

11.将12V电源连接到电源。

12.将脸部的照片添加到SRC / Faces目录中作为.jpg文件(可选)。这使系统能够定期检查您是否在该区域中,并相应地解除系统。

13。启动系统并测试它。您将看到各种日志语句,指示当前状态系统所在的状态:

使运行#开始流-系统连接到相机#系统看-系统分类的图像廊包/ no_package现在#系统武装——一个包已经明确检测,如果删除警报会响#激活报警-包被移除,激活警报

(图片信用:汤姆的硬件)

14。邀请你的朋友偷你的包裹来测试你的新防盗报警器。我的朋友玩得很开心。

(图片信用:汤姆的硬件)

一旦您满意,您的Raspberry PI封装盗窃检测系统应起作用。但是,我们建议谨慎,如果它不完美,最终可能会提醒

6评论 论坛评论
  • 雷鬼湖
    好的,我这里有很多问题。

    如果FedEx下降套餐,那么UPS会在同一天提供另一个包裹吗?UPS驱动程序是否会被喷洒?我从亚马逊,UPS,FedEx等获得多次交付/日。如果您偶尔会送达一个包裹,那似乎只能效果很好。

    我喜欢这个想法,但这里有这么多的东西可以出错。
    回复
  • Apiltch.
    据说,这只有触发包裹以前在那里的包裹“丢失”。根据莱德制作脚本的莱德,将包添加到堆包中不应触发它。当然,如果你制作它,你想测试它。
    回复
  • 悍马
    不要这样做!这可能不是个好主意。你不知道海盗会对你的房子做什么。他们可能会报复,然后回来对你的房子做一些非常糟糕的事情。你的房子完全暴露在外,而他们却在黑暗中。
    回复
  • neilbob.
    Sippindider.说:
    脱下羊皮手套。不仅仅是水和警笛。

    展开上一篇文章,这次将整个面粉倾倒在盗贼上。

    他们就完蛋了。他们留下了脚印,而且他们不会很快把东西弄走;一个满身面粉的人逃离该区域会引起注意。

    假设我们可以更进一步,使用糖粉或淀粉粉,再加上草坪喷雾器,把它变成一团黏糊糊的东西,而且不刷掉。

    为什么要把自己限制在这里呢?我个人甚至会更进一步,安装一个火焰喷射器。
    回复
  • Waltc3.
    而不是洒水器,低能量激光器,丝网和几个12尺的霰弹枪空白呢?你可以有几个警告码标志,“包裹窃贼将被当场击毙。我警告过你!”。一个不错的做法是在小偷被电的同时使用洒水喷头!(豪华的布景会拍下这种滑稽的痉挛动作。)

    - 从“我们想做的事情”的“部门”文件......;)
    回复
  • 争吵
    所有这一切都是毫无意义的,小偷将会举行,闹钟与否,问题在于人们愿意以这种方式收到他们的包裹,交付公司不会给予大鼠屁股。
    回复