Yolov3-Windows 批量保存圖像及運行與保存視頻

YOLOv3 Windows端配置:Windows下 YOLOv3配置教程(YOLOv3項VS2013平臺遷移的方法) - maweifei的博客 - CSDN博客


一、批量保存圖像

根據(jù)上述的Windows端配置方法,所用的項目為ALexeyAB項目,將ALexeyAB項目中的detector.c文件替換成官網(wǎng)項目中的detector.c文件,參考YOLOv3批量測試圖片并保存在自定義文件夾下 - mieleizhi0522的博客 - CSDN博客中的方法進行改動。由于兩個項目中的部分函數(shù)參數(shù)不一,故在修改過程中還需對其它文件中的其它函數(shù)進行修改。讀者可以嘗試在ALexeyAB項目中對detector.c文件進行修改。


二、視頻操作

1、運行

官網(wǎng)項目測試視頻主要通過調(diào)用detector demo?

darknet detector demo cfg/voc.data cfg/yolov3-voc.cfg results/yolov3-voc_final.weights input.mp4 -gpus 1

直接采用該文章所提的windows配置所用文件

AlexeyAB(Linux與Windows都可):https://github.com/AlexeyAB/darknet

也可直接用該方法直接運行,在代碼上添加 -out_filename即可保存該文件。

darknet detector demo cfg/voc.data cfg/yolov3-voc.cfg yolov3-voc_final.weights input.mp4 -out_filename results/Videoout/out.mp4



筆者在進行批量保存圖像中直接采用官網(wǎng)文件的detector.c文件進行修改,但是在demo.c文件采用的是ALexeyAB文件,故將detector.c上的detector.c文件的demo函數(shù)調(diào)用轉(zhuǎn)換為ALexeyAB項目中detector.c中的demo函數(shù)參數(shù)調(diào)用。需要注意,兩個文件的demo函數(shù)的參數(shù)不一,讀者可根據(jù)自己需要進行改動。

2、保存

linux端保存視頻主要修改demo.c文件與image.c文件:yolov3運行及保存檢測視頻(包括攝像頭) - rs勿忘初心的博客 - CSDN博客


筆者在demo函數(shù)中添加如下函數(shù),以便在控制端沒有輸入保存路徑時,自動保存在所設(shè)置的文件夾中,其中 //************LGY20190130*************中為添加的內(nèi)容,可根據(jù)實際要求修改保存路徑。

CvVideoWriter* output_video_writer = NULL; // cv::VideoWriter output_video;

? ? if (out_filename && !flag_exit)

? ? {

? ? ? ? CvSize size;

? ? ? ? size.width = det_img->width, size.height = det_img->height;

? ? ? ? int src_fps = 25;

? ? ? ? src_fps = get_stream_fps(cap, cpp_video_capture);

? ? ? ? output_video_writer = cvCreateVideoWriter(out_filename, CV_FOURCC('D', 'I', 'V', 'X'), src_fps, size, 1);

? ? }

? ? //************LGY20190130*************

? ? else

? ? {

? ? ? ? CvSize size;

? ? ? ? size.width = det_img->width, size.height = det_img->height;

? ? ? ? int src_fps = 25;

? ? ? ? src_fps = get_stream_fps(cap, cpp_video_capture);

? ? ? ? if (access("results/Videoout", 00) == -1) // 保存的路徑

? ? ? ? {

? ? ? ? ? ? if (mkdir("results/Videoout", 0777))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? printf("creat file bag failed !!!");

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? char b[2048];

? ? ? ? char drive[2048], dir[2048], file_name[2048], ext[2048];

? ? ? ? _splitpath(filename, drive, dir, file_name, ext);

? ? ? ? sprintf(b, "results/Videoout/%s.%s", file_name,ext);

? ? ? ? output_video_writer = cvCreateVideoWriter(b, CV_FOURCC('D', 'I', 'V', 'X'), src_fps, size, 1);

? ? }

? ? //************LGY20190130*************

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容