我正在尝试建立CV模型以检测视频中的对象。我大约有6个视频,这些视频具有训练模型所需的内容。这些是我试图检测的东西,例如车道,其他车辆等。
我对训练模型所需的数据集格式感到好奇。我可以将每个视频的每一帧都转换成图像,并创建一个庞大的图像库以进行训练,也可以直接使用这些视频。您认为哪种方法更好?
很抱歉,这不是直接涉及编程的问题。我正在尝试整理数据,但我无法下定决心。
答案 0 :(得分:1)
Yolo版本3是一个很好的起点。经过训练的模型将具有一个.weight
文件和一个.cfg
文件,可用于从网络摄像头,计算机中的视频或在具有opencv的Android中检测视频中的对象。
在opencv python中,cv.dnn.readNetFromDarknet("yolov3_tiny.cfg", "CarDetector.weights")
可用于加载训练后的模型。
在android类似代码中,
String tinyYoloCfg = getPath("yolov3_tiny.cfg", this);
String tinyYoloWeights = getPath("CarDetector.weights", this);
Net tinyYolo = Dnn.readNetFromDarknet(tinyYoloCfg, tinyYoloWeights);
功能参考可以在这里找到, https://docs.opencv.org/4.2.0/d6/d0f/group__dnn.html
您的视频帧需要使用生成yolo格式的边界框的工具进行注释,并且有很多可用的工具。为了训练自定义模型,该存储库包含所有必要的信息, https://github.com/AlexeyAB/darknet