以下文件都在/modules/perception/目录下。
mainboard加载/perception/production/dag/dag_streaming_perception_camera.dag ,fusion_camera_detection_component.pb.txt为配置文件,进入/onboard/component/找类名为FusionCameraDetectionComponent的源文件。
Init()初始化参数;
OnReceiveImage(const std::shared_ptr<apollo::drivers::Image> &message, const std::string &camera_name) 接收某个摄像头的图像,然后用InternalProc(message, camera_name, &error_code, prefused_message.get(),out_message.get())处理;
进入Perception(camera_perception_options_, &camera_frame) 函数一帧一帧地对图像做感知,首先是车道线检测,lane_detector_->Detect(lane_detetor_options, frame),接口是/camera/lib/interface/base_lane_detector.h,具体实现函数从camera/obstacle.pt文件里面找,是DarkSCNNLaneDetector。
然后跟踪障碍物,tracker_->Predict(tracker_options, frame); OMTObstacleTracker::Predict(.. , ..);
检测障碍物detector->Detect(detector_options, frame); YoloObstacleDetector::Detect(.., ..);