共計 2110 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 Apollo 之怎么在預測模塊中添加新評估器的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
簡介
評估器通過應用預訓練的深度學習模型生成特征(來自障礙物和當前車輛的原始信息)以獲得模型輸出。
添加評估器的步驟
請按照下面的步驟添加名稱為 NewEvaluator 的評估器:
在 proto 中添加一個字段
聲明一個從 Evaluator 類繼承的類 NewEvaluator
實現類 NewEvaluator
更新預測配置
更新評估器管理
下面讓我們用上面的方法來添加新的評估器。
一、聲明一個從 Evaluator 類繼承的類
NewEvaluator
modules/prediction/evaluator/vehicle 目錄下新建文件 new_evaluator.h。聲明如下:
#include modules/prediction/evaluator/evaluator.h
namespace apollo {
namespace prediction {
class NewEvaluator : public Evaluator {
public:
NewEvaluator();
virtual ~NewEvaluator();
void Evaluate(Obstacle* obstacle_ptr) override;
// Other useful functions and fields.
} // namespace prediction
} // namespace apollo
二、實現類 NewEvaluator
在 new_evaluator.h 所在目錄下新建文件 new_evaluator.cc。實現如下:
#include modules/prediction/evaluator/vehicle/new_evaluator.h
namespace apollo {
namespace prediction {NewEvaluator::NewEvaluator() {
// Implement
NewEvaluator::~NewEvaluator() {
// Implement
NewEvaluator::Evaluate(Obstacle* obstacle_ptr)() {
// Extract features
// Compute new_output by applying pre-trained model
// Other functions
} // namespace prediction
} // namespace apollo
三、在 proto 中添加新評估器
在 prediction_conf.proto 中添加新評估器類型:
enum EvaluatorType {
MLP_EVALUATOR = 0;
NEW_EVALUATOR = 1;
}
四、更新 prediction_conf 文件
在 modules/prediction/conf/prediction_conf.pb.txt 中,按照如下方式更新字段 evaluator_type:
obstacle_conf {
obstacle_type: VEHICLE
obstacle_status: ON_LANE
evaluator_type: NEW_EVALUATOR
predictor_type: NEW_PREDICTOR
}
五、更新評估器管理
按照如下方式更新 CreateEvluator(…):
case ObstacleConf::NEW_EVALUATOR: { evaluator_ptr.reset(new NewEvaluator());
break;
}
按照如下方式更新 RegisterEvaluators():
RegisterEvaluator(ObstacleConf::NEW_EVALUATOR);
完成上述步驟后,新評估器便創建成功了。
添加新特性
如果你想添加新特性,請按照如下的步驟進行操作:
在 proto 中添加一個字段
假設新的評估結果名稱是 new_output 且類型是 int32。如果輸出直接與障礙物相關,可以將它添加到 modules/prediction/proto/feature.proto 中,如下所示:
message Feature {
// Other existing features
optional int32 new_output = 1000;
}
如果輸出與車道相關,請將其添加到 modules/prediction/proto/lane_graph.proto 中,如下所示:
message LaneSequence {
// Other existing features
optional int32 new_output = 1000;
}
感謝各位的閱讀!關于“Apollo 之怎么在預測模塊中添加新評估器”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!