国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

統(tǒng)計數(shù)據集中目標大、中、小個數(shù)【需要用到y(tǒng)olo的txt標注文件數(shù)據,其他格式數(shù)據不一定適用】

這篇具有很好參考價值的文章主要介紹了統(tǒng)計數(shù)據集中目標大、中、小個數(shù)【需要用到y(tǒng)olo的txt標注文件數(shù)據,其他格式數(shù)據不一定適用】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

統(tǒng)計數(shù)據集中目標大、中、小個數(shù)

最近看到一篇論文,其中在數(shù)據集介紹部分統(tǒng)計了大、中、小目標信息。因此,為了獲取數(shù)據集的統(tǒng)計信息,我參考了作者寫的代碼基于tensorpack統(tǒng)計coco數(shù)據集中大、中、小目標的數(shù)量
統(tǒng)計數(shù)據集中目標大、中、小個數(shù)【需要用到y(tǒng)olo的txt標注文件數(shù)據,其他格式數(shù)據不一定適用】,yolov5,python,人工智能,機器學習

精簡版代碼如下(內有多個參數(shù)需要修改,仔細查看注釋)文章來源地址http://www.zghlxwxcb.cn/news/detail-641956.html

# 1、統(tǒng)計數(shù)據集中小、中、大 GT的個數(shù)
# 2、統(tǒng)計某個類別小、中、大 GT的個數(shù)
# 3、統(tǒng)計數(shù)據集中ss、sm、sl GT的個數(shù)
import os
from pathlib import Path
import matplotlib.pyplot as plt

# 設置中文字體為微軟雅黑
plt.rcParams['font.sans-serif'] = 'SimHei'


def getGtAreaAndRatio(label_dir):
    """
    得到不同尺度的gt框個數(shù)
    :params label_dir: label文件地址
    :return data_dict: {dict: 3}  3 x {'類別':{’area':[...]}, {'ratio':[...]}}
    """
    data_dict = {}
    assert Path(label_dir).is_dir(), "label_dir is not exist"

    txts = os.listdir(label_dir)  # 得到label_dir目錄下的所有txt GT文件

    for txt in txts:  # 遍歷每一個txt文件
        with open(os.path.join(label_dir, txt), 'r') as f:  # 打開當前txt文件 并讀取所有行的數(shù)據
            lines = f.readlines()

        for line in lines:  # 遍歷當前txt文件中每一行的數(shù)據
            temp = line.split()  # str to list{5}
            coor_list = list(map(lambda x: x, temp[1:]))  # [x, y, w, h]
            area = float(coor_list[2]) * float(coor_list[3])  # 計算出當前txt文件中每一個gt的面積
            # center = (int(coor_list[0] + 0.5*coor_list[2]),
            #           int(coor_list[1] + 0.5*coor_list[3]))
            ratio = round(float(coor_list[2]) / float(coor_list[3]), 2)  # 計算出當前txt文件中每一個gt的 w/h

            if temp[0] not in data_dict:
                data_dict[temp[0]] = {}
                data_dict[temp[0]]['area'] = []
                data_dict[temp[0]]['ratio'] = []

            data_dict[temp[0]]['area'].append(area)
            data_dict[temp[0]]['ratio'].append(ratio)

    return data_dict


def getSMLGtNumByClass(data_dict, class_num):
    """
    計算某個類別的小物體、中物體、大物體的個數(shù)
    params data_dict: {dict: 3}  3 x {'類別':{’area':[...]}, {'ratio':[...]}}
    params class_num: 類別  0, 1, 2
    return s: 該類別小物體的個數(shù)  0 < area <= 0.5%
           m: 該類別中物體的個數(shù)  0.5% < area <= 1%
           l: 該類別大物體的個數(shù)  area > 1%
    """
    s, m, l = 0, 0, 0
    # 圖片的尺寸大小 注意修改!!!
    h = 960
    w = 540
    for item in data_dict['{}'.format(class_num)]['area']:
        if item * h * w <= h * w * 0.005:
            s += 1
        elif item * h * w <= h * w * 0.010:
            m += 1
        else:
            l += 1
    return s, m, l


