130 lines
6.4 KiB
C#
130 lines
6.4 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
|
||
namespace yolov5_onnx.Mod
|
||
{
|
||
public class YoloCocoP5Model : YoloModel
|
||
{
|
||
|
||
public override int Width { get; set; } = 640; //輸入影像的寬度
|
||
public override int Height { get; set; } = 640; //輸入影像的高度
|
||
public override int Depth { get; set; } = 3; //輸入圖像的深度(通常為3,表示RGB影像)
|
||
|
||
public override int Dimensions { get; set; } = 7; //類別數 通常維類別數+5
|
||
|
||
public override int[] Strides { get; set; } = new int[] { 8, 16, 32 }; //模型的步幅數組
|
||
|
||
public override int[][][] Anchors { get; set; } = new int[][][]
|
||
{
|
||
new int[][] { new int[] { 010, 13 }, new int[] { 016, 030 }, new int[] { 033, 023 } },
|
||
new int[][] { new int[] { 030, 61 }, new int[] { 062, 045 }, new int[] { 059, 119 } },
|
||
new int[][] { new int[] { 116, 90 }, new int[] { 156, 198 }, new int[] { 373, 326 } }
|
||
}; // 锚點數組,用於目標回歸
|
||
|
||
public override int[] Shapes { get; set; } = new int[] { 80, 40, 20 }; //模型輸出的形狀數組
|
||
|
||
public override float Confidence { get; set; } = 0.6f; //預測信心度閾值
|
||
public override float MulConfidence { get; set; } = 0.25f; //用於多類別預測的信心度縮放因子
|
||
public override float Overlap { get; set; } = 0.3f; //重疊閾值,用於非級大值抑制(NMS)
|
||
|
||
public override string[] Outputs { get; set; } = new[] { "output" }; //模型的輸出層名稱組數(P5為output,P6為output0)
|
||
|
||
public override List<YoloLabel> Labels { get; set; } = new List<YoloLabel>()
|
||
{
|
||
new YoloLabel { Id = 1, Name = "weld bead"},
|
||
new YoloLabel { Id = 2, Name = "solder joint"},
|
||
//new YoloLabel { Id = 1, Name = "person" },
|
||
//new YoloLabel { Id = 2, Name = "bicycle" },
|
||
new YoloLabel { Id = 3, Name = "Point" },
|
||
new YoloLabel { Id = 4, Name = "Point" },
|
||
new YoloLabel { Id = 5, Name = "airplane" },
|
||
new YoloLabel { Id = 6, Name = "bus" },
|
||
new YoloLabel { Id = 7, Name = "train" },
|
||
new YoloLabel { Id = 8, Name = "truck" },
|
||
new YoloLabel { Id = 9, Name = "boat" },
|
||
new YoloLabel { Id = 10, Name = "Point" },
|
||
new YoloLabel { Id = 11, Name = "fire hydrant" },
|
||
new YoloLabel { Id = 12, Name = "stop sign" },
|
||
new YoloLabel { Id = 13, Name = "parking meter" },
|
||
new YoloLabel { Id = 14, Name = "bench" },
|
||
new YoloLabel { Id = 15, Name = "bird" },
|
||
new YoloLabel { Id = 16, Name = "cat" },
|
||
new YoloLabel { Id = 17, Name = "dog" },
|
||
new YoloLabel { Id = 18, Name = "horse" },
|
||
new YoloLabel { Id = 19, Name = "sheep" },
|
||
new YoloLabel { Id = 20, Name = "cow" },
|
||
new YoloLabel { Id = 21, Name = "elephant" },
|
||
new YoloLabel { Id = 22, Name = "bear" },
|
||
new YoloLabel { Id = 23, Name = "zebra" },
|
||
new YoloLabel { Id = 24, Name = "giraffe" },
|
||
new YoloLabel { Id = 25, Name = "backpack" },
|
||
new YoloLabel { Id = 26, Name = "umbrella" },
|
||
new YoloLabel { Id = 27, Name = "handbag" },
|
||
new YoloLabel { Id = 28, Name = "tie" },
|
||
new YoloLabel { Id = 29, Name = "suitcase" },
|
||
new YoloLabel { Id = 30, Name = "frisbee" },
|
||
new YoloLabel { Id = 31, Name = "skis" },
|
||
new YoloLabel { Id = 32, Name = "snowboard" },
|
||
new YoloLabel { Id = 33, Name = "sports ball" },
|
||
new YoloLabel { Id = 34, Name = "kite" },
|
||
new YoloLabel { Id = 35, Name = "baseball bat" },
|
||
new YoloLabel { Id = 36, Name = "baseball glove" },
|
||
new YoloLabel { Id = 37, Name = "skateboard" },
|
||
new YoloLabel { Id = 38, Name = "surfboard" },
|
||
new YoloLabel { Id = 39, Name = "tennis racket" },
|
||
new YoloLabel { Id = 40, Name = "bottle" },
|
||
new YoloLabel { Id = 41, Name = "wine glass" },
|
||
new YoloLabel { Id = 42, Name = "cup" },
|
||
new YoloLabel { Id = 43, Name = "fork" },
|
||
new YoloLabel { Id = 44, Name = "knife" },
|
||
new YoloLabel { Id = 45, Name = "spoon" },
|
||
new YoloLabel { Id = 46, Name = "bowl" },
|
||
new YoloLabel { Id = 47, Name = "banana" },
|
||
new YoloLabel { Id = 48, Name = "apple" },
|
||
new YoloLabel { Id = 49, Name = "sandwich" },
|
||
new YoloLabel { Id = 50, Name = "orange" },
|
||
new YoloLabel { Id = 51, Name = "broccoli" },
|
||
new YoloLabel { Id = 52, Name = "carrot" },
|
||
new YoloLabel { Id = 53, Name = "hot dog" },
|
||
new YoloLabel { Id = 54, Name = "pizza" },
|
||
new YoloLabel { Id = 55, Name = "donut" },
|
||
new YoloLabel { Id = 56, Name = "cake" },
|
||
new YoloLabel { Id = 57, Name = "chair" },
|
||
new YoloLabel { Id = 58, Name = "couch" },
|
||
new YoloLabel { Id = 59, Name = "potted plant" },
|
||
new YoloLabel { Id = 60, Name = "bed" },
|
||
new YoloLabel { Id = 61, Name = "dining table" },
|
||
new YoloLabel { Id = 62, Name = "toilet" },
|
||
new YoloLabel { Id = 63, Name = "tv" },
|
||
new YoloLabel { Id = 64, Name = "laptop" },
|
||
new YoloLabel { Id = 65, Name = "mouse" },
|
||
new YoloLabel { Id = 66, Name = "remote" },
|
||
new YoloLabel { Id = 67, Name = "keyboard" },
|
||
new YoloLabel { Id = 68, Name = "cell phone" },
|
||
new YoloLabel { Id = 69, Name = "microwave" },
|
||
new YoloLabel { Id = 70, Name = "oven" },
|
||
new YoloLabel { Id = 71, Name = "toaster" },
|
||
new YoloLabel { Id = 72, Name = "sink" },
|
||
new YoloLabel { Id = 73, Name = "refrigerator" },
|
||
new YoloLabel { Id = 74, Name = "book" },
|
||
new YoloLabel { Id = 75, Name = "clock" },
|
||
new YoloLabel { Id = 76, Name = "vase" },
|
||
new YoloLabel { Id = 77, Name = "scissors" },
|
||
new YoloLabel { Id = 78, Name = "teddy bear" },
|
||
new YoloLabel { Id = 79, Name = "hair drier" },
|
||
new YoloLabel { Id = 80, Name = "toothbrush" }
|
||
};
|
||
|
||
public override bool UseDetect { get; set; } = true; //是否使用對象檢測功能
|
||
|
||
public YoloCocoP5Model()
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|