前言
《3D Bounding Box Estimation Using Deep Learning and Geometry》展示了如何从单一视图中恢复已知对象类别的3D边界框。通过使用新颖的MultiBin损失进行方向预测和有效地选择边界框尺寸作为回归参数,该方法能够在没有额外的3D形状模型或复杂预处理管道的情况下估计稳定且准确的3D边界框。提出了未来的研究方向,包括将立体视觉和视频序列信息整合到方法中。
环境配置
环境配置同YOLO系列的安装方式一致,这里不做介绍。

代码测试
模型下载
python weights/get_weights.py

推理
python inference.py
参数
parser = argparse.ArgumentParser()
parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'weights/yolov5s.pt', help='model path(s)')
parser.add_argument('--source', type=str, default=ROOT / 'eval/image_2', help='file/dir/URL/glob, 0 for webcam')
parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='(optional) dataset.yaml path')
parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640], help='inference size h,w')
parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
parser.add_argument('--classes', default=[0, 2, 3, 5], nargs='+', type=int,
help='filter by class: --classes 0, or --classes 0 2 3')
parser.add_argument('--reg_weights', type=str, default='weights/vgg11.pkl', help='Regressor model weights')
parser.add_argument('--model_select', type=str, default='vgg11', help='Regressor model list: resnet, vgg, eff')
parser.add_argument('--calib_file', type=str, default=ROOT / 'eval/camera_cal/calib_cam_to_cam.txt',
help='Calibration file or path')
parser.add_argument('--show_result', action='store_true', help='Show Results with imshow')
parser.add_argument('--save_result', action='store_true', default=True, help='Save result')
parser.add_argument('--output_path', type=str, default=ROOT / 'output', help='Save output pat')
结果

可视化界面
python main.py

训练
下载数据集
The KITTI Vision Benchmark Suite

训练
python train.py
参数
parser = argparse.ArgumentParser(description='Regressor Model Training')
parser.add_argument('--epochs', type=int, default=20, help='Number of epochs')
parser.add_argument('--batch_size', type=int, default=32, help='Number of batch size')
parser.add_argument('--alpha', type=float, default=0.6, help='Aplha default=0.6 DONT CHANGE')
parser.add_argument('--w', type=float, default=0.4, help='w DONT CHANGE')
parser.add_argument('--num_workers', type=int, default=2, help='Total # workers, for colab & kaggle use 2')
parser.add_argument('--lr', type=float, default=0.0001, help='Learning rate')
parser.add_argument('--save_epoch', type=int, default=10, help='Save model every # epochs')
parser.add_argument('--train_path', type=str, default=ROOT / 'dataset/KITTI/training', help='Training path KITTI')
parser.add_argument('--model_path', type=str, default=ROOT / 'weights',
help='Weights path, for load and save model')
parser.add_argument('--select_model', type=str, default='resnet18',
help='Model selection: {resnet, resnet18, vgg11}')
总结
YOLOV5版本:https://github.com/mzc421/YOLOV5-3D
YOLOV8/10/11版本:https://github.com/mzc421/YOLO3D
关于YOLO3D模型的相关代码、论文PDF、预训练模型、使用方法等,我都已打包好,供需要的小伙伴交流研究,获取方式如下:
关注公众号,回复:论文源码,即可获取相关代码、论文、预训练模型、使用方法示例等


3993

被折叠的 条评论
为什么被折叠?



