ショートカット

v3.x の変更履歴

v3.3.0 (2024/01/05)

ハイライト

Grounding-DINO は、Open-Vocabulary Detection (OVD)、Phrase Grounding (PG)、Referring Expression Comprehension (REC) など、複数の視覚タスクに取り組む最先端のオープンセット検出モデルです。その有効性から、さまざまなダウンストリームアプリケーションの主流アーキテクチャとして広く採用されています。しかし、その重要性にもかかわらず、オリジナルの Grounding-DINO モデルは、トレーニングコードが入手できないため、包括的な公開技術詳細が不足しています。このギャップを埋めるために、MMDetection ツールボックスで構築された、オープンソースで包括的かつユーザーフレンドリーなベースラインである MM-Grounding-DINO を発表します。これは、プリトレーニング用の豊富なビジョンデータセットと、ファインチューニング用のさまざまな検出およびグラウンディングデータセットを採用しています。各報告された結果の包括的な分析と、再現のための詳細な設定を提供します。言及されたベンチマークでの広範な実験により、当社の MM-Grounding-DINO-Tiny が Grounding-DINO-Tiny ベースラインを上回ることが示されています。すべてのモデルを研究コミュニティにリリースします。

新機能

  • RTMDet Swin / ConvNeXt バックボーンと結果を追加 (#11259)

  • GLIPodinw 設定と評価結果を追加 (#11175)

  • coco_error_analysis.py にオプションのスコア閾値オプションを追加 (#11117)

  • panoptic_fpn の新しい設定を追加 (#11109)

  • Faster-RCNN の部分的に重み付けされたダウンロードリンクを OpenXLab に置き換え (#11173)

バグ修正

  • クラス トークンが 256 を超える場合の Grounding DINO の nan を修正 (#11066)

  • CO-DETR 設定ファイルのエラーを修正 (#11325)

  • 設定の CO-DETR load_from url を修正 (#11220)

  • Albu 後処理後のマスク形状を修正 (#11280)

  • convert_coco_format および youtubevis2coco のバグを修正 (#11251, #11086)

貢献者

合計 15 人の開発者がこのリリースに貢献しました。

@adnan-mujagic, @Cycyes, @ilcopione, @returnL, @honeybadger78, @okotaku, @xushilin1, @keyhsw, @guyleaf, @Crescent-Saturn, @LRJKD, @aaronzs, @Divadi, @AwePhD, @hhaAndroid に感謝します。

v3.2.0 (2023/12/10)

ハイライト

(1) 検出トランスフォーマー SOTA モデルコレクション

  • DDQ、CO-DETR、AlignDETR、H-DINO の 4 つの更新されたより強力な SOTA トランスフォーマーモデルをサポートしました。

  • CO-DETR に基づいて、MMDet は 64.1 mAP の COCO パフォーマンスを持つモデルをリリースしました。

  • DINO などのアルゴリズムは、メモリ使用量を効果的に削減できる AMP/Checkpoint/FrozenBN をサポートしています。

(2) CNN とトランスフォーマーの包括的な性能比較

RF100 は、7 つのドメインを含む 100 の現実世界のデータセットのデータセットコレクションで構成されています。さまざまなシナリオやデータ量での DINO のようなトランスフォーマーモデルと CNN ベースのアルゴリズムの性能差を評価するために使用できます。ユーザーは、このベンチマークを利用して、さまざまなシナリオでのアルゴリズムの堅牢性を迅速に評価できます。

(3) GLIP および Grounding DINO ファインチューニングのサポート、Grounding DINO ファインチューニングをサポートする唯一のアルゴリズムライブラリ

MMDet の Grounding DINO アルゴリズムは、ファインチューニングをサポートする唯一のライブラリです。そのパフォーマンスは公式バージョンよりも 1 ポイント高く、もちろん GLIP も公式バージョンを上回っています。カスタムデータセットでの Grounding DINO のトレーニングと評価の詳細なプロセスも提供します。皆様、ぜひお試しください。

(4) オープンボキャブラリー検出アルゴリズム Detic と複数データセットの共同トレーニングのサポート。

(5) FSDP と DeepSpeed を使用した検出モデルのトレーニング。

(6) 13,000 を超えるカテゴリを持つ大規模検出データセットである V3Det データセットのサポート。

新機能

  • CO-DETR/DDQ/AlignDETR/H-DINO をサポート

  • GLIP および Grounding DINO ファインチューニングをサポート

  • Detic と複数データセットのトレーニングをサポート (#10926)

  • V3Det とベンチマークをサポート (#10938)

  • Roboflow 100 ベンチマークをサポート (#10915)

  • グラウンディングダイノのカスタムデータセットを追加 (#11012)

  • RTMDet-X p6 をリリース (#10993)

  • DINO の AMP をサポート (#10827)

  • FrozenBN をサポート (#10845)

  • QDTrack/DETR/RTMDet/MaskRCNN/DINO/DeformableDETR/MaskFormer アルゴリズムの新しい設定ファイルを追加

  • WBF をサポートする新しいスクリプトを追加 (#10808)

  • large_image_demo を追加 (#10719)

  • OpenXLab からのデータセットのダウンロードをサポート (#10799)

  • DETR シリーズモデルの torch2onnx のサポートを更新 (#10910)

  • 英語ドキュメントの中国語への翻訳 (#10744, #10756, #10805, #10848)

バグ修正

  • DETR metafile.yml の名前エラーを修正 (#10595)

  • set_nms のテンソルのデバイスを修正 (#10574)

  • en/ ドキュメントからいくつかのユニコード文字を削除 (#10648)

  • mim スクリプトでのデータセットのダウンロードを修正 (#10727)

  • torchserve へのエクスポートを修正 (#10694)

  • mask-rcnn_r50_fpn_1x-wandb_coco のタイプミスを修正 (#10757)

  • voc_metriceval_recalls エラーを修正 (#10770)

  • torch バージョンの比較を修正 (#10934)

  • analyze_results.py の ConcatDataset からトレーニングパイプラインにアクセスする際の間違った動作を修正 (#11004)

改善点

  • useful_tools.md を更新 (#10587)

  • インスタンスセグメンテーションチュートリアルを更新 (#10711)

  • train.py を新しい設定と互換性を持たせるために更新 (#11025)

  • maskformer シリーズの torch2onnx をサポート (#10782)

貢献者

合計 36 人の開発者がこのリリースに貢献しました。

@YQisme、@nskostas、@max-unfinity、@evdcush、@Xiangxu-0103、@ZhaoCake、@RangeKing、@captainIT、@ODAncona、@aaronzs、@zeyuanyin、@gotjd709、@Musiyuan、@YanxingLiu、@RunningLeon、@ytzfhqs、@zhangzhidaSunny、@yeungkong、@crazysteeaam、@timerring、@okotaku、@apatsekin、@Morty-Xu、@Markson-Young、@ZhaoQiiii、@Kuro96、@PhoenixZ810、@yhcao6、@myownskyW7、@jiongjiongli、@Johnson-Wang、@ryylcc、@guyleaf、@agpeshal、@SimonGuoNjust、@hhaAndroid に感謝します。

v3.1.0 (2023/06/30)

ハイライト

  • マルチオブジェクトトラッキング (MOT) アルゴリズム SORT、DeepSORT、StrongSORT、OCSORT、ByteTrack、QDTrack、およびビデオインスタンスセグメンテーション (VIS) アルゴリズム MaskTrackRCNN、Mask2Former-VIS などのトラッキングアルゴリズムをサポートします。

  • ViTDet をサポート

  • マルチモーダルアルゴリズム GLIP および XDecoder の推論と評価をサポートし、COCO セマンティックセグメンテーション、COCO キャプション、ADE20k 一般セグメンテーション、RefCOCO などのデータセットもサポートします。GLIP ファインチューニングは将来サポートされる予定です。

  • MMDetection の画像タイプタスク用の gradio デモを提供し、ユーザーが簡単に体験できるようにします。

新機能

  • DSDL データセットをサポート (#9801)

  • iSAID データセットをサポート (#10028)

  • VISION データセットをサポート (#10530)

  • SoftTeacher チェックポイントをリリース (#10119)

  • centernet-update_r50-caffe_fpn_ms-1x_coco チェックポイントをリリース (#10327)

  • SIoULoss をサポート (#10290)

  • Eqlv2 ロスをサポート (#10120)

  • マスクが利用できない場合の CopyPaste をサポート (#10509)

  • MIMによるODLデータセットのダウンロードをサポート (#10460)

  • 新しい設定をサポート (#10566)

バグ修正

  • Windowsでのベンチマークスクリプトのエラーを修正 (#10128)

  • YOLOXModeSwitchHookが、切り替え後にチェックポイントから再開した場合にモードを切り替えないエラーを修正 (#10116)

  • SmoothL1Lossでのpredとweightの次元の不一致を修正 (#10423)

改善点

  • MMDet_Tutorial.ipynbを更新 (#10081)

  • 推論の進捗を非表示にする機能をサポート (#10519)

  • mmclsをmmpretrainに置き換え (#10545)

貢献者

このリリースには合計29人の開発者が貢献しました。

@lovelykite, @minato-ellie, @freepoet, @wufan-tb, @yalibian, @keyakiluo, @gihanjayatilaka, @i-aki-y, @xin-li-67, @RangeKing, @JingweiZhang12, @MambaWong, @lucianovk, @tall-josh, @xiuqhou, @jamiechoi1995, @YQisme, @yechenzhi, @bjzhb666, @xiexinch, @jamiechoi1995, @yarkable, @Renzhihan, @nijkah, @amaizr, @Lum1104, @zwhus, @Czm369, @hhaAndroid に感謝します

v3.0.0 (2023/6/4)

ハイライト

  • 半自動アノテーションベースのLabel-Studioをサポート (#10039)

  • プロジェクトでEfficientDetをサポート (#9810)

新機能

  • ファイルI/Oの移行と再構築 (#9709)

  • DINO Swin-L 36eモデルをリリース (#9927)

バグ修正

  • ベンチマークスクリプトを修正 (#9865)

  • PolygonMasksの切り抜き方法を修正 (#9858)

  • マスク形状を持つAlbu拡張を修正 (#9918)

  • RTMDetInsの事前生成デバイスエラーを修正 (#9964)

  • データパイプラインのimg_shapeを修正 (#9966)

  • cityscapesのインポートエラーを修正 (#9984)

  • solov2_r50_fpn_ms-3x_coco.pyの設定エラーを修正 (#10030)

  • Conditional DETRのAPとログを修正 (#9889)

  • PyTorch 2.0で予期しない引数local-rankを受け入れる問題を修正 (#10050)

  • common/ms_3x_coco-instance.pyの設定エラーを修正 (#10056)

  • 計算flopsエラーを修正 (#10051)

  • CocoOccludedSeparatedMetricdata_rootを削除してバグを修正 (#9969)

  • metafile.ymlを統一 (#9849)

改善点

  • BoxInst r101の設定を追加 (#9967)

  • 設定移行ガイドを追加 (#9960)

  • ソーシャルネットワーキングリンクを追加 (#10021)

  • RTMDet設定の紹介を追加 (#10042)

  • 視覚化ドキュメントを追加 (#9938, #10058)

  • data_prepareドキュメントを改良 (#9935)

  • PyTorch 2.0でdynamoのcache_size_limitパラメータの設定をサポート (#10054)

  • coco_metric.pyを更新 (#10033)

  • 型ヒントを更新 (#10040)

貢献者

このリリースには合計19人の開発者が貢献しました。

@IRONICBo, @vansin, @RangeKing, @Ghlerrix, @okotaku, @JosonChan1998, @zgzhengSE, @bobo0810, @yechenzh, @Zheng-LinXiao, @LYMDLUT, @yarkable, @xiejiajiannb, @chhluo, @BIGWangYuDong, @RangiLy, @zwhus, @hhaAndroid, @ZwwWayne に感謝します

v3.0.0rc6 (2023/2/24)

ハイライト

  • BoxinstObjects365 Dataset、およびSeparated and Occluded COCO metricをサポート

  • ConvNeXt-V2DiffusionDet、およびProjectsでのEfficientDetDeticの推論をサポート

  • DETRシリーズをリファクタリングし、Conditional-DETRDAB-DETR、およびDINOをサポート

  • 推論、テスト時拡張、およびレジストリからのモジュールの自動インポートのために、DetInferencerをサポート

  • RTMDet-Ins ONNXRuntimeとTensorRTデプロイメントをサポート

  • 検出器のFLOPsを計算する機能をサポート

新機能

  • Boxinstをサポート (#9525)

  • Objects365 Datasetをサポート (#9600)

  • ProjectsConvNeXt-V2をサポート (#9619)

  • ProjectsDiffusionDetをサポート (#9639, #9768)

  • ProjectsDeticの推論をサポート (#9645)

  • ProjectsEfficientDetの推論をサポート (#9645)

  • Separated and Occluded COCO metricをサポート (#9710)

  • レジストリからのモジュールの自動インポートをサポート (#9143)

  • DETRシリーズをリファクタリングし、Conditional-DETR、DAB-DETR、DINOをサポート (#9646)

  • 推論のためにDetInferencerをサポート (#9561)

  • テスト時拡張をサポート (#9452)

  • 検出器のFLOPsの計算をサポート (#9777)

バグ修正

  • 新しいバージョンのnumpyによる古い型エイリアスの非推奨を修正 (#9625, #9537)

  • VOCメトリクスを修正 (#9784)

  • RTMDet-xログのリンクの間違いを修正 (#9549)

  • READMEのRTMDetリンクを修正 (#9575)

  • MMDet get flopsエラーを修正 (#9589)

  • RTMDetのuse_depthwiseを修正 (#9624)

  • マスクを使用したalbumentations拡張の後処理を修正 (#9551)

  • DETRシリーズの単体テストを修正 (#9647)

  • LoadPanopticAnnotationsのバグを修正 (#9703)

  • isortCIを修正 (#9680)

  • ampプーリングのオーバーフローを修正 (#9670)

  • DINOのノイズに関するドキュメントを修正 (#9747)

  • MultiImageMixDatasetの潜在的なバグを修正 (#9764)

改善点

  • NumPyの転置をPyTorchの順列に置き換えて高速化 (#9762)

  • sklearnを非推奨に (#9725)

  • RTMDet-Insデプロイメントガイドを追加 (#9823)

  • RTMDet設定とREADMEを更新 (#9603)

  • チュートリアルドキュメントで使用されているモデルをRTMDetに置き換え (#9843)

  • サポートされている最小のPythonバージョンを3.7に調整 (#9602)

  • 構成を介してパレットを変更する機能をサポート (#9445)

  • ProjectのREADMEドキュメントを更新 (#9599)

  • .pre-commit-config-zh-cn.yamlファイルでgithubgiteeに置き換え (#9586)

  • .pre-commit-config.yamlファイルで公式のisortを使用 (#9701)

  • dev-3.xのMMCV最小バージョンを2.0.0rc4に変更 (#9695)

  • single_stage_as_rpn.mdとtest_results_submission.mdの中国語版を追加 (#9434)

  • OpenDataLabダウンロードリンクを追加 (#9605, #9738)

  • いくつかのレイヤーの型ヒントを追加 (#9346)

  • DarknetBottleneckの型ヒントを追加 (#9591)

  • dockerfileを追加 (#9659)

  • twitter、discord、medium、およびyoutubeのリンクを追加 (#9775)

  • refactor-detrのマージを準備 (#9656)

  • ConditionalDETR、DABDETR、DINOにmetafileを追加 (#9715)

  • non_blockingパラメータを変更する機能をサポート (#9723)

  • コメントリピータービジュアライザーレジスタ (#9740)

  • ユーザーガイドを更新:finetune.mdinference.md (#9578)

新しい貢献者

貢献者

このリリースには合計27人の開発者が貢献しました。

@JosonChan1998, @RangeKing, @NoFish-528, @likyoo, @Xiangxu-0103, @137208, @PeterH0323, @tianleiSHI, @wufan-tb, @lyviva, @zwhus, @jshilong, @Li-Qingyun, @sanbuphy, @zylo117, @triple-Mu, @KeiChiTse, @LYMDLUT, @nijkah, @chg0901, @DanShouzhu, @zytx121, @vansin, @BIGWangYuDong, @hhaAndroid, @RangiLyu, @ZwwWayne に感謝します

v3.0.0rc5 (2022/12/26)

ハイライト

新機能

  • RTMDetインスタンスセグメンテーションモデルをサポートし、RTMDetテスト設定を改善 (#9494)

  • SSH: Single Stage Headless Face Detectorの論文のSSHContextModuleをサポート (#8953)

  • CondInst事前トレーニング済みモデルをリリース (#9406)

バグ修正

  • 推論時にbatch_sizeが1より大きい場合にCondInst予測エラーを修正 (#9400)

  • パイプライン出力画像のdtypeがuint8でない場合にデータセットを閲覧するときの視覚化のバグを修正 (#9401)

  • analyze_logs.pyを修正して、mAPをプロットし、トレーニング時間を正しく計算 (#9409)

  • PAFPN における後方非インプレースエラーを修正 (#9450)

  • モデルコンバーターでの設定インポートリンクを修正 (#9441)

  • DeformableDETRHead オブジェクトに属性 loss_single がない問題を修正 (#9477)

  • SemiBaseDetector における教師モデルによって予測された擬似バウンディングボックスのロジックを修正 (#9414)

  • インスタンスセグメンテーションチュートリアルにおけるデモ API を修正 (#9226)

  • analyze_results を修正 (#9380)

  • Readthedocs API が表示されないエラーを修正 (#9510)

  • 予測結果がない場合のエラーを修正し、TTA の groundtruth の可視化をサポート (#9840)

改善点

  • レガシーな builder.py を削除 (#9479)

  • パイプライン引数の形状が (幅, 高さ) の順序であることを確認 (#9324)

  • .pre-commit-config-zh-cn.yaml ファイルを追加 (#9388)

  • データセットのメタ情報を小文字にリファクタリング (#9469)

  • CI に PyTorch 1.13 のチェックを追加 (#9478)

  • FocalLoss および QualityFocalLoss を調整し、さまざまな種類のターゲットを許可 (#9481)

  • setup.cfg をリファクタリング (#9370)

  • 彩度値を有効範囲 [0, 1] にクリップ (#9391)

  • モデル公開時に meta と state_dict のみ保持 (#9356)

  • ms-poly_3x_coco_instance 設定に segm evaluator を追加 (#9524)

  • デプロイメントガイドを更新 (#9527)

  • zh_cn の faq.md を更新 (#9396)

  • get_started を更新 (#9480)

  • useful_tools.md および useful_hooks.md の zh_cn ユーザーガイドを更新 (#9453)

  • bfp および channel_mapper の型ヒントを追加 (#9410)

  • いくつかの損失の型ヒントを追加 (#9397)

  • タスクモジュールの型ヒントを追加し、ドキュメント文字列を更新 (#9468)

新しい貢献者

貢献者

合計 20 人の開発者がこのリリースに貢献しました。

@liuyanyi, @RangeKing, @lihua199710, @MambaWong, @sanbuphy, @Xiangxu-0103, @twmht, @JunyaoHu, @Chan-Sun, @tianleiSHI, @zytx121, @kitecats, @QJC123654, @JosonChan1998, @lvhan028, @Czm369, @BIGWangYuDong, @RangiLyu, @hhaAndroid, @ZwwWayne に感謝します

v3.0.0rc4 (2022/11/23)

ハイライト

  • CondInst をサポート

  • 実験的なモデル/機能のための場所となる projects/ フォルダを追加。

  • projectsSparseInst をサポート

新機能

  • CondInst をサポート (#9223)

  • 実験的なモデル/機能のための場所となる projects/ フォルダを追加 (#9341)

  • projectsSparseInst をサポート (#9377)

バグ修正

  • MaskFormer Head における pixel_decoder_type の判別を修正 (#9176)

  • キャッシュされた MixUp における誤ったパディング値を修正 (#9259)

  • collect_env エラーを修正するために utils/typing.pyutils/typing_utils.py に名前変更 (#9265)

  • 再開引数の競合を修正 (#9287)

  • caffe バックボーンを使用した Faster R-CNN の設定を修正 (#9319)

  • torchserve を修正し、関連ドキュメントを更新 (#9343)

  • シグモイドアクティベーションによる bbox リファインのバグを修正 (#9538)

改善点

  • README における GIoU Loss のドキュメントを更新 (#8810)

  • inference_detector におけるデータセットラッパーを処理 (#9144)

  • COCO の圧縮 RLE における counts の型を更新 (#9274)

  • print_config での設定ファイルの保存をサポート (#9276)

  • ビデオ推論に関するドキュメントを更新 (#9305)

  • モデルデプロイに関するガイドを更新 (#9344)

  • 便利なツールのドキュメントのタイプミスを修正 (#9177)

  • CLI で特定のチェックポイントからの再開を許可 (#9284)

  • pycocotools の Windows インストールに関する FAQ を更新 (#9292)

新しい貢献者

貢献者

合計 12 人の開発者がこのリリースに貢献しました。

@sanbuphy, @Czm369, @Daa98, @jbwang1997, @BIGWangYuDong, @JosonChan1998, @lvhan028, @RunningLeon, @RangiLyu, @Daa98, @ZwwWayne, @hhaAndroid に感謝します

v3.0.0rc3 (2022/11/4)

VOC データセットのトレーニングのために ConcatDatasetignore_key を使用するために、MMEngine の最小バージョン要件を 0.3.0 にアップグレード (#9058)

ハイライト

  • CrowdDet および EIoU Loss をサポート

  • Detectron2 での検出モデルのトレーニングをサポート

  • Fast R-CNN をリファクタリング

新機能

  • CrowdDet をサポート (#8744)

  • Mask R-CNN、Faster R-CNN、および RetinaNet の例を使用して、Detectron2 での検出モデルのトレーニングをサポート (#8672)

  • EIoU Loss をサポート (#9086)

バグ修正

  • XMLDataset の画像サイズエラーを修正 (#9216)

  • roi_head で NMS なしで予測する場合の empty_instances のバグを修正 (#9015)

  • DETR の設定ファイルを修正 (#9158)

  • SOLOv2 が空の gt 画像を処理できない問題を修正 (#9192)

  • 推論デモを修正 (#9153)

  • VOC の ConcatDatasetignore_key を追加 (#9058)

  • テストスクリプトでの結果のダンプ問題を修正 (#9241)

  • MMDet 3.x での COCO サブセットのトレーニングの設定を修正 (#9225)

  • 空のバウンディングボックスをサポートするための HorizontalBoxes の corner2hbox を修正 (#9140)

改善点

  • Fast R-CNN をリファクタリング (#9132)

  • SyncBN による mmcv-full の要件をクリーンアップ (#9207)

  • Detectron2 での検出モデルのトレーニングをサポート (#8672)

  • DynamicSoftLabelAssignerbox_type サポートを追加 (#9179)

  • scipy をランタイムのデフォルトの依存関係にする (#9187)

  • eval_metric を更新 (#9062)

  • BaseDetDatasetseg_map_suffix を追加 (#9088)

新しい貢献者

貢献者

合計 13 人の開発者がこのリリースに貢献しました。

@wanghonglie, @Wwupup, @sanbuphy, @BIGWangYuDong, @liuyanyi, @cxiang26, @jbwang1997, @ZwwWayne, @yuyoujiang, @RangiLyu, @hhaAndroid, @JosonChan1998, @Czm369 に感謝します

v3.0.0rc2 (2022/10/21)

ハイライト

  • RTMDet のバックボーンの imagenet 事前トレーニング をサポート

新機能

  • RTMDet のバックボーンの imagenet 事前トレーニング をサポート (#8887)

  • CrowdHumanDataset とメトリクスを追加 (#8430)

  • 固定形状のリサイズをサポートするために FixShapeResize を追加 (#8665)

バグ修正

  • ConcatDataset のインポートエラーを修正 (#8909)

  • CircleCI および readthedoc のビルド失敗を修正 (#8980, #8963)

  • out_shape が異なる場合のビットマップマスクの変換を修正 (#8993)

  • Conv2d の重みチャネルの不整合を修正 (#8948)

  • analyze_logs.py による損失曲線のプロット時のバグを修正 (#8944)

  • albumentations におけるラベルの型の変更を修正 (#9074)

  • いくつかのドキュメントと型のエラーを修正 (#8818)

  • メタファイルにおける RTMDet のメモリ占有率を更新 (#9098)

  • 設定における OpenImageMetrics の誤った引数を修正 (#9061)

改善点

  • box type を用いた標準 ROI ヘッドのリファクタリング (#8658)

  • BitmapMasks および PolygonMasks におけるマスクの連結のサポート (#9006)

  • dockerfile 内の PyTorch および依存関係のバージョンの更新 (#8845)

  • robustness_eval.pyprint_config の更新 (#8452)

  • dense_heads における ConfigDict および dict との互換性の確保 (#8942)

  • COCO メトリックのコピーアンドペーストによるロギングのサポート (#9012)

  • Normalize 変換の削除 (#8913)

  • 同じクラスの異なるインスタンスの色をジッターする機能のサポート (#8988)

  • PackDetInputs でのキー不足に対するアサーションの追加 (#8982)

新しい貢献者

貢献者

合計 13 人の開発者がこのリリースに貢献しました。

@RangiLyu, @jbwang1997, @wanghonglie, @Chan-Sun, @RangeKing, @chhluo, @MambaWong, @yuyoujiang, @hhaAndroid, @sltlls, @Nioolek, @ZwwWayne, @wufan-tb の皆様に感謝します。

v3.0.0rc1 (2022/9/26)

ハイライト

  • 高精度、低遅延のシングルステージ物体検出器 RTMDet をリリースしました。

バグ修正

  • PyTorch 1.6 との互換性を保つための UT の修正 (#8707)

  • モデルがラップされている場合の NumClassCheckHook のバグ修正 (#8794)

  • BoundedIoULoss を使用した R-50-FPN の正しい URL の更新 (#8805)

  • RandAugment におけるインデックスの潜在的なバグの修正 (#8826)

  • いくつかの型とリンクの修正 (#8839, #8820, #8793, #8868)

  • FSAF および RepPoints ヘッドにおける誤った背景塗りつぶし値の修正 (#8813)

改善点

  • box type を用いたアンカーヘッドとベースヘッドのリファクタリング (#8625)

  • SemiBaseDetector および SoftTeacher のリファクタリング (#8786)

  • 損失辞書を変更しないように、辞書キーへのリストの追加 (#8828)

  • analyze_results.py, analyze_logs.py および loading.py の更新 (#8430, #8402, #8784)

  • test.py での結果のダンプのサポート (#8814)

  • DetLocalVisualizer._draw_instances での空の予測のチェック (#8830)

  • SOLO における floordiv 警告の修正 (#8738)

貢献者

このリリースには、合計16人の開発者が貢献しました。

@ZwwWayne, @jbwang1997, @Czm369, @ice-tong, @Zheng-LinXiao, @chhluo, @RangiLyu, @liuyanyi, @wanghonglie, @levan92, @JiayuXu0, @nye0, @hhaAndroid, @xin-li-67, @shuxp, @zytx121 の皆様に感謝します。

v3.0.0rc0 (2022/8/31)

MMDetection 3.0.0rc0 のリリースを発表できることを嬉しく思います。MMDet 3.0.0rc0 は OpenMMLab 2.0 プロジェクトの一部である MMDetection 3.x の最初のバージョンです。新しい トレーニングエンジン を基盤として構築された MMDet 3.x は、データセット、モデル、評価、および可視化のインターフェースを統合し、より高速なトレーニングとテスト速度を実現します。また、一般的な半教師あり物体検出フレームワークと強力なベースラインを提供します。

ハイライト

  1. 新しいエンジン。MMDet 3.x は MMEngine に基づいており、より柔軟なカスタマイズを可能にし、高レベルのインターフェースのエントリーポイントを大幅に簡素化する、普遍的で強力なランナーを提供します。

  2. 統一されたインターフェース。OpenMMLab 2.0 プロジェクトの一部として、MMDet 3.x はトレーニング、テスト、データセット、モデル、評価、および可視化のインターフェースと内部ロジックを統一およびリファクタリングします。すべての OpenMMLab 2.0 プロジェクトは、これらのインターフェースとロジックで同じ設計を共有し、マルチタスク/モダリティアルゴリズムの出現を可能にします。

  3. より速い速度。一般的なモデルと構成のトレーニングおよび推論速度を最適化し、Detection2 よりも高速または同等の速度を実現します。ベンチマークのモデルの詳細は、このノートで更新されます。

  4. 一般的な半教師あり物体検出。統一されたインターフェースの恩恵を受けて、MMDet 3.x でサポートされているすべての物体検出器で動作する一般的な半教師あり学習フレームワークをサポートします。詳細については、半教師あり物体検出を参照してください。

  5. 強力なベースライン。最先端モデル間の公平な比較を可能にするために、多くの一般的なモデルの強力なベースラインをリリースします。

  6. 新機能とアルゴリズム:

  7. より多くのドキュメントとチュートリアル。ユーザーがよりスムーズに開始できるように、多くのドキュメントとチュートリアルを追加しました。 こちらをご覧ください。

破壊的変更

MMDet 3.x は、より優れた設計、より高い効率、より柔軟性、より統一されたインターフェースのために大幅な変更を加えました。API の変更に加えて、このセクションでは主な破壊的変更を簡単にリストします。移行ガイドを更新して、完全な詳細と移行手順を提供します。ユーザーは、詳細については、API ドキュメントを参照することもできます。

依存関係

  • MMDet 3.x は PyTorch>=1.6 で動作します。PyTorch 1.6 以降の混合精度トレーニングやその他の新機能を採用するために、PyTorch 1.5 のサポートは非推奨になりました。一部のモデルは引き続き PyTorch 1.5 で実行できますが、MMDet 3.x のすべての機能は保証されません。

  • MMDet 3.x は、実行するために MMEngine に依存しています。MMEngine は、OpenMMLab の深層学習モデルをトレーニングするための新しい基盤ライブラリであり、OpenMMLab 2.0 プロジェクトの中核的な依存関係です。ファイル IO およびトレーニングの依存関係は、MMCV 1.x から MMEngine に移行されました。

  • MMDet 3.x は MMCV>=2.0.0rc0 に依存しています。MMCV は 2.0.0rc0 以降トレーニング機能を維持しなくなりましたが、MMDet 3.x は MMCV のデータ変換、CUDA オペレーター、および画像処理インターフェースに依存しています。パッケージ mmcv は、プレビルドされた CUDA オペレーターを提供するバージョンであり、mmcv-lite は MMCV 2.0.0rc0 以降そうではありません。一方、mmcv-full は 2.0.0rc0 以降非推奨になりました。

トレーニングとテスト

  • MMDet 3.x は MMCV のランナーではなく、MMEngine のランナーを使用します。新しいランナーは、データセット、モデル、評価、および可視化の構築ロジックを実装および統合します。したがって、MMDet 3.x は、mmdet.train.apis および tools/train.py でこれらのモジュールの構築ロジックを維持しなくなりました。これらのコードは、MMEngine に移行されました。詳細については、MMEngine のランナーの移行ガイドを参照してください。

  • MMEngine のランナーは、テストと検証もサポートしています。テストスクリプトも簡略化され、ランナーを構築するためのトレーニングスクリプトと同様のロジックがあります。

  • 新しいランナーにおけるフックの実行ポイントが拡充され、より柔軟なカスタマイズが可能になりました。詳細については、MMEngine のフックの移行ガイドを参照してください。

  • 学習率とモメンタムのスケジュールは、フックから MMEngine のパラメーター スケジューラー に移行されました。詳細については、MMEngine のパラメーター スケジューラーの移行ガイドを参照してください。

構成

  • MMEngine のランナーは、ランナー内のコンポーネントの理解を容易にするために、異なる構成構造を使用します。ユーザーは MMDet 3.x の構成例 を読むか、移行の詳細については、MMEngine の移行ガイドを参照してください。

  • 構成とモデルのファイル名も、OpenMMLab 2.0 プロジェクト全体で統一された新しい規則に従うようにリファクタリングされました。MMDet 3.x と 2.x の間でモデルウェイトに BC 破壊がないため、チェックポイントの名前は今のところ更新されていません。MMDet 3.x でトレーニングされたモデルウェイトをすべて段階的に置き換えていきます。詳細については、構成のユーザー ガイドを参照してください。

データセット

MMDet 3.x で実装されているすべてのデータセットクラスは、BaseDetDataset から継承されています。これは、MMEngine の BaseDataset から継承されています。インターフェースの変更に加えて、MMDet 3.x のデータセットにはいくつかの変更があります。

  • すべてのデータセットは、データ読み込みのために複数のワーカーが構築される際のメモリを削減するために、内部データリストのシリアル化をサポートしています。

  • データセットの内部データ構造は、シンプルさを維持しながら、自己完結型(MMDet 2.x のようにクラス名を失うことなく)になるように変更されました。

  • 各データセットの評価機能はデータセットから削除されたため、COCO AP のような特定の評価メトリックを使用して、他のデータセットの予測を評価できます。

データ変換

MMDet 3.x のデータ変換はすべて、MMCV>=2.0.0rc0 の BaseTransform を継承しています。これは、OpenMMLab 2.0 プロジェクトにおける新しい規約を定義します。インターフェースの変更に加えて、以下に示すようないくつかの変更点があります。

  • 一部のデータ変換(例:Resize)の機能は、使用法を簡略化および明確化するために、複数の変換に分解されています。

  • 各データ変換によって処理されるデータ辞書の形式は、データセットの新しいデータ構造に従って変更されています。

  • 一部の非効率的なデータ変換(例:正規化やパディング)は、データ読み込みとトレーニング速度を向上させるために、モデルのデータプリプロセッサに移動されています。

  • 異なる OpenMMLab 2.0 ライブラリで同じデータ変換は、同じ引数が与えられた場合、同じ拡張実装とロジックを持ちます。つまり、MMDet 3.x および MMSeg 1.x の Resize は、同じ引数が与えられた場合、まったく同じ方法で画像をリサイズします。

モデル

MMDet 3.x のモデルはすべて、MMEngine の BaseModel を継承しています。これは、OpenMMLab 2.0 プロジェクトにおけるモデルの新しい規約を定義します。詳細については、MMEngine のモデルに関するチュートリアルを参照してください。それに応じて、以下のような変更点がいくつかあります。

  • 入力および出力形式を含むモデルインターフェースは、MMDet 3.x の新しい規約に従って大幅に簡略化および統一されています。具体的には、トレーニングおよびテストのすべての入力データは、inputsdata_samples にパックされます。inputs には、画像テンソルのリストのようなモデル入力が含まれ、data_samples には、グラウンドトゥルース、領域提案、モデル予測などの現在のデータサンプルに関するその他の情報が含まれます。このようにして、MMDet 3.x の異なるタスクは同じ入力引数を共有できるため、モデルはより汎用的になり、マルチタスク学習や、半教師あり学習のような柔軟なトレーニングパラダイムに適しています。

  • モデルには、モデルの入力データをプリプロセスするために使用されるデータプリプロセッサモジュールがあります。MMDet 3.x では、データプリプロセッサは通常、パディングなど、入力画像をバッチに形成するために必要な手順を実行します。また、正規化のような特殊なデータ拡張や、より効率的なデータ変換の場所としても機能します。

  • モデルの内部ロジックが変更されました。MMdet 2.x では、モデルは異なるモデルフォワードロジックを処理するために、forward_trainforward_testsimple_test、および aug_test を使用しています。MMDet 3.x および OpenMMLab 2.0 では、フォワード関数には、トレーニング、推論、およびトレースまたはその他の目的のために、それぞれ「loss」、「predict」、「tensor」の3つのモードがあります。フォワード関数は、それぞれモード「loss」、「predict」、「tensor」が与えられた場合、self.lossself.predict、および self._forward を呼び出します。

評価

MMDet 2.x の評価は、データセットと厳密に結びついています。対照的に、MMDet 3.x は評価をデータセットから分解するため、すべての検出データセットは、MMDet 3.x で実装された COCO AP およびその他のメトリクスで評価できます。MMDet 3.x は主に、各データセットに対応するメトリクスを実装しており、これらはEvaluatorによって操作され、評価を完了します。ユーザーは、データセットと予測がデータセットの規約に従う限り、MMDet 3.x で生成されない可能性のある予測を評価するために、MMDet 3.x で評価ツールを構築してオフライン評価を実行できます。詳細については、mmengine のチュートリアルを参照してください。

可視化

MMDet 2.x の可視化機能は削除されています。代わりに、OpenMMLab 2.0 プロジェクトでは、データを可視化するためにVisualizerを使用します。MMDet 3.x は、グラウンドトゥルース、モデル予測、特徴マップなどを任意の場所で可視化できるようにするために、DetLocalVisualizer を実装しています。また、Tensorboard などの外部可視化バックエンドに可視化データを送信することもサポートしています。

改善点

  • FCOS、RetinaNet、Faster R-CNN、Mask R-CNN、および Cascade R-CNN のトレーニングおよびテスト速度を最適化しました。同期バッチ正規化や混合精度トレーニングなど、一般的なトレーニング戦略を使用したこれらのモデルのトレーニング速度も最適化されています。

  • すべてのモデルの混合精度トレーニングをサポートしています。ただし、一部のモデルでは、数値的な問題により、望ましくないパフォーマンスが得られる場合があります。ドキュメントを更新し、混合精度トレーニングの結果(失敗の精度)をリストします。

  • 人気のあるオブジェクト検出器の強力なベースラインをリリースします。その精度と事前トレーニングされたチェックポイントがリリースされます。

バグ修正

  • DeepFashion データセット:設定と結果が更新されました。

新機能

  1. MMDet 3.x でサポートされているすべてのオブジェクト検出器で機能する、一般的な半教師あり学習フレームワークをサポートします。詳細については、半教師ありオブジェクト検出を参照してください。

  2. すべてのシングルステージ検出器を領域提案ネットワークとして機能させることができます。FCOS を RPN として使用する例を示します。

  3. 半教師ありオブジェクト検出アルゴリズム:SoftTeacher をサポートします。

  4. 更新された CenterNet をサポートします。

  5. さまざまな種類の境界ボックスをカプセル化するために、データ構造 HorizontalBoxesBaseBoxes をサポートします。純粋なテンソルボックスの使用を置き換えるために、ボックスのデータ構造を使用するように移行しています。これにより、MMDet 3.x および MMRotate 1.x でのさまざまな種類の境界ボックスの使用法が統一され、実装が簡略化され、冗長なコードが削減されます。

計画された変更点

MMDet 3.0.0rc0 の計画された変更点をいくつかリストします。これにより、コミュニティは MMDet 3.x の進捗状況をより包括的に知ることができます。興味がある場合、提案やフィードバックがある場合、または参加したい場合は、遠慮なく PR、issue、またはディスカッションを作成してください。

  1. テスト時の拡張:これは MMDet 2.x でサポートされていますが、時間的な制約により、このバージョンでは実装されていません。新しい簡略化された設計で、今後のリリースでサポートする予定です。

  2. 推論インターフェース:リリースされたモデルを使いやすくするために、統一された推論インターフェースが将来サポートされます。

  3. Jupyter Notebook または Colab で使用できる便利なツールのインターフェース:tools ディレクトリに実装されているより便利なツールは、Jupyter Notebook、Colab、およびダウンストリームライブラリで使用できるように、Python インターフェースを持つようになります。

  4. ドキュメント:コミュニティが新しい設計を深く掘り下げ、将来の開発に参加し、ダウンストリームライブラリを MMDet 3.x にスムーズに移行できるように、より多くの設計ドキュメント、チュートリアル、および移行ガイダンスを追加します。

  5. Wandb 可視化:MMDet 2.x は v2.25.0 以降データ可視化をサポートしていますが、現在 MMDet 3.x に移行されていません。WandB は強力な可視化機能と実験管理機能を提供するため、MMDet 2.x からこれらの機能を完全に移行するために、DetWandBVisualizer およびおそらくフックが計画されています。

  6. WiderFace データセット(#8508)および Fast R-CNN の完全サポート:それらの機能を検証しており、関連する問題をすぐに修正します。

  7. MMDet 2.x から DETR シリーズのアルゴリズム(#8655、#8533)と IPU 上の YOLOv3(#8552)を移行します。

貢献者

このリリースには、合計 11 人の開発者が貢献しました。@shuxp、@wanghonglie、@Czm369、@BIGWangYuDong、@zytx121、@jbwang1997、@chhluo、@jshilong、@RangiLyu、@hhaAndroid、@ZwwWayne に感謝します。