这是用户在 2024-3-22 10:29 为 https://github.com/ybkscht/EfficientPose 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
Skip to content
You have no unread notifications
ybkscht  /   EfficientPose  /  
Owner avatar EfficientPose Public
  • Watch 4

    Notifications

  • Lists

    Lists

Notifications

Notification settings

License

Open in github.dev Open in a new github.dev tab Open in codespace

ybkscht/EfficientPose

t

Add file

Add file

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

 高效姿势


这是EfficientPose的官方实现。我们的工作基于Keras EfficientDet实现xuannianz/EfficientDet,后者又基于Keras RetinaNet实现fizyr/keras-retinanet、官方EfficientDet实现google/automl和qubvel/efficientnet。

image1

 安装

  1.  克隆该存储库

  2. 创建一个带有 conda create -n EfficientPose python==3.7 的新环境

  3. 激活该环境: conda activate EfficientPose

  4. 安装Tensorflow 1.15.0与 conda install tensorflow-gpu==1.15.0

  5. 前往存储库目录并使用 pip install -r requirements.txt 安装其他依赖项

  6. 使用Cython编译模块 python setup.py build_ext --inplace


数据集和预训练权重


您可以从这里下载Linemod和Occlusion数据集以及预训练权重。只需解压缩Linemod_and_Occlusion.zip文件,然后按照以下说明使用这些数据集进行训练或评估。


该数据集最初是从j96w/DenseFusion和chensong1995/HybridPose下载的,并使用 generate_masks.py 脚本进行了预处理。EfficientDet COCO预训练权重来自xuannianz/EfficientDet。

 训练

Linemod


使用COCO预训练权重在Linemod的对象8(钻头)上训练phi = 0 EfficientPose模型:

python train.py --phi 0 --weights /path_to_weights/file.h5 linemod /path_to_dataset/Linemod_preprocessed/ --object-id 8

 遮挡


使用COCO预训练权重在遮挡上训练 phi = 0 的 EfficientPose 模型:

python train.py --phi 0 --weights /path_to_weights/file.h5 occlusion /path_to_dataset/Linemod_preprocessed/


请查看train.py以获取更多参数。

 评估

Linemod


评估在Linemod的物体8(钻头)上训练的phi = 0 EfficientPose模型,并(可选)保存预测的图像:

python evaluate.py --phi 0 --weights /path_to_weights/file.h5 --validation-image-save-path /where_to_save_predicted_images/ linemod /path_to_dataset/Linemod_preprocessed/ --object-id 8

 遮挡


评估经过训练的 phi = 0 EfficientPose 模型在遮挡情况下的表现,并(可选)保存预测的图像:

python evaluate.py --phi 0 --weights /path_to_weights/file.h5 --validation-image-save-path /where_to_save_predicted_images/ occlusion /path_to_dataset/Linemod_preprocessed/


如果你不想保存预测图像,只需跳过--validation-image-save-path参数。

 推理


我们还提供了两个基本脚本,演示了训练好的EfficientPose模型的示例用法。使用 python inference.py ,您可以在目录中的所有图像上运行EfficientPose。所需的参数,例如图像路径和模型,可以在 inference.py 脚本中进行修改。


使用 python inference_webcam.py ,您可以通过网络摄像头实时运行EfficientPose。请注意,您必须使用此脚本(Linemod)中使用的内在摄像头参数替换您的摄像头参数。由于Linemod和遮挡数据集太小,无法期望在现实世界中获得合理的6D姿态估计性能,而且很多人可能没有与Linemod中使用的完全相同的物体(就像我一样),您可以尝试在屏幕上显示Linemod图像,并用网络摄像头拍摄它。


要在您的计算机上测量EfficientPose的运行时间,您可以使用 python benchmark_runtime.py 。所需的参数,例如模型路径,可以在 benchmark_runtime.py 脚本中修改。同样,您也可以使用 benchmark_runtime_vanilla_effdet.py 脚本在您的计算机上测量vanilla EfficientDet的运行时间。
重试    错误原因


调试数据集和生成器
重试    错误原因


如果您想修改生成器或构建新的自定义数据集,显示从生成器加载的数据集注释可能非常有帮助,以确保一切按预期工作。
重试    错误原因

python debug.py --phi 0 --annotations linemod /path_to_dataset/Linemod_preprocessed/ --object-id 8


您可以显示加载和增强的图像,以及为Linemod数据集的对象8准备的phi = 0模型的注释。请参阅debug.py以获取更多参数。
重试    错误原因


如果您在研究中使用了EfficientPose,请引用它
重试    错误原因

@misc{bukschat2020efficientpose,
      title={EfficientPose: An efficient, accurate and scalable end-to-end 6D multi object pose estimation approach}, 
      author={Yannick Bukschat and Marcus Vetter},
      year={2020},
      eprint={2011.04307},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}


EfficientPose在知识共享署名-非商业性使用4.0国际许可证下授权,并可供非商业用途免费使用。有关详细信息,请参阅许可证。如果您有商业用途的兴趣,请通过yannick.bukschat@stw.de或marcus.vetter@stw.de与我们联系。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Showing results