YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代,它重新定义了尖端精度、速度和效率的可能性。在以往YOLO版本的令人印象深刻的进步基础上,YOLO11在架构和训练方法上引入了重大改进,使其成为广泛计算机视觉任务的多功能选择。

此模型可以做很多很酷的事情,比如:
主要特点
数据集信息
在此项目中使用的美国手语(ASL)数据集来源自Roboflow Universe/duyguj/american-sign-language-letters。所有数据集中的图像都预先标记,确保了准确的训练数据。此外,还在Roboflow中应用了数据增强技术以增加数据集的多样性,提高了模型的泛化能力。采用了翻转、旋转和亮度调整等技术。详细链接:https://app.roboflow.com/duyguj/american-sign-language-letters-vouo0/1
该数据集包含总共1224张图像,分为三组:
预处理:
数据增强:
每个训练示例由于增强而有两个输出,包括:
这种设置旨在通过让模型接触多样化的输入来提高其泛化能力。
训练过程
YOLO11模型在此ASL数据集上进行了微调,专门用于手语目标检测。这个训练过程包括:
性能和观察
最终模型在随机手语图像和视频上进行了测试,以观察其在现实世界中的表现。结果显示了在实时检测不同ASL标志方面的有希望的结果,证明了YOLO11架构在处理复杂、基于手势的任务方面的有效性。
设置和初始化
访问GPU
我们可以使用nvidia-smi命令来做到这一点。如果遇到任何问题,请导航到“编辑”->“笔记本设置”->“硬件加速器”,将其设置为GPU。
# “注意:此设置适用于kaggle”
!pip install ultralytics supervision roboflow
from IPython import display
display.clear_output()
!pip install ultralytics --quiet
import ultralytics
ultralytics.checks()加载数据集
1. 配置API密钥以加载数据集
为了微调YOLO11,你需要提供你的Roboflow API密钥。请按照以下步骤操作:
# Save the API key in Kaggle
from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
secret_value_0 = user_secrets.get_secret("my_api_key")# Roboflow Dataset API Code
!pip install roboflow --quiet
from roboflow import Roboflow
rf = Roboflow(secret_value_0)
project = rf.workspace("duyguj").project("american-sign-language-letters-vouo0")
version = project.version(1)
dataset = version.download("yolov11")模型训练
# Changing to the working directory in Kaggle
%cd /kaggle/working
# Training the YOLO model
!yolo task=detect mode=train model=yolo11n.pt data=/kaggle/working/American-Sign-Language-Letters-1/data.yaml epochs=10 imgsz=640 plots=True
#Results saved to runs/detect/train
#Learn more at https://docs.ultralytics.com/modes/trainfrom IPython.display import Image as IPyImage
# Display the confusion matrix image from the specified directory in Kaggle
IPyImage(filename='/kaggle/working/runs/detect/train/confusion_matrix.png', width=1000)
IPyImage(filename=f'/kaggle/working/runs/detect/train/results.png', width=1000)
IPyImage(filename=f'/kaggle/working/runs/detect/train/val_batch0_pred.jpg', width=1000)
预测
# Run the prediction task on Test Data
!yolo task=detect mode=predict model=/kaggle/working/runs/detect/train/weights/best.pt conf=0.25 source=/kaggle/working/American-Sign-Language-Letters-1/test/images save=True
#Results saved to runs/detect/predict
#💡 Learn more at https://docs.ultralytics.com/modes/predictimport glob
import os
from IPython.display import Image as IPyImage, display
# Get the latest prediction folder for detection in Kaggle
latest_folder = max(glob.glob('/kaggle/working/runs/detect/predict*/'), key=os.path.getmtime)
# Display images from the prediction folder
for img in glob.glob(f'{latest_folder}/*.jpg')[15:18]:
display(IPyImage(filename=img, width=300))

完整代码:https://www.kaggle.com/code/duygujones/sign-language-detection-using-yolo11