@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<String, IMogoMarker> mMarkersCaches = new ConcurrentHashMap<>();
|
||||
/**
|
||||
* 最后一帧数据的缓存
|
||||
*/
|
||||
private final Map<String, TrafficData> mLastPositions = new ConcurrentHashMap<>();
|
||||
|
||||
public IdentifyDataDrawer() {
|
||||
private IdentifyDataDrawer() {
|
||||
super();
|
||||
}
|
||||
|
||||
private final Map<String, TrafficData> 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<TrafficData> 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user