DETR について調査中

Visual Transformerの一つであるDETRについての情報をたどろうと思う。

## DETR が着目される理由
- Transformerベースの技術であること
- 手動でのハイパーパラメータ設計 が大幅に減っていること。
- CNNでは物体の輪郭よりも物体のテクスチャが判断に影響している比率が高いが [#1](https://ai-scholar.tech/articles/others/cnn-global-ai-141)、DETRでは、物体の輪郭の判断への比率が高いことが知られている。

この記事には、新規な情報も、十分整理された内容もありません。


## まずは日本語の解説記事
- Interface 2023年4月号[「環境構築から始める！　最新物体検出アルゴDETR」](https://shop.cqpub.co.jp/hanbai/books/MIF/MIF202304.html)河﨑太郎、服部篤樹
- Qiita [物体検出DETR （DEtection TRansformer）](https://qiita.com/DeepTama/items/937e13f6beda79be17d8)

- [Transformerを使った初めての物体検出「DETR」](https://www.ogis-ri.co.jp/otc/hiroba/technical/detr/part1.html)　オージス総研 技術部 データエンジニアリングセンター　堀 裕太

 DTERの解説と推論に関しては、DETRのGitHubページ 8 にチュートリアル用のノートブック「DETR’s hands on Colab Notebook」、「Standalone Colab Notebook」　へのリンクを紹介しています。

[[DL輪読会]End-to-End Object Detection with Transformers](https://www.slideshare.net/DeepLearningJP2016/dlendtoend-object-detection-with-transformers)

[PyTorchとDetection Transformer (DETR)で作る物体認識モデル](https://zenn.dev/aidemy/articles/30f10cf2c48e6a)

Youtube
[DETR: End-to-End Object Detection with Transformers | Paper Explained](https://www.youtube.com/watch?v=BNx-wno-0-g)
 論文についての説明

[How to Train Object Detection Transformer on Custom Dataset](https://www.youtube.com/watch?v=AM8D4j9KoaU)

[Review: Faster R-CNN (Object Detection)](
https://sh-tsang.medium.com/review-detr-end-to-end-object-detection-with-transformers-c64977be4b8e)

![](https://miro.medium.com/v2/resize:fit:720/format:webp/1*z74newQ6BbN0a3fRlX9w9A.png)

上記の記事にある計算量と精度の比較

## 検出さえできればいいという場合には
方法１： colab の環境にあるipynb を実行してみる。


方法２： 上記のipynbファイルをから要点を抜き出してpython スクリプトを作る。

- ただし、DETRはYOLOXなどに比べて推論の実行速度が速くないので、GPUのあるPCでの利用を推奨する。

## github
https://github.com/facebookresearch/detr

## webpage 
https://alcinos.github.io/detr_page/



### COCO Fotmat のデータで学習ができる。
- このため、pytorchを用いてされている最近のyoloシリーズで容易したデータをそのまま、学習・評価データに転用できそうです。

```
path/to/coco/
  annotations/  # annotation json files
  train2017/    # train images
  val2017/      # val images
```


https://github.com/Visual-Behavior/detr-tensorflow/blob/main/notebooks/DETR%20Tensorflow%20-%20%20How%20to%20setup%20a%20custom%20dataset.ipynb


colob [DETR minimal example (with DetrFeatureExtractor).ipynb](https://colab.research.google.com/github/NielsRogge/Transformers-Tutorials/blob/master/DETR/DETR_minimal_example_(with_DetrFeatureExtractor).ipynb)

DETRのリポジトリのREADME.md の中に学習のための手順が書いてある。
https://github.com/facebookresearch/detr#training

```
python -m torch.distributed.launch --nproc_per_node=8 --use_env main.py --coco_path /path/to/coco 
```

### DETR をカスタムデータで学習させる例

https://github.com/Visual-Behavior/detr-tensorflow/blob/main/notebooks/DETR%20Tensorflow%20-%20%20How%20to%20setup%20a%20custom%20dataset.ipynb


https://blog.roboflow.com/train-detr-on-custom-dataset/

https://towardsdatascience.com/training-detr-on-your-own-dataset-bcee0be05522

https://debuggercafe.com/train-detr-on-custom-dataset/

## 書籍
[Vision Transformer入門](https://gihyo.jp/book/2022/978-4-297-13058-9)

### qiita の参考記事
https://qiita.com/TeamN/items/e7fe25e8a713b7d1ee74

https://qiita.com/ishikawa-takumi/items/7394db93abc2c3a193ae

https://qiita.com/_TkurQurI_/items/740f3c58468df5f6bf97

https://qiita.com/enoughspacefor/items/accf7004495a5fbbe973