好吧,在找到正确的位置之前,我在主堆栈中发布了相同的问题,抱歉。
我的一个朋友正在使用 100 多个视频作为他的神经网络的样本。每个视频持续超过几分钟,每秒大约 24 帧。使用深度学习的目标是检测所有样本的运动。
对他来说,问题在于他正在处理的数据量。培训部分需要/消耗太多时间。我不是数据准备方面的专家,但我想也许他可以将所有帧变成数据帧,从单色图像(全黑/白)中清除它们,将它们变成灰色而不是全rgb并压缩它们,但是,我不确定是否足够。
你有没有更好的方法来减少训练样本?
好吧,在找到正确的位置之前,我在主堆栈中发布了相同的问题,抱歉。
我的一个朋友正在使用 100 多个视频作为他的神经网络的样本。每个视频持续超过几分钟,每秒大约 24 帧。使用深度学习的目标是检测所有样本的运动。
对他来说,问题在于他正在处理的数据量。培训部分需要/消耗太多时间。我不是数据准备方面的专家,但我想也许他可以将所有帧变成数据帧,从单色图像(全黑/白)中清除它们,将它们变成灰色而不是全rgb并压缩它们,但是,我不确定是否足够。
你有没有更好的方法来减少训练样本?
cv2.resize()cv2.imencode()uint8时,但float32默认使用深度学习框架。您可以尝试float16或混合精度。使用 JPEG 压缩在内存减少和性能损失最小方面已被证明是相当好的。看看这个研究。
您也可以降低帧速率,例如 10 FPS。实际值可以根据移动物体的预期速度来计算 -> 你真的需要24 FPS 来完成任务吗?
否则,您使用的硬件将决定之后要采取的步骤。内存、操作次数、推理速度等将改变您优化过程的方式。
你提到了“数据框”,所以我只想指出,使用 Pandas Dataframes 来保存原始图像数据,虽然看起来很容易,但由于涉及的数据点(像素)的数量,以及 Pandas DataFrames 的事实,它通常非常低效本质上是带注释的 NumPy 数组 - 注释占用了大量空间。最好加载到纯 numpy 数组中,并将 OpenCV 用于诸如从 RGB 制作灰度(黑白)图像、调整它们的大小、标准化像素值等。