写点什么

三分钟:极速体验 JAVA 版目标检测 (YOLO4)

  • 2021 年 11 月 11 日
  • 本文字数:2270 字

    阅读完需:约 7 分钟

  • 可以,今天咱们用最少的时间、最简单的操作来体验这个实用的功能,您提交一张普通照片后,会看到下图效果,原照片上的狗子、人、马都被识别出来,每个识别框的左上角是类别和置信度,最后,图片左上角还有本次识别所用时间:



  • 接下来请随本文一起动手来实现上述效果,整个过程分三步完成:


  1. 下载模型和配置文件

  2. 运行 docker 容器,这是个 web 服务,咱们用浏览器访问此服务,提交照片完成检测

  3. 验证效果(在浏览器上打开 web 页面,提交图片,等待检测结果)

风险提前告知

  • 为了简化操作,接下来会用到 docker,对应的镜像体积巨大,达到了恐怖的 1.57G,建议您为自己的 docker 做好加速配置,可以减少下载等待时间;

  • 由于 opencv 体积庞大,再加上 javacv 的依赖库也不小,这才导致超大镜像的出现,还望您多多海涵,标题中的《三分钟》是要去掉镜像的等待时间的,您要是觉得欣宸的标题起得很无耻,我觉得您是对的…

环境信息

  • 本次实战推荐的环境信息如下:


  1. 操作系统:Ubuntu 16(MacBook Pro 也可以,版本是 11.2.3,macOS Big Sur)

  2. docker:20.10.2 Community


  • 不多说了,立即动手!

下载模型和配置文件

  • 本次实战所需要的文件有两种下载方式,您二选一即可

  • 第一种是从官方下载,从下面这三个地址分别下下载:


  1. YOLOv4 配置文件: https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4.cfg

  2. YOLOv4 权重: https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

  3. 分类名称: https://raw.githubusercontent.com/AlexeyAB/darknet/master/data/coco.names


  • 第二种是从 csdn 下载(无需积分),上述三个文件我已打包放在此:https://download.csdn.net/download/boling_cavalry/33229838

  • 上述两种方式无论哪种,最终都会得到三个文件:yolov4.cfg、yolov4.weights、coco.names,请将它们放在同一目录下,我是放在这里:/home/will/temp/202110/19/model

  • 新建一个目录用来存放照片,我这里新建的目录是:/home/will/temp/202110/19/images,注意要确保该目录可以读写

  • 最终目录结构如下所示:


/home/will/temp/202110/19/


├── images


└── model


├── coco.names


├── yolov4.cfg


└── yolov4.weights

运行 docker 容器

  • 执行以下命令即可完成服务部署(注意刚才提到的两个目录都被映射到容器中了):


sudo docker run \


--rm \


--name yolodemo \


-p 8080:8080 \


-v /home/will/temp/202110/19/images:/app/images \


-v /home/will/temp/202110/19/model:/app/model \


bolingcavalry/yolodemo:0.0.1


  • 控制台会输出 springboot 的启动信息:


. ____ _ __ _ _


/\ / _' __ _ () __ __ _ \ \ \ \


( ( )___ | '_ | '| | ' / _` | \ \ \ \


\/ _)| |)| | | | | || (| | ) ) ) )


' || .__|| ||| |__, | / / / /


=========||==============|/=///_/


:: Spring Boot :: (v2.4.8)


2021-10-19 07:39:20.112 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : Starting YoloDemoApplication using Java 1.8.0_292 on 06e6b68f43ca with PID 1 (/app started by root in /)


2021-10-19 07:39:20.115 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : No active profile set, falling back to default profiles: default


2021-10-19 07:39:20.997 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)


2021-10-19 07:39:21.010 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]


2021-10-19 07:39:21.010 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.48]


2021-10-19 07:39:21.083 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext


2021-10-19 07:39:21.084 INFO 1 --- [ main] w.s.c.Servlet


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


WebServerApplicationContext : Root WebApplicationContext: initialization completed in 915 ms


2021-10-19 07:39:21.157 ERROR 1 --- [ main] c.b.y.controller.YoloServiceController : file.encoding is utf-8


2021-10-19 07:39:23.449 INFO 1 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index


2021-10-19 07:39:23.627 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''


2021-10-19 07:39:23.640 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : Started YoloDemoApplication in 3.893 seconds (JVM running for 4.329)


2021-10-19 07:39:49.872 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'


2021-10-19 07:39:49.872 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'


2021-10-19 07:39:49.873 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms


  • 部署完成,接下来体验服务验证效果

验证效果

评论

发布
暂无评论
三分钟:极速体验JAVA版目标检测(YOLO4)