Cartesi Machine RISC-V模拟器的交叉编译OpenCV库
作者简介
Marcus Souza 来自巴西伯南布哥的 Paudalho,在 Locus Custom Software 担任软件工程师。 理学硕士。 在伯南布哥联邦大学,他拥有八年的技术经验,专注于机器学习和计算机视觉,最近对区块链游戏开发很感兴趣。 本文源于一项使用计算机视觉领域和 Cartesi Rollups 的研究,展示了如何将 OpenCV 与 Rollups DApp 一起使用。
什么是Cartesi Machine?
Cartesi Machine 是 Cartesi(区块链操作系统)的引擎,它是一个用于开发和部署可扩展的去中心化应用程序(DApps)的第二层平台。 区块链操作系统提供了一个与区块链基础架构相结合的Linux操作系统,它允许使用熟悉的编程语言(如Python)开发dapp,而不需要编写solid代码。刚刚了解 Cartesi吗 ? 在这里了解更多关于区块链操作系统的信息。
OpenCV是什么?
OpenCV是图像处理和执行计算机视觉任务最好的工具之一。它是一个开源库,可以用来执行人脸检测、异议跟踪、地标检测等任务。它支持多种语言,包括Python、Java和c++。
https://www.analyticsvidhya.com/blog/2021/09/some-amazing-applications-of-opencv-library/
为什么将 OpenCV 和 Cartesi Machine 同时使用?
在Cartesi Machine内运行OpenCV将使dapp开发人员能够以分散的方式探索复杂的主题,如生物识别中的指纹欺骗检测,并将从图像中提取的特征输入机器学习模型进行模式识别。
本教程将指导您完成使用命令行为Cartesi Machine RISC-V模拟器交叉编译OpenCV的重要步骤。
前提假设:
- 交叉编译站主机是一个Linux系统。
- 该环境是Ubuntu 20.04 完整更新版本。
- 工具链是为目标设备(Cartesi)设计的,可以定制满足独特的要求。
第 1 部分:RISC-V GNU 编译器工具链
构建工具链来交叉编译OpenCV,并在Cartesi Machine中使用它可能是麻烦。强烈建议从https://github.com/cartesi/image-toolchain 获取已经构建的工具链,但用户也可以从头构建它。因此,可以重现以下步骤。
从Cartesi image-toolchain获取工具链
最安全的方法是使用cartesi image-toolchain存储库中已经存在的工具链。克隆过程结束后,执行自述文件中提到的构建和运行命令。
$make build
$make run
执行此命令将使用户能够在控制台模式下访问docker镜像。这样,用户就可以访问/opt/riscv文件夹,查看它的内容。
$root@toolchain-env:/opt/riscv/riscv64-cartesi-linux-gnu# ls
bin build.log.bz2 include lib libexec riscv64-