Megvii-BaseDetection

Activity

Stars and mentions · Last 30 days, Oct 5 – Nov 3

GitHub stars0
Mentions1
01234Oct 5Oct 19Nov 3
UTC days · repositories Megvii-BaseDetection owns0 repositories

Top repositories

Megvii-BaseDetection’s repositories ranked by new stars, as on trending.

Loading

Contributes to

Repositories outside Megvii-BaseDetection’s account where Megvii-BaseDetection opened or reviewed pull requests in the past 365 days.

Who noticed Megvii-BaseDetection

Everyone who starred or forked Megvii-BaseDetection’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

1post
Nov 40 posts
  1. 防犯カメラの録画をためて、AIでの処理も試す:OpenClawとネットワークカメラで異常検知の下準備 OpenClawの使い道の1つとして、自宅の防犯カメラ映像の解析に挑戦します。目的は異常検知です。ただ、何を異常と判断するかは、データをある程度集めてから決めます。いまはデータをためる段階です。 録画を自分で見直すのは大変で、これまで設置はしていてもほとんど活用していませんでした。 この記事は、最初のステップとして、試運転で分かったこと、LLMの使い方、コストをまとめます。しばらく運用して、結果が出たら更新します。 ! 結論 防犯カメラの動画は、1日1回、PCにダウンロードしています 動画をPCにダウンロードすれば、AI処理などいろいろできます。LLMに説明してもらうのも強力ですが、背景差分と物体検出器(YOLOX)などの組み合わせも重要です 異常検知を目指して、データを集めていきます 使った機材と全体の流れ 機材 用途 ネットワークカメラ 庭に置いたソーラーバッテリー式のカメラ microSDカード(64GB) カメラが動きを検知したときの録画を保存します ミニPC 録画の保存、解析、定期実行。以前の記事のミニPCです OpenClaw 定期実行、Discordへの投稿、LLMの呼び出し カメラは、人感センサーが反応したときだけ起きて、録画をSDカードに残します。毎朝1回、その映像をミニPCにDLします。 まずLLMに説明させてみた OpenClawを使っていて、まず試したのはLLMです。録画から切り出したコマに番号をつけ、1枚に並べてDeepSeek v4.1-flashに渡します。 説明のために、公開データセット(MEVA)の映像で、同じことをしてみます。 出典:MEVAデータセット(Kitware、CC BY 4.0)のフレームを並べて作成 プロンプトでは、画像の読み方と、答えの形を指定しています。答えはJSONで、分類、1文の要約、コマごとの詳しい説明、いちばんよく写ったコマの番号の4つです。 これは、庭の防犯カメラが検知した約 20 秒の録画から取った {n} コマを、番号つきで並べた 1 枚の画像です(左から右、上から下の順。各コマの左上の黄色い数字が番号、画像の上端の白い文字が撮影時刻)。動くものは録画の最初に写ることが多いので、最初の数秒は細かく取ってあります。番号順の、録画の先頭からの秒数は {times} です。何が起きたかを、次の JSON だけで返してください。 {"category": "人|宅配|車|自転車|動物|なし のどれか 1 つ", "description": "日本語 1 文。誰が何をしたか。推測は「〜のよう」と書く", "detail": "コマ番号の時系列で、見えたことを日本語で詳しく(3〜8 文)。人数、服装、持ち物、向き・動き、いた場所、車や自転車の種類と色、立ち止まったか。見えないものは書かない", "best": 被写体が一番よく写っているコマの番号(整数。何も写っていなければ 1)} 分類の基準: 人=歩行者や住人。宅配=制服や台車・荷物を持った配達員。車=車やバイクが写る。自転車=自転車が動く。動物=猫・鳥・犬など。なし=人も物も動いておらず、光・風・虫・影だけ(誤検知)。複数あるときは、いちばん目立つものを選ぶ。写っていないものは書かない。 MEVAの画像には、「庭の防犯カメラ」を「監視カメラ」に変えて渡しました。コマごとの説明(detail)は、次のとおりです。 4コマ目では駐車場中央付近に3人組の歩行者が現れ、黒っぽい服装で横に並んで左方向へ歩いている。(中略)7コマ目では左下に3人組、中央付近に1人が見え、いずれも立ち止まらずに左へ移動している。8コマ目では1人が左方向へ歩き、9コマ目では歩行者はいなくなる。 何人が、どこを、どちらへ歩いたかまで答えます。動きを検知して通知するだけの、これまでの監視カメラとは別格です。 この答えは歩行者には気づいていますが、車の出入りには触れていません。4コマ目では手前の青い車がいなくなり、8コマ目では白い車が入ってきます。 同じ画像を、別の回に分類すると、「白いSUVが駐車場を横切った」と、車と答えることもありました。同じ設定でも、答えは毎回同じとは限りません。 もっと良くするために、背景差分と物体検出を試す こうした見落としを減らして、LLMの答えをさらに良くする方法を考えました。背景差分や物体検出の結果をヒントとして加えたり、動いた所を縮小せずに切り出して渡したりする方法です。そのために、まず2つの処理を動かしました。 背景差分で、動いた所を見つける 録画の全コマを重ねて、各位置の中央の値を取ると、動くものが消えて背景だけが残ります。背景との差の大きい所が、動いたものです。 出典:MEVAデータセット(Kitware、CC BY 4.0)のフレームに、背景と差分の画像を加えて作成 物体検出で、人と車を数える 物体検出器のYOLOXを、CPUだけで動かします。1コマ0.1秒ほどです。 出典:MEVAデータセット(Kitware、CC BY 4.0)のフレームに、検出の枠を加えて作成 突き合わせると、LLMの誤りが見つかった ヒントとして渡す前に、13件の録画で、LLMの答えと検出器の結果を比べました。自宅で撮影した1日のデータで食い違ったのは2件です。 最初の2秒だけ写った人を、LLMは「なし」と答えました 奥の道路から戻ってきた車を、LLMは「人が歩いた」と答えました 1件目は、コマの切り出し方が原因でした。録画は検知の瞬間から始まるので、動くものは最初の数秒に写ります。初めは2秒おきに均等に切り出していたので、人は1コマにしか写っていませんでした。最初の2秒を0.5秒おきに切り出すと、LLMは人が歩いてきたと答えました。 2件目は、手前に停まった車の奥に、小さく写った車でした。検出器(YOLOX)は車と答えています。細かく切り出しても、LLMは「なし」と答えました。そこで、2つの方法を試しました。 検出器が各コマで見つけたもの(「6コマ目:車、画面の中央奥」など)をプロンプトに足すと、LLMは「奥に別の白い車が写り始める」と答えました 奥の車を縮小せずに切り出し、コマ送り画像の下に足すと、LLMは「赤い上着の人が歩いた」と、写っていない人を答えました ヒントは効き、切り出しは逆効果でした。ただ、どちらも1件だけの結果です。 深く考えさせると、画像の説明はどう変わるのか 図のコマ送り画像を、3つの設定で1回ずつ分類しました。比べたのは、何が起きたかを説明できたかです。 3つの設定と、実際に送られたもの OpenClawの「思考の量」の設定は、プロバイダへ送るとき、reasoning_effort に変換されます。off は none、low は low、high は high です。下の表は、分類したときの指定と、平均の時間です。 記事での呼び名 実際の指定 時間の平均 指定なし 何も指定しない 57秒 短く考える reasoning_effort: low 21秒 考えない thinking: {type: "disabled"} 4秒 指定なしは、reasoning_effort と thinking のどちらも付かない状態です。モデルの既定の量で考えます。 OpenClawの設定ファイルには、このモデルの thinking が low と書いてあります。ただし、infer model run から何も指定せずに呼ぶと、121 秒かかりました。low を指定したときより長いので、この設定は infer には効いていません。 考えない設定は、OpenClawからは送れません。--thinking off は none に変換されますが、実測では 67 秒かかって、考えが止まりませんでした。今回は、APIへ直接指定して測りました。 設定 出力 説明に書けたこと 指定なし 13,501 歩行者に加えて、「白いSUVが駐車場を横切った」 短く考える 3,753 歩行者だけ。「8コマ目で白いSUVが走行している」には触れていない 考えない 204 歩行者と、「白い車のそばに人が立っている」。白い車は動いたと書いていない この映像で目立つのは、7コマ目までいなかった白いSUVが、8コマ目に駐車場を横切ることです。気づいたのは、指定なしのときだけでした。 指定なしでは、コマ1から7を歩行者の確認に使い、8コマ目で白いSUVを見つけています。考えた文章を見ると、歩行者と白いSUVのどちらを答えにするかを、長く迷っています。迷った末に、大きい白いSUVを選びました。 短く考える設定は、歩行者を追うだけで終わりました。白いSUVには、考えた文章でも触れていません。考えない設定は、白い車を「そばに立っている」と書きました。動いているとは捉えていません。 この 1 枚では、指定なしがいちばん説明できました。 ただし、回数は 1 回ずつです。同じ画像でも、指定なしで人と答えた回がありました。どれがよいかは、公開データの区間を増やしてから決めます。 コストは、この画像で指定なしが 13,501、短く考える設定が 3,753、考えない設定が 204 でした。指定なしは、短く考える設定の 3.6 倍、考えない設定の 66 倍です。 指定なしは、何周も見直していた 指定なしの考えた文章は、48,187 文字でした。中で、コマの走査を何度もやり直しています。 項目 指定なし 短く考える コマの走査 19 周 3 周 座標を書き出した回数 96 0 考え直しの合図(wait、actually など) 47 7 プロンプトの規則の読み返し 36 2 答えを書いた回数 1(最後だけ) 2 指定なしの流れです。周ごとに、モデルが書いた文章を、日本語に訳して載せます。原文は英語です。 1周目 コマ1、左上。駐車場で、車がたくさん停まっている。手前の下は、赤い車が一部、紺色のSUV、黒いSUVなど。真ん中の草地にオレンジ色の重機がある? そのそばに黒い車。人は? 見当たらない。コマ2も同じで、いないようだ。コマ3もいない。コマ4、右中ほど、黒い車と草地の近くに、3人組が左へ歩いている? 頭の中で拡大してみる。コマ4、手前の中ほど右には黒いSUVが停まっている。右中ほどの舗装路、黒い車の近くは? コマ4の3人組。モデルが書いた座標は (390,130) 2周目 コマ1(x0-480、y0-270)。上の駐車列に車が多い。左中ほど、黒い車が走っている? x0に? 実際は 3周目 コマ1の左端、y~90。左に暗い車、道路の近くか。どのコマでも同じ場所にある? 停まっているのか。実際は コマ1の左端の黒い車。モデルが書いた座標は (15,90) 4周目 コマ1のx13、y91に黒い車。動いているのか。比べてみると、コマ 5周目 コマ1の左端、道路の近くに黒い車。コマ2も同じ? コマ3も同じ? 停まっている可能性がある。難しい。右中ほど、オレンジの重機、黒い車、赤いピックアップ。手前の下、赤い車が一部(x50、y240)、紺色のSUVがx170、y220、黒いSUVがx270、y210。人は見当たらない。コマ2も同じ。人がいない可能性がある。コマ3も同じ、いない。コマ4、手前の黒いSUVが動いた? 待って、コマ1〜3では黒いSUVがx270、y205にいた。コマ4ではx170にいる? コマ5の赤いピックアップ。モデルは「赤いピックアップ」と書いている 6周目 コマ1、オレンジの重機がx~300、y~110(コマの中の座標)。コマ2でも同じ。だから同じだ。コマ4でも同じ。つまり、コマの中の座標は対応している。コマ4の人はx~390、y~130。コマ5ではx~120、y~160。左へ大きく飛んでいる。別の集団で、同じ人ではない可能性がある。人が複数いる可能性がある。主な出来事を特定しなくては。コマごとに人を並べると、コマ4は右側の3人(x~390、y~130)が歩いている? コマ4のオレンジの重機。モデルが書いた座標は (300,110) コマ5の2人。モデルが書いた座標は (120,160) 7周目 コマ1の左端。黒い車がx~15、y~90に? 実際は 8周目 コマ1、左端の道路に黒い車。コマ2も同じ黒い車? x~15、y~90にあるようだ。コマ3、同じ。コマ4、同じ。コマ5、同じ。停まっていて、動かない。上の列にも停まっている車がある。オレンジの重機も動かない。赤いピックアップも動かない。手前の赤いSUVと黒いSUVも動かない。コマ8の白いSUVが、唯一動く車? 重機の近くの黒い車も 9周目 コマ1〜3で動くか。比べてみると、コマ 10周目 コマ1、オレンジの重機の近くの黒い車がx~340、y~130。コマ2、同じ。コマ3、同じ。コマ4、同じ。停まっている可能性がある。コマ5、同じ。動かない。左中ほどの白い車はどうか 11周目 コマ1? x~50、y~150に白い車が? 実際は 12周目 コマ1の左端、y~150に白い車? 左の道路沿いに停まっている? 全コマにある? 13周目 コマ1、左下に白い車がx~0、y~150(一部)。コマ2、同じ。コマ3、同じ。動かない。コマ8の白いSUVは明らかに新しい。コマ8にだけ写っている? コマ7を見ると、同じ位置(x~250、y~180)に白い車がある? コマ7では、その場所は空いている? 舗装路は見えるが、重機の近くに黒い車がいる。コマ8の白いSUVはかなり大きく、中央近くで左を向いている。コマ9にはいない。 コマ8の白いSUV。モデルが書いた座標は (260,180) 14周目 コマ1(0秒)は、人がいない。コマ2(2秒)もいない。コマ3(4秒)もいない。コマ4(6秒)、x~390、y~130(右の中ほど)に3人組が左へ歩いている? 拡大してみる。コマ4(中ほどの左)、コマの右端近く、黒い車のそばの舗装路に、暗い人影が3つ見える? 実際はx~390、y~130にいる。体の向きから、左(左下)へ歩いているように見える? 難しい。 15周目 コマ1はいない。t2(コマ2)はいない。t4(コマ3)はいない。t6(コマ4)は3人組が(390,130)? t8(コマ5)は2人が(120,160)。t10(コマ6)は2人が(220,190)。t12(コマ7)は3人組が(90,190)、1人が(370,140)? t14(コマ8)は1人が(80,160)、白いSUVが(260,180)。t16(コマ9)はいない? 一番左に1人? これは1本の連続した軌跡にならない。独立した人が複数いるか、位置の読み取りが違っている。 16周目 コマ1、舗装路に人がいない。コマ2もいない。コマ3もいない。コマ4、x=360、y=130の黒い車の近くを見る。すぐ下の右、舗装路の上に、暗い人影が3つ。およそx=400、y=140。寄り集まって立っている。左へ歩いているように見える(体が左を向いている)。小さい。コマ5、舗装路の左側、x=120、y=160の近くを見る 17周目 コマ1、左端に黒い車。コマ2では動いている? 確かめてみる。 コマ1とコマ2の左端。同じ車で、動いていない(モデルが書いた座標は 15,90) 18周目 コマ1の左端は、黒い車がx=15、y=90。コマ2、同じ。コマ3、同じ。コマ4、同じ。コマ5、同じ。コマ6、同じ。コマ7、同じ。コマ8、同じ? 実はコマ8では、左端の黒い車は消えている? コマ8(3行2列)を見る。左端に白い車が停まっていて、黒い車もいる可能性がある。x=15、y=90の黒い車は全コマにあるのか? コマ8の左上には、x=15、y=90に黒い車がいる? いると考える。道路に停まっている車だ。 19周目 コマ1、白い車がx=0、y=150。コマ2、同じ。コマ3、同じ。コマ4、同じ。コマ5、同じ。コマ6、同じ。コマ7、同じ。コマ8、同じ。コマ9、同じ。動かない。コマ8の白いSUVは、間違いなく動いている。白いクロスオーバーのSUVだ。右から来た? コマ8では左向き、下向きなので、駐車場の右側から左へ走ってきたのか。道路ではなく、舗装した場所の上だ。 1日10件なら、月の枠の何%を使うか この録画は1日10件ほどです。1か月を300件として、Goの枠をどれだけ使うかを計算しました。単価は入力0.15、出力0.60($/100万トークン)、月の上限は $80 の重みで、入力は1件あたり1,100トークンです。 設定 1回の出力 1か月の出力 1か月の額 月の枠 考えない 202 6.1万 $0.09 0.1% 短く考える 2,076 62.3万 $0.42 0.5% 指定なし 6,216 186.5万 $1.17 1.5% 入力は、1か月で33万トークンです。単価が安いので、額の大半は出力です。 3つの設定のうち、いちばん高いのは指定なしです。それでも月の枠は1.5%です 1日10件で、1件2分、合計20分ほどです 指定なしでも、利用量は問題になりません。 どの設定を選んでも、月の枠は1.5%以下です。コストと速さのどちらも、設定を落とす理由になりません。 だから、設定は質で選べます。図の1枚では、指定なしだけが、8コマ目に横切った白いSUVを説明しました。区間を増やして確かめてから、本番の設定を決めます。 周回しても、見える情報は増えません。 指定なしは19周しましたが、新しい発見は6周目で終わっています。残りの13周は、決めたことの確認と書き直しでした。 短く考える設定は、3周で終わります。2周目のあとで「迷いがあるので、控えめに書く」と決め、答えを書いてから、もう一度書き直しました。迷いを、周回ではなく、文章の書き方で処理しています。 異常検知は、これから 録画のたびに、次の値をためています。 値 例 検知の時刻と種類 人、動体 動いた秒数、入った側と出た側 7秒、左から右 検出器が数えた人や車の数 人2、車1 LLMの説明 コマごとの出来事 私が付けた正解 人、車、家族、知らない人 夜間に人がいた、人が長く滞在した、といった録画を見つけて、家族に見せるのが目標です。数週間ためてから、方法を選びます。 運用して、検知の件数、LLMと検出器の一致率、夜間の精度、コストが分かったら更新します。 参考 YOLOX MEVA

Achievements

Awards earned by the repositories Megvii-BaseDetection owns. Select an award to embed its badge.

Gold
01st place finishes
Silver
12nd place finishes
Bronze
13rd place finishes
Awarded repositories
1Owned by Megvii-BaseDetection now

Repositories

Ordered by gold, then silver, then bronze.

  1. YOLOXBest: 2nd by forks, 74 forks011

Every award

Top-three finishes of these repositories in completed trending days and weeks, newest first.

  1. YOLOX
  2. YOLOX

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.