Posted on

系统架构与模型选择

硬件配置

检测目标与模型对比


数据采样与推理流程


数据的存储结构与处理逻辑

工作流程概述

核心代码实现

def detect_objects(image_name):
    results = model([image_name], imgsz=1024, conf=0.4, verbose=False)
    for result in results:
        result_json = result.to_json()
        name_counts = count_name_values(result_json)
        c.execute('INSERT INTO counts (image_name) VALUES (?)', (image_name,))
        count_id = c.lastrowid
        for name, count in name_counts.items():
            c.execute(f'UPDATE counts SET "{name}" = ? WHERE id = ?', (count, count_id))
        conn.commit()
    return name_counts
images_dir = "images"
jpg_list = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
for jpg in tqdm(jpg_list, desc="Processing images"):
    detect_objects(jpg)
conn.close()

统计结论

一周的数据的折线图

周六日每10分钟的统计

一周时间内每10分钟的总狗数


实验总结


技术挑战与现实制约

夜间光照不足

多帧重复统计