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); }