def getAllSMLGtNum(data_dict, isEachClass=False):
    """
    數(shù)據集所有類別小、中、大GT分布情況
    isEachClass 控制是否按每個類別輸出結構
    """
    S, M, L = 0, 0, 0
    # 需要手動初始化下,有多少個類別就需要寫多個
    classDict = {'0': {'S': 0, 'M': 0, 'L': 0}, '1': {'S': 0, 'M': 0, 'L': 0}, '2': {'S': 0, 'M': 0, 'L': 0},
                 '3': {'S': 0, 'M': 0, 'L': 0}}

    print(classDict['0']['S'])
    # range(class_num)類別數(shù) 注意修改!!!
    if isEachClass == False:
        for i in range(4):
            s, m, l = getSMLGtNumByClass(data_dict, i)
            S += s
            M += m
            L += l
        return [S, M, L]
    else:
        for i in range(4):
            S = 0
            M = 0
            L = 0
            s, m, l = getSMLGtNumByClass(data_dict, i)
            S += s
            M += m
            L += l
            classDict[str(i)]['S'] = S
            classDict[str(i)]['M'] = M
            classDict[str(i)]['L'] = L
        return classDict


# 畫圖函數(shù)
def plotAllSML(SML):
    x = ['S:[0, 32x32]', 'M:[32x32, 96x96]', 'L:[96*96, 640x640]']
    fig = plt.figure(figsize=(10, 8))  # 畫布大小和像素密度
    plt.bar(x, SML, width=0.5, align="center", color=['skyblue', 'orange', 'green'])
    for a, b, i in zip(x, SML, range(len(x))):  # zip 函數(shù)
        plt.text(a, b + 0.01, "%d" % int(SML[i]), ha='center', fontsize=15, color="r")  # plt.text 函數(shù)
    plt.xticks(fontsize=15)
    plt.yticks(fontsize=15)
    plt.xlabel('gt大小', fontsize=16)
    plt.ylabel('數(shù)量', fontsize=16)
    plt.title('廣佛手病蟲害訓練集小、中、大GT分布情況(640x640)', fontsize=16)
    plt.show()
    # 保存到本地
    # plt.savefig("")


if __name__ == '__main__':
    labeldir = r'E:\project\py-project\network\dataset\UA-DETRAC-G2\labels\val'
    data_dict = getGtAreaAndRatio(labeldir)
    # 1、數(shù)據集所有類別小、中、大GT分布情況
    # 控制是否按每個類別輸出結構
    isEachClass = False
    SML = getAllSMLGtNum(data_dict, isEachClass)
    print(SML)
    if not isEachClass:
        plotAllSML(SML)

