我应该使用哪种类型的神经网络来检测图像中的流星?
数据挖掘
机器学习
神经网络
卷积神经网络
2021-10-09 02:20:31
4个回答
这不是 NN 解决方案,但您可以将参数调整为 opencv 的 HoughLine 吗?应该有一种方法可以找到直线。应该有一种方法可以调整被视为流星的最小线长度值。流星总是笔直的。那么只有当点具有相似的斜率并且彼此靠近时才保留结果?
看这个例子:
import cv2
import numpy as np
img = cv2.imread('dave.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for x1,y1,x2,y2 in lines[0]:
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)
cv2.imwrite('houghlines5.jpg',img)
卷积神经网络几乎肯定会很好地解决这个问题。AU Net 太过分了。如果您需要确定陨石在图像中的位置,您可以使用它。
只需确保通过旋转示例图像来扩充数据集。
由于您希望神经网络具有一定的旋转不变性,因此传统的卷积层是不够的。当然,您可以尝试查看仅使用传统 CNN 层需要多少数据。
我建议将RIFD-CNN视为一个起点(尽管最近“相当”被引用了很多次)。
要获得该位置,您可以在 NN 中回溯到池层以查看激活的部分。一旦你有被激活的部分,你就可以知道你的对象的位置。
"检测图片中是否包含流星,如果包含则尝试识别流星的位置。 "
这听起来像是一个经典的对象检测问题。
因此,您可以找到一些现有的对象检测模型,并在您自己的数据集上对其进行训练。
关于在数据集上训练现有对象检测模型的教程:https ://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html
另一个可以在自定义数据集上训练的对象检测模型:RetinaNet。
