微风❤水墨
https://github.com/Li-Lai
展开
-
编程实践:OpenCV mat对象与base64互转
可以通过设置IMWRITE_JPEG_QUALITY标志来更改JPEG压缩质量。编码: img -> jpg -> base64。解码:base64 -> jpg -> img。原创 2025-03-10 09:50:45 · 234 阅读 · 0 评论 -
编程实践:linux系统DNS解析卡顿5秒的bug
发送A类型(ipv4 )请求和AAAA类型(ipv6)请求使用不同的源端口。这样两个请求在conntrack表中不占用同一个表项,从而避免冲突。发送A类型(ipv4 )请求和AAAA类型(ipv6)请求同样会使用同源端口发送,知识发送方式改为了串行,从而也避免了冲突。更详细的分析可以参考Weave works工程师。1:人脸离线识别记录可以正常上传云端。2:人脸在线识别请求却一直超时。3:客户使用在线网络。原创 2025-03-10 09:34:16 · 167 阅读 · 0 评论 -
编程实践:java中的小事
之前没接触过java,所以遇到后有点不知所措,好在有大模型,不会就问,不会就记。JDK 和 NDK 是两个不同的开发工具包,主要用于不同类型的软件开发。:这是用于开发 Java 应用程序的软件开发环境。它包含了 Java 运行时环境(JRE)、编译器(javac)和其他工具和库,这些对于开发、编译和运行 Java 应用程序是必需的。原创 2025-02-28 15:23:30 · 63 阅读 · 0 评论 -
编程实践:log4cpp 交叉编译
问题出在 config.sub 文件无法识别 aarch64-linux-gnu 这个配置。需要更新 log4cpp 源码中的 config.sub 和 config.guess 文件到最新版本。基于 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu 编译 log4cpp-1.1.3。2:替换 log4cpp/config 目录下的 config.sub 和 config.guess 文件。1:更新 config.sub 和 config.guess。原创 2025-02-27 10:59:19 · 33 阅读 · 0 评论 -
编程实践:ZLKMedia 推流
文档里面提供了各个系统的详细安装步骤,可以参考我这边是寒武纪MLU370-S4硬件,先确定一下系统name是ubuntu34.1、编译器版本要求linux 系统通过以下命令确认版本是否符合。不满足就需要参考4.24.2、安装编译器如果你是macOS用户,你直接安装xcode即可。如果你是windows用户,推荐安装vs2017或以上。5:cmake。原创 2025-02-25 09:57:34 · 103 阅读 · 0 评论 -
编程实践:aarch64编译器安装
aarch64 和 ARM64 实际上指的是同一架构。AArch64 是 ARM 架构的一个64位执行状态,有时也被称作 ARM64。这一架构设计用于提供更高的性能和更大的地址空间,同时保持与传统 ARM 架构(如ARMv7-A)的向后兼容性。因此,在不同的上下文中,你可能会看到这两个术语互换使用来描述支持64位计算的ARM处理器架构。:将X86上的算法移植到华为鲲鹏服务器(Linux系统-ARM芯片)。所以需要整一下交叉编译工具链--aarch64。以opencv-4.6.0为例。原创 2025-02-24 15:34:57 · 188 阅读 · 0 评论 -
编程实践:HTTPS通信
这是最推荐的解决方案,因为新版本的OpenSSL修复了许多安全漏洞,并且支持更多现代特性。libcurl是广泛使用的HTTP库,支持HTTPS,并且兼容OpenSSL 1.0.2a。其中--with-openssl后面跟的路径,是openssl生成的lib、include、bin所在的路径.如果想要编译arm版的curl,需要在./configure这一行命令中加上:--host=arm-linux。如果编译的时候已经指定了--with-openssl路径,却始终报错检测不到openssl。原创 2025-02-24 10:33:04 · 211 阅读 · 0 评论 -
编程实践:sigmastar系列2-获取UUID进行授权
Tips:为了提高UUID的安全性和隐私保护,实践中往往结合多种硬件信息(比如cpu、硬盘、主板、bios等硬件序列号)并通过加密哈希算法生成最终的UUID。最近基于Sigmastar-330 开发人脸识别SDK,需要进行授权管理,所以需要获取UUID作为激活、授权的凭证。step4:云端返回加密后的授权结果(携带UUID),校验授权结果中携带的UUID是否与本机一致(防止dns劫持)。step1:算法SDK在设备上电,算法初始化环节,校验本地是否有加密存储的授权令牌文件。如果一致,正常初始化。原创 2025-02-12 15:42:15 · 253 阅读 · 0 评论 -
20210820:Multiprocessing加速文件读取+共享内存
需求:人脸特征值两两比对,计算cosine相似度难点:特征值文件较多,单进程使用numpy.load(*.npy)加载耗时过长参考:multiprocessing库,可以同时开多个进程操作,可以极大速度官方文档:https://docs.python.org/dev/library/multiprocessing.html例子:这个例子通俗易懂,便于学习理解,我们在这个例子基础上进行修改import os,time,randomfrom multiprocessing import原创 2021-08-23 10:15:41 · 715 阅读 · 0 评论 -
NCNN:备忘
ncnn中Mat数据的排列格式为(channel, h, w):bbbb....gggg.....rrrr。opencv中Mat中数据的排列格式为(h, w, channel):bgrbgrbgrbgr...原创 2023-10-09 17:16:44 · 226 阅读 · 0 评论 -
20221227:Rockchip实战1-跑通官方模型转换
2:打开说明文档 rknpu2-master/doc/Rockchip_RV1106_Quick_Start_RKNN_SDK_V1.4.0_CN.pdf。3: 下载RK_NPU_SDK:里面包含所有的发布包、docker镜像、example十里、doc说明文档、平台工具等。RKNN-toolkit2:本工程主要为将原始的模型转化成rknn模型。RKNN-toolkit:本工程主要为将原始的模型转化成rknn模型。RKNPU2:本工程主要为Rockchip NPU提供驱动、示例等。原创 2022-12-27 13:43:27 · 2202 阅读 · 0 评论 -
20210902:Hisi量化篇2-模型择优
本篇主要介绍如何判定自己训练模型的量化损失以及如何选择最优的模型去量化如有错误和不当之处,望指教!根据我自己工作遇到的海思量化精度问题,以及如何改善和提升精度,整理记录而成。模型转换量化的一般流程:1:训练模型(fp32)2:模型选优,依据acc或者loss2:量化模型(int8/fp16)3:单图比较输出相似度4:多图评测ROC,验证精度+选择合适阈值(约等指数)一般在第3或者第4步才发现量化后,精度损失严重,甚至不能使用。举个亲身例子:我在训练活体模型原创 2021-09-02 11:31:24 · 1197 阅读 · 0 评论 -
20210901:Hisi量化篇1-损失来源
本文如有错误和不当之处,望指教!主要记录工作中针对Hisi量化的学习过程以及面临的海思量化损失调整过程:经过查阅资料:了解海思的量化分为权重量化(weight+bias) + 激活量化(featuremap)1:NNIE 量化感知训练https://zhuanlan.zhihu.com/p/2230182422:Hisi量化库使用指南...原创 2021-09-01 19:09:51 · 609 阅读 · 0 评论 -
20210906:Hisi量化篇3-权值约束
本篇主要介绍网络剪枝最后一层数值精度下溢调优如有错误和不当之处,望指教!根据我自己工作遇到的海思量化精度问题,以及如何改善和提升精度,整理记录而成。回想一下上篇文章的遗留问题:layer(name:413)连接fc层,不能对其修剪,所以权值偏小【精度下溢】的情况也迁移过来了。如何处理这个问题呢?之前一直听到过梯度裁剪【约束】,那么权重是不是也可以?反正剪枝完都要finetune的,稍微裁剪约束一下应该是没有问题的。经过实验,确实可以,美滋滋!把约束前后的权重数值都保存一.原创 2021-09-23 16:46:45 · 420 阅读 · 0 评论 -
20221108:onnx2caffe错误处理1-Mul维度不匹配问题
这是按num进行拼接,比如上面,输入图像均为24×24×3,用于分类的有150张图片,用于boundingbox回归的有50张,用于关键点回归的也有50张,则最后拼接的结果就是 (150+50+50)×3×24×24。输入的data_all维度为 250×3×24×24,拆分后的3个输出的维度依次为 150×3×24×24,50×3×24×24, 50×3×24×24。concat就是合并的操作,那么slice就是拆分的操作,需要指定的参数是:拆分的通道axis、拆分的位置slice_point。原创 2022-11-08 20:12:39 · 501 阅读 · 0 评论 -
20210906:Hisi量化篇4-模型剪枝
本篇主要介绍网络剪枝可以极大改善量化损失如有错误和不当之处,望指教!根据我自己工作遇到的海思量化精度问题,以及如何改善和提升精度,整理记录而成。网络剪枝的好处是啥?1:在保持精度的条件下,可以降低运算量和参数量【毕竟端侧设备推理性能是在有限】从下图可以看出,不同的prune-ratio,精度都还可以 flops可以降低1/3,params可以降低1/2 如果好好在调参,应该可以进一步剪枝2:可以减少量化损失数据:我司自有的活体ir数据网络:mobilenet-.原创 2021-09-06 15:00:08 · 578 阅读 · 0 评论 -
20221216:sigmastar系列1-222D硬件DIVP加速接口使用
DIVP支持对图像进行预处理,比依赖cpu要快速一些。记录一下自己使用的demo。1:先大体了解一下DIVP的功能作用。2:熟悉一下我们将要使用的接口。3:上代码(已crop为例)原创 2022-12-16 11:17:39 · 511 阅读 · 0 评论