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

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

TensorFlow SimilarityでMetric Learning🦔

TensorFlow SimilarityというMetric Learning(Similarity Learning?)のライブラリが発表されていました。

β版、かつ、Google非公式のプロジェクトのようですが、Metric Learningが手軽に出来そうで期待しています。


 

ソースコードは整理して、以下にコミットしています。


肌、服、髪セグメンテーションお試し🦔

肌、服、髪のセマンティックセグメンテーションモデルを訓練していました。

データセットは自前で、モデルはDeepLabV3+、PAN(Pyramid Attention Networ)、N-Net++です。

pth形式とonnx形式で用意しています。

 

肌や服の検出モデルなので若干取り扱い注意な気がしますが、以下にソースコード、モデルを整理してコミットしています。

 

なお、今回は、データセットの収集は以下のリポジトリを活用し、

アノテーションは以下のリポジトリを活用しています。

はじめてPyPI登録をしました🦔

imread_from_url()と言う関数を作成し、はじめてPyPI登録しました🦔

登録するだけなら結構サクッと出来るんですね。

OpenCVのimread()の対象をURLにした感じの関数です。デバッグとかで適当な画像読み込む時に使います↓

import cv2

from imread_from_url import imread_from_url

image = imread_from_url(
    'https://github.com/Kazuhito00/Kazuhito00/blob/master/image/icon350.jpg?raw=true'
)

if image is not None:
    cv2.imshow('Sample', image)
    cv2.waitKey(-1)

 

※本当に登録ぐらいしかしていなくて、PyPIのページには「The author of this package has not provided a project description」とか表示されています🙄

 

PyPIのページはこんな感じ↓


例によってソースコードは整理してGitHubに公開しています。


登録手順は、からあげさんの以下の投稿と、

更にリンクされている以下リンク先を参考にしています。

GrabCutを使用したアノテーションツールをPySimpleGUIで作りました🦔

ちょっとセマンティックセグメンテーションがやりたくなったので、アノテーションツールを作りました🦔

GrabCutを利用しているので、明確な境界が無い領域のアノテーションに向きません。

 

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

設計せずに殴り書きしたから、ソースコードの構造と関数分割がイマイチになってしまいましたが、、、👻

github.com

PyGitHubを用いてリポジトリの情報を取得して眺めてみた🦔

 昨年・今年とGitHubに雑多にリポジトリを作りすぎた感があるので、整理を進めています🦔

整理の一環としてちょっと前から、「WORKS.md」と言うページにリポジトリ一覧と概要をまとめていますが、今回はGitHub APIを用いて、リポジトリの情報を眺めてみようと思います(PythonのPyGitHubを利用)

 

WORKS.md

 

公開ノートブック

Colaboratoryで試せるようにノートブックは以下に公開しています。

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

 

フォロー/フォロワー

いや、まあコレはプロフィールページ見ればすぐ分かるのですが、、、

 APIの動作確認と言う意味で。

フォロワー:132人

フォロー:72人

 

リポジトリ

 総リポジトリ数:240

240のうち自分で作成したものは199、フォークしたものは41。

自分で作成した199のうち、Publicリポジトリは88、Privateリポジトリは111。

 

Privateリポジトリ無制限になったからと言って作り過ぎな気がしますね、、、👻

 

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

f:id:Kazuhito00:20210901000812p:plain

2018年:1

2019年:0

2020年:83

2021年(8/31時点):115

 

2020年も作りすぎた感ありますが、、、

このまま行くと2021年は150くらい作成しそうですね。

2018年2019年はQiitaとかは書いてましたが、GitHubは全然でしたね。

 

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

f:id:Kazuhito00:20210901001330p:plain

6月なんで25件以上もリポジトリ立てたんだっけか🤔?

とりあえずPublicリポジトリだけ眺めてみる↓

たまたまっぽいですね🙄

 

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

f:id:Kazuhito00:20210901002938p:plain

さすがに日毎に並べても傾向は分からないですよね。

とりあえず曜日毎に並べてみますか。

 

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

f:id:Kazuhito00:20210901003050p:plain

日曜が少ないのは納得。カレー作ってるし🍛

水曜日が若干多くて、金曜日が若干少ないのは特に理由思い当たらない🙄

 

リポジトリ主要言語

f:id:Kazuhito00:20210901003213p:plain

これも大体想定通りですね。

Jupyter Notebookは95%Pythonで5%ぐらいJuliaだと思われます。

そして、Roffって何じゃ?

 

トピック

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

思ったよりmediapipe少ない?

opencv:39
python:17
tensorflow:14
unity:13
onnx:12
webgl:9
tensorflow2:8
object-detection:8
mediapipe:7
barracuda:5

 

スター数トップ10

f:id:Kazuhito00:20210901003719p:plain

スター数は、ネタで作ったピクトグラムのやつ(Tokyo2020-Pictogram-using-MediaPipe)がぶち抜いてしまって1位です。

あと、最近なぜかDeep写輪眼(NARUTO-HandSignDetection)が伸びて2位に返り咲きました。

 

フォーク数トップ10

f:id:Kazuhito00:20210901004027p:plain

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

これは学習データ作成~TensorFlow Lite変換~推論まで含めたリポジトリで、色々使い道もあるから順当な気がします。

ちなみにフォークされていった先でドローン動かしたり、ROS動かしたり、Unity動かしたりされていて「そんな面白そうなこと僕も混ぜてくれよ」って気分です🦔

 

ウォッチ数トップ10

f:id:Kazuhito00:20210901004320p:plain

ウォッチ数はPython版のMediaPipeのサンプル集(mediapipe-python-sample)がトップです。

まあ、正直、このリポジトリ以外で継続してメンテナンスしているリポジトリなんて皆無なんですけどね、、、🙄

 

リポジトリサイズトップ10

f:id:Kazuhito00:20210901004524p:plain

トップ10中9個がPrivateリポジトリです。

Privateなのをいいことに、学習データセット丸々コミットしていたり、学習済モデル丸々コミットしていたりするので、残念だが当然です。南無。

 

その他

スター数総合計:1011

スター数平均:5.08

ウォッチ数総合計:12

未クローズIssue件数合計:0

 

スター数はようやく総合計1000を越えましたが、1リポジトリ平均約5個なので、

粗製乱造感は否めませんね。。。

Issueは一回大掃除して全部Closeしてからは、あまり放置せずに対処できていると思います。

 

以上。

MediaPipe 0.8.7でPoseにenable_segmentationオプションが追加されました🦔

MediaPipe0.8.7のPoseにenable_segmentationオプションが追加されていました。

姿勢推定しつつ人物/背景分離が出来ます。

オプション使用時のFPSは約2/3ぐらいでした🦔

あと、utilのdrawに種類が増えたようなのですが、僕のサンプルでは描画は自前のため割愛しています。

 

 

 ソースコードはいつも通り以下にコミットしています。

 

そしてすっげえ今更ですが、、、

MediaPipeのバージョンに合わせてタグを切るようにしました。。。

 

こんなにオプションが増え続けることを想定していなかったので、

継ぎ足してサンプルを作成していたのですが、、、

後方互換の無い引数が増えてしまっていました。。。

本当は綺麗にソースコード書き直したほうが良いのですが、

ちょっとその時間は無いので、いったんタグで逃げます。。。

MoveNetで複数人姿勢推定おためし🦔

試そう試そうと思っていたのですが、ちょっと案件が立て込んでて遅くなりました。

MoveNetの複数人数(最大6名)の姿勢推定です。

処理速度は激速です🦔

精度は以下のような感じ↓

 

 

 

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

github.com