構建邏輯,定期從紅外攝像機捕獲快照,對其進行標准化,並將其存儲在某處。標記圖片(檢測到人物存在/檢測到人物不存在)並在其上訓練模型。在樹莓派上部署模型並運行定期針對新捕獲的圖像進行檢測,房間裡的人是否存在。
現在我們已經准備好所有的硬件和軟件,讓我們配置以定期捕獲相機圖像並將它們存儲在本地 - 我們稍後將使用這些圖像來訓練我們的模型。
它基本上是可以定期執行並運行一些自定義操作的過程。 讓我們在 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',
參閱 - 亞圖跨際