构建逻辑,定期从红外摄像机捕获快照,对其进行标准化,并将其存储在某处。标记图片(检测到人物存在/检测到人物不存在)并在其上训练模型。在树莓派上部署模型并运行定期针对新捕获的图像进行检测,房间里的人是否存在。

https://embed.notionlytics.com/wt/ZXlKd1lXZGxTV1FpT2lKaU9EazBNbU5oTlRFeFpqVTBZek5oT1RNd1pqVTNZVEpoT1dJM05Ea3dPU0lzSW5kdmNtdHpjR0ZqWlZSeVlXTnJaWEpKWkNJNklsZHNTR2hsVEZSUFdXeHpaVmRhUW1ZNU1YQmxJbjA9

物料清单

通讯选择

系统准备

安装软件依赖项

捕捉图像

现在我们已经准备好所有的硬件和软件,让我们配置以定期捕获相机图像并将它们存储在本地 - 我们稍后将使用这些图像来训练我们的模型。

它基本上是可以定期执行并运行一些自定义操作的过程。 让我们在 config.yaml 中添加一个 cron,它从传感器获取图片并将它们存储在本地目录中。 首先,在树莓派上创建 images 目录:

然后在 config.yaml 中添加 cron 的逻辑:

cron.ThermalCameraSnapshotCron:
 cron_expression: '* * * * *'
 actions:
 - action: camera.ir.mlx90640.capture_image
 args:
 image_file: ~/datasets/people_detect/\\
 ${int(__import__('time').time())}.jpg
 grayscale: true

标记图像

一旦您捕获了足够多的图像,就可以将它们复制到您的计算机上,标记它们并训练模型。现在等待我们的是无聊的部分——手动将图像标记为正面或负面。 我使用一个脚本让这项任务变得不那么乏味,该脚本允许您在查看图像时以交互方式标记图像,并将它们移动到正确的目标目录。 在本地计算机上安装依赖项并克隆存储库:

训练模型

from tensorflow.keras.preprocessing.image import
ImageDataGenerator
# 30% of the images goes into the test set
generator = ImageDataGenerator(rescale=1./255, validation_
split=0.3)
train_data = generator.flow_from_directory(dataset_dir,
	 target_size=image_size,
	 batch_size=batch_size,
	 subset='training',
	 class_mode='categorical',
	 color_mode='grayscale')
test_data = generator.flow_from_directory(dataset_dir,
	 target_size=image_size,
	 batch_size=batch_size,
	 subset='validation',

执行模型

建立自动化流程

使用上述模型构建安全监控

源代码