在前面的文章(https://www.lsz.sc.cn/posts/android-camerax/)中,我们是在视频信息的上面又放置了一层,用来绘制目标框,主要用来框出视频中人脸所在的位置。但在前面,我们只是简单的画了一个框,实际的应用要复杂一些。

在实际中,我们在进行目标检测的时候,传入的图片是摄像头原始的图片大小,所以目标检测方法得到的也是基于原始图片的人脸框的位置,我们如果根据原始图片中人脸的位置来绘制目标框,则肯定会是一个错误的位置。

>>>阅读全文<<<

2FA原理学习


发表于:2025年10月14日

现在大多数知名的网站(平台)都开启了两步验证,即在你登录的时候,除了需要验证账号和密码外,还需要验证2FA生成的密码。不过,国内的一些平台,一般是通过短信进行二次验证,要求高一些的,会要求人脸验证。

在十多年前,使用网银转账的时候,银行会给你一张动态口令卡,卡上有横坐标与纵坐标,在转账的时候,银行会要求你输入指定横坐标与纵坐标交叉位置数字来进行二次验证。

动态口令卡

另外,银行也提供另一种基于硬件的动态口令牌,口令牌会基于时间生成验证码。在进行转账操作的时候,会要求你输入口令牌上的数字进行验证。

动态口令牌

当然,我们普通的网站平台不会有这么高的要求。在国内由于实名制的原因,一般是通过手机短信进行二次验证。在国外,一般使用一种基于时间的一次性口令技术来进行二次验证。

>>>阅读全文<<<

[Android开发]摄像头使用


发表于:2025年09月21日

本篇是Android开发疲劳驾驶、人脸识别的基础篇。

在Android中,对摄像头的使用,主要依赖CameraX,我们将根据摄像头使用的范式(三板斧)来完成功能。

画面数据由摄像头产生后,经过SurfaceTexture,最终显示在View上,摄像头是硬件,会将产生的数据以帧的形式推送到SurfaceTextureSurfaceTexture会不断的将数据显示在View,但是并不一定会将每一帧都显示出来,每次显示的时候,都会显示最新的帧,过期的帧会被舍弃。

>>>阅读全文<<<

JNI极速入门


发表于:2025年09月18日

JNI(Java Native Interface,Java本地接口),是Java平台的标准组成部分,是Java与本地代码连接的桥梁。在Android开发中,普遍通过NDK来使用JNI。

用大白话说就是,要在Java中调用C/C++的函数,就需要用JNI。

NDK(Native Development Kit),是用于在Java代码中集成原生代码的工具集。

学习JNI,主要就是要明白JNI的规则:

  • 在Java中的命名是什么样的?
  • 在C/C++中的命名是什么的?
  • 他们是如何关联起来的?

当然,我们的学习还是要从基本的环境搭建说起。

>>>阅读全文<<<

Vosk有大模型和小模型两种,对应不同的使用场景。

大模型

大模型由于使用了先进的 AI 算法,所以要求的资源比较高,需要至少16GB的内存(RAM),主要用于在服务器上进行高精度的转录。

最新的大模型大小约2GB。

小模型

小模型大小仅仅约50MB,运行时内存(RAM)大约需要300MB,非常适合移动应用程序上的有限任务。可以在智能手机、Raspberry Pi 上运行。

当然也包括车机设备。

>>>阅读全文<<<

网站终于搞定了 - 使用帮助说明


发表于:2025年09月14日

听别人说,我们这批这年头还在还在搞自己个人网站、博客建设的人,一般发布的第一个内容都是教别人如何搞博客。我以为我会与众不同,就不写如何做。但等我做完后才发现,还是得写一下,不是为了教别人,是为了记录一下网站的功能与一些使用方法,要注意的配置太多,如果不记录一下,久了肯定得搞忘。

>>>阅读全文<<<

聊聊IPv4


发表于:2025年06月15日

前不久在抖音上刷到讲为什么局域网电脑IP能互通的问题,非常简单的用锁的概念来描述了同一网段能互通的问题。但视频中有很多内容和实际有点出入,想在这里简单的从计算机网络的角度来聊一聊这个问题。 原本想从网卡开始聊起,但写着写着,觉着这个内容太多了,又转到单纯的IPv4中来。

在IPv4网络中,正常情况下,只有在同一个网段的计算机才能直接进行通信,若不在同一个网段内,则需要使用其它的技术才能进行通信。

通常在说一个IP地址的时候,通常包含了一个隐藏条件:子网掩码。通过子网掩码和IP地址,一起来确定两个IP是否能直接通信。

>>>阅读全文<<<

Iptables学习笔记


发表于:2025年06月07日

这是一篇iptables的学习笔记,是个人的理解。 iptables对于我来说不常用到,所以每次用的时候都会再次学习,也没有深入的学习。学过的东西,久了不用,自然就忘了。所以在这里对个人的理解做一个笔记,方便下次用到的时候好看。

介绍

iptables是操作netfilter的工具,netfilter是Linux2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。netfilter采用模块化设计,具有良好的可扩充性。iptables从用户态连接到内核态的netfilter的架构中,netfilter与IP协议栈是无缝契合的,并允许使用者对数据报进行过滤、地址转换、处理等操作。

>>>阅读全文<<<

在如今SPA应用流行的情况下,页面上的所有东西都是通过javascript进行加载,本文将带你一步一步截获用户请求,并修改请求地址。

我们主要使用的方法为Hook原生接口进行接口调用拦截;在拦截前,先定义一个URL修改的函数,统一将URL请求中的before修改为after,你在你的实际处理中可能会更加复杂。

function srcHook(url) {
    let nUrl = url.replace("hook-before", "hook-after");
    return nUrl;
}

>>>阅读全文<<<