如何将带有matlab注释文件的数据集转换为适用于YOLO的图像检测模型?
我正在尝试创建一个停车辅助程序,这个程序会利用机器视觉来找出停车场中哪些停车位是空的。为此,我使用了YOLOv8这个默认的图像检测模型,它的功能很强大,不仅能识别汽车,还能识别很多其他东西。为了优化这个过程,我一直在寻找与YOLO兼容的其他预训练模型,但除了被指引到斯坦福汽车数据集,我没有找到太多有用的信息。我的问题在于如何将超过16,000张图片转换成可以放入这个模型的有用文件。这个数据集还包含了一些注释数据,格式是matlab文件,但我不知道从这里开始怎么才能得到一个完整的模型。有没有什么资源可以帮助我简化这个过程?我现在使用的模型是一个.pt文件。我该如何从16,000张图片和一个.mat文件开始,最终得到这个模型呢?
这是我第一次尝试这样的项目,尤其是作为一个毕业设计项目。提前谢谢大家的帮助!
我尝试过使用ultralytics提供的默认模型,但它的功能太广泛,无法识别一些比较难的角度,比如从正上方看汽车。我在网上找过关于如何使用这个数据集的教程,但很多教程都只是简单提到Google Colab和Roboflow的使用,所以我对该怎么做完全没有头绪。
1 个回答
问题的一部分在于,你把演示和可用产品搞混了。当你说:
我正在使用YOLOv8的默认图像检测模型,它的功能很广泛,能够检测的不仅仅是汽车。
我猜你的意思是你下载了MSCOCO的预训练权重。使用MSCOCO数据集训练时,可以检测到80个类别。这个模型并不是最终产品,而是展示可以做什么的一个示范。如果你需要的内容正好在这个范围内,那当然很好。但你绝对不应该完全依赖MSCOCO数据集。
相反,使用所有YOLO框架时,你应该训练自己的网络。如果你的相机拍摄的图像与MSCOCO中包含的内容不同,这样做尤其有用。例如,如果你的停车区域使用的是鱼眼镜头,或者你的相机安装在高处,比如天花板、墙壁或柱子上,因为MSCOCO没有这些类型的图像。
如果我查看MSCOCO,在163957张图片中,当我筛选出汽车(索引#2)、摩托车(索引#3)和卡车(索引#7)时,最终得到了17385张图片。这些图片看起来是这样的:
如你所见,标记为“汽车”或“卡车”的图像,对于停车场或停车库的使用可能帮助不大。
训练自己的网络其实相对简单,能让你得到更好的结果。这里有一个示范视频,展示了如何在不到30分钟内标注一个多类别网络并进行训练:https://www.youtube.com/watch?v=ciEcM6kvr3w
从那里到Google Colab其实也很简单。Colab就是别人的电脑,恰好运行的是Linux系统。但构建和训练的步骤大致是一样的。Darknet/YOLO的Discord服务器上有一个频道,里面有几个笔记本,详细说明了如何在Colab上安装和使用Darknet框架来使用YOLO模型。你可以在这里访问Darknet/YOLO的Discord服务器:https://discord.gg/zSq8rtW
虽然我还没有制作关于如何在Colab上使用Darknet/YOLO的YouTube教程,但你给了我一个下一个视频的灵感。我会尽量今晚完成。请查看我在上面两段中链接的视频和频道。