From 5bc358da9dea316d72d7ebd919fc7998777d0003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 20 Oct 2021 20:12:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 董宏宇 --- .../mogo/module/common/drawer/BaseDrawer.java | 6 +++--- .../common/drawer/IdentifyDataDrawer.java | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java index 3d060ceb93..080f778d68 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java @@ -208,7 +208,6 @@ public class BaseDrawer { public int getModelRes(int type) { AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type); if (recognizedType == AdasRecognizedType.classIdCar) { - // TODO 这里临时替换模型解决穿模现象 return R.raw.special_vehicle; } else if (recognizedType == AdasRecognizedType.classIdTrafficBus) { return R.raw.daba; @@ -223,10 +222,11 @@ public class BaseDrawer { } else if (recognizedType == AdasRecognizedType.classIdBicycle) { return R.raw.zixingche; } else if (recognizedType == AdasRecognizedType.classIdTrafficTruck) { - // TODO 这里临时替换模型解决穿模现象 return R.raw.daba; + } else if (recognizedType == AdasRecognizedType.classIdPerson) { + return R.raw.people; } - return R.raw.people; + return R.raw.special_vehicle; } /** diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java index 1ade18dd00..6b4e7f0ecf 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/IdentifyDataDrawer.java @@ -28,20 +28,20 @@ import java.util.concurrent.TimeUnit; public class IdentifyDataDrawer extends BaseDrawer { private static final String TAG = "IdentifyDataDrawer"; - private static volatile IdentifyDataDrawer sInstance; - /** * 上一帧数据的缓存 */ private static Map mMarkersCaches = new ConcurrentHashMap<>(); + /** + * 最后一帧数据的缓存 + */ + private final Map mLastPositions = new ConcurrentHashMap<>(); - public IdentifyDataDrawer() { + private IdentifyDataDrawer() { super(); } - private final Map mLastPositions = new ConcurrentHashMap<>(); - public static IdentifyDataDrawer getInstance() { if (sInstance == null) { synchronized (IdentifyDataDrawer.class) { @@ -63,11 +63,9 @@ public class IdentifyDataDrawer extends BaseDrawer { * @param resultList adas感知融合数据 */ public void renderAdasRecognizedResult(List resultList) { - final long start = System.nanoTime(); if (resultList == null || resultList.isEmpty() || !DebugConfig.isUseAdasRecognize()) { clearOldMarker(); - Log.w(TAG, "渲染 adas 识别的数据 resultList==>" + resultList + " DebugConfig.isUseAdasRecognize()==>" + DebugConfig.isUseAdasRecognize()); return; } @@ -127,15 +125,18 @@ public class IdentifyDataDrawer extends BaseDrawer { * @param recognizedListResult */ private void updateCacheMarkerRes(IMogoMarker marker, TrafficData recognizedListResult) { - String resIdVal; + // 获取3D资源文件 int resId = getModelRes(recognizedListResult.getType().getType()); - resIdVal = resId + ""; + String resIdVal = resId + ""; + // 查询缓存中是否存在 String resName = mMarkerCachesResMd5Values.get(resIdVal); + // 缓存存在直接试用,节省内存 if (!TextUtils.isEmpty(resName)) { if (!TextUtils.equals(resName, marker.getMarkerResName())) { marker.use3DResource(resName); } } else { + // 缓存不存在,取出名称进行缓存 resName = marker.use3DResource(resId); mMarkerCachesResMd5Values.put(resIdVal, resName); }