【问题标题】:How can I convert a Darknet label file to regular x,y,w,h?如何将暗网标签文件转换为常规 x、y、w、h?
【发布时间】:2019-09-03 02:46:01
【问题描述】:

很抱歉在这里问这个问题,但我已经研究了好几天了,我不知道要使用什么公式。我希望有人知道我能做什么,谢谢!

所以我正在尝试为暗网制作一个 GUI 工具,但前面显示的小方块位置错误。

图片尺寸:1024 x 683 标签文件中的注释行:0 0.6681250000000001 0.510788 0.09750000000000003 0.15103200000000006

我正在尝试像这样获得x,y,w,h

    var convertDarknetImageLabelsToMatrices = function(loadedImage){
        // loadedImage = {
        //     annotation: "0 0.6681250000000001 0.510788 0.09750000000000003 0.15103200000000006",
        //     dimensions: {
        //         height: 683,
        //         width: 1024
        //     }
        // }
            var width = loadedImage.dimensions.width
            var height = loadedImage.dimensions.height
            var matrices = []
            var labels = loadedImage.annotation.split('\n')
            labels.forEach(function(label){
                if(!label)return
                var lineParts = label.split(' ')
                var classNumber = lineParts[0]
                var x = lineParts[1] * width / 2
                var y = lineParts[2] * height / 2
                var w = lineParts[3] * width
                var h = lineParts[4] * height
                matrices.push({
                    classNumber: classNumber,
                    tag: loadedImage.className,
                    x: x,
                    y: y,
                    w: w,
                    h: h,
                    imageWidth: width,
                    imageHeight: height
                })
            })
            return matrices
    }

解析部分是

                var x = lineParts[1] * width / 2
                var y = lineParts[2] * height / 2
                var w = lineParts[3] * width
                var h = lineParts[4] * height

我添加了/2,因为它似乎使它更接近。在某些图像上,它几乎在单个轴上是精确的,例如 X 会对齐但 Y 会偏离。我试图找出一个静态公式,但它总是在打开另一个图像时偏离其他方向。

训练本身很好,我只是不能稍后在 UI 中编辑/查看框:(

谢谢!如果您需要更多信息,请告诉我!

【问题讨论】:

    标签: javascript darknet


    【解决方案1】:

    感谢所有查看并考虑回答的人。我刚刚想通了!这是我需要用于解析的内容。

                    var w = lineParts[3] * width
                    var h = lineParts[4] * height
                    var x = (lineParts[1] * width) - w / 2
                    var y = (lineParts[2] * height) - h / 2
    

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多