转发: Working assistant with Deeplearning (W5100S-EVB-Pico + Arducam)
项目介绍
该项目包括通过连接到 Pico 的摄像头每 5 秒捕获一次图像,并通过以太网传输这些图像。
使用Fine-tuned YOLOv8模型对传输的图像进行处理,以对用户的工作状态进行对象检测。 该模型经过训练可识别五类:正常、困倦、打哈欠、分心和移动使用。
对识别出的对象进行计数以分析工作模式,并将结果传输并显示在网络界面上。
该代码是使用 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 发行版本。
下载链接:
使用 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 配置:
ArduCam OV2640的I2C配置:
YOLOv8 是一个强大的目标检测模型。 它是 YOLO 系列模型的最新迭代。 YOLOv8 的设计目标是快速、准确,重点是同时检测和分类。 它能够检测图像或视频中的多个对象并对它们进行实时分类,使其对于许多计算机视觉任务非常有效。
Nano 模型是标准模型的更小、更快的版本。 它专为提高效率而设计,可以用更少的计算资源以更高的速度运行,非常适合部署在计算能力有限的设备上,例如移动设备和嵌入式系统。
要在项目中使用这些模型,您可以使用以下命令在 Python>=3.8 环境中使用 PyTorch>=1.7 安装 Ultralytics 包:
pip install ultralytics
数据集: Roboflow Project
运行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 应用程序。
GitHub - wiznetmaker/W5100S-EVB-PICO-WORKINGASSISTANT
Upscaling image with AI using W5100S-EVB-Pico and Arducam.