高橋かずひとのプログラミング、その他、備忘録。

日々調べてたことや、作ってみたものをメモしているブログ。 お決まりの断り文句ですが、このブログに書かれている内容は個人の見解であり、所属する組織の公式見解ではありません。チラ裏。

2022年振り返り その1:GitHub

年末と言うことでGitHubリポジトリの振り返りです👀

以下は昨年の投稿。


WORKS.md

今まで作成したリポジトリで対外的に公開しているものは、

以下のWORKS.mdに整理して公開しています。

※画像が多いため転送量注意

 

公開ノートブック

PyGitHubを用いたデータ集計は、Colaboratoryで試せるようにノートブックを公開しています。

アクセストークンを「【Your Personal Access Token】」に設定し、上から実行していけば動くと思います。

 

フォロー/フォロワー

200名弱フォロワーが増えております。

頻繁に利用するリポジトリとか、動向を追っているリポジトリの作者以外は、あまり積極的にフォローしていませんね👀

フォロワー:186人 → 380人

フォロー:79人 → 88人

 

リポジトリ

昨年から100近く作ったリポジトリが増えていますね🦔

「ONNX推論のみのサンプル」「トレーニングのみのサンプル」「画像処理のちょっとしたサンプル」みたいなのが大半のはず。

「ONNX推論のみのサンプル」は恐らく来年もソレなりに作成する気がするなー。

何かリポジトリ使おうと思ったら「ONNX推論とは名ばかりの前処理/後処理はPyTorch依存」みたいなコードって世の中にいっぱいあって、デプロイしようとすると使いにくいものって結構ある印象(狭い界隈の見識かもしれない)

 

リポジトリ数:322→ 436

作成リポジトリ:272 → 377

フォークリポジトリ:50 → 59

 

作成リポジトリの内、Public/Privateの内訳は以下↓

Publicリポジトリ:163 → 206

Privateリポジトリ:159 → 230

 

年毎のリポジトリ作成件数

2018年:1

2019年:0

2020年:110

2021年:211

2022年:114

 

2021年が作りすぎていた疑惑あるので、2020年と同程度の作成数に落ち着いた感じですかね👀

2022年の体感としては作ったり作らなかったりみたいな年だったとは感じています。

2021年は何かひたすらリポジトリ作成していた記憶もある。。。

 

月毎のリポジトリ作成件数(2022年)


大体5件程度で、多い月で15~25ってところですかねー。。。

2月は何でこんなに多いんだろ。記憶に無い👀

ちょっと2月を列挙してみます。

あー、アレだ。

MOT関連とその周辺の物体検出ソースコードをモリモリ整理してたタイミングだ。

曜日毎のリポジトリ作成件数(2022年)


日曜と金曜が少ない感じですね。

日曜は買い出しとか掃除とかしているので、その通りだと思います。

金曜はたまたまかな👀

 

リポジトリ主要言語


PythonとJupyter Notebookが多い。

C#はUnity関連ですね。

 

トピック

使用しているトピックのトップ10です。

若干の順位入れ替わりはありますが、昨年と似たような傾向ですね。

opencv:63
onnx:47
python:31
tensorflow:19
object-detection:17
unity:14
mediapipe:13
tensorflow-lite:12
colaboratory:11
webgl:9

 

スター数トップ10

東京オリンピックピクトグラムのやつ(Tokyo2020-Pictogram-using-MediaPipe)が昨年伸ばしたスター数を守ったまま1位になってしまっていますね。もう旬は過ぎたのでトップ3から退いていただきたい気分🦔

いくつかの現場とかで参考にされているようで、フィンガージェスチャーのやつ(hand-gesture-recognition-using-mediapipe) は、ほぼ何もメンテしていないのに170ほどスター数増えています。最近 requirements.txt アップデートのPRいただきました🙌

2位は今年作成した Image-Processing-Node-Editor です。これは結構力入れて作成したので嬉しいですね。

フォーク数トップ10

フォーク数はフィンガージェスチャーのやつ(hand-gesture-recognition-using-mediapipe)が昨年に引き続き1位です。

スター数に対してフォーク数の割合が高いので、ちょっとやそっとじゃ1位揺らがないですねコレは。

