月: 2021年3月

  • 詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    プログラミングの勉強を始めるにあたって、いったい何から始めるかっていうのが最初の関門だと思います。
    ネットで調べたりしたはいいけど、そこからじゃあどうしましょう。プログラムを書くソフトは一体どうしたらいいの?

    僕自身それでかなり困りました。

    プログラムを書くにあたって書くためのツールが大きく二つあります。
    一つは対話型であり、一つは文章型です。(ここでは分かりやすく。正しいのかはイマイチわからないですが…)

    対話型は文章を一つ打ったら、一つ返答が返ってくる
    という具合に一文一文プログラムを書いて実行してを繰り返します。

    文章型は作文をしたらその感想が返ってくる
    というように、一気にプログラムを実行するイメージです。
    いわゆる想像するプログラムは文章型であり、訳のわからないコードがたくさん並んでいるように見えるかと思います。

    ただ、文章型のプログラムをしようとした際にじゃあ一体どのソフトでやるのか?というのが困ります。

    それも、プログラミングを学ぶ初級では対話型を行うことが多いが、中級になると急に文章のコードを書くようになり、何を使って書くかはあまり明記されなかったり、本によって全く違ったりします。

    対話型はコマンドプロントであったり、ターミナルなどの、もともとパソコン本体に既存のもので
    “Python”と打ってから始めます。

    しかし文章型のプログラムはどれで書くのでしょうか。

    文章型のプログラムの多くは、IDE(総合開発環境)によって書くことがほとんどです。(困ったときには”Python IDE おすすめ”で検索するとたくさん記事が出てきます。)

    僕の文章型のプログラムを書くときに普段使っているのは
    Jupyter NotebookとPyCharmです。
    (Jupyter はジュピターと読む派と、ジュパイターと読む派がいるみたいです。)

    統計解析やグラフを書くときはJupyter Notebook、機械とか動かしたり、複雑なプログラムはPyCharmを使います。

    それぞれどんな感じなのかを説明していきたいと思います。

    まずJupyter Notebookについて。
    これはAnacondaをダウンロードすると付随して入ります。
    Jupyter Notebookを起動すると、まずSafariやFirefoxなどのパソコンのブラウザが開きます。

    そして、パソコンのファイル一覧が表示されます。
    そこで目的のフォルダーを開き、右上のほうにあるnewをクリック。
    その後、Python3をクリックすることで下の画像のような画面が開かれます。
    このファイルを保存すると *.ipynbファイル となります。

    一つ一つの塊にプログラムを打ち、上部にあるRUNというボタンをクリックすることによって、各固まりずつプログラムを動かすことができます。

    グラフや統計を行う際に、この一つの塊ずつコードを実行するというのはとても利点となります。
    なので僕はよく利用してます。

    PyCharmは *.py ファイルを開くときに使っています。
    開けるファイルが違うので、注意が必要です。

    PyCharmは他のサイトを参考にしてみてください。
    (まだあんまり使ったことがないので、詳しい使い方に関しては今後の記事で紹介したいと考えています。)

    Anacondaのサイトはこちらから

    Jupyter Notebookのサイトはこちらから

    PyCharmのサイトはこちらから
    ダウンロードはprofessionalではなく、灰色のCommunityのほうが無料で使えるほうです。
    はじめはそちらのダウンロードをおすすめします。

    Jupyter Notebookは最近頻繁につかっているので、僕の学習のメモとして、そしてプログラムを学びたい方向けに今後も更新していきたいと思います。

  • ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    パソコンのHDDをSSDに換装するとき、グリスの塗りなおし、もしくは家具家電が壊れた時に、自分で直そうとするとき、ついついねじをなくしちゃいがちです。

    ねじをなくすとホームセンター等で購入せねばならないうえ、ぴったりあうねじを見つけるのは至難の業です。
    僕もスイッチのプロコントローラーを直そうとしたときに、ねじをなくし、買いに行きました。

    近年中国市場で出回っている電子機器の部品等がAliExpressやWish等で購入できるようになり、メルカリ等のフリマアプリでジャンク品を気軽に購入できるようになったことから、自分自身で直そうとする試みをする人たちが非常に多くなりました。
    コロナの感染拡大により、家で過ごす時間も増え、なおこのブームが加速されたと思います。

    ただ、やはりねじの管理はモノを直すうえで基本的なことであり、しかし重要なことの一つであると思います。
    そこで僕がジャンク品修理の際にどのようにねじ管理をしているのかを紹介したいと思います。

    これは百円均一に売っている裏が粘着シールになっているマグネットシートと、透明なトレーで作成できます。
    僕の買ったときには、マグネットシートは文房具コーナーに、透明なトレーは収納コーナーにありました。

    マグネットシートを適当なサイズにカットし、それを張り付けることで作ることができます。

    このトレーは重ねることができるものであるとなおよく、作業中にそのトレーを分解した順に重ねることでよりどの位置のねじかがわかります。
    ねじと一緒に細かいパーツも置くことができるのも押しポイントだと思います。

    簡単に作ることができるので、ぜひ活用してみてください。

  • 一か月プログラミングの勉強をしてみての感想

    プログラミングを学習して一番実感するのは、自分が果たしてプログラミングができるようになっているのかどうかわからないということです。

    いままでずっと、プログラミングは英語のようなもので、勉強するにしたがってだんだんと言語のようにすらすらと書けるようになっていくのではないかと考えていました。
    しかし、実際には、そうなっていくような感じはあまりしませんでした。

    プログラミングは必要に迫られたときに勉強する感じであり、逆に言うと使わなければ身につかないんだなと思いました。
    僕自身DeepLabCutによって解析結果が出ましたが、あまりにも膨大なデータなため、それをどうにかしてわかりやすくグラフにする必要性がありました。

    エクセルでもグラフはかけるのでしょうが、膨大なデータであり、エクセルで開くのだけでも非常に時間がかかりました。
    そういったデータを処理し、グラフにするためにpythonを使用しようと決め、勉強しながらプログラムを書くことにしました。

    プログラムを書いてみて、プログラムを書くこと自体はそこまで難しくないと思いましたが、自分のやりたい処理をグーグルで探すことが難しいなと感じました。
    どういう処理をしたいかを考え、それにあうプログラムコードを調べ、入力していくという作業の繰り返しでした。

    これを踏まえ、先に話した言語のようなものではなかったということについて、どちらかというと常に英和辞典をもって話しているような感じであり、どのようなことでもある程度時間をかければできるが、経験によって調べる速さ、プログラムのスマートさが変わっていくのだと感じました。

    また、自分で書いたコードは財産となり、同じような処理を行おうとした際にそれをコピペして少し変えてつかうということが頻繁にあります。

    まだまだプログラミングを始めたばかりで、ミーハーなのでそういうことを語れる身ではないのかもしれませんが、今後始める方の参考になればと思います。

  • DeepLabCut2.3のインストール方法[2023年12月更新]

    DeepLabCut2.3のインストール方法[2023年12月更新]

    今回の記事ではDeepLabCutのインストール方法について説明していきます。

    参考サイト
    ・日本語サイト
    https://qiita.com/auditorycortex/items/1b3a55101cddf09553b2
    ↑非常にわかりやすい。とりあえずこれに従っておけば大丈夫なはず

    https://note.com/sakulab/n/n9caeb32d74d6
    ↑画像付き

    DeepLabCutホームページ
    GitHub

    インストール方法

    動作環境
    ・Windows 10
    ・NVIDIA 2060 SUPER, NVIDIA 1080 Ti, NVIDIA 3080で動作確認
    (NVIDIA 1060 SUPERでは動作せず)
    ・DeepLabCut 2.1
    ・NVIDIA Driver 最新版
    ・Anaconda3
    ・Python 3.8
    ・CUDA 11.8
    ・tensorflow-gpu 2.5

    手順
    まず初めに、GitHubのサイトのマスターファイルをダウンロードしておきます。

    Codeの”Download ZIP”よりダウンロードすることができます。

    次に、AnacondaのサイトからWindows 10 64bit版をダウンロード、インストールします。

    NVIDIAのドライバーをインストールします。(もともとインストールされている場合はスキップします。)

    DeepLabCutのサイトの下のほうへとスクロールし、右側の ”DOWNLOAS CONDA FILE” をクリックし、
    DEEPLABCUT.yamlをダウンロードします。

    PCのどこかにDeepLabCutフォルダーを作り(デスクトップ、もしくはCドライブのディレクトリがおすすめ)、その中にenvironmentフォルダーをつくりましょう。
    そして、そのファイルの中に先ほどダウンロードしたDEEPLABCUT.yamlのファイルを入れます。
    これは人の好みによりますが、僕は環境ファイルはある一定のところへと保存したい派ですので、このようにしております。

    Anaconda Promptを管理者権限で起動します。(なんか黒い文字ばっかのターミナル、もしくはコマンドプロントのような画面が出てくる)
    Anaconda PromptはAnacondaをダウンロードした際に、一緒に入っており、PCのソフト一覧から見つけることができると思います。

    さきほどダウンロードしたDEEPLABCUT.yamlファイルをつかって仮想環境を構築します。
    Anaconda Promptで

    conda env create -f C:\(DLC-GPU.yamlファイルの場所)\DEEPLABCUT.yaml

    と入力しましょう。
    DEEPLABCUT.yamlファイルの場所は、ファイルのプロパティから確認することができるので、そこから確認し、入力しましょう。

    このコードを動かすと、いろいろダウンロードなどをするかと思います。
    その後、作った仮想環境に入りましょう。

    conda activate DEEPLABCUT

    すると、(base)から(DEEPLABCUT)に代わっていると思います。
    そこまでいけばとりあえずは成功です。

    次に、CUDAとcuDNNをインストールします。

    conda install -c conda-forge cudnn

    これによって、CUDA toolkitとcuDNNをいい感じのバージョンをダウンロードしてくれます。

    その後、以下の4つのコードを入力し、インストールします。

    pip install numpy
    pip install deeplabcut
    pip install imgaug
    pip install torch

    DeepLabCutをアップデートし、インストールは完了です。

    pip install --upgrade deeplabcut

    ここまで出来たら、一度起動してみましょう。

    conda activate DEEPLABCUT
    python -m deeplabcut

    を入力することで、DeepLabCutのGUIを起動させることができます。

    DeepLabCutがGPUで動いてくれない時の対処

    trainingを開始してみたら、あれ?遅くね?ってなることがあります。
    それはGPUでDeepLabCutを動かしたいはずが、CPUで動かしてしまっているからです。

    よくある原因はCUDA, cuDNN, tensorflowのバージョンが合致していないという問題です。

    tensorflowなどは最新版にどんどん更新されていきます。
    なので、たまにうまくいかなくなることがあります。

    最新のバージョン情報に関しては、DeepLabCutのGitHubで確認してみてください。

    以上がインストール方法でした。
    次回以降は使い方を説明していきたいと思います。

    おまけ

    パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!

    あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!

    パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
    それに感化されて一旦やってみようと思いました!

    パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
    特に機械学習に用いるパソコンを多く選び、使ってきています。

    そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。

    今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。

    MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください

    追記 1

    DeepLabCutと同様に、行動のトラッキングを行うツールである”SLEAP”のインストール方法についても記事に書きました。

    SLEAPもDeepLabCutに負けないツールなので、ぜひ使って見てください。

  • 深層学習を用いた行動解析ツール DeepLabCut

    深層学習を用いた行動解析ツール DeepLabCut

    (上の画像が論文へのリンクとなっています。)

    生物学における行動解析は非常に重要な実験であり、特に脳の理解には行動を正確に定量が必要不可欠です。

    従来ではマーカー(センサーなど)を実験対象(人や実験動物など)に用いることによってポーズ推定を高精度で行うことができました。
    しかし、センサーを用いるということは実験対象にとっては邪魔なものとなり、それによって行動が変わったり、行動の制約が生まれたりする。

    マーカーを用いない方法として、スケルトンモデルを適用するという方法があるが、スケルトンモデルの開発は時間がかかり、大規模に行うこととなリマス。
    画像からポーズ推定のシステムもあるが、これはポーズ推定に伴うデータ量が膨大となり、これもまた設備の問題で一研究室が行うには非常に困難でした。

    DeepLabCutではパソコン一つあれば誰でも、そして非常に簡単にポーズ推定を行うことができます。
    深層学習を用いた画像認識によって、マーカーレスで、そして自分の好きなところを認識し追跡することができます。

    また、深層学習によりマーキングしているため、撮影した動画を補正することなく解析することができます。
    つまり、解析しようとするフィールドの光が均一でなくても、また角度によって映像が多少歪んでいたとしても、トラッキングすることができます。

    DeepLabCutの開発した研究室のページはこちらから。
    GitHubについてはこちらから。

    実際にDeepLabCutを使用してみて、解析に用いるパソコンのスペックとして、GPU(グラフィックボード)のメモリが8GB以上というのが必要であるとわかりました。
    ゲーミングPCのGPUではミドルエンドからハイエンドのGPUであり、普段使用しているノートパソコンでは快適な解析はできないことがわかりました。

    ただそのようなハイスペックのパソコンがなくともGoogle Colaboを使うことによって仮想GPUを使用し、解析をすることができます。
    ただまだやったことはないですが・・・。

    実際の解析では、プロットの精度は非常に高いと感じました。
    ただ学習させるデータと違う背景であったりすると、うまく解析してくれないことがよくあり、学習させるデータは実際に自分が解析したい環境を想定し、それに近い環境の学習データが良いと感じました。

    DeepLabCutは自分の興味のある数カ所のプロットだけではなく、解析に使わなくとも調べたい実験対象のある程度の骨格など全体をプロットすることで、よりプロットの精度が良くなることが論文で示されていました。
    また、学習し、解析したあとでうまくいかない時には、そのうまくいかないフレームを排除したり、新たな学習のデータセットを追加したりでき、学習を能動的に改善することができます。

    DeepLabCut自体使い勝手は非常に良く、誰でも簡単に使用することができます。
    ぜひ解析に使ってみてはいかがでしょうか。

    DeepLabCutのインストールや使い方の説明を今後していきたいです。


  • Visual programing languageとしてのBonsai

    Visual programing languageとしてのBonsai

    Bonsaiは2015年に論文で発表されたVisual programming languageです。
    Bonsaiを使うことでセンサーからの情報を取得し、処理を同時に行うことを可能としたものです。

    Bonsaiの特徴として、複雑な処理をパズルを組み立てるような形で簡単に作ることができ、そして、その処理の結果をリアルタイムで確認することができるという点にあります。

    また、Bonsaiは他の解析ソフト(DeepLabCut. open ephys, bon visionなど)、ハードウェア(カメラ、コントローラー、マイコンなど)などと組み合わせることができ、拡張性が非常に高いことがあります。

    難しそうに見えるプログラミング言語を学習しなくても、直感的に複雑な解析や処理を行うことができるため、誰でも簡単に使うことができ、実験の幅がよりひろがります。

    Bonsaiに関する論文はこちらから。
    また、Bonsaiのインストールはこちらから。

    論文の画像より引用。
    この丸がノードと呼ばれる各処理を示すものです。

    これが実際にBonsaiを使っているときの画面です。(論文から引用)
    左側ではノードの検索をし、目的のノードを追加することができ、中央の画面ではノードを並べることでどのような処理を可視化しながら組み立てることができ、右側は各ノードの詳細設定です。

    メイン画面でポップアップしているのは各ノードの実行状況であり、カメラのキャプチャーであれば、実際のカメラの画像を出力することができます。

    一見難しそうに見えるが、こうやってみてみると意外と簡単なように見えます。

    では実際にインストールしていきます。
    といっても、こちらのサイトより、ダウンロードするだけです。
    ダウンロードした “Bonsai-*.*.*.exe” ファイルを開き、ダウンロードするだけです。
    ウイルスバスターなどのセキュリティソフトなどによってインストールできないことがあることに注意が必要です。

    Bonsaiをダウンロードするとソフト一覧にBonsaiとBonsai (X86)が追加されます。
    通常使用する際はどちらでも大丈夫であるが、ときどきどちらかが動かないなどがあり、動かないときは、もう一方のほうで動かしてみるとうまくいくことがあります。

    問題点として、Bonsaiは今現在はWindowsでのみ対応しており、LinuxやMac OSでは対応していません。
    今後は利用できるかもしれないが、ここも注意が必要です。

    次回から実際にBonsaiを使ってみようと思います。