篮之新喜 发表于 7 天前

自动驾驶ADAS算法--后视碰撞预警算法实现和测试demo的exe

下载测试工程后可以根据《自动驾驶ADAS算法--测试工程环境搭建-CSDN博客》完成环境的搭建。
测试的exe步伐,无需解压码就可以体验算法测试效果(代码原工程非免费介意无下载)

https://i-blog.csdnimg.cn/direct/1f503df4b16d465ba9cd936bc703b641.png
通过网盘分享的文件:后视碰撞预警
链接: https://pan.baidu.com/s/1j6FZKLPLN2RN9SdwZso0uA 提取码: vdh3
1、压缩包解压后显示如下所示

https://i-blog.csdnimg.cn/direct/a343269cadd14c94a80fd55fac5850f3.png
测试文件包括:可实行的exe文件、测试的视频等。
2.双击exe就可以运行测试步伐,测试步伐界面显示如下所示:

https://i-blog.csdnimg.cn/direct/6784e30d78a7407eb96dd2ad829ea669.png
测试效果如下所示:
假造视频测试效果图片

https://i-blog.csdnimg.cn/direct/617ae6d73b564a62aeefd52df90df969.png
实车测试效果图片

https://i-blog.csdnimg.cn/direct/18c371ac9e2a4046904389524fe632ad.png
假造视频测试效果视频

   自动驾驶ADAS算法--基于yolo的后视图像碰撞预警假造测试结果
实车测试效果视频

   自动驾驶ADAS算法--基于yolo的后视图像碰撞预警实车测试结果

部门代码实现如下所示:

// TODO: 在此添加控件通知处理程序代码
int c = 0;
int frameRate = 10;
Mat frame;
namedWindow("video-demo", WINDOW_AUTOSIZE);
VideoCapture capture;
//连接视频
capture.open("晴天后视碰撞.avi");
if (!capture.isOpened()) {
        printf("could not load video data...\n");
}

int frames = capture.get(CAP_PROP_FRAME_COUNT);//获取视频针数目(一帧就是一张图片)
double fps = capture.get(CAP_PROP_FPS);//获取每针视频的频率
// 获取帧的视频宽度,视频高度
Size size = Size(capture.get(CAP_PROP_FRAME_WIDTH), capture.get(CAP_PROP_FRAME_HEIGHT));
cout << frames << endl;
cout << fps << endl;
cout << size << endl;
VideoWriter writer("result.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'), fps, Size(JS_IMG_W, JS_IMG_H));

int alarmFalg = 0;
int alarmIndex = 0;
//step2:load labels
js_yolo_loadLabels("coco.names");
int FrameNum = 0;
//step-3:load onnx model
std::string onnxpath = "yolo11n.onnx";
js_yolo_loadModes(onnxpath);
js_initObjList(&g_ttc_objlist_B);
js_initMultObjList(&g_ttc_objlist_Mult_B);
for (;;)
{
        //将视频转给每一张张图进行处理
        capture >> frame;
                //step-5:get infer result
                int64 start = cv::getTickCount();
                int w = frame.cols;
                int h = frame.rows;

                if (w > 0 && h > 0)
                {               
                        //运行函数
                        js_yolo_run(frame, w, h);
                        // NMS
                        js_yolo_NMS(); //js_yolo_NMS(frame);
                       
                        //初始化算法结构体
                        js_yolo_initObj(&g_ttc_objlist_B);


                        float data_TOP_A, data_TOP_A_T;
                        js_3Dpointf Pdst;
                        js_pointf PsrcLF3, PsrcRF3, PsrcLF1, PsrcRF1, PsrcLF2, PsrcRF2;
                        JS_Parameter para;
                        js_fc fc;
                        js_init_Parameter(&para);
                        js_initfc(&fc);
                        js_initAngle(data_TOP_A, para.rx, para.ry, para.rz);
                        js_initAngleT(data_TOP_A, data_TOP_A_T);
                        for (int i = 0; i < 9; i++)printf("%f ", data_TOP_A_T);

                        //多帧跟踪 g_ttc_objlist_Mult_B
                        int ttflag = 0;
                        js_MultTrack(g_ttc_objlist_B, &g_ttc_objlist_Mult_B, 0.2);
                        js_getSpeed_ttc_wordp(&g_ttc_objlist_Mult_B, data_TOP_A_T, para, fc, 33);
                       
                       
                        putTextZH(frame, "      金书世界      \nwww.jinshushijie.com", cv::Point(10, 20), Scalar(255, 0, 0), 40, "楷体", false, false);                        //输出文字到图像上
                        FrameNum++;
                        writer << frame;
                        //视频播放完退出
                        if (frame.empty())break;
                        imshow("video-demo", frame);
                        //在视频播放期间按键退出
                        if (waitKey(33) >= 0) break;
                }

}
//释放
capture.release();
g_yolo_session_options.release();
js_yolo_release();



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 自动驾驶ADAS算法--后视碰撞预警算法实现和测试demo的exe