Image-Processing-Node-Editor は、ちょいちょいPRいただいたり、面白い使い方している方がいるようで良いですね👀

 

ウォッチ数トップ10

基本的にほとんどのリポジトリは定期的なメンテしていないので、ウォッチ数は少ないです。

ウォッチ数はPython版のMediaPipeのサンプル集(mediapipe-python-sample)がトップです。トップなのですが、たぶんMediaPipe公式もそんなに更新予定無さそうなので、微妙ー。。。👀

 

その他

スター数総合計:1456 → 2577

スター数平均:4.52 → 5.89

未クローズIssue件数合計:4 → 8

 

合計スター数は1000程伸びていますね。

じみーに放置Issueも増えている。。。👀

単一リポジトリで1000スターのリポジトリとか目指したいと思いつつ、多分来年も小さいリポジトリを乱立するんだろうなーって予想しています。

 

以上。

FreeYOLO(CrowdHuman)のお試し👀

人検出の精度高いやつが欲しくてFreeYOLOのCrowdHumanトレーニングバージョンを試しています🦔

CPUでも早くて、小さい対象も検出出来ているし、中々良さそう。

動画はNHKクリエイティブライブラリーの以下動画を使用しています。

 

 

Image-Processing-Node-Editorにもノード追加しました👻

 

FreeYOLOのONNX推論お試し👀

DAMO-YOLOに引き続き、PINTO さんがツイートしていた FreeYOLOをお試ししています👀

上記のカタログスペックが事実なら凄いのですが、、、

このAPって何じゃろ、、、
mAP(0.5:0.95)のことを示しているのであれば、確かにパラメータ数やFLOPsに対して良い性能だと思いますが、、、🤔

 

お試しした感じ、少々バウンディングボックスが不安定な感じはしますが、

結構検出しているように見えます。

 

ソースコードは以下にコミットしています👻

PINTOさんの動物園にもデモコードを追加👀

 

ちなみに、公式のコードのアンカー生成が微妙にマズくて、

正方形の入力しか受け付けない形になっていたので、構造修正と共に手直ししています。

※公式もそのうち対応するでしょうが、、、PR出すほど、このモデルに情熱は無いので、すみませんが放置しています、、、🦔

PINTO_model_zoo:物体検出(336_PP-YOLOE-Plus)デモ追加

PP-YOLOE-Plus の 味見👀

 

ちょっとザックリした感想を言ってしまうと、パラメータ数相応の推論速度で、

認識精度も想定範囲内って感じですかねー。。。🤔

良くも悪くも物体検出のモデルの性能が全体的に高くなってきたので、

自前データでファインチューニングして比較検討とかしないと性能の良し悪しが判断しにくくなりましたね。個人的な感想ですが。。。

 

デモコードは以下にコミットしています。

github.com

DAMO-YOLOをColaboratory上でトレーニングするサンプル👻

ある意味、以下の続編です。


以下にコミットしています。


いったん公開はしていますが、正直、暫定対応なところとか無理矢理なところとかがちょいちょいあってクオリティはあんまり高くないです。。。👀

 

そのうち改善されてくるでしょうけど、、、

暫定対応は2点↓

おそらく、データセット数が少ない場合、Mosaicのデータ拡張を行う際にエラーが発生する?

暫定対応:damo/dataset/datasets/mosaic_wrapper.py にエラー処置を追加

 

詳細な発生条件は不明ですが、、、

ファインチューニングの際に、データ拡張を有効にするとLossが0になって学習が進まない。

→ファインチューニングしない時はデータ拡張しても問題ないはず

暫定対応:self.train.no_aug_epochs を総エポック数と同一値に設定

damo/dataset/datasets/mosaic_wrapper.py の通るルートを暫定的に固定

 

無理矢理な対応は1点↓

ファインチューニングする際、クラス数を変更するとモデル構築のエラーが発生するため、クラス数80から変更せずにファインチューニングを実施。

 

(追記)

暫定対応不要になりました。

 

(追記)

DAMO-YOLOに限らない気がしますが、、、

レーニングしていてAverage PrecisionとRecallに-1.000って出て何じゃこりゃと思っていたら、コメントいただきました。

 

以上。