自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AndroidKt

Ctrl + A "学习"

  • 博客(319)
  • 资源 (16)
  • 收藏
  • 关注

原创 Android OpenCV(七十二):DNN 人脸识别 FaceRecognizerSF

上一篇文章Android OpenCV(七十一):DNN 人脸检测 FaceDetectorYN,我们提到 OpenCV 4.5.4 版本以后,objdetect包下新增了基于YuNet的人脸检测类,除此之外,还新增了基于 DNN SFace 的人脸识别类——。

2022-11-14 19:45:34 1284

原创 Android OpenCV(七十一):DNN 人脸检测 FaceDetectorYN

针对人脸检测,之前我们在Android OpenCV(六十):HAAR 级联分类和Android 平台人脸检测并不复杂两篇文章中分别介绍过OpenCV 级联分类器识别与 libfacedetection 开源库两种方式。并且,OpenCV 人脸检测:级联分类器与YuNet效果对比有更好的检测率和效率可以检测被遮挡的面部以及侧脸更轻量,文件大小更小参数简单易调效率稳定在选用人脸检测模型时,应该首选考虑基于 CNN 的YuNet。

2022-10-22 21:13:36 1429

原创 Android OpenCV(七十):Android DNN 部署深度学习模型

OpenCV 3.3版本以后,OpenCV 加入了对深度神经网络推理运算的支持模块——DNN模块,它支持多种深度学习框架的模型,如Tensorflow、Caffe、Torch、Darknet,以及ONNX格式的模型。

2022-10-03 18:13:28 1415

原创 《Python编程:从入门到实践》读书笔记

听说 python 很好用,遂学习之

2022-10-01 08:05:14 260

原创 Android OpenCV(六十九):MNIST + KNN + Android 提高手写字识别

前两篇文章中案例均是手写数字识别。使用数据集为下方图片分割而成的 5000 张 20*20 的图片,训练算法分别为 KNN 和 决策树。但是从两篇文章末尾的视频可以看出,识别效果并不是很好,误识别的情况比较多。针对 KNN,尝试修改 K 值大小,识别效果依然无明显改善。在写决策树那篇文章时,发现 http://yann.lecun.com/exdb/mnist/ 网站上的训练图片有 6 万张,于是产生跟换训练集的想法。

2022-09-11 09:40:17 988

原创 Android OpenCV(六十八):决策树

监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。换言之,利用训练数据集学习一个模型,再用模型对测试样本集进行预测。分类问题(离散)与回归问题(连续)等都是监督学习,如KNN、决策树和随机森林等。非监督学习(unsupervised learning)则是直接对数据进行建模。没有给定事先标记过的训练范例,所用的数据没有属性或标签这一概念。自动对输入的资料进行分类或分群,以寻找数据的模型和规律。聚类算法。

2022-09-08 16:31:02 1096 3

原创 Android OpenCV(六十七):KNN

KNN(K- Nearest Neighbor)法即 K 最邻近法,最初由 Cover 和 Hart 于 1968 年提出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路非常简单直观:如果一个样本在特征空间中的 K 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类。.如上图,测试样本(绿色圆形)只能被归为第一类的蓝色方形或者第二类的红色三角形。

2022-09-06 12:54:33 955

原创 有趣的 Kotlin 0x0F:Definitely non-nullable types

绝对不可能为空的类型。Kotlin 本身就有可空和不可空类型,为何又来一个呢?

2022-08-13 14:55:30 483

原创 有趣的 Kotlin 0x0E:DeepRecursiveFunction

T为传入参数类型;R为输出结果类型;block函数体。每一颗语法糖背后,总有几个 Kotlin 的工程师在为我们负重前行。🥸。

2022-08-02 21:23:27 482

原创 有趣的 Kotlin 0x0D:IntArray vs Array<Int>

IntArray 和 Array 如何选择?

2022-07-16 10:47:57 422

原创 Ubuntu 20.04 编译 libfacedetection

环境准备OpenCV 4.5.5参考文章:Ubuntu 安装 OpenCV4.5.5Android NDK r23b网址:https://developer.android.google.cn/ndk/downloads解压并配置环境变量 export ANDROID_NDK=/home/opencv/android/android-ndk(替换成自己的解压目录)libfacedetection 源码网址:https://github.com/ShiqiYu/libfacedete

2022-05-15 14:29:06 481 2

原创 Ubuntu 安装 OpenCV 4.5.5

换源(可选)换个源,加快下载速度。sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list清华源# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse# deb-s.

