【DigiKey创意大赛】石头剪刀布之AI时代+No3.数据采集、数据标注以及训练初探
[复制链接]
数据采集:
通过树莓派,采集数据,参考了:https://blog.csdn.net/black_sneak/article/details/131374492 部分内容,适配最新的树莓派bookworm 64bit-OS;
如果跑AI, 建议下载64bit OS, 新手不建议下载最新的OS, 教程都是用的老的OS, 这里躺了很多坑,但是部署上还是有些问题,因此 后续可能要采用bullseye 64bit-OS;
#!/usr/bin/python3
from picamera2 import Picamera2
import cv2
from threading import Thread
import uuid
import os
import time
count = 0
def image_collect(picam2):
global count
while True:
img = picam2.capture_array()
file_name = str(uuid.uuid4())+'.jpg'
cv2.imwrite(os.path.join('images',file_name),img)
count = count+1
print("save %d %s"%(count,file_name))
time.sleep(0.4)
if __name__ == "__main__":
os.makedirs("images",exist_ok=True)
# 打开摄像头
#cap = cv2.VideoCapture(0)
tuning=Picamera2.load_tuning_file("imx219_noir.json")
picam2 = Picamera2(tuning=tuning)
#picam2.set_controls
picam2.configure(picam2.create_preview_configuration(main={"format": 'XRGB8888', "size": (640, 480)}))
picam2.start()
m_thread = Thread(target=image_collect, args=([picam2]),daemon=True)
while True:
# 读取一帧图像
#success, img = cap.read()
img = picam2.capture_array()
cv2.imshow("video",img)
key = cv2.waitKey(1) & 0xFF
# 按键 "q" 退出
if key == ord('c'):
m_thread.start()
continue
elif key == ord('q'):
break
picam2.stop()
#cap.release()
数据标注:
有手动标注,有自动标注;
手动标注:可使用labelmee软件;
自动标注:Auto LabelImg
数据训练初探:
因为yolo算法有很多种类,目前尚未确定使用哪种算法,因此首先使用 进行training,
有很多环境的问题需要解决,因为楼主采用了比较高的python版本。
经过了一系列摸索,终于探究明白,该如何配置环境:
0.如果电脑有NV卡,可去下载cuda,具体安装可搜索网上;Pythorch: https://pytorch.org/get-started/locally/ (这一步不需要) ,cuda下载: https://developer.nvidia.com/cuda-toolkit-archive
1. win环境或者linux下,下载https://www.anaconda.com/download, 配合社区版本pycharm,
2. 在anaconda下创建环境,这个环境用来跑training, python尽量选择符合你选择的AI算法的版本,不要太高.
3. 下载pycharm社区版,创建project, 选择 的gitclone目录, 然后选择interpretor, 选择到anaconda刚刚创建的环境;
4. 安装依赖 pip install -r requirements.txt
以下为例子:
Python>=3.6.0 is required with all requirements.txt installed including PyTorch>=1.7:
$ git clone https://github.com/ppogg/YOLOv5-Lite
$ cd YOLOv5-Lite
$ pip install -r requirements.txt
pycharm:
训练成果:
PC端训练基本上能跑了,训练应该还有一些坑需要探究,怎么部署还在研究中,感觉东西很多,比较难搞,PI OS用的比较新,下一步尝试用上一版 OS, 看看问题会不会少一些吧
|