🫐Raspberry Pi和Python-OpenCV-TensorFlow卷积神经网络热成像人物检测
构建逻辑,定期从红外摄像机捕获快照,对其进行标准化,并将其存储在某处。标记图片(检测到人物存在/检测到人物不存在)并在其上训练模型。在树莓派上部署模型并运行定期针对新捕获的图像进行检测,房间里的人是否存在。
物料清单
通讯选择
系统准备
安装软件依赖项
捕捉图像
现在我们已经准备好所有的硬件和软件,让我们配置以定期捕获相机图像并将它们存储在本地 - 我们稍后将使用这些图像来训练我们的模型。
它基本上是可以定期执行并运行一些自定义操作的过程。 让我们在 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',
执行模型
建立自动化流程
使用上述模型构建安全监控
源代码
Last updated