深度学习工作助手(W5100S-EVB-Pico + Arducam)

该项目使用 W5100S-EVB-Pico 和 Arducam 将图像传送到网络应用程序,并通过 AI 对象识别来识别我的工作模式

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第1张图片

转发: Working assistant with Deeplearning (W5100S-EVB-Pico + Arducam)


项目介绍

W5100S-EVB-PICO-工作助手

1. 项目概况

  • 这是一个利用 W5100S-EVB-PICO 和 Arducam 的工作辅助项目。

2. 项目详情

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第2张图片

该项目包括通过连接到 Pico 的摄像头每 5 秒捕获一次图像,并通过以太网传输这些图像。

使用Fine-tuned YOLOv8模型对传输的图像进行处理,以对用户的工作状态进行对象检测。 该模型经过训练可识别五类:正常、困倦、打哈欠、分心和移动使用。

对识别出的对象进行计数以分析工作模式,并将结果传输并显示在网络界面上。

3. 代码和库

该代码是使用 Thonny IDE 和 CircuitPython 编写的。

将 lib 文件夹、boot_out.txt 和 code.py 文件从存储库复制到 W5100S-EVB-PICO 并运行 code.py。

请参阅上面的链接,通过将 W5100s-evb-pico 板与 arducam 和 Circuitpython 相结合来构建硬件,以使网络摄像头正常工作。

我们对 CircuitPython 库的 7.x 版使用了 Bundle,对于 Adafruit_CircuitPython_wiznet5k 库,我们使用了 1.12.15 发行版本。

下载链接:

  • CircuitPython Libraries
  • ArduCAM PICO_SPI_CAM Python
  • Adafruit_CircuitPython_Wiznet5k 1.12.15

使用 W5100S-EVB-PICO 和 Arducam 使用 AI 升级图像的上一个项目中的代码使用 ChatGPT 进行了细化和简化。Upscaling Image with AI using W5100S-EVB-PICO and Arducam 

ArduCam OV2640 模块需要 CS、MOSI、MISO、SCLK 引脚用于 SPI 连接,以及 SDA、SCL 引脚用于 I2C 连接。 该项目修改了ArduCam的源代码以使用SPI1。

ArduCam OV2640 的 SPI1 配置:

  • CS --> GPIO 13
  • MOSI --> GPIO 11
  • MISO --> GPIO 12
  • SCLK --> GPIO 10

ArduCam OV2640的I2C配置:

  • SDA --> GPIO 8
  • SCL --> GPIO 9

4. YOLOv8模型训练

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第3张图片

YOLOv8模型

YOLOv8 是一个强大的目标检测模型。 它是 YOLO 系列模型的最新迭代。 YOLOv8 的设计目标是快速、准确,重点是同时检测和分类。 它能够检测图像或视频中的多个对象并对它们进行实时分类,使其对于许多计算机视觉任务非常有效。

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第4张图片

 深度学习工作助手(W5100S-EVB-Pico + Arducam)_第5张图片

纳米模型

Nano 模型是标准模型的更小、更快的版本。 它专为提高效率而设计,可以用更少的计算资源以更高的速度运行,非常适合部署在计算能力有限的设备上,例如移动设备和嵌入式系统。

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第6张图片

用法

要在项目中使用这些模型,您可以使用以下命令在 Python>=3.8 环境中使用 PyTorch>=1.7 安装 Ultralytics 包:

pip install ultralytics

数据集: Roboflow Project

深度学习工作助手(W5100S-EVB-Pico + Arducam)_第7张图片

  • 型号:Ultralytics 的 YOLOv8 Nano(快速且小型)
  • mAP50:0.857,mAP50-95:0.498。
  • 我们使用了 Google Colab 提供的免费 GPU。
  • Google Colab Notebook.
  • 深度学习工作助手(W5100S-EVB-Pico + Arducam)_第8张图片
  • Inference: ​深度学习工作助手(W5100S-EVB-Pico + Arducam)_第9张图片wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

 

5. 网络推理

运行working_assistant.py 文件。

代码说明:

设置:该脚本首先设置一个 Flask 应用程序并定义一些全局变量。 url 是从中获取图像的 URL。 save_dir 是保存获取的图像的目录。 inference_dir 是保存推理后图像的目录。 results 是一个字典,用于跟踪不同对象检测结果的计数。

fetch_image_and_inference():该函数在无限循环中运行。 在每次迭代中,它从 URL 获取图像,将其保存到 save_dir,在图像上运行 YOLO 对象检测模型,并根据模型的输出更新结果字典。 然后该函数等待 10 秒,然后开始下一次迭代。

serve_image():这是一个提供 HTML 页面服务的 Flask 路由。 该页面包含一个显示最新推断图像的图像元素和几个显示不同对象检测结果计数的段落元素。 页面每 10 秒刷新一次。

get_inferred_image():这是另一个提供最新推断图像的 Flask 路由。 该图像是从 inference_dir 中获取的。

主要执行:如果脚本作为主程序运行,它将在新线程中启动 fetch_image_and_inference() 函数,然后启动 Flask 应用程序。

6. 原文链接

  • 欲了解更多信息,请访问:

    GitHub - wiznetmaker/W5100S-EVB-PICO-WORKINGASSISTANT

7. 类似项目

  • 对于其他类似项目,请访问:

 Upscaling image with AI using W5100S-EVB-Pico and Arducam. 

 

你可能感兴趣的:(深度学习,人工智能)