如何基于cnn检测物体并绘制边界框

Posted

技术标签:

【中文标题】如何基于cnn检测物体并绘制边界框【英文标题】:How to detect an object and draw a bounding box based on cnn 【发布时间】:2022-01-05 22:01:20 【问题描述】:

这是我在 python 中的 cnn 代码:

x_train, x_valid, y_train, y_valid = train_test_split(X, Y, test_size=0.3, shuffle=True)

x_train=x_train/255. #Normalize the dataset
x_valid=x_valid/255.

model = tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape = [width, height, 3]),
tf.keras.layers.Dense(30, activation = 'relu' ),
tf.keras.layers.Dense(10, activation = 'relu' ),
tf.keras.layers.Dense(10, activation = 'relu'),
tf.keras.layers.Dense(10, activation = 'relu'),
tf.keras.layers.Dense(10, activation = 'softmax' )])

y_train=to_categorical(y_train, 10)
y_valid=to_categorical(y_valid, 10)
print(model.summary())
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, verbose=1, validation_data = (x_valid, y_valid))

这是获取视频的代码:

cap = cv2.VideoCapture('cars.mp4')

如何绘制边界框?我已经从一些图像中训练了一个神经网络。现在,使用一个视频,我想检测一个基于训练好的神经网络的类,我如何检测并找到边界框坐标?

【问题讨论】:

你不能用那个模型来做。没你想的那么容易,你需要搜索一下物体检测。 【参考方案1】:

为什么不应该使用 Yolo 和 tensorflow object detection 这样的预训练模型?

这个博客会帮助你。试试这个

YOLO object detection with OpenCV

【讨论】:

以上是关于如何基于cnn检测物体并绘制边界框的主要内容,如果未能解决你的问题,请参考以下文章

转-------基于R-CNN的物体检测

深度学习(十八)基于R-CNN的物体检测

基于区域的目标检测

Stereo R-CNN 解读基于立体R-CNN的自动驾驶三维目标检测

Stereo R-CNN 解读基于立体R-CNN的自动驾驶三维目标检测

目标检测梳理:基于深度学习的目标检测技术演进:R-CNNFast R-CNNFaster R-CNN