标签:c++

0

252

rk3588平台人脸识别sdk封装(.so动态链接库):Golang调用 笔记

上周的预研中,测试了离线 sdk 中官方的 demo 代码编译、运行测试,均已达到预期测试效果。

但官方 demo 源码只是简单样例,实际业务应用时需要对它做更多逻辑操作,并且业务逻辑层很可能不是 CC++ 语言,例如我一般使用 golang 语言作为业务层的开发语言。那么,基于这个现实场景,需要对原生sdk的源码采用 C 语言进行二次暴露封装,然后将它编译成动态链接库(例如 .so ),使其他编程语言能方便调用。

二次暴露封装

采用 C 语言对 官方 sdkC++ 源码进行二次封装暴露,为啥要做这一步?

  • 首先 C 语言作为更通用的系统语言,它封装的接口在与其他高级语言嵌入时更具兼容性;
  • 其次 C++ 内置的类概念,在 Go 依赖的 cgo 方式调用动态链接库方式中 并不支持。 因此,为方便 Go 语言集成,必须对它用 C 语言作二次封装暴露。

二次封装例子:

新建 C 源码文件 face_api.cpp

……

乐果   发表于   2024 年 01 月 12 日 标签:cc++golangcgoai 继续阅读

0

272

rk3588平台集成人脸识别算法(百度离线SDK)笔记

首先,去百度云后台申请离线 sdk,下载……略

sdk已整理备份,下载地址如下

下载地址: face-offline-sdk

sdk 文档: pdf文档

算法授权

按上述链接中的官方文档操作授权激活即可,略~

Demo编译

sdk 解压后,目录结构如下所示,src 目录为 demo 样例代码。

因为整个 sdkc++ 构建的,因此需要用 gccg++ 编译器编译, 为方便编译管理,我们先在 src 目下创建 cmake 配置文件 CMakeLists.txt, 配置文件内容如下:

……

乐果   发表于   2024 年 01 月 03 日 标签:armcc++ai 继续阅读

0

235

瑞芯微rk3588平台的开发板上编译opencv笔记

最近在公司开始研究边缘侧人脸识别能力,打算采用百度离线 sdk 植入集成方式, 之前倒腾穿透时买了orange-pi 5 plus开发板, 这下刚好与百度离线sdk的硬件要求(arm架构)匹配,于是就开始继续倒腾起来。

其中在预研人脸识别 sdkdemo 中需要用到 opencv 类库,故作此笔记。

下载源码与交叉编译工具

本人的开发pc机是 x86 架构 ubuntu 系统, 本笔记以此为例。

首先要在pc机上安装cmake,为了保险也装上gcc和g++。例如,可以这样安装Cmake:

sudo snap install cmake --classic

除此之外,一定也要安装make:

sudo apt install make

下载源码

opencv源码: https://opencv.org/releases/page/3/

下载交叉编译工具

交叉编译工具: https://developer.arm.com/downloads/-/gnu-a

因为我们是需要从 x86_64 交叉编译到 aarch64,因此选择 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu

……

乐果   发表于   2024 年 01 月 03 日 标签:cc++arm 继续阅读

0

203

ubuntu 环境下编译安装 xapiand

Xapiand 是基于开源检索引擎 Xapian 而二次封装开发的支持 RESTfulApi 服务。

在公司的前期项目中,因为需要对一些建筑/场所的坐标进行 经纬度距离排序 ,因此用到 Xapiand 服务, 但因为只是基于 docker 方式简单部署应用,并未对这个服务自身作深入研究,因此在后续 使用过程中,有同事反馈存在 “索引库容易丢失”、“内存居高不下” 等问题。

抱着学习研究的心态,遂尝试拉取源码研究一番,希望捣腾中或许能洞察到同事反馈的那些问题原因。

Xapiand 介绍

XapiandRESTful 搜索引擎, Xapiand 是一种现代的高可用分布式 RESTful 搜索和存储引擎,专为云计算而设计,并考虑了数据局部性。

它需要 JSON (或 MessagePack )文档以及 inde Xapiand

官方站点位于: https://kronuz.io/Xapiand

代码仓库地址:https://github.com/Kronuz/Xapiand

编译安装

拉取代码、编译:

git clone https://github.com/Kronuz/Xapiand.git
cd Xapiand
mkdir build
cmake CNinja ..
ninja

注意,上面编译用了 ninja 编译加速工具,因此需要提前安装类库:

sudo apt install ninja-build

编译过程中可能会存在各种报错,修复即可。

例如如下情况

报错1:

……

乐果   发表于   2023 年 12 月 08 日 标签:xapianc++ 继续阅读

热评文章