若是通过json 的方式获取数据,则直接使用data1 = request.get_data() 获取字符传,然后使用json.loads(data2)进行转换
https://www.anaconda.com/products/individual#Downloads
下载对应版本anconda即可,这里不介绍anconda安装过程了。
安装可以参考:
https://blog.csdn.net/qq_43674360/article/details/123396415
anconda安装好后,conda可以创建多个运行环境,默认是base环境。这里为yolo创建一个环境。
打开CMD命令行,为yolov5创建一个环境,注意这里用的python版本是3.8,版本过低后面可能会报错
1
conda create -n yolo python=3.8
即可看到刚刚创建的yolo环境
1 2 3 4 5 6 7 8
D:\vsCodeWorkspace\python_test_20230415>conda info -e # conda environments: # fl C:\Users\dell\.conda\envs\fl mind07py375 C:\Users\dell\.conda\envs\mind07py375 myenv C:\Users\dell\.conda\envs\myenv yolo C:\Users\dell\.conda\envs\yolo base C:\python20230415\Anaconda3
即可切换到的yolo环境下了。记住退出CMD或者切换CMD窗口之后,如果想要进入yolo环境,都需要运行activate yolo指令。不然默认是在base环境下。
除此之外,进行yolo模型训练代码的编写需要用到jupyter notebook,所以需要在yolo环境下进行安装
1
conda install jupyter notebook
安装完成之后,只需要在yolo环境下输入
就会打开notebook,自动跳转到浏览器,打开notebook界面,之后会在notebook里进行训练yolo模型
https://github.com/ultralytics/yolov5
解压,可以看到里面有requirements.txt文件,里面记录了需要安装的包,这个txt文件可以帮助一键下载这些依赖包。
文件夹里也包含了train.py文件,这个也接下来训练yolo模型需要用到的启动文件。
接着上面的requirement.txt,介绍如何安装里面需要安装的依赖。首先打开下载好的yolov5_master 文件夹,在上面输入cmd回车,可以直接在该文件夹目录下打开命令行。
在cmd命令行打开之后,大家千万记得要切换到的yolo环境下,不然就安装到base环境中去了。
1
pip install -r requirements.txt
就会自动把这些依赖安装好了。接下来开始训练yolo模型了。
https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data
这里也简要介绍一遍过程,然后也为大家避坑,在训练前首先需要采集图片样本,然后再对图片中的待识别物体进行标注。
首先需要建立如下的文件夹images,labels和A.yaml文件:
D:\VSCODEWORKSPACE\PYTHON_TEST_20230415\YOLO_A
├─images
└─labels
└─A.yaml
所有文件放在yolo_A文件夹下,子文件夹images用来存放样本图片,labels文件夹用来存储标注信息。A.yaml文件用来存放一些目录信息和标志物分类。
这次测试的检测哆啦A梦的头像,采集了50张哆啦A梦的样本,放到images文件夹下:
https://github.com/tzutalin/labelImg
大家下载解压之后,首先要做的是删除
labelImg-master\data\predefined_classes.txt
txt文件中的内容,不然等会标记的时候会自动添加一些奇怪的类别。
然后在labelImg-master文件夹下打开cmd,进入的yolo环境中,然后还需要在yolo环境中安装一些labelimg运行需要的依赖,依次输入
1 2 3 4
activate yolo conda install pyqt=5 conda install -c anaconda lxml pyrcc5 -o libs/resources.py resources.qrc
现在,已经在yolo环境中安装好labelimg的依赖环境了,输入
即可进入的界面中来。进入之后,首先先把一些选项勾上,便于标记。
然后,最重要的是把标记模式改为yolo。
1 2 3 4 5 6 7 8
View 中标记前五个 Auto Save mode Single Class mode Display Labels Show/Hide Label Panel Advanced Mode 在保存下面的标记模式改为yolo
之后点击Open dir选择图片所在的images文件夹,选择之后会弹窗让你选择labels所在的文件夹。当然如果选错了,也可以点change save dir进行修改。
然后软件右上角打开这个选项,当标记图片后,就会自动帮归类到A了
现在就可以开始进行标记了,常用的快捷键,用主要wad三个键
1 2 3 4 5 6 7 8 9 10 11 12 13
Ctrl + u Load all of the images from a directory Ctrl + r Change the default annotation target dir Ctrl + s Save Ctrl + d Copy the current label and rect box Ctrl + Shift + d Delete the current image Space Flag the current image as verified w Create a rect box d Next image a Previous image del Delete the selected rect box Ctrl++ Zoom in Ctrl-- Zoom out ↑→↓← | Keyboard arrows to move selected rect box
通过鼠标拖拽框选即可标注:
所有图片标注好之后,再来看的labels文件夹,可以看到很多txt文件。每个文件都对应着标记的类别和框的位置:
最后还要做的是建立yaml文件,文件的位置也不要放错:
文件里面内容如下,其中train和val都是images的目录,labels的目录不用写进去,会自动识别。nc代表识别物体的种类数目,names代表种类名称,如果多个物体种类识别的话,可以自行增加。
1 2 3 4 5 6 7 8
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/] train: ../yolo_A/images/ val: ../yolo_A/images/ # number of classes nc: 1 # class names names: ['A meng']
到目前,的训练的图片材料就已经准备好了。
https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pyqt5-tools -i
https://pypi.tuna.tsinghua.edu.cn/simple/
pip install lxml -i
https://pypi.tuna.tsinghua.edu.cn/simple/
pip install labelImg -i
https://pypi.tuna.tsinghua.edu.cn/simple/
最后在中输入python labelimg.py启动。
http://www.nndssk.com/xtwt/122595A9Q5mb.html
https://raw.githubusercontent.com/instantbox/instantbox/master/docker-compose.yml
1
修改 docker-compose.yml 中SERVERURL,和对外访问的端口
version: ‘3’
services:
server:
image: instantbox/instantbox:latest
container_name: instantbox_server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- SERVERURL=<替换为服务器的IP>
networks:
- instantbox_net
frontend:
image: instantbox/instantbox-frontend:latest
container_name: instantbox_frontend
links:
- server
ports:
- <替换为端口>:80
networks:
- instantbox_net
cron:
image: instantbox/cron:latest
container_name: instantbox_cron
links:
- frontend
environment:
- CRON_STRINGS=* * * * * wget -qO /dev/null
http://frontend/api/v2/superinspire/prune
networks:
- instantbox_net
networks:
instantbox_net:
docker-compose up -d
```
Docker 将下载最新的 Instantbox 映像,
使用 Instantbox 在浏览器中访问 Linux 发行版
如果从同一本地网络上的另一台计算机访问,则需要查找主机的本地 IP 地址。
访问IP:端口
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;
1
mkdir -p /usr/local/src/jdk
1 2 3 4 5 6 7 8
spring: kafka: # 生产者配置 producer: # 序列化key的类 key-serializer: org.apache.kafka.common.serialization.StringSerializer # 反序列化value的类 value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
1 2 3 4 5 6 7 8 9 10
spring: kafka: # 消费者配置 consumer: # 消费者所属消息组 group-id: testGroup # 反序列化key的类 key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 反序列化value的类 value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
server: port: 8028 spring: kafka: # kafka连接接地址 bootstrap-servers: localhost:9092 # 生产者配置 producer: # 序列化key的类 key-serializer: org.apache.kafka.common.serialization.StringSerializer # 反序列化value的类 value-serializer: org.springframework.kafka.support.serializer.JsonSerializer # 消费者配置 consumer: # 消费者所属消息组 group-id: testGroup # 反序列化key的类 key-deserializer: org.apache.kafka.common.serialization.StringDeserializer # 反序列化value的类 value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
http://ip:18080/
账号:root,
密码:root
一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;