mmdet

一,configs/_base_

1.default_runtime.py

2.schedule_1x.py

二,mmdet

1.datasets/coco.py/CocoDataset

    METAINFO = {'classes':('milk', 'red', 'spring', 'fanta', 'sprite', 'pepsi', 'king', 'ice', 'cola', 'scream'  ),# palette is a list of color tuples, which is used for visualization.'palette':[(220, 20, 60), (119, 11, 32), (0, 0, 142), (0, 0, 230), (106, 0, 228),(0, 60, 100), (0, 80, 100), (0, 0, 70), (0, 0, 192), (250, 170, 30)]}

2.evaluation/functional/class_names.py/coco_classes

    return ['milk', 'red', 'spring', 'fanta', 'sprite', 'pepsi', 'king', 'ice', 'cola', 'scream']

三,configs

1.yolov3_mobilenetv2_8xb24-ms-416-300e_coco.py

num_classes

data_root

ann_file

data_prefix

max_epochs

重新安裝:

pip install -v -e .

開始訓練:

python tools/train.py configs\yolo\yolov3_mobilenetv2_8xb24-ms-416-300e_coco.py
_base_ = ['../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py']
# model settings
data_preprocessor = dict(type='DetDataPreprocessor',mean=[123.675, 116.28, 103.53],std=[58.395, 57.12, 57.375],bgr_to_rgb=True,pad_size_divisor=32)
model = dict(type='YOLOV3',data_preprocessor=data_preprocessor,backbone=dict(type='MobileNetV2',out_indices=(2, 4, 6),act_cfg=dict(type='LeakyReLU', negative_slope=0.1),init_cfg=dict(type='Pretrained', checkpoint='open-mmlab://mmdet/mobilenet_v2')),neck=dict(type='YOLOV3Neck',num_scales=3,in_channels=[320, 96, 32],out_channels=[96, 96, 96]),bbox_head=dict(type='YOLOV3Head',num_classes=10, in_channels=[96, 96, 96],out_channels=[96, 96, 96],anchor_generator=dict(type='YOLOAnchorGenerator',base_sizes=[[(116, 90), (156, 198), (373, 326)],[(30, 61), (62, 45), (59, 119)],[(10, 13), (16, 30), (33, 23)]],strides=[32, 16, 8]),bbox_coder=dict(type='YOLOBBoxCoder'),featmap_strides=[32, 16, 8],loss_cls=dict(type='CrossEntropyLoss',use_sigmoid=True,loss_weight=1.0,reduction='sum'),loss_conf=dict(type='CrossEntropyLoss',use_sigmoid=True,loss_weight=1.0,reduction='sum'),loss_xy=dict(type='CrossEntropyLoss',use_sigmoid=True,loss_weight=2.0,reduction='sum'),loss_wh=dict(type='MSELoss', loss_weight=2.0, reduction='sum')),# training and testing settingstrain_cfg=dict(assigner=dict(type='GridAssigner',pos_iou_thr=0.5,neg_iou_thr=0.5,min_pos_iou=0)),test_cfg=dict(nms_pre=1000,min_bbox_size=0,score_thr=0.05,conf_thr=0.005,nms=dict(type='nms', iou_threshold=0.45),max_per_img=100))
# dataset settings
dataset_type = 'CocoDataset'
data_root = 'data/drink/'# Example to use different file client
# Method 1: simply set the data root and let the file I/O module
# automatically infer from prefix (not support LMDB and Memcache yet)# data_root = 's3://openmmlab/datasets/detection/coco/'# Method 2: Use `backend_args`, `file_client_args` in versions before 3.0.0rc6
# backend_args = dict(
#     backend='petrel',
#     path_mapping=dict({
#         './data/': 's3://openmmlab/datasets/detection/',
#         'data/': 's3://openmmlab/datasets/detection/'
#     }))
backend_args = Nonetrain_pipeline = [dict(type='LoadImageFromFile', backend_args=backend_args),dict(type='LoadAnnotations', with_bbox=True),dict(type='Expand',mean=data_preprocessor['mean'],to_rgb=data_preprocessor['bgr_to_rgb'],ratio_range=(1, 2)),dict(type='MinIoURandomCrop',min_ious=(0.4, 0.5, 0.6, 0.7, 0.8, 0.9),min_crop_size=0.3),dict(type='RandomResize', scale=[(320, 320), (416, 416)], keep_ratio=True),dict(type='RandomFlip', prob=0.5),dict(type='PhotoMetricDistortion'),dict(type='PackDetInputs')
]
test_pipeline = [dict(type='LoadImageFromFile', backend_args=backend_args),dict(type='Resize', scale=(416, 416), keep_ratio=True),dict(type='LoadAnnotations', with_bbox=True),dict(type='PackDetInputs',meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape','scale_factor'))
]train_dataloader = dict(batch_size=24,num_workers=4,persistent_workers=True,sampler=dict(type='DefaultSampler', shuffle=True),batch_sampler=dict(type='AspectRatioBatchSampler'),dataset=dict(type='RepeatDataset',  # use RepeatDataset to speed up trainingtimes=10,dataset=dict(type=dataset_type,data_root=data_root,ann_file='annotations/annotations_all.json',data_prefix=dict(img='images/'),filter_cfg=dict(filter_empty_gt=True, min_size=32),pipeline=train_pipeline,backend_args=backend_args)))
val_dataloader = dict(batch_size=24,num_workers=4,persistent_workers=True,drop_last=False,sampler=dict(type='DefaultSampler', shuffle=False),dataset=dict(type=dataset_type,data_root=data_root,ann_file='annotations/annotations_all.json',data_prefix=dict(img='images/'),test_mode=True,pipeline=test_pipeline,backend_args=backend_args))
test_dataloader = val_dataloaderval_evaluator = dict(type='CocoMetric',ann_file=data_root + 'annotations/annotations_all.json',metric='bbox',backend_args=backend_args)
test_evaluator = val_evaluatortrain_cfg = dict(max_epochs=30)# optimizer
optim_wrapper = dict(type='OptimWrapper',optimizer=dict(type='SGD', lr=0.003, momentum=0.9, weight_decay=0.0005),clip_grad=dict(max_norm=35, norm_type=2))# learning policy
param_scheduler = [dict(type='LinearLR',start_factor=0.0001,by_epoch=False,begin=0,end=4000),dict(type='MultiStepLR', by_epoch=True, milestones=[24, 28], gamma=0.1)
]find_unused_parameters = True# NOTE: `auto_scale_lr` is for automatically scaling LR,
# USER SHOULD NOT CHANGE ITS VALUES.
# base_batch_size = (8 GPUs) x (24 samples per GPU)
auto_scale_lr = dict(base_batch_size=24)# my settings
load_from = './checkpoints/yolov3_mobilenetv2_mstrain-416_300e_coco_20210718_010823-f68a07b3.pth'
work_dir = './work_dirs/yolov3_mobilenetv2_drink' 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65786.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ElasticSearch 認識和安裝ES

文章目錄 一、為什么學ElasticSearch?1.ElasticSearch 簡介2.ElasticSearch 與傳統數據庫的對比3.ElasticSearch 應用場景4.ElasticSearch 技術特點5.ElasticSearch 市場表現6.ElasticSearch 的發展 二、認識和安裝ES1.認識 Elasticsearch(簡稱 ES)2.El…

node.js中實現token的生成與驗證

Token(令牌)是一種用于在客戶端和服務器之間安全傳輸信息的加密字符串。在Web開發中,Token常用于身份驗證和授權,確保用戶能夠安全地訪問受保護的資源。 作用與意義 身份驗證:Token可以用來驗證用戶的身份&#xff0…

第34天:安全開發-JavaEE應用反射機制攻擊鏈類對象成員變量方法構造方法

時間軸: Java反射相關類圖解: 反射: 1、什么是 Java 反射 參考: https://xz.aliyun.com/t/9117 Java 提供了一套反射 API ,該 API 由 Class 類與 java.lang.reflect 類庫組成。 該類庫包含了 Field 、 Me…

Django后端相應類設計

通用的ApiResponse類:用于生成統一的 API 響應格式。每個響應都包含以下字段(每個接口最終的返回數據格式): status_code:HTTP 狀態碼(如 200、400、500 等)message:響應的描述信息…

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2)

汽車基礎軟件AutoSAR自學攻略(三)-AutoSAR CP分層架構(2) 下面我們繼續來介紹AutoSAR CP分層架構,下面的文字和圖來自AutoSAR官網目前最新的標準R24-11的分層架構手冊。該手冊詳細講解了AutoSAR分層架構的設計,下面讓我們來一起學習一下。 Introductio…

css面試常考布局(圣杯布局、雙飛翼布局、三欄布局、兩欄布局、三角形)

兩欄布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

模糊查詢在sqlserver、dm8、mysql的編寫示例

模糊查詢要求&#xff1a;字段值以 25D 開頭&#xff0c;并以 4 位數字結尾 sqlserver&#xff1a; select * from table_name where column_name like 25D[0-9][0-9][0-9][0-9] 說明&#xff1a; 25D&#xff1a;表示字符串以 25D 開頭。 [0-9][0-9][0-9][0-9]&#xf…

SCTNet模型詳解及代碼復現

模型背景 隨著深度學習技術的發展,語義分割領域取得了顯著進展。然而,在實際應用中,特別是在實時場景下,現有模型往往面臨計算復雜度高、難以平衡精度和速度等問題。為應對這些挑戰,研究人員提出了SCTNet模型,旨在解決實時語義分割問題,同時兼顧精度和效率。該模型融合…

Python的循環

Python的循環 Python的循環有兩種&#xff0c;分別是for…in循環和while循環。 for…in 循環 假設我們要循環輸出一個列表里的元素&#xff1a; names [張三,李四,王五] for name in names:print(name)執行這段代碼后&#xff0c;會依次打印names的每一個元素&#xff1a;…

【0387】Postgres內核 streaming replication(流復制)工作原理

1. Postgres 流復制 本文是關于設置 PostgreSQL 版本流復制的簡明指南,力求盡可能不受平臺限制。故而,其假定您擁有運用操作系統工具編輯文件及安裝/配置軟件包的扎實知識。并且,還假定您熟悉 PostgreSQL 的配置情況。 PostgreSQL 內置的流復制為您的數據庫構建了一個服務…

網絡攻擊行為可視化分析系統【數據分析 + 可視化】

一、系統背景 隨著信息技術的快速發展&#xff0c;網絡已成為現代社會不可或缺的一部分。然而&#xff0c;與此同時&#xff0c;網絡攻擊手段也日益多樣化和復雜化&#xff0c;給企業和個人的信息安全帶來了極大的威脅。傳統的網絡攻擊分析方法往往依賴于人工分析和處理大量的…

利用obs studio制作(人像+屏幕)錄制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能強大的開源軟件&#xff0c;它使用戶能夠直接從電腦錄制視頻和直播內容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平臺。它在需要直播或錄制屏幕活動的游戲玩家、YouTube 用戶和專業人士…

蠕蟲病毒會給服務器造成哪些危害?

蠕蟲病毒是一種獨立的惡意計算機程序&#xff0c;可以進行自我復制來傳播到其他的計算機系統當中&#xff0c;蠕蟲病毒和傳統病毒之間是有著區別的&#xff0c;蠕蟲病毒不需要宿主程序就能夠自行傳播&#xff0c;主要是利用各種操作系統漏洞進行攻擊的。 接下來小編就介紹一下蠕…

C# GDI+的DrawString無法繪制Tab鍵的現象

【啰嗦2句】 現在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以這個問題估計也冷門。沒關系&#xff0c;分享給特定需要的人也不錯。 【問題現象】 工作中開發了一個報告編輯器&#xff0c;實現圖文排版等功能&#xff0c;用著沒什么問題&#xff0c;直到有一天…

互斥信號量的等待與通知

目錄 等待互斥信號量 信號量未被占用 信號量被自己占用 信號量被高優先級任務占用 信號量被低優先級任務占用 釋放互斥信號量 未發生優先級繼承 發生優先級繼承 等待互斥信號量 信號量未被占用 標記為已經被占用鎖定計數1 信號量被自己占用 鎖定計數1 信號量被高優先級任務占用…

夯實前端基礎之HTML篇

知識點概覽 HTML部分 1. DOM和BOM有什么區別&#xff1f; DOM&#xff08;Document Object Model&#xff09; 當網頁被加載時&#xff0c;瀏覽器會創建頁面的對象文檔模型&#xff0c;HTML DOM 模型被結構化為對象樹 用途&#xff1a; 主要用于網頁內容的動態修改和交互&…

Qt資源文件以及文件加密

1、Qt資源文件 在Qt中&#xff0c;資源文件&#xff08;.qrc&#xff09;是一種方便的方式來管理應用程序中的多媒體文件&#xff0c;如圖像、圖標和其他資源。這些文件使用XML格式定義&#xff0c;并在編譯時嵌入到應用程序的二進制文件中。 創建資源文件的步驟如下&#xff…

深入詳解人工智能自然語言處理(NLP)之文本處理:分詞、詞性標注、命名實體識別

【自然語言處理】——深入詳解人工智能自然語言處理&#xff08;NLP&#xff09;之文本處理&#xff1a;分詞、詞性標注、命名實體識別 自然語言處理&#xff08;Natural Language Processing&#xff0c;簡稱NLP&#xff09;是人工智能的一個重要分支&#xff0c;涉及如何使計…

SD ComfyUI工作流 老照片修復上色

文章目錄 老照片修復上色SD模型Node節點工作流程開發與應用效果展示老照片修復上色 該工作流專門設計用于老照片的修復和上色,通過一系列高級的圖像處理技術,包括深度圖預處理、面部修復、上色和圖像放大等步驟,來恢復老照片的質量并增加色彩。首先,工作流加載老照片并進行…

后端技術選型 sa-token校驗學習 下 結合項目學習 前后端登錄

目錄 后端設置 Controller 層 Service 層 后端返回 Token 給前端 1. 用戶提交登錄請求 2. 后端驗證用戶身份 3. 返回 Token 4. 前端保存 Token 前端存儲 1. 前端向后端發起請求 2. 前端存儲一下 Token 3.管理用戶認證的 token 的 工具 4. 在 Service 層進行設置 H…