<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【CV基礎】語義分割任務計算類別權重

      前言

       語義分割任務一般都存在樣本類別不平衡的問題,采用類別權重來解決這個問題,本文記錄類別權重的計算過程。

      類別權重計算的基本思路

       

      code

      # 20240620: calculate class weights with semantic segmentation gt images.
      import os
      import numpy as np
      import cv2 as cv
      
      void_classes = [2, 4, 10, 12, 16, 17, 19, 21, 25, 30, 32, 33, 35]
      valid_classes = [0, 1, 3, 5, 6, 7, 8, 9, 11, 13, 14, 15, 18, 20, 22, 23, 24, 26, 27, 28, 29, 31, 34]
      
      # edgeai-torchvision
      def calc_median_frequency(classes, present_num):
          """
          Class balancing by median frequency balancing method.
          Reference: https://arxiv.org/pdf/1411.4734.pdf
             'a = median_freq / freq(c) where freq(c) is the number of pixels
              of class c divided by the total number of pixels in images where
              c is present, and median_freq is the median of these frequencies.'
          """
          class_freq = classes / present_num
          median_freq = np.median(class_freq)
          return median_freq / class_freq
      
      # edgeai-torchvision
      def calc_log_frequency(classes, value=1.02):
          """Class balancing by ERFNet method.
             prob = each_sum_pixel / each_sum_pixel.max()
             a = 1 / (log(1.02 + prob)).
          """
          class_freq = classes / classes.sum()  # ERFNet is max, but ERFNet is sum
          # print(class_freq)
          # print(np.log(value + class_freq))
          return 1 / np.log(value + class_freq)
      
      def calculate_class_weight_present(path):
          # edgeai-torchvision
          gtpath = os.path.join(path, 'gt')
          class_counts = np.zeros(len(valid_classes), dtype="f")
          class_freq = np.zeros(len(valid_classes), dtype="f")
          class_weights = np.zeros(len(valid_classes))
          present_num = np.zeros(len(valid_classes), dtype="f")
          for filename in os.listdir(gtpath):  
              # print('filename: ', filename)
              if filename.endswith('.png') or filename.endswith('.jpg'): 
                  filepath = os.path.join(gtpath, filename)  
                  gtimg = cv.imread(filepath, cv.IMREAD_GRAYSCALE)  
                  if gtimg is not None:
                      # for i in range(len(valid_classes)):
                      #    class_counts[i] += np.sum(gtimg == valid_classes[i])
                      for i, classid in enumerate(valid_classes): 
                          num_pixel = np.sum(gtimg == classid)
                          if num_pixel:
                              class_counts[i] += np.sum(gtimg == classid)
                              present_num[i] += 1
      
          for i, count in enumerate(class_counts):  
              class_freq[i] = count / present_num[i] if present_num[i] > 0 else 0
          # print('class_freq: ', class_freq)
          medval = np.median(class_freq)
          # print('medval: ', medval)
          for i, freq in enumerate(class_freq):  
              # class_weights[i] = medval / freq
              class_weights[i] = medval / freq if freq > 0 else 0
          print(class_weights)
          # for i, weight in enumerate(class_weights):  
          #     print(f"類別 {valid_classes[i]}: 權重 = {weight}")  
      
          # Normalization
          # # 對權重進行歸一化,使它們的和為1(可選步驟,取決于你的應用)
          # class_weights = class_weights / class_weights.sum()
          # for i, weight in enumerate(class_weights):  
          #     print(f"類別 {valid_classes[i]}: 權重 = {weight}")  
      
      
      
      def calculate_class_weight_all(path):
          gtpath = os.path.join(path, 'gt')
          class_counts = np.zeros(len(valid_classes), dtype=np.int64)
          class_weights = np.zeros(len(valid_classes))
          for filename in os.listdir(gtpath):  
              # print('filename: ', filename)
              if filename.endswith('.png') or filename.endswith('.jpg'): 
                  filepath = os.path.join(gtpath, filename)  
                  gtimg = cv.imread(filepath, cv.IMREAD_GRAYSCALE)  
                  if gtimg is not None:
                      # for i in range(len(valid_classes)):
                      #    class_counts[i] += np.sum(gtimg == valid_classes[i])
                      for i, classid in enumerate(valid_classes): 
                          class_counts[i] += np.sum(gtimg == classid)
      
          total_pixels = class_counts.sum()
          # print('class_counts: \n', class_counts)
          # print('totalpixel: ', total_pixels)
          medval = np.median(class_counts)
          # print('medval: ', medval)
          for i, count in enumerate(class_counts):  
              class_weights[i] = medval / count if count > 0 else 0
          print(class_weights)
          # for i, weight in enumerate(class_weights):  
          #     print(f"類別 {valid_classes[i]}: 權重 = {weight}")  
          # Normalization
      
          # # 對權重進行歸一化,使它們的和為1(可選步驟,取決于你的應用)
          # class_weights = class_weights / class_weights.sum()
          # for i, weight in enumerate(class_weights):  
          #     print(f"類別 {valid_classes[i]}: 權重 = {weight}")  
      
      
      if __name__ == "__main__":
          path = os.path.dirname(os.path.realpath(__file__))
          # calculate_class_weight_all(path)
          # print("\n\n\n  start present \n\n\n")
          calculate_class_weight_present(path)
      View Code

       

      參考

      posted on 2024-12-09 16:32  鵝要長大  閱讀(92)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 99精品国产综合久久久久五月天| 绥芬河市| 国产精品一二三中文字幕| 97久久超碰亚洲视觉盛宴| 国产无遮挡免费真人视频在线观看| 色欲国产精品一区成人精品| 风韵丰满妇啪啪区老老熟女杏吧| 午夜精品久久久久久久2023| 国产精品老熟女一区二区| 性动态图无遮挡试看30秒| 产综合无码一区| 乱女伦露脸对白在线播放| 91九色国产成人久久精品| 国产成人精品视频不卡| 国产精品无码av不卡| 亚洲精品综合第一国产综合| 亚洲欧美成人aⅴ在线| av亚洲一区二区在线| 国产一区二区不卡在线| 亚洲色av天天天天天天| 册亨县| 国产系列高清精品第一页| 国产片AV国语在线观看手机版| 欧美大胆老熟妇乱子伦视频| 中文在线а√天堂| 蜜桃AV抽搐高潮一区二区| 精品国产午夜理论片不卡| 日本丰满老妇bbb| 国产精品成人亚洲一区二区| 高清中文字幕国产精品| 亚洲色大成永久WW网站| 日韩大片看一区二区三区| 亚洲国产色婷婷久久99精品91| 东京热高清无码精品| 七台河市| 亚洲国产成人无码电影| 国产亚洲精品岁国产精品| 亚洲自偷自偷在线成人网站传媒| 久久精品夜色国产亚洲av| 色妞www精品免费视频| 国产综合色一区二区三区|