Skip to content

Commit

Permalink
紧急修复重构后体验问题
Browse files Browse the repository at this point in the history
  • Loading branch information
AnyLifeZLB committed Nov 23, 2024
1 parent a71f4e7 commit 67e9434
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,5 +103,5 @@ SDK支持Android 5+,建议设备配置 CPU为八核64位2.4GHz以上 摄像
## 快速接入
Demo 以main主工程 --> faceAiLib 的方式演示,熟悉本SDK 接入Demo 后可以先Copy faceAiLib到你主工程先跑起来
再根据业务情况修改完善。熟悉后大约2小时就能集成成功,可大大降低公司研发投入实现降本增效(笑)。
快速集成详情见:


12 changes: 9 additions & 3 deletions faceAILib/src/main/java/com/ai/face/search/CopyFaceImageUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -81,23 +81,27 @@ class CopyFaceImageUtils {


/**
* 拷贝Assert 目录下的图片到App 指定目录,所涉及的人脸全为AI生成
* 把工程目录Assert 下的图片插入到App 指定人脸搜索库
* 你也可以参考把服务器网络图片下载后插入到人脸搜索库
*
*/
private suspend fun copyAssertTestFaceImages(context: Application) = withContext(Dispatchers.IO) {
val assetManager = context.assets
val subFaceFiles = context.assets.list("")
if (subFaceFiles != null) {
for (index in subFaceFiles.indices) {
//网络图下载后转为Bitmap 一样的处理方式
val originBitmap=getBitmapFromAsset(
assetManager,
subFaceFiles[index]
)

if(originBitmap!=null){
//本地库保存的路径
val fileName=CACHE_SEARCH_FACE_DIR + subFaceFiles[index]

//insertOrUpdateFaceImage里面会检测裁剪人脸,图像处理;插入失败请看onFailed log
//insertOrUpdateFaceImage 处理人脸图入库,里面会检测裁剪人脸,图像量化处理;
// 插入失败请看onFailed log
FaceSearchImagesManger.IL1Iii.getInstance(context).insertOrUpdateFaceImage(
originBitmap, fileName,object :FaceSearchImagesManger.Callback {
override fun onSuccess() {
Expand All @@ -119,7 +123,9 @@ class CopyFaceImageUtils {
}



/**
* 读取Assert 目录的测试验证人脸图
*/
private fun getBitmapFromAsset(assetManager: AssetManager, strName: String): Bitmap? {
val istr: InputStream
var bitmap: Bitmap?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,14 @@ protected void onCreate(Bundle savedInstanceState) {
.setImageFlipped(cameraLens == CameraSelector.LENS_FACING_FRONT) //手机的前置摄像头imageProxy 拿到的图可能左右翻转
.setProcessCallBack(new SearchProcessCallBack() {
/**
* 匹配到的大于 Threshold的所有结果
* @param result
* @param contextBitmap
* 匹配到的大于 Threshold的所有结果,如有多个很相似的人场景允许的话可以弹框让用户选择
*/
@Override
public void onFaceMatched(List<FaceSearchResult> result, Bitmap contextBitmap) {
// 1:N 仅仅用来演示画人脸框位置
binding.graphicOverlay.drawRect(result, cameraXFragment);
}

//最像的结果
//人脸搜索最像的结果
@Override
public void onMostSimilar(String faceID, float score, Bitmap bitmap) {
binding.searchTips.setText(faceID);
Expand Down Expand Up @@ -133,7 +130,7 @@ public void onLog(String log) {



//其他方式搜索,把数据转为Bitmap 去搜索
//其他方式搜索,把数据转为Bitmap 去搜索。延时1秒是为了让引擎初始化完毕
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Expand Down
2 changes: 1 addition & 1 deletion questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
iOS 有1:1 人脸识别(含静默活体),动作活体移植中.

### 2.为什么小朋友群体1:N ,M:N 误识别率较高?
小朋友的五官差异相对成年人确实没有那么大,需要专门为小朋友群体训练人脸识别模型
小朋友的五官差异相对成年人确实没有那么大,需要专门为小朋友群体训练人脸识别模型了,SDK demo 为通用模型

### 3.是否支持外接USB 摄像头
如果你的系统摄像头采用标准的 Android Camera2 API 和摄像头 HIDL 接口大部分都支持,也已经支持部分USB外接摄像头,其他的需要根据自定义开发板情况评估,你也可以自行管理摄像头和切换画面角度等,参考 https://github.com/AnyLifeZLB/BinocularCameraFaceSearch
Expand Down

0 comments on commit 67e9434

Please sign in to comment.