2022-05-03 16:26:49 4433 5

原创 Android OpenCV(六十六):边框扩展

前言就难易程度而言,边框扩展这部分内容不应该出现在 KMeans 之后,纯属意外。今天查阅 OpenCV 官方文档时,发现官方竟然单独花了一篇文章讲解这个,而自己只是在Android OpenCV(五十九):盲水印 一节中提到过,所以,我们还是结合官方案例在 Android 平台上实践一下。APIpublic static void copyMakeBorder(Mat src, Mat dst, int top, int bottom, int left, int right, int borde

2022-04-30 16:56:28 3339

原创 Android OpenCV(六十五):K均值

K 均值k 均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法。算法主要分为 4 步:预将数据分为 K 组,并随机选取 K 个对象作为初始的聚类中心;计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心;计算每个聚类的平均值,并将均值作为新的聚类中心;重复步骤 2 和 3 ,直到每个聚类满足终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

2022-04-17 15:17:44 4272

原创 Jetpack Compose(二):TextField

TextField属性按照 Material 设计标准,输入框分为两种:filled text field 和 outlined text field。在 Compose 的世界里,分别对应:TextField 和 OutlinedTextField。@Composablefun TextField( value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, modifier: Modifier

2022-04-05 19:28:57 629

原创 Jetpack Compose(一):Text

前言自从去年参加 Android 官方发起了 Jetpack Compose 的推广活动:Jetpack Compose 开发者挑战赛以后,再未系统的学习过 Jetpack Compose 的内容,一晃一年就过去了,官方版本已经更新至稳定版 本1.1.1,Alpha 版本 1.2.0-alpha04。从今天开始,继续自学 Jetpack Compose,就从文本 Text 开始吧,用不用得上再说。Text属性@Composablefun Text( text: String,

2022-04-05 09:14:16 267

原创 Android OpenCV(六十四):图像矩

图像矩矩(英文:moment),亦被称作动差,其概念最初应该来自于物理学,例如我们熟知的力矩。在物理学中,矩用来表示物体形状的物理量,为重要参数指标。定义在实数域上的实函数相对于值 ccc 的 nnn 阶矩为:μn=∫−∞∞(x−c)nf(x)dx\mu_n = \int_{-\infty}^\infty(x-c)^nf(x)dxμn​=∫−∞∞​(x−c)nf(x)dx如果f(x)f(x)f(x)是概率密度函数,则容易看出相对于值 0 的 1 阶矩是连续随机变量的数学期望。考虑几个特殊场景,方便

2022-03-20 20:13:09 6949

原创 Android OpenCV(六十三):斑点检测

斑点斑点(Blob) ,指图像中连接在一起的一组像素,它们具有一些共同的属性(例如灰度值)。如下图中,暗色连接区域就是斑点。而斑点检测的目标是识别和标记这些区域。API主要涉及两个类:SimpleBlobDetector 和 SimpleBlobDetector_Params。斑点检测器:SimpleBlobDetectorpublic static SimpleBlobDetector create(SimpleBlobDetector_Params parameters)参数一:p

2022-03-13 18:41:29 7999

原创 Android OpenCV(六十二):伪彩色增强

伪彩色增强伪彩色增强是把黑白图像的各个不同灰度级按照线性或非线性的映射函数变换成不同的彩色,得到一幅彩色图像的技术。为什么有时候需要做伪彩色增强?主要原因是人对图像灰度的分辨能力比较低,只能分辨出几十级,而对色彩的辨别能力却非常强,可以分辨出 上千种颜色,为了更有效地提取图形信息,使原图像细节更易辨认,目标更容易识别。原理每一个灰度值都对应颜色空间中的某一种颜色,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表(color look-up table,CLUT)的

2022-03-05 19:14:09 4980

原创 Retrofit SOAP协议实践

前言作为 Android 开发,平时和后端聊得最多的除了喝酒就是接口。常用语:Restful 和 WebService,前者现在聊得多,后者以前聊得多。默认含义分别为:Restful:HTTP 协议 和 JSON 格式WebService:特指 Soap 协议 和 XML 格式针对基于 HTTP 协议且格式为 JSON 的 Restful 接口,Android 客户端一般采用 Retrofit + Gson/Moshi 的方案解决。而针对 Soap 协议 和 XML 格式的 Soap Web

2022-02-11 08:14:25 89

原创 Android OpenCV(六十一):图像锐化

图像锐化图像锐化,是凸显图像边缘,使图像边缘更加清晰的一种图像处理方式。原理主要就是利用图像的高频分量来实现的,将原图像的高频分量提取出来,再和原图像按一定规则叠加起来,最终得到的图像就是锐化后的图像。主要有两种方式提取高频分量:高通滤波器直接提取原图 - 低通滤波器提取低频 = 高频方式一:高通滤波器使用高通滤波器来提取图像高频分量,如 Sobel 算子、Laplace 算子、梯度 Prewitt 算子等。其中Sobel提取出来的边缘比较粗糙,Laplace 提取出来的边缘更加细腻,因此也更

2022-01-27 20:53:33 3986

原创 Paging 3 分组列表

前言为什么命名为 “Android Jetpack” ?Android JetPack = Android Jet Pack = 安卓喷气发动机组件。再看看下面这个直冲云霄的 Android 机器人,是不是觉得还挺有意思?虽说天天混迹技术社区耳濡目染 Android Jetpack,但是鲜有机会实践。今天就从 Paging3 开始,上手这套组件。Paging3 是 Google 推出的一个应用于Android平台的分页加载库。相较于历史版本,Paging3 功能更丰富、更易用。主要优势如下:

2022-01-23 16:28:15 1716

原创 小手一抖,BUG 就有

前言最近有个 Android 项目重启了,同事无意中将 targetSdkVersion 从 29 升级至 30,引发一个兼容性问题,记录一下。先看看官网 Android 11 行为变更,调整不算太多,开发者比较关注的应该是 强制分区存储 或者 Toast API 内部变更,鲜有人注意到 Package visibility 的行为变更,上述兼容性问题便是由此而生。问题private fun isAppInstalled(pkgName: String): Boolean { val p

2022-01-01 08:50:34 102 6

原创 一招解决 Github 加载慢问题

前言GitHub · Build software better, together.Github 是开发者提高生产力的必备工具,是程序员心目中永远的神。但是 Github 在国内的访问速度很不稳定,时而快如闪电,时而慢如"闪电"。大部分时候,图片都是裂开的。严重影响鄙人拔刀(复制代码)的速度。至于是不是普遍现象,大伙打开百度搜索下 “Github访问”,看看长尾词便知。有条件的朋友可以采用非常科学的上网方式解决问题,像我这样吃馒头都嫌贵的人,自然只能另谋出路。如果你遇到 Github

2021-12-27 19:52:09 3543 2

原创 Android OpenCV(六十):HAAR级联检测器

前言级联分类器级联分类器的概念出自2001年Paul Viola与Michael Jones提出的论文《基于级联分类器的快速对象检测》。其是基于级联分类技术实现对人脸对象的实时快速检测,总结来说级联分类器具有如下几个特征:高拒绝率与低通过率。弱分类器组合级联。实时快速计算。常见的级联分类器大多是基于LBP特征与HAAR特征实现的。基于LBP与HAAR特征针对特定目标训练得到分类器数据,可以保存、加载、有效地进行对象识别。人脸检测就是其中最典型的例子之一。HAAR 特征HAAR小波基函数,

2021-12-12 14:38:38 3676

原创 Kotlin tailrec

前言尾调用一个函数内最后一个动作是调用函数的情形(即这个调用的返回值直接被当前函数返回的情形)fun shape(x: Int): Int { return rect(x)}尾递归尾调用在尾部位置调用函数本身的情形。尾递归属于递归的一种特殊情形。尾调用不一定是递归调用,但是尾递归特别有用,也比较容易实现。fun shape(x: Int): Int { return shape(x-1)}尾递归在普通尾调用的基础上,多出了2个特征:在尾部调用的是函数自身 (Self

2021-12-11 18:43:59 1693 2

原创 大厂文档校正服务,直接拿去用

前言之前在 Android OpenCV 系列文章中,发布过三篇关于图像校正的文章:平面倾斜图像校正Z 轴图像倾斜校正智能裁剪矫正 - SmartCrop其中,只有 智能裁剪矫正 - SmartCrop 具备实用价值。身为一个靠谱的开发人员,针对一个需求怎么可能只储备一个解决方案呢?所以,今天再介绍一个大厂图像校正解决方案,在巨人的肩膀上“接着奏乐接着舞”。目录华为文档校正服务一、简介1.1 服务介绍文档校正服务支持自动识别文档在图片中的位置,能够根据识别到的位置信息

2021-12-05 08:34:17 2680

原创 Activity Result API,顺手

今天打开 Typora 写作时,发现这款陪伴自己多年的工具终于发布了正式版本且以购买序列号的形式落地产品变现,毫无迟疑,第一时间购买序列号支持,付费是对产品和知识的助力,用爱发电很难持续,希望开发这款工具的开发者伴随工具越来越好。前言启动另一个 activity(无论是应用中的 activity 还是其他应用中的 activity)不一定是单向操作。很多场景下,我们启动另一个 activity 是为了接收返回的结果。例如,应用可启动相机应用并接收拍摄的照片作为结果。在过去的很长一段时间里,开发者皆是.

2021-11-28 17:51:07 560

原创 平时写作离不开的几个工具

工欲善其事必先利其器,今天我们不谈技术,谈谈技术输出。前言毕业后刚开始在 CSDN 上写博客时,和 Markdown 素未谋面,和 Gitee 面面相觑,Typora 闻所未闻,PicGo 不知为何物……现在,它们皆是成为我工作生活中的一部分。目录一、编写工具MarkdownMarkdown:https://daringfireball.net/projects/markdown/Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。在 2004.

2021-11-20 20:13:04 444

原创 Android 平台人脸检测并不复杂

一、前言上周,我们将于老师分享给开发者的 libfacedetection 开源库在 Windows 11 CLion 环境下实践了一把,速度快,效果好。恰逢今日不加班,秉承着实践出真知的原则移植至 Android 平台。二、环境准备Android Studio 2020.3.1OpenCV 4.5.4CMake 3.10.2libfacedetection 源码(https://github.com/ShiqiYu/libfacedetection)三、工程实践实

2021-11-04 21:29:40 3961 3

原创 C++ OpenCV(六):多通道分离与合并

OpenCV 中 imread 函数载入的是 RGB 色彩空间的三通道彩色图像,通道顺序依次为 B、G、R。对于三通道图像 ,开发者可以使用 OpenCV 提供的函数实现通道的合并和分离。分离APICV_EXPORTS_W void split(InputArray m, OutputArrayOfArrays mv);参数一:m,待分离的多通道图像;参数二:mv,分离后的单通道图像。BGR 图像分离#include <iostream>#include <open

2021-10-28 21:07:49 1182

原创 C++ OpenCV(五):色彩空间转换

前言今日基础示例开始之前,先聊两个问题:为什么 OpenCV 存储的图像格式是 BGR 呢 ?CLion 上有没有类似于 Visual Studio Image Watch 的辅助工具 ?第一个问题大家都知道,通过 OpenCV imread 函数读取图片得到的数组是 BGR 格式的,而我们日常生活中使用最多的却是 RGB。不太合理,其实这里面隐藏着一个历史原因:OpenCV在 1999 年由 Intel 建立,当时主流的摄像头制造商和软件供应商提供的摄像头采集的图像的通道排列顺序为 BGR

2021-10-28 21:07:14 1083 2

原创 C++ OpenCV(四):绘制几何图形

绘制几何图形直线矩形多边形圆形椭圆文字API直线CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);矩形CV_EXPORTS_W void rectangle(InputOutputArray i

2021-10-28 21:06:38 1535

原创 C++ OpenCV(三):图像像素统计

API最大值和最小值CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal, CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0, CV_OUT Point* maxLoc = 0, InputArray mask = noArray());参数一:src,单通

2021-10-28 20:28:15 739

原创 libfacedetection 让人脸检测如此简单

一、前言开源人脸检测库 libfacedetection,有如下特点:深度模型仅有85K个参数。采用AVX512/AVX2/NEON指令提速。代码简短和简洁,只有一千多行代码。代码不依赖任何其他第三方库,只要平台能编译C++则可使用。项目License采用3-Clause BSD License,可以商业应用。之前介绍过于老师的 libfacedetection 人脸检测开源库,并且基于 Ubuntu 和 Android 两个平台进行实践,效果还是很不错的。通过于老师的公众号得知最近 li

2021-10-27 22:32:58 959

原创 有趣的 Kotlin 0x0C:Contracts

Kotlin 语言中深受开发者喜爱特性之一就是 智能推断。fun foo(s: String?) { if (s != null) s.length // Compiler automatically casts 's' to 'String'}如上,编译器会自动推断出变量 s 为非空 String 类型。但是在一些小把戏面前,Kotlin 的智能推断又没有想象中的那么强大。下面这段代码,编译器并没有完成智能推断。fun String?.isNotNull(): Boolean = t.

2021-10-27 22:29:55 1259

原创 Android Studio BUG ?

一、前言OpenCV 官网 10 月 11 日将 Release 版本更新至 4.5.4,准备晚上顺手升级下 LearningAndroidOpenCV 工程下对应 OpenCV Android SDK 的版本。轻车熟路的下载 SDK 并且 Import Module。Next和 Finish不可点击且毫无原因提示,无法导入 Module,意思就是被 Android Studio 关了呗 ?Android Studio版本Android Studio Arctic Fox | 2020.3.1

2021-10-27 22:27:27 2945 2

原创 C++ OpenCV(二):Mat 运算

逻辑运算非运算公式dst(I)=¬src(I)\texttt{dst} (I) = \neg \texttt{src} (I)dst(I)=¬src(I)APICV_EXPORTS_W void bitwise_not(InputArray src, OutputArray dst, InputArray mask = noArray());参数一:src,输入图像矩阵;参数二:dst,输出图像矩阵,大小和类型与输入相同;参

2021-09-17 21:52:34 914 2

原创 C++ OpenCV(一):图像读取与保存

前言《LearningAndroidOpenCV 系列》主要结合 Android 平台,采用 Kotlin 语言编写一系列常用的 OpenCV 示例,帮助初学者快速上手,其实我也是初学者,从今天开始,换汤不换药,采用 C++ 在 CLion 下复习一遍,内容很基础,希望对初学者有帮助。加载图片CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );参数一:filename,待加载的文件;参数

2021-09-17 21:51:53 3652

原创 CLion 开发 OpenCV 环境配置

CLionWhat is CLion ? A cross-platform IDE for C and C++ 。习惯了 IDEA,如果要开始编写 C 或者 C++ 代码,CLion 应该是首选吧。Windows & CLion & OpenCV环境WIndows 11CLion 2021.1OpenCV 4.5.3CMake 3.16.0MinGW编译 OpenCV配置源代码路径和输出路径Configure待第一次 Configure 完成后,再执行一次 C

2021-09-17 21:50:57 181

smarttool.rar

国密算法工具SmartTool_V1.3国密算法工具SmartTool_V1.3国密算法工具SmartTool_V1.3

2021-04-29

The Linux Command Line中英文合集.zip

The Linux Command Line电子书中英文版本合集。学习 Linux 命令行会让你受益匪浅,给你极大的回报。如果你认为, 现在你已经是高手了。别急,其实你还不知道什么才是真正的高手。不像其他一些计算机技能, 一段时间之后可能就被淘汰了,命令行知识却不会落伍,你今天所学到的,在十年以后, 都会有用处。命令行通过了时间的检验。 如果你没有编程经验,也不要担心,我会带你入门。

2020-07-20

kotlin-in-chinese.pdf

Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。 Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。

2020-07-16

等保2.0初级.zip

2019年最新发布的等级保护2.0标准,本文档为初级测评师培训教材,包含安全物理环境、安全通信网络、安全区域边界、安全计算环境等测评要求、测评方法、预期结果指南!

2020-07-13

《Java开发手册》泰山版.zip

阿里巴巴《Java开发手册》泰山版

2020-04-23

class-dump-z.zip

class-dump-z.zip资源包分享,支持win/linux/mac/iphone等,

2019-12-03

PowerDesign12以及PDMReader

由于PDMReader对于PowerDesign高版本支持得并不好,使用PowerDesign16.5生成的pdm文件使用最高版本的PDMReader无法导入。根据个人测试,附件这两个版本是可以配合使用的,分享一下

2018-10-30

Oracel ODBC32位驱动

解决PowerDesign只支持32位oracel驱动问题

2018-10-30

nmap-7.40端口扫描工具

nmap-7.40端口扫描工具

2017-06-08

ScanPort端口扫描工具

ScanPort端口扫描工具

2017-06-07

opencsv.jar

opencsv.jar包,方便进行数据的导入导出

2017-03-21

DrawerLayoutDemo

关于Android开发中的DrawerLayout和NavigationView的使用示例

2016-06-24

RecyclerView Demo

使用Android RecyclerView 的demo程序,与博文 http://blog.csdn.net/poorkick/article/details/51583833 配合使用

2016-06-04

RecyclerView使用Demo

RecyclerView使用Demo

2016-06-04

Android简易天气预报

Android简易天气预报,与http://blog.csdn.net/poorkick/article/details/51308646配合使用

2016-05-04

简易贪吃蛇

http://blog.csdn.net/poorkick/article/details/51203618 代码,简易贪吃蛇

2016-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除