物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果


让树莓派可以识别身边的一些物品,比如电脑,鼠标,键盘,杯子,行李箱,双肩包,床,椅子等


请添加图片描述

请添加图片描述


1. 硬件设备

  • 树莓派 5 raspberrypi.com/products/raspberry-pi-5/
  • 树莓派官方摄像头 v3 raspberrypi.com/products/camera-module-3/
  • 自己的电脑,windows 或者 mac

请添加图片描述


2. 前置条件

  1. 给树莓派烧录好操作系统,下面我们会用现在最新的(2024年12月) bookworm
  2. VNC 连接或者用一根 HDMI 或者用官方的 raspberrypi connect

我写过一篇关于给树莓派烧录操作系统的 blog blog.csdn.net/u013633921/article/details/121433186

也有一篇 VNC 的 blog blog.csdn.net/u013633921/article/details/129677105


3. 开始!


更新一下,下面 4 个截图都好理解,不懂问问 AI

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


下面这条命令将安装 OpenCV 以及运行 YOLO 所需的基础设施

pip install ultralytics[export]

还会安装大量其他软件包,容易失败
如果安装失败(会显示一大片红色)
只需重新执行,已经安装过的不会再安装
我是一次过的,哈哈哈哈哈哈~(过程大概有 2 个小时 🤔)

安装后,重启树莓派
Pi 5 有物理按键,连续按两次会关机。等等再按一次,就会启动。


4. Thonny

切换到常规模式。
在这里插入图片描述
关闭 Thonny 再打开 Thonny。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

用 Thonny 创建个文件 yolo.py

import cv2
from picamera2 import Picamera2
from ultralytics import YOLO# Set up the camera with Picam
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 1280)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()# Load YOLOv8
model = YOLO("yolov8n.pt")while True:# Capture a frame from the cameraframe = picam2.capture_array()# Run YOLO model on the captured frame and store the resultsresults = model(frame)# Output the visual detection data, we will draw this on our camera preview windowannotated_frame = results[0].plot()# Get inference timeinference_time = results[0].speed['inference']fps = 1000 / inference_time  # Convert to millisecondstext = f'FPS: {fps:.1f}'# Define font and positionfont = cv2.FONT_HERSHEY_SIMPLEXtext_size = cv2.getTextSize(text, font, 1, 2)[0]text_x = annotated_frame.shape[1] - text_size[0] - 10  # 10 pixels from the righttext_y = text_size[1] + 10  # 10 pixels from the top# Draw the text on the annotated framecv2.putText(annotated_frame, text, (text_x, text_y), font, 1, (255, 255, 255), 2, cv2.LINE_AA)# Display the resulting framecv2.imshow("Camera", annotated_frame)# Exit the program if q is pressedif cv2.waitKey(1) == ord("q"):break# Close all windows
cv2.destroyAllWindows()

点一下绿色 Run 按钮(三角),等一小会,

在这里插入图片描述
然后你就能看到这样的运行效果了。按 q 可以关闭。

请添加图片描述

可以改改第 7 行,第 14 行,再运行看看

在这里插入图片描述


喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。
有错误或者疑问还请评论指出。
我的个人网站 点击访问 hongweizhu.com。

END

推荐一下我写的的 App 熊猫小账本

熊猫小账本 一个简洁的记账 App,用于记录日常消费开支收入,使用 iCloud 保存同步数据。

  • 支持备注,自定义时间偶尔忘记记账也没关系。
  • 搜索历史记账,支持分类、金额、备注。
  • 启动时需要面容/指纹验证,保护个人隐私。
  • 支持自定义分类功能,自由添加修改分类。
  • 统计图表,支出收入一目了然。
  • 每天提醒记账,不会有其他推送。
  • 桌面锁屏小组件等。

点击了解更多详情 👀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/33611.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

18 - Java 线程

简介 进程(process) 对一个程序的运行状态, 以及在运行中所占用的资源(内存, CPU)的描述; 一个进程可以理解为一个程序; 但是反之, 一个程序就是一个进程, 这句话是错的。 进程的特点: 独立性: 不同的进程之间是相互独立的, 相互之间资源…

芯科科技突破性超低功耗Wi-Fi 6和低功耗蓝牙5.4模块加速设备部署

致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,今日宣布推出SiWx917Y超低功耗Wi-Fi 6和低功耗蓝牙(Bluetooth LE)5.4模块。 作为成功的第二代无线开发平台的新产品&…

视频码率到底是什么?详细说明

视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…

MongoDB分片集群架构实战

分片集群架构 分片简介 分片(shard)是指在将数据进行水平切分之后,将其存储到多个不同的服务器节点上的一种扩展方式。分片在概念上非常类似于应用开发中的“水平分表”。不同的点在于,MongoDB本身就自带了分片管理的能力&#…

基于SpringBoot+Vue的宠物咖啡馆系统-无偿分享 (附源码+LW+调试)

