【AIMB-2210研华AMD嵌入式主板】AI 视觉识别应用:物体识别
本帖最后由 eefocus_4062187 于 2025-9-25 14:47 编辑# 【AIMB-2210研华AMD嵌入式主板】AI 视觉识别应用:物体识别
本文介绍了 AIMB-2210 研华 AMD 嵌入式主板实现 AI 视觉识别类相关应用:物体识别,包括模型训练、板端推理、摄像头实时检测和推理识别等。
## 项目介绍
基于 YOLO 模型实现常见的80种物体识别,包括
- 物体识别的板端推理:包括流程图、代码、效果演示;
- 物体识别的动态显示:包括流程图、代码、效果演示;
## 板端推理
实现本地物体图片的识别和推理,并弹窗显示识别结果。
### 流程图
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214232t3ae9fspaploesss.jpg)
### 代码
新建 `objective_recognition.py` 并添加如下代码
```python
import cv2
from ultralytics import YOLO
import os
def detect_objects_in_image(image_path, model_path="model/yolov8n.pt"):
"""
对本地图片进行物体识别并显示结果
Args:
image_path (str): 图片文件路径
model_path (str): YOLO模型路径,默认为yolov8n.pt
"""
# 1. 检查图片文件是否存在
if not os.path.exists(image_path):
print(f"错误: 图片文件 '{image_path}' 不存在")
return
# 2. 加载模型(如果不存在则自动下载)
try:
model = YOLO(model_path)
except Exception as e:
print(f"加载模型时出错: {e}")
return
# 3. 读取图片
image = cv2.imread(image_path)
if image is None:
print(f"错误: 无法读取图片 '{image_path}'")
return
# 4. 推理
results = model(image)
# 5. 绘制检测结果
annotated_image = results.plot()# 绘制边界框和标签
# 6. 显示结果
window_name = f"YOLOv8 检测结果: {os.path.basename(image_path)}"
cv2.imshow(window_name, annotated_image)
# 调整窗口大小以适应屏幕(可选)
height, width = annotated_image.shape[:2]
max_height = 800# 最大窗口高度
if height > max_height:
scale = max_height / height
new_width = int(width * scale)
resized_image = cv2.resize(annotated_image, (new_width, max_height))
cv2.imshow(window_name, resized_image)
print("按任意键关闭窗口...")
cv2.waitKey(0)# 等待按键
cv2.destroyAllWindows()
if __name__ == "__main__":
# 设置图片路径(修改为您的图片路径)
image_path = "object_img/desktop.jpg"# 请替换为实际图片路径
# 执行物体识别
detect_objects_in_image(image_path)
```
- 右键该文件,选择使用 IDEL 编辑;
- 菜单栏选择 Run - Run Module 选项,运行程序;
> 或双击 `*.py` 文件运行。
### 效果
- 运行程序后弹出物体识别结果图片窗口;
- 标注物体识别选框、文字和置信度;
- 同时终端打印识别结果,包括物体类别、位置、置信度等信息;
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214317t5sqbc3gzg303s3e.jpg)
更多场景举例
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214329a5uctecbmccuthph.jpg)
马路
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214353rbnoe4obo4oowbo8.jpg)
室内
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214412ca0tjwccwazdcz0a.jpg)
水果
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214427c234269l9m36mza***)
## 动态检测
使用 USB 摄像头实现动态实时物体识别,并标注和打印识别结果。
### 流程图
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214452mn0tqqo0mqn0q0d0.jpg)
### 代码
新建 `objective_recognition_CamUSB.py` 并添加如下代码
```python
# cam_yolo.py
import cv2
from ultralytics import YOLO
# 1. 加载模型(6 MB,COCO 80 类)
model = YOLO("model/yolov8n.pt") # 不存在则自动下载
# 2. 打开摄像头
cap = cv2.VideoCapture(0)
if not cap.isOpened():
raise RuntimeError("打不开摄像头")
print("按 q 退出")
while True:
ret, frame = cap.read()
if not ret:
break
# 3. 推理
results = model(frame, stream=True)# 返回生成器,逐帧推理
# 4. 画框+置信度(Ultralytics 自带 API)
annotated = results.__next__().plot()# BGR 数组
# 5. 显示
cv2.imshow("YOLOv8 USB Camera", annotated)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
- 右键该文件,选择使用 IDEL 编辑;
- 菜单栏选择 Run - Run Module 选项,运行程序;
> 或双击 `*.py` 文件运行。
### 效果
运行程序后弹出摄像头实时采集画面,自动标注物体识别选框、文字和置信度
!(https://www.eefocus.com/forum/data/attachment/forum/202509/21/214523d9x899xrwr9kajwo.jpg)
## 总结
本文介绍了 AIMB-2210 研华 AMD 嵌入式主板实现 AI 视觉识别类相关应用:物体识别,包括模型训练、板端推理、摄像头实时检测和推理识别等,为该产品在 AI 视觉领域的快速开发和应用提供了参考。
<iframe src="//player.bilibili.com/player.html?isOutside=true&aid=115253820068935&bvid=BV16bJ1zfEqj&cid=32619760809&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
页:
[1]