91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 11KB
    文件類型: .py
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: Python
  • 標簽: 車輛識別??

資源簡介

利用yolo實現簡單的車輛識別,從隨機初始化的權重訓練一個YOLO模型是非常重要的,需要大量的數據集和大量的計算資源,所以我們在這個練習中使用了預訓練的模型參數。你也可以嘗試用自己的數據集對YOLO模型進行微調。

資源截圖

代碼片段和文件信息

import?argparse
import?os
import?matplotlib.pyplot?as?plt
from?matplotlib.pyplot?import?imshow
import?scipy.io
import?scipy.misc
import?numpy?as?np
import?pandas?as?pd
import?PIL
import?tensorflow?as?tf
from?keras?import?backend?as?K
from?keras.layers?import?Input?Lambda?Conv2D
from?keras.models?import?load_model?Model
import?cv2

from?yad2k.models.keras_yolo?import?yolo_head?yolo_boxes_to_corners?preprocess_true_boxes?yolo_loss?yolo_body

import?yolo_utils

#?%matplotlib?inline
def?yolo_filter_boxes(box_confidence??boxes?box_class_probs?threshold?=?0.6):
????“““
????通過閾值來過濾對象和分類的置信度。

????參數:
????????box_confidence??-?tensor類型,維度為(191951)包含19x19單元格中每個單元格預測的5個錨框中的所有的錨框的pc?(一些對象的置信概率)。
????????boxes?-?tensor類型,維度為(191954),包含了所有的錨框的(pxpyphpw?)。
????????box_class_probs?-?tensor類型,維度為(1919580),包含了所有單元格中所有錨框的所有對象(?c1c2c3,···,c80?)檢測的概率。
????????threshold?-?實數,閾值,如果分類預測的概率高于它,那么這個分類預測的概率就會被保留。

????返回:
????????scores?-?tensor?類型,維度為(None),包含了保留了的錨框的分類概率。
????????boxes?-?tensor?類型,維度為(None4),包含了保留了的錨框的(b_x?b_y?b_h?b_w)
????????classess?-?tensor?類型,維度為(None),包含了保留了的錨框的索引

????注意:“None“是因為你不知道所選框的確切數量,因為它取決于閾值。
??????????比如:如果有10個錨框,scores的實際輸出大小將是(10)
????“““

????#第一步:計算錨框的得分
????box_scores??=?box_confidence?*?box_class_probs

????#第二步:找到最大值的錨框的索引以及對應的最大值的錨框的分數
????box_classes?=?K.argmax(box_scores?axis=-1)
????box_class_scores?=?K.max(box_scores?axis=-1)

????#第三步:根據閾值創建掩碼
????filtering_mask?=?(box_class_scores?>=?threshold)

????#對scores?boxes?以及?classes使用掩碼
????scores?=?tf.boolean_mask(box_class_scoresfiltering_mask)
????boxes?=?tf.boolean_mask(boxesfiltering_mask)
????classes?=?tf.boolean_mask(box_classesfiltering_mask)

????return?scores??boxes??classes

#?with?tf.Session()?as?test_a:
#?????box_confidence?=?tf.random_normal([191951]?mean=1?stddev=4?seed=1)
#?????boxes?=?tf.random_normal([191954]??mean=1?stddev=4?seed=1)
#?????box_class_probs?=?tf.random_normal([19?19?5?80]?mean=1?stddev=4?seed?=?1)
#?????scores?boxes?classes?=?yolo_filter_boxes(box_confidence?boxes?box_class_probs?threshold?=?0.5)
#
#?????print(“scores[2]?=?“?+?str(scores[2].eval()))
#?????print(“boxes[2]?=?“?+?str(boxes[2].eval()))
#?????print(“classes[2]?=?“?+?str(classes[2].eval()))
#?????print(“scores.shape?=?“?+?str(scores.shape))
#?????print(“boxes.shape?=?“?+?str(boxes.shape))
#?????print(“classes.shape?=?“?+?str(classes.shape))
#
#?????test_a.close()

def?iou(box1?box2):
????“““
????實現兩個錨框的交并比的計算

????參數:
????????box1?-?第一個錨框,元組類型,(x1?y1?x2?y2)
????????box2?-?第二個錨框,元組類型,(x1?y1?x2?y2)

????返回:
????????iou?-?實數,交并比。
????“““
????#計算相交的區域的面積
????xi1?=?np.maximum(box1[0]?box2[0])
????yi1?=?np.maximum(box1[1]?box2[1])
????xi2?=?np.minimum(box1[2]?box2[2])
????yi2?=?np.minimum(box1[3]?box2[3])
????inter_area?=?(xi1-xi2)*(yi1-yi2)

????#計算并集,公式為:Union(AB)?=?A?+?B?-?Inter(AB)
????box1_area?=?(box1[2]-box1[0])*(box1[3]-b

評論

共有 條評論

相關資源