到了這里,關于統(tǒng)計數(shù)據集中目標大、中、小個數(shù)【需要用到y(tǒng)olo的txt標注文件數(shù)據,其他格式數(shù)據不一定適用】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Arcgis像元統(tǒng)計數(shù)據

    Arcgis像元統(tǒng)計數(shù)據

    現(xiàn)有一幅NDVI影像,如何知道影像中NDVI的分布情況呢? 先柵格轉點,然后在屬性表中查看匯總情況 還有一種方法就是在ENVI中打開, -0.3-0.338占據了99% 現(xiàn)有多幅NDVI影像,如何知道這幾個時間上,某個像元NDVI的平均值、最大最小值等統(tǒng)計情況呢?

    2024年01月21日
    瀏覽(15)
  • 【SAS應用統(tǒng)計分析】數(shù)據的描述性統(tǒng)計分析

    【SAS應用統(tǒng)計分析】數(shù)據的描述性統(tǒng)計分析

    聲明:本文知識參考內容來自網絡,如有侵權請聯(lián)系刪除。本文還參照了B站up主莊7的課程內容【公開課】數(shù)據分析與SAS【15課】 目錄 實驗原理 描述性統(tǒng)計量 1.反映數(shù)據集中趨勢的特征量 2.反映數(shù)據離散程度的特征量 3.反映數(shù)據分布形狀的特征量 數(shù)據的圖形描述 直方圖 箱線

    2024年02月01日
    瀏覽(24)
  • 編寫sql統(tǒng)計一段時間內,每天、每月、每年的統(tǒng)計數(shù)據(PostgreSQL)

    編寫sql統(tǒng)計一段時間內,每天、每月、每年的統(tǒng)計數(shù)據(PostgreSQL)

    前言 在做數(shù)據統(tǒng)計頁面時,總會遇到統(tǒng)計某段時間內,每天、每月、每年的數(shù)據視圖(柱狀圖、折線圖等)。這些統(tǒng)計數(shù)據一眼看過去也簡單呀,不就是按照時間周期(天、月、年)對統(tǒng)計數(shù)據進行分個組就完了嘛?但是會有一個問題,簡單的寫個sql對周期分組,獲取到的統(tǒng)

    2024年02月12日
    瀏覽(59)
  • 中國綠色專利分地區(qū)統(tǒng)計數(shù)據

    一、數(shù)據簡介 ? ? ? ?根據知識產權局2018年發(fā)布的《中國綠色專利統(tǒng)計報告(2014-2017年)》可知,當前我國的綠色創(chuàng)新活動活躍,綠色專利擁有量逐步提升,截至2017年底,我國綠色專利有效量達13.6萬件,在專利申請方面,2014年至2017年,我國綠色專利申請量達24.9萬件,年均

    2024年02月06日
    瀏覽(17)
  • 用Python做數(shù)據分析之數(shù)據統(tǒng)計

    接下來說說數(shù)據統(tǒng)計部分,這里主要介紹數(shù)據采樣,標準差,協(xié)方差和相關系數(shù)的使用方法。 1、數(shù)據采樣 Excel 的數(shù)據分析功能中提供了數(shù)據抽樣的功能,如下圖所示。Python 通過 sample 函數(shù)完成數(shù)據采樣。 2、數(shù)據抽樣 Sample 是進行數(shù)據采樣的函數(shù),設置 n 的數(shù)量就可以了。函

    2024年02月07日
    瀏覽(21)
  • 大數(shù)據-玩轉數(shù)據-Flink 網站UV統(tǒng)計

    在實際應用中,我們往往會關注,到底有多少不同的用戶訪問了網站,所以另外一個統(tǒng)計流量的重要指標是網站的獨立訪客數(shù)(Unique Visitor,UV)。 對于UserBehavior數(shù)據源來說,我們直接可以根據userId來區(qū)分不同的用戶。 將userid放到SET集合里面,統(tǒng)計集合長度,便可以統(tǒng)計到網

    2024年02月11日
    瀏覽(25)
  • 【數(shù)據分析】統(tǒng)計量

    【數(shù)據分析】統(tǒng)計量

    1. 均值、眾數(shù)描述數(shù)據的集中趨勢度量,四分位差、極差描述數(shù)據的離散程度。 2. 標準差、四分位差、異眾比率度量離散程度,協(xié)方差是度量相關性。 ?期望值分別為E[X]與E[Y]的兩個實隨機變量X與Y之間的協(xié)方差Cov(X,Y)定義為: 從直觀上來看,協(xié)方差表示的是兩個變量總體誤

    2024年02月11日
    瀏覽(28)
  • 【pandas基礎】--數(shù)據統(tǒng)計

    【pandas基礎】--數(shù)據統(tǒng)計

    在進行統(tǒng)計分析時, pandas 提供了多種工具來幫助我們理解數(shù)據。 pandas 提供了多個聚合函數(shù),其中包括均值、標準差、最大值、最小值等等。 此外, pandas 還可以進行基于列的統(tǒng)計分析,例如通過 groupby() 函數(shù)對數(shù)據進行聚合,并計算每組的統(tǒng)計分析結果。 除了基本的統(tǒng)計分

    2024年02月08日
    瀏覽(20)
  • Mysql按小時進行分組統(tǒng)計數(shù)據

    Mysql按小時進行分組統(tǒng)計數(shù)據

    目錄 前言 按1小時分組統(tǒng)計 按2小時分組統(tǒng)計 按X小時分組統(tǒng)計 統(tǒng)計數(shù)據時這種是最常見的需求場景,今天寫需求時發(fā)現(xiàn)按2小時進行分組統(tǒng)計也特別簡單,特此記錄下。 sql: 返回值: 沒啥好說的,直接使用 hour() 函數(shù)獲取時間字段的小時部分進行分組統(tǒng)計即可 sql: 返回值:

    2024年02月13日
    瀏覽(25)
  • 數(shù)據挖掘與數(shù)據分析之統(tǒng)計知識篇

    數(shù)據挖掘與數(shù)據分析之統(tǒng)計知識篇

    統(tǒng)計學上, 自由度 是指當以樣本的 統(tǒng)計量 估計 總體 的參數(shù)時, 樣本中獨立或能自由變化的數(shù)據個數(shù)叫自由度 。一般來說,自由度等于獨立變量減掉其衍生量數(shù)。舉例來說,變異數(shù)的定義是樣本減平均值(一個由樣本決定的衍生量),因此對N個隨機樣本而言,其自由度為N

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包