下载模型和配置文件
-
本次实战所需要的文件有两种下载方式,您二选一即可
-
第一种是从官方下载,从下面这三个地址分别下下载:
-
YOLOv4配置文件: https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4.cfg
-
YOLOv4权重: https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
-
分类名称: 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.ServletWebServerApplicationContext : 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
- 部署完成,接下来体验服务验证效果
验证效果
- 浏览器访问http://192.168.50.27:8080,这里的192.168.50.27请改成docker宿主机IP(要关闭防火墙!),可见操作页面如下图(欣宸的前端开发水平渣到令人发指,果然不是空穴来风):
- 按照上图红框的提示,选择一张照片并点击提交按钮,短暂等待后展示如下页面:
- 去看docker的控制台,也输出了识别的日志:
2021-10-19 07:39:57.830 : 文件 [person.jpg], 大小 [113880]
2021-10-19 07:39:59.303 : 一共检测到3个目标
2021-10-19 07:39:59.306 : 类别[person],置信度[99.78939%]
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
[外链图片转存中…(img-6xzXs3n9-1714548534256)]