目录 1. 项目技术 2. 功能菜单 3. 部分功能截图 4. 研究背景 5. 研究目的 6. 可行性分析 6.1 技术可行性 6.2 经济可行性 6.3 操作可行性 7. 系统设计 7.1 概述 7.2 系统流程和逻辑 7.3 系统结构 8. 数据库设计 8.1 数据库ER图 (1)宠物订…

请求响应:常见参数接收及封装(Json参数及路径参数)

Json参数 Json格式的数据具有轻量级、易于阅读和编写、易于解析等诸多优点。在前后端交互时,大部分情况下请求体中的数据会以JSON格式进行传递。前端的请求在请求体中携带了Json格式数据,后端程序需要对其进行解析并封装使用,而接收Json参数…

TDengine 新功能 Count 计数窗口

TDengine v3.3.0.0 版本是一个新增了大量新功能的大版本,从体系结构变化及新增功能的规模仅次于从 2.6 版本升级至 3.0 的变动。从今天开始我逐渐向大家介绍这个版本的新功能, 今天先从一个简单的 Count 计算窗口开始。 Count 窗口可以使用在按固定数量进…

华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数

华为交换机WEB操作 使用的是真机S5735,目前主流的版本都适用(V1R5~V2R1的就不在列了,版本太老了,界面完全不一样,这里调试线接的console口,电脑的网络接在ETH口) 「模拟器、工具合集」复制整段内…

如何将 Docker 镜像打包为 ZIP 文件便于分享和转发

在开发和部署中,我们常常需要将 Docker 镜像转发给其他团队成员或部署到不同的环境。如果无法直接访问镜像仓库(如 Docker Hub 或私有镜像仓库),可以选择将镜像保存为文件,并通过 ZIP 格式打包后进行分享。 本文将介绍…

【从零开始的LeetCode-算法】11. 盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例…

cuda12.1版本的pytorch环境安装记录,并添加到jupyter和pycharm中

文章目录 前置准备使用anaconda prompt创建虚拟环境创建虚拟环境激活pytorch虚拟环境把pytorch下载到本地使用pip把安装包安装到pytorch环境中进入python环境检验是否安装成功将环境添加到jupyter在pycharm中使用该环境: 前置准备 安装anaconda,我的版本…

Alogrithm:费式数列

1. 说明 Fibonacci 为1200年代的欧洲数学家,在他的著作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五…

Docker Compose 和 Kubernetes 之间的区别?

一、简介🎀 1.1 Docker Compose Docker Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,可以管理多个 Docker 容器组成一个应用。你只需定义一个 YAML 格式的配置文件 docker-compose.yml ,即可创建并…

如何利用python爬虫获取淘宝评论item_review接口

根据搜索结果,以下是利用Python爬虫获取淘宝评论item_review接口的方法: 创建应用并获取API密钥: 在淘宝开放平台创建一个新的应用,并选择合适的API权限。创建完成后,你将获得一个App Key和App Secret,用于…

Istio sidecar 和 ambient 模式的网络成本对比

深入对比 Istio sidecar 和 ambient 模式的网络成本与性能,分析其本地性感知及排查方法。 阅读原文请转到:https://jimmysong.io/blog/istio-sidecar-vs-ambient-network-cost-performance/ 在服务网格架构不断演进的过程中,了解不同部署模式…

管理表(四)

创建表空间 CREATE TABLESPACE assm DATAFILE /u01/oradata/denver/assm_1.dbf SIZE 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K SEGMENT SPACE MANAGEMENT AUTO;size 100M:设定了这个数据文件的初始大小为100兆字节(MB)。exterl mana…

《无畏契约》运行时提示“d3dcompiler_43.dll丢失”是什么原因?“找不到d3dcompiler_43.dll文件”如何解决?

《无畏契约》运行时提示“d3dcompiler_43.dll丢失”是什么原因?“找不到d3dcompiler_43.dll文件”如何解决? 作为一位软件开发从业者,我深知在游戏运行过程中,遇到各种文件丢失、文件损坏和系统报错等问题是多么令人头疼。今天&a…

5.12【机器学习】卷积模型搭建

softmax输出时不可能为所有模型提供精确且数值稳定的损失计算 model tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape(28, 28)),tf.keras.layers.Dense(128, activationrelu),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10) ]) mnist tf.keras…

【H2O2|全栈】Node.js与MySQL连接

目录 前言 开篇语 准备工作 初始配置 创建连接池 操作数据库 封装方法 结束语 前言 开篇语 本节讲解如何使用Node.js实现与MySQL数据库的连接,并将该过程进行函数封装。 与基础部分的语法相比,ES6的语法进行了一些更加严谨的约束和优化&#…

Stable Diffusion Controlnet常用控制类型解析与实战课程 2

本节内容,给大家带来的是stable diffusion Controlnet常用控制类型解析与实战的第二节课程。在上期课程中,我们已经了解了关于线稿类控制类型的特征和用法,本节课程,我们将继续讲解一些常用的控制类型。 一:OpenPose …