Skip to content

Commit cdb5077

Browse files
committed
add 2025 diansai E
1 parent 1093bde commit cdb5077

File tree

2 files changed

+463
-0
lines changed

2 files changed

+463
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2025 电赛 E 题 MaixPy 实现
2+
======
3+
4+
## 效果
5+
6+
* 使用了 AI 模型,可以避免很多干扰识别到矩形框。
7+
* 使用MaixCAM 默认 GC4653 摄像头,最远距离可 4 米还能识别到。
8+
* 多种算法选择。
9+
* 帧率 > 25fps,根据你配置的分辨率和算法决定,里面有各种选择配置,而且还有优化空间。
10+
11+
12+
## 硬件
13+
14+
[MaixCAM/MaixCAM-Pro](https://wiki.sipeed.com/maixcam-pro)
15+
16+
## 软件
17+
18+
基于 [MaixPy](https://github.com/sipeed/maixpy),以及用到了一点点 OpenCV。
19+
20+
21+
## 使用
22+
23+
* 先下载 [检测轮廓模型](https://maixhub.com/model/zoo/1159)
24+
* 传送到开发板,解压后在有`mud`文件的目录路径下,终端用`scp ./* root@板子ip:~/models` 发送到开发板。
25+
* 用 MaixVision 打开本目录(工程),点击运行工程即可。
26+
* 代码开头有很多配置项,可以根据你的情况修改配置。
27+
* 输出有一个误差值,就是圆心相对于屏幕中心的误差像素,用这个值,最简单的方法就是将摄像头和激光笔固定到一个点,就不用识别激光笔了,
28+
直接用这个误差值PID控制云台,让云台始终指向中心(也就等同激光指向了圆心)即可。
29+
30+
## 注意
31+
32+
* 代码和文档可能会持续更新,还是在这里看。
33+
* 代码只是一个参考,不代表是最好效果,多思考,也许你有更好的改进(欢迎 [Issues](https://github.com/sipeed/maixpy/issues) 提出来)。
34+
35+
## 思路
36+
37+
有几种方法:
38+
* 方法一:
39+
* 用模型检测到黑框,可以排除很多干扰。
40+
* 用传统算法找到内框四角坐标。
41+
* 仿射变换成标准A4纸的比例(代码中的标准图)。
42+
* 根据四个角点直接算出中心点和圆圈间的距离。前题是你的A4卡纸必须画得标准,中心点在4个角交叉中心!!!
43+
* 然后再将坐标变换回原始图像坐标即可。
44+
* 方法二:
45+
* 前面步骤相同。
46+
* 得到标准图后不直接从角算出,而是从标准图再找圆圈和中心,再识别一次。
47+
好处就是圆心歪了也能识别,但是问题就是分辨率太低和太远或者灯光不好时可能看不清,代码中可以打开这个选项,注意调节分辨率。
48+
* 然后再将坐标变换回原始图像坐标即可。
49+
50+
51+
52+
53+
54+

0 commit comments

Comments
 (0)