随分以前ですがこちらのサイトを参考にYOLOで遊んでいました。
AIと聞くと敷居が高いように感じますが、このように情報発信してくださる方々のおかげで気軽にAIと関わりをもてるのは本当に有難いことです。感謝!
ということで、今回メインマシンをM1 Macに移行したので久しぶりにYOLOによる物体検出に挑戦してみました。
YOLOとは?
You Only Look Onceの頭文字を取ってヨーローです。以前ご紹介したOpenCVやOpenVINOとはまた異なる仕組みで物体検出を行います。
「一度しか見ないから早いんだな」くらいの感じでいきましょう。逆の言い方をすれば他の仕組みは「何度も見ている」ということですね。
動作環境
私の環境です。
- MacBook Pro M1(メモリ8GB SSD512GB)
- macOS Big Sur(バージョン11.2.2)
- Miniforge3
- Python 3.8
セットアップしていきなり実行
ターミナルを起動し下記のコマンドを順に入力してきましょう!
解析がスタートします。
あっという間に終わり、解析結果が~/darknet/predictions.jpgに出力されます。

何度見てもすごい!と感じずにいられません。
内蔵カメラでリアルタイム物体検出をするには
ここからは事前準備が必要です。具体的にはPythonとPyTorchのセットアップをはじめに行いますが、M1 Macの場合は環境構築方法が限定されますので注意が必要です(2021年3月1日時点)。
Miniforge3インストール
Python実行環境にはMiniforge(Anacondaの小型版と思っておけば良いと思います)を利用します。
まずはこちらのサイトのDownloadから「OS X arm64(Apple Silicon)」を取得し、以下のコマンドを実行します。
bash Miniforge3-MacOSX-arm64.sh
インストールが終わったらYOLO用の環境を作成しましょう。Pythonは3.8にしました。
conda create -n yolo python=3.8
ここは「conda create -n 好きな名前 python=希望バージョン」です。こんな風に環境を作ったり削除したりできるのは便利ですね。ちなみに削除は「conda remove -n 名前 –all」です。allの前はハイフンが2つ続きますので注意してくださいね。
「動かねー」という方はパスが通っているか確認しましょう!
~/.zshrc
source ~/miniforge3/etc/profile.d/conda.sh
では、早速作成した環境へ入って作業を続けます。
conda activate yolo
PyTorchインストール
以前はPyTorchの公式サイトから環境に応じたコマンドを取得していました。

M1 Macの場合は別の手順を踏まねばなりません。環境構築全般、参考にさせて頂いた記事をご紹介させて頂きます。良記事公開、有難うございます!


まずは必須となるものをインストールしていきます。
conda install numpy
conda install matplotlib
conda install pandas
conda install opencv
続いてPythonのバージョンに応じ下記のリンクからwheel(パッケージ)をダウンロードします。3.8用はGoogle Drive、3.9用はgitへのリンクです。
警告が表示されたら続行できるように選択を続け、次にインストールです。
コンソールの最終行はこんな感じです。
Successfully installed torch-1.8.0a0 typing-extensions-3.7.4.3
セットアップを続けます。
imagesにdog.jpgを指定した結果はこんな感じです。
フォルダ「det」に「det_dog.jpg」というファイルが作成されていることを確認しましょう。

下記サンプルはimgsに「img3.jpg」を指定しました。
画像はこんな感じです(det_img3.jpg)。

リアルタイム物体検出
お待たせしました。カメラを使ってリアルタイム物体検出のお時間です。
こちらのコマンドをどうぞ!
python cam_demo.py
自分が映り込まないようかなりアクロバティックな姿勢で撮影したためツッコミどころは色々ありますがスルーでお願いしますw
iPhoneがlaptopになっていたりミニカーがcell phoneだったりはしますが、検知速度・判定結果いずれもなかなかです。ピント位置や被写体との距離を調整すればより良い結果が得られると思います。
まとめ
おしりたんていはpersonでした!
コメント