10 Images

10 Images

OpenEmbedded 构建系统提供了几个示例图像来满足不同的需求。当您发出bitbake命令时,您提供了一个“顶级”配方,它基本上开始了您想要的图像类型的构建。

注意

在没有 GNU 通用公共许可证版本 3 (GPLv3)、GNU 宽松通用公共许可证版本 3 (LGPLv3) 和 GNU Affero 通用公共许可证版本 3 (AGPL-3.0) 组件的情况下构建映像仅支持最小映像和基本映像。此外,如果您要使用非 GPLv3 和类似许可的组件构建映像,则必须local.conf 在使用 BitBake 命令构建最小或基本映像之前在文件中进行以下更改:

1. Comment out the EXTRA_IMAGE_FEATURES line
2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"

pokyGit 存储库中,您可以使用以下命令显示源目录 中包含图像配方文件的目录列表:

$ ls meta*/recipes*/images/*.bb

以下是支持的配方列表:

  • build-appliance-image:一个示例虚拟机,其中包含使用构建系统以及构建系统本身运行构建所需的所有部分。您可以使用VMware Player或 VMware Workstation引导和运行映像。有关此图像的更多信息,请参阅Yocto 项目网站上的构建设备页面。

  • core-image-base:完全支持目标设备硬件的仅限控制台的映像。

  • core-image-full-cmdline:安装了更多全功能 Linux 系统功能的仅限控制台的映像。

  • core-image-lsb:符合 Linux Standard Base (LSB) 规范的映像。此映像需要启用 LSB 合规性的分发配置(例如poky-lsb)。如果您在core-image-lsb没有该配置的情况下构建 ,则映像将不符合 LSB。

  • core-image-lsb-devcore-image-lsb适合使用主机进行开发工作的图像。该映像包括您可以在主机开发环境中使用的头文件和库。此映像需要启用 LSB 合规性的分发配置(例如poky-lsb)。如果您在core-image-lsb-dev没有该配置的情况下构建,则映像将不符合 LSB。

  • core-image-lsb-sdk:core-image-lsb包含跨工具链中的所有内容,但也包含开发头文件和库以形成完整的独立 SDK。此映像需要启用 LSB 合规性的分发配置(例如 poky-lsb)。如果您在core-image-lsb-sdk没有该配置的情况下构建,则映像将不符合 LSB。此图像适合使用目标进行开发。

  • core-image-minimal:一个只能允许设备启动的小图像。

  • core-image-minimal-devcore-image-minimal适合使用主机进行开发工作的图像。该映像包括您可以在主机开发环境中使用的头文件和库。

  • core-image-minimal-initramfs: 将core-image-minimal基于最小 RAM 的初始根文件系统 (initramfs) 作为内核的一部分的映像,它允许系统更有效地找到第一个“init”程序。有关使用 initramfs 图像时有用的其他信息,请参阅 PACKAGE_INSTALL变量。

  • core-image-minimal-mtdutilscore-image-minimal支持 Minimal MTD Utilities的映像,它让用户与内核中的 MTD 子系统交互以在闪存设备上执行操作。

  • core-image-rtcore-image-minimal图像加上适合实时使用的实时测试套件和工具。

  • core-image-rt-sdkcore-image-rt包含交叉工具链中所有内容的图像。该镜像还包括开发头文件和库,以形成一个完整的独立 SDK,适合使用目标进行开发。

  • core-image-sato:支持 Sato 的图像、移动环境和视觉风格,适用于移动设备。该图像支持带有 Sato 主题的 X11 和应用程序,例如终端、编辑器、文件管理器、媒体播放器等。

  • core-image-sato-dev:core-image-sato适合使用主机开发的镜像。该映像包括在设备本身上构建应用程序所需的库、测试和分析工具以及调试符号。该图像以前是core-image-sdk.

  • core-image-sato-sdkcore-image-sato包含交叉工具链中所有内容的图像。该映像还包括开发头文件和库,以形成一个完整的独立 SDK,适合使用目标进行开发。

  • core-image-testmaster:设计用于自动化运行时测试的“主”映像。提供部署到单独分区的“已知良好”映像,以便您可以引导到该分区并使用它来部署要测试的第二个映像。您可以在 Yocto 项目开发任务手册的“执行自动化运行时测试”部分中找到有关运行时测试的更多信息。

  • core-image-testmaster-initramfs:一个基于 RAM 的初始根文件系统 (initramfs) 映像,专门用于该 core-image-testmaster映像。

  • core-image-weston:带有终端的非常基本的 Wayland 图像。此图像提供了 Wayland 协议库和参考 Weston 合成器。有关更多信息,请参阅Yocto 项目开发任务手册中的“使用 Wayland 和 Weston ”部分。

  • core-image-x11:带有终端的非常基本的 X11 图像。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码主要是进行图像重建的过程,下面是每一句话的注释: - t=time():记录当前时间,用于计算重建时间。 - By default colmap does not generate a reconstruction if less than 10 images are registered. Lower it to 3.:默认情况下,如果注册的图像少于10张,则colmap不会生成重建。将其降低到3。 - mapper_options = pycolmap.IncrementalMapperOptions():创建 pycolmap.IncrementalMapperOptions() 类的对象 mapper_options。 - mapper_options.min_model_size = 3:设置 mapper_options 的最小模型尺寸为 3。 - os.makedirs(output_path, exist_ok=True):使用 makedirs() 函数在指定路径 output_path 创建文件夹,如果文件夹已经存在则不会报错。 - maps = pycolmap.incremental_mapping(database_path=database_path, image_path=img_dir, output_path=output_path, options=mapper_options):使用 pycolmap.incremental_mapping() 函数进行增量式的图像重建,返回重建结果 maps。 - print(maps):打印 maps,用于调试和查看重建结果。 - #clear_output(wait=False):注释掉的语句,可能是用于清除输出缓存的,但是被注释掉了。 - t=time() - t:计算重建时间。 - timings['Reconstruction'].append(t):将重建时间 t 添加到 timings 字典中的 Reconstruction 键对应的列表中。 - print(f'Reconstruction done in {t:.4f} sec'):输出重建时间,保留小数点后四位。 - imgs_registered = 0:记录已经注册的图像数量。 - best_idx = None:初始化最佳重建的索引为 None。 - print ("Looking for the best reconstruction"):打印提示信息,表示正在寻找最佳重建。 - if isinstance(maps, dict)::如果 maps 是字典类型。 - for idx1, rec in maps.items()::遍历 maps 字典中的每一项,其中 idx1 是键,rec 是值。 - print (idx1, rec.summary()):打印 idx1 和 rec 的摘要信息。 - if len(rec.images) > imgs_registered::如果 rec 中注册的图像数量大于已经注册的图像数量。 - imgs_registered = len(rec.images):将注册的图像数量更新为 rec 中注册的图像数量。 - best_idx = idx1:更新最佳重建的索引为当前的 idx1。 - if best_idx is not None::如果存在最佳重建的索引。 - print (maps[best_idx].summary()):打印最佳重建的摘要信息。 - for k, im in maps[best_idx].images.items()::遍历最佳重建中的每一个图像。 - key1 = f'{dataset}/{scene}/images/{im.name}':构造输出结果的键值,格式为 dataset/scene/images/im.name。 - out_results[dataset][scene][key1] = {}:在输出结果字典中为当前图像的键值创建一个空字典。 - out_results[dataset][scene][key1]["R"] = deepcopy(im.rotmat()):将当前图像的旋转矩阵 R 深度复制到输出结果字典中。 - out_results[dataset][scene][key1]["t"] = deepcopy(np.array(im.tvec)):将当前图像的位移矩阵 t 深度复制到输出结果字典中。 - print(f'Registered: {dataset} / {scene} -> {len(out_results[dataset][scene])} images'):输出已经注册的图像数量。 - print(f'Total: {dataset} / {scene} -> {len(data_dict[dataset][scene])} images'):输出总共需要注册的图像数量。 - create_submission(out_results, data_dict):调用 create_submission() 函数生成提交结果。 - gc.collect():手动调用 Python 的垃圾回收机制,释放内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值