- 收藏
- 点赞
- 分享
- 举报
光流算法的讨论
[i=s] 本帖最后由 9crk 于 2019-2-27 15:19 编辑 [/i]
无人机悬停定点,需要光流算法,但是普通的光流算法比较耗性能。
事实上,光流算法是一种精确度比较高的算法,用来做无人机定点悬停,是大材小用了。
对于无人机的定点悬停,在运算速度上可以做一些改进:
我们知道,悬停是基于摄像头能辨别图像的纹理的情况,如果让摄像头面对一张白纸,则任何方向的运动都无法跟踪。
因此,首先应该提取纹理,进行自适应二值化。
自适应阈值T: 如果二值化后的图像,如果其方差比较小,则需要进行调整,直到方差比较大(表示已经让图像尽量地黑白交错),说明纹理是最好的。
为了抵抗噪声,需要把T设定一个斯密特门限,比如T1 = 100, T2=105,允许图像小范围内的噪声。
一旦锁定了,最终得到的结果就是两个数组,x,y方向上的二值化数值的统计。
此时,如果无人机进行x,y轴方向的移动,则通过一纬数组运算,可迅速输出需要在x,y轴方向的矫正量。(可采用欧式距离计算)
这样,整个跟踪只需要一个二值化,二值化求和,和匹配两个数组的运算,利用海思的IVS加速,会基本不消耗CPU。
更多:对于一些要求比较高的应用,T可以是一个矩阵,因为单一的阈值不能适应整个画面的亮度。
如下试验了一个未使用斯密特门限,且未使用门限矩阵的粗糙算法: (论坛无法发动图,请看视频) https://www.youtube.com/watch?v=Qhy5luJhAeg
试验代码如下: [code]import cv2 import numpy as np from matplotlib import pyplot as plt
cap = cv2.VideoCapture(0)
t = 127 bFirst = True while True: ret,frame = cap.read() height,width = frame.shape[:2] frame2 = cv2.resize(frame,(width/4,height/4)) gray = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY) cv2.threshold(gray, t, 255, cv2.THRESH_BINARY, gray)
xArray = np.sum(gray,axis=1)
yArray = np.sum(gray,axis=0)
plt.subplot(2,1,1)
plt.plot(xArray)
plt.subplot(2,1,2)
plt.plot(yArray)
plt.pause(0.01)
plt.clf()
cv2.imshow('frame',gray)
if cv2.waitKey(1) &0xFF == ord('q'):
break
cap.release() cv2.destroyAllWindows()[/code]
欢迎讨论。
暂无数据Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
-
52013-12-08 12:14:12
-
2018-07-12 14:19:30
-
2014-01-20 16:22:38
-
2022-10-14 14:57:21
-
2015-01-15 10:11:34
-
12022-02-11 16:51:36
-
2016-10-20 09:14:51
-
142016-11-02 14:39:34
-
2019-04-11 15:13:48
-
2019-01-31 09:59:18
-
2016-11-17 20:17:41
-
2014-12-11 12:01:01
-
2015-02-02 15:52:24
-
112016-03-21 18:49:07
-
2018-11-05 15:42:53
-
02016-03-25 02:25:08
-
2018-03-20 15:05:58
-
2022-05-20 11:29:15
-
112024-01-02 17:37:35
-
5hisi3516cv610 + gc4336p 夜晚很模糊
-
5AIISP(功能演示,SC4336P为BGGR,强制转RGGB,会导致颜色异常)
-
5rv1106使用luckfox的SDK,设备树和驱动都写好了,结果设备文件没有生成
-
5海思3516cv610中如何进行SD卡升级,根据官方文档操作,烧录进板子时,走的默认uboot,没有执行uboot升级。
-
5G610Q-IPC-38E 夜晚很暗 有什么办法解决吗 已经补光了
-
10转换模型时,SoC版本里没显示hi3516cv610芯片
-
5hisi3516cv610 使用 yolov8n 模型训练 要如何提高 这里识别的是人
-
10有人在海思平台接过SC035HGS吗
-
5关于hi3519dv500,以SD卡虚拟 U 盘操作
-
5ss928 sample_venc代码移植到openEuler24.03上执行报错 [sample_comm_vi_start_dev]-1068: vi set dev attr failed wi
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明

微信扫码分享
QQ好友