使用Java和OpenCV调用YOLOv3完成实施目标检测

本文介绍了如何使用Java和OpenCV调用YOLOv3模型进行目标检测。首先,在IDEA中导入OpenCV库,然后配置项目以识别dll。接着,下载并应用darknet进行目标检测,代码会根据检测结果保存图片。虽然存在过度绘制问题,但可以通过优化解决。提供了参考链接以获取更多细节。
摘要由CSDN通过智能技术生成

 使用Java和OpenCV调用YOLOv3完成实施目标检测,识别到目标就将包含目标的图片保存下来,没有目标就不保存。详细代码以及步骤。

第一步:在IDEA中完成对OpenCV包的导入

        从官网上下载OpenCV:Releases - OpenCV。选择window版本下载,解压之后

把 opencv\build\目录下的java文件整个复制到项目文件下,名字随意。

         File>Project Structure>Libraries ,选择+号,选择java,之后选择jar包位置。导入即可。

 

 这里我已经导入过了。最后再配置dll

Run>Edit Configurations ,选中你所要配置的java文件,填入以下内容:

-Djava.library.path=$PROJECT_DIR$\opencv\x64 (64位选x64,32位选x86)

 第二步:完成目标检测

首先下载darknet:GitHub - pjreddie/darknet: Convolutional Neural Networks

为了方便操作,这里只需要将darknet的路径以及保存的图片路径修改为自己的即可。下边直接上代码。当然你也可以训练自己的YOLOv3模型来完成相关的操作。

主程序

import org.opencv.core.*;
import org.opencv.core.Point;
import org.opencv.dnn.Dnn;
import org.opencv.dnn.Net;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.VideoCapture;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

import static org.opencv.dnn.Dnn.NMSBoxes;
import static org.opencv.highgui.HighGui.*;
import static org.opencv.highgui.HighGui.waitKey;
import static org.opencv.imgproc.Imgproc.*;
import static org.opencv.imgproc.Imgproc.FONT_HERSHEY_SIMPLEX;



public class VideoDet{
    final static String ROOTDIR = "E:\\ZxxProject\\darknet-master";   // 根路径
    final static float CONTHRES = 0.8f;  // 置信度阈值
    final static float NMSTHRES = 0.8f;   // iou阈值
    final static List<String> CLASSES = new ArrayList<>();  // 存放类别的列表集合(这里直接用的原模型,所以是80类)
    public static int count=0;//标记,用来间隔多少次来保存图片
    public static boolean judge=true